Hello community, here is the log from the commit of package libxml2 for openSUSE:Factory checked in at 2012-03-07 20:09:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libxml2 (Old) and /work/SRC/openSUSE:Factory/.libxml2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxml2", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/libxml2/libxml2.changes 2012-03-02 13:49:15.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libxml2.new/libxml2.changes 2012-03-07 20:09:40.000000000 +0100 @@ -1,0 +2,13 @@ +Mon Mar 5 10:18:12 UTC 2012 - [email protected] + +- revert the two commits that broke perl-XML-LibXML's test case, + I hope the two upstreams will figure it out + +------------------------------------------------------------------- +Fri Mar 2 16:47:56 UTC 2012 - [email protected] + +- update to git to fix some issues + * Fix a logic error in Schemas Component ConstraintsHEADmaster + * Fix a wrong enum type use in Schemas Types + +------------------------------------------------------------------- New: ---- fix-perl.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libxml2.spec ++++++ --- /var/tmp/diff_new_pack.HsTZMk/_old 2012-03-07 20:09:41.000000000 +0100 +++ /var/tmp/diff_new_pack.HsTZMk/_new 2012-03-07 20:09:41.000000000 +0100 @@ -29,6 +29,7 @@ Source: libxml2-git-snapshot.tar.gz Source2: baselibs.conf Patch0: bigendian64.patch +Patch1: fix-perl.diff BuildRequires: pkg-config BuildRequires: readline-devel BuildRequires: xz-devel @@ -129,6 +130,7 @@ %prep %setup -q -n %{name}-2.7.8 %patch0 -p0 +%patch1 -p1 -R %build %configure --disable-static \ ++++++ fix-perl.diff ++++++ commit 77b77b1301e052d90e6a0967534a698506afcd86 Author: Daniel Veillard <[email protected]> Date: Thu Jan 26 19:11:02 2012 +0800 Fix SAX2 builder in case of undefined element namespaces Work as in XML-1.0 before namespaces, and use prefix:localname as the new element name (and no namespace of course) Also fix 3 cases in the regression tests where the prefix: was erroneously dropped in such case diff --git a/SAX2.c b/SAX2.c index c0482c0..0c48d65 100644 --- a/SAX2.c +++ b/SAX2.c @@ -2163,6 +2163,7 @@ xmlSAX2StartElementNs(void *ctx, xmlNodePtr parent; xmlNsPtr last = NULL, ns; const xmlChar *uri, *pref; + xmlChar *lname = NULL; int i, j; if (ctx == NULL) return; @@ -2182,6 +2183,20 @@ xmlSAX2StartElementNs(void *ctx, } /* + * Take care of the rare case of an undefined namespace prefix + */ + if ((prefix != NULL) && (URI == NULL)) { + if (ctxt->dictNames) { + const xmlChar *fullname; + + fullname = xmlDictQLookup(ctxt->dict, prefix, localname); + if (fullname != NULL) + localname = fullname; + } else { + lname = xmlBuildQName(localname, prefix, NULL, 0); + } + } + /* * allocate the node */ if (ctxt->freeElems != NULL) { @@ -2194,7 +2209,10 @@ xmlSAX2StartElementNs(void *ctx, if (ctxt->dictNames) ret->name = localname; else { - ret->name = xmlStrdup(localname); + if (lname == NULL) + ret->name = xmlStrdup(localname); + else + ret->name = lname; if (ret->name == NULL) { xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs"); return; @@ -2206,8 +2224,11 @@ xmlSAX2StartElementNs(void *ctx, if (ctxt->dictNames) ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, (xmlChar *) localname, NULL); - else + else if (lname == NULL) ret = xmlNewDocNode(ctxt->myDoc, NULL, localname, NULL); + else + ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, + (xmlChar *) lname, NULL); if (ret == NULL) { xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs"); return; diff --git a/result/namespaces/err_7.xml b/result/namespaces/err_7.xml index f4e5164..4b4c662 100644 --- a/result/namespaces/err_7.xml +++ b/result/namespaces/err_7.xml @@ -1,2 +1,2 @@ <?xml version="1.0"?> -<foo/> +<f:foo/> diff --git a/result/xmlid/id_tst2.xml b/result/xmlid/id_tst2.xml index 33ee896..856a320 100644 --- a/result/xmlid/id_tst2.xml +++ b/result/xmlid/id_tst2.xml @@ -1,6 +1,6 @@ Object is a Node Set : Set contains 1 nodes: -1 ELEMENT foo +1 ELEMENT n:foo ATTRIBUTE id TEXT content=bar diff --git a/result/xmlid/id_tst3.xml b/result/xmlid/id_tst3.xml index e2f8228..6d8865c 100644 --- a/result/xmlid/id_tst3.xml +++ b/result/xmlid/id_tst3.xml @@ -1,6 +1,6 @@ Object is a Node Set : Set contains 1 nodes: -1 ELEMENT o:o +1 ELEMENT f:o:o ATTRIBUTE id TEXT content=bar commit 1c989278d9650daafc79e55750bec5a5a224a553 Author: Daniel Veillard <[email protected]> Date: Thu Jan 26 19:43:06 2012 +0800 Fix SAX2 builder in case of undefined attributes namespace To follow the early XML-1.0 REC, the new localname is "prefix:localname" and there is obviously now namespace. diff --git a/SAX2.c b/SAX2.c index 0c48d65..e230cea 100644 --- a/SAX2.c +++ b/SAX2.c @@ -2335,8 +2335,33 @@ xmlSAX2StartElementNs(void *ctx, */ if (nb_attributes > 0) { for (j = 0,i = 0;i < nb_attributes;i++,j+=5) { + /* + * Handle the rare case of an undefined atribute prefix + */ + if ((attributes[j+1] != NULL) && (attributes[j+2] == NULL)) { + if (ctxt->dictNames) { + const xmlChar *fullname; + + fullname = xmlDictQLookup(ctxt->dict, attributes[j+1], + attributes[j]); + if (fullname != NULL) { + xmlSAX2AttributeNs(ctxt, fullname, NULL, + attributes[j+3], attributes[j+4]); + continue; + } + } else { + lname = xmlBuildQName(attributes[j], attributes[j+1], + NULL, 0); + if (lname != NULL) { + xmlSAX2AttributeNs(ctxt, lname, NULL, + attributes[j+3], attributes[j+4]); + xmlFree(lname); + continue; + } + } + } xmlSAX2AttributeNs(ctxt, attributes[j], attributes[j+1], - attributes[j+3], attributes[j+4]); + attributes[j+3], attributes[j+4]); } } ++++++ libxml2-git-snapshot.tar.gz ++++++ ++++ 25432 lines of diff (skipped) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
