Index: tree.c =================================================================== RCS file: /cvs/gnome/libxml2/tree.c,v retrieving revision 1.291 diff -c -r1.291 tree.c *** tree.c 21 Oct 2003 00:08:42 -0000 1.291 --- tree.c 28 Oct 2003 13:00:10 -0000 *************** *** 5292,5298 **** --- 5292,5300 ---- */ xmlNsPtr xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace) { + xmlNsPtr cur; + xmlNodePtr orig = node; if (node == NULL) return(NULL); if ((nameSpace != NULL) && *************** *** 5350,5365 **** return(cur); cur = cur->next; } ! cur = node->ns; ! if (cur != NULL) { ! if ((cur->prefix == NULL) && (nameSpace == NULL) && ! (cur->href != NULL)) ! return(cur); ! if ((cur->prefix != NULL) && (nameSpace != NULL) && ! (cur->href != NULL) && ! (xmlStrEqual(cur->prefix, nameSpace))) ! return(cur); ! } } node = node->parent; } --- 5352,5369 ---- return(cur); cur = cur->next; } ! if (orig != node) { ! cur = node->ns; ! if (cur != NULL) { ! if ((cur->prefix == NULL) && (nameSpace == NULL) && ! (cur->href != NULL)) ! return(cur); ! if ((cur->prefix != NULL) && (nameSpace != NULL) && ! (cur->href != NULL) && ! (xmlStrEqual(cur->prefix, nameSpace))) ! return(cur); ! } ! } } node = node->parent; } *************** *** 5482,5495 **** } cur = cur->next; } ! cur = node->ns; ! if (cur != NULL) { ! if ((cur->href != NULL) && (href != NULL) && ! (xmlStrEqual(cur->href, href))) { ! if (xmlNsInScope(doc, orig, node, cur->href) == 1) ! return (cur); } ! } } node = node->parent; } --- 5486,5501 ---- } cur = cur->next; } ! if (orig != node) { ! cur = node->ns; ! if (cur != NULL) { ! if ((cur->href != NULL) && (href != NULL) && ! (xmlStrEqual(cur->href, href))) { ! if (xmlNsInScope(doc, orig, node, cur->href) == 1) ! return (cur); ! } } ! } } node = node->parent; }