line numbers are now carried by most nodes, fixing xmlGetLineNo() c.f. bug

* SAX2.c tree.c: line numbers are now carried by most nodes, fixing
  xmlGetLineNo() c.f. bug #309205
Daniel
diff --git a/tree.c b/tree.c
index b3aeaf2..3e5378f 100644
--- a/tree.c
+++ b/tree.c
@@ -4138,15 +4138,19 @@
 
     if (!node)
         return result;
-    if (node->type == XML_ELEMENT_NODE)
+    if ((node->type == XML_ELEMENT_NODE) ||
+        (node->type == XML_TEXT_NODE) ||
+	(node->type == XML_COMMENT_NODE) ||
+	(node->type == XML_PI_NODE))
         result = (long) node->line;
     else if ((node->prev != NULL) &&
              ((node->prev->type == XML_ELEMENT_NODE) ||
-	      (node->prev->type == XML_TEXT_NODE)))
+	      (node->prev->type == XML_TEXT_NODE) ||
+	      (node->prev->type == XML_COMMENT_NODE) ||
+	      (node->prev->type == XML_PI_NODE)))
         result = xmlGetLineNo(node->prev);
     else if ((node->parent != NULL) &&
-             ((node->parent->type == XML_ELEMENT_NODE) ||
-      	      (node->parent->type == XML_TEXT_NODE)))
+             (node->parent->type == XML_ELEMENT_NODE))
         result = xmlGetLineNo(node->parent);
 
     return result;