From 66757b3536a00b6c0839e7971957b8b5f21a17e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Bu=CC=88nemann?= Date: Sat, 23 Jun 2018 12:14:28 +0200 Subject: [PATCH] Support xmlTextReaderNextSibling w/o preparsed doc This implements missing support for readers that are not based on a preparsed document in xmlTextReaderNextSibling. --- xmlreader.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/xmlreader.c b/xmlreader.c index 4053269b..392a9c04 100644 --- a/xmlreader.c +++ b/xmlreader.c @@ -2028,7 +2028,6 @@ found_node: * * Skip to the node following the current one in document order while * avoiding the subtree if any. - * Currently implemented only for Readers built on a document * * Returns 1 if the node was read successfully, 0 if there is no more * nodes to read, or -1 in case of error @@ -2037,16 +2036,16 @@ int xmlTextReaderNextSibling(xmlTextReaderPtr reader) { if (reader == NULL) return(-1); - if (reader->doc == NULL) { - /* TODO */ - return(-1); - } if (reader->state == XML_TEXTREADER_END) return(0); - if (reader->node == NULL) - return(xmlTextReaderNextTree(reader)); + if (reader->node == NULL) { + if (reader->doc != NULL) + return(xmlTextReaderNextTree(reader)); + else + return(xmlTextReaderRead(reader)); + } if (reader->node->next != NULL) { reader->node = reader->node->next; -- GitLab