diff --git a/xinclude.c b/xinclude.c index b2e6ea1344ba876a066bf44a6f02c1f24626c95d..2a0614d737af3f94f7d50aaf90c8716b29b5e501 100644 --- a/xinclude.c +++ b/xinclude.c @@ -1014,15 +1014,15 @@ xmlXIncludeCopyRange(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, if (list == NULL) { list = tmp; listParent = cur->parent; + last = tmp; } else { if (level == lastLevel) - xmlAddNextSibling(last, tmp); + last = xmlAddNextSibling(last, tmp); else { - xmlAddChild(last, tmp); + last = xmlAddChild(last, tmp); lastLevel = level; } } - last = tmp; if (index2 > 1) { end = xmlXIncludeGetNthChild(cur, index2 - 1); @@ -1103,12 +1103,11 @@ xmlXIncludeCopyRange(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, } if (tmp != NULL) { if (level == lastLevel) - xmlAddNextSibling(last, tmp); + last = xmlAddNextSibling(last, tmp); else { - xmlAddChild(last, tmp); + last = xmlAddChild(last, tmp); lastLevel = level; } - last = tmp; } } /* @@ -1186,8 +1185,7 @@ xmlXIncludeCopyXPointer(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, if (last == NULL) { list = last = tmp; } else { - xmlAddNextSibling(last, tmp); - last = tmp; + last = xmlAddNextSibling(last, tmp); } cur = cur->next; continue; diff --git a/xpointer.c b/xpointer.c index 3e3c8b88c96196196e35850816e4e1318807d7c8..68ce3601f8e9d05d84b62bb694d3ee9f08bd740d 100644 --- a/xpointer.c +++ b/xpointer.c @@ -1470,16 +1470,16 @@ xmlXPtrBuildRangeNodeList(xmlXPathObjectPtr range) { return(list); } else { tmp = xmlCopyNode(cur, 0); - if (list == NULL) + if (list == NULL) { list = tmp; - else { + parent = tmp; + } else { if (last != NULL) - xmlAddNextSibling(last, tmp); + parent = xmlAddNextSibling(last, tmp); else - xmlAddChild(parent, tmp); + parent = xmlAddChild(parent, tmp); } last = NULL; - parent = tmp; if (index2 > 1) { end = xmlXPtrGetNthChild(cur, index2 - 1); @@ -1561,8 +1561,7 @@ xmlXPtrBuildRangeNodeList(xmlXPathObjectPtr range) { if (last != NULL) xmlAddNextSibling(last, tmp); else { - xmlAddChild(parent, tmp); - last = tmp; + last = xmlAddChild(parent, tmp); } } }