diff --git a/ChangeLog b/ChangeLog index 82019809..b9f04d69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sun Feb 8 12:09:55 HKT 2004 William Brack + + * xinclude.c: added a small hack to fix interference between + my fixes for bugs 132585 and 132588. + * python/libxml.c: fixed problem with serialization of namespace + reported on the mailing list by Anthony Carrico + Sat Feb 7 16:53:11 HKT 2004 William Brack * xinclude.c: fixed problem with function xmlXIncludeCopyRange diff --git a/python/libxml.c b/python/libxml.c index 225078a2..52decf45 100644 --- a/python/libxml.c +++ b/python/libxml.c @@ -2473,7 +2473,10 @@ libxml_serializeNode(ATTRIBUTE_UNUSED PyObject * self, PyObject * args) (void) xmlOutputBufferClose(buf); py_retval = libxml_charPtrWrap((char *) c_retval); } else { - doc = node->doc; + if (node->type == XML_NAMESPACE_DECL) + doc = NULL; + else + doc = node->doc; if ((doc == NULL) || (doc->type == XML_DOCUMENT_NODE)) { xmlOutputBufferPtr buf; xmlCharEncodingHandlerPtr handler = NULL; diff --git a/xinclude.c b/xinclude.c index d1c816f3..a58a7791 100644 --- a/xinclude.c +++ b/xinclude.c @@ -58,6 +58,7 @@ struct _xmlXIncludeRef { int xml; /* xml or txt */ int count; /* how many refs use that specific doc */ xmlXPathObjectPtr xptr; /* the xpointer if needed */ + int emptyFb; /* flag to show fallback empty */ }; struct _xmlXIncludeCtxt { @@ -1795,6 +1796,7 @@ xmlXIncludeLoadFallback(xmlXIncludeCtxtPtr ctxt, xmlNodePtr fallback, int nr) { ctxt->incTab[nr]->inc = xmlCopyNodeList(fallback->children); } else { ctxt->incTab[nr]->inc = NULL; + ctxt->incTab[nr]->emptyFb = 1; /* flag empty callback */ } return(ret); } @@ -2208,7 +2210,9 @@ xmlXIncludeDoProcess(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr tree) { * */ for (i = ctxt->incBase;i < ctxt->incNr; i++) { - if ((ctxt->incTab[i]->inc != NULL) || (ctxt->incTab[i]->xptr != NULL)) + if ((ctxt->incTab[i]->inc != NULL) || + (ctxt->incTab[i]->xptr != NULL) || + (ctxt->incTab[i]->emptyFb != 0)) /* (empty fallback) */ xmlXIncludeIncludeNode(ctxt, i); }