From ddb7b8869252ee6e80d4e5be99a4f69ab7f492b9 Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Mon, 7 Jan 2008 20:30:42 -0500 Subject: [PATCH] When there is a value specified with the XPATH command, reverse the order of processing as recommended by the libxml2 xpath2.c example to fix xmlNodeSetContent() from overwriting things. --- src/xml.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xml.c b/src/xml.c index cdbb51d2..29c0bed7 100644 --- a/src/xml.c +++ b/src/xml.c @@ -926,7 +926,7 @@ fail: gpg_error_t recurse_xpath_nodeset(xmlDocPtr doc, xmlNodeSetPtr nodes, xmlChar *value, xmlBufferPtr *result) { - gint i; + gint i = value ? nodes->nodeNr - 1 : 0; xmlBufferPtr buf; buf = xmlBufferCreate(); @@ -934,7 +934,7 @@ gpg_error_t recurse_xpath_nodeset(xmlDocPtr doc, xmlNodeSetPtr nodes, if (!buf) return gpg_err_code_from_errno(ENOMEM); - for (i = 0; i < nodes->nodeNr; i++) { + for (; value ? i >= 0 : i < nodes->nodeNr; value ? i-- : i++) { xmlNodePtr n = nodes->nodeTab[i]; if (!n) -- 2.11.4.GIT