From 2190404b02deb5768dd130128298d57dd24fafae Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Sun, 21 Feb 2010 10:49:54 -0500 Subject: [PATCH] Set the target parameter to find_root_element() and find_elements() after determining whether a "target" attribute exists or not. For use with the stop parameter of these functions. --- src/xml.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/xml.c b/src/xml.c index a02197f1..c779129a 100644 --- a/src/xml.c +++ b/src/xml.c @@ -498,6 +498,9 @@ xmlNodePtr find_root_element(xmlDocPtr doc, gchar ***req, gpg_error_t *rc, xmlFree(content); content = node_has_attribute(n, (xmlChar *)"target"); + if (target) + *target = TRUE; + if (!content || stop) { if (content) xmlFree(content); @@ -556,9 +559,6 @@ xmlNodePtr find_root_element(xmlDocPtr doc, gchar ***req, gpg_error_t *rc, *req = nreq; } - if (target) - *target = TRUE; - g_free(root); n = find_root_element(doc, req, rc, target, recursion_depth, FALSE); return n; @@ -688,6 +688,9 @@ xmlNodePtr find_elements(xmlDocPtr doc, xmlNodePtr node, continue; } + if (target) + *target = TRUE; + if (!*(p+1) && stop) { xmlFree(content); return n; @@ -736,9 +739,6 @@ xmlNodePtr find_elements(xmlDocPtr doc, xmlNodePtr node, return tmp; } - if (target) - *target = TRUE; - n = find_elements(doc, tmp->children, nnreq, rc, NULL, found_fn, not_found_fn, is_list_command, recursion_depth, data, stop); -- 2.11.4.GIT