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;