* include/libxml/entities.h entities.c SAX2.c parser.c: trying to
fix entities behaviour when using SAX, had to extend entities
content and hack on the entities processing code, but that should
fix the long standing bug #159219
Daniel
* uri.c include/libxml/uri.h: add a new function xmlPathToUri()
to provide a clean conversion when setting up a base
* SAX2.c tree.c: use said function when setting up doc->URL
or using the xmlSetBase function. Should fix#346261
Daniel
* xmlsave.c: fixed a comment
* xinclude.c include/libxml/xinclude.h: applied a patch from Michael Day
to add a new function providing the _private field for the generated
parser contexts xmlXIncludeProcessFlagsData()
Daniel
* tree.c: xmlTextConcat works with comments and PI nodes (bug #355962).
* parser.c: fix resulting tree corruption when using XML namespace
with existing doc in xmlParseBalancedChunkMemoryRecover.
* valid.c: fixed a bug #203125 in Red hat bugzilla, crashing PHP4
on validation errors, the heuristic to guess is a vctxt user
pointer is the parsing context was insufficient.
Daniel
* xmlschemas.c: While investigating bug #350247, I noticed
that xmlSchemaIDCMatcher structs are massively recreated
although only a maximum of 3 structs is used at the same
time; added a cache for those structures to the
validation context.
* xmlsave.c: Removed the automatic generation of CDATA sections
for the content of the "script" and "style" elements when
serializing XHTML. The issue was reported by Vincent Lefevre,
bug #345147.
* result/xhtml1 result/noent/xhtml1: Adjusted regression test
results due to the serialization change described above.
* configure.in parser.c xmllint.c include/libxml/parser.h
include/libxml/xmlversion.h.in: applied patch from Andrew W. Nosenko
to expose if zlib support was compiled in, in the header, in the
feature API and in the xmllint --version output.
Daniel
* xmlschemas.c: Fixed bug #347316, reported by David Belius:
The simple type, which was the content type definition
of a complex type, which in turn was the base type of a
extending complex type, was missed to be set on this
extending complex type in the derivation machinery.
* xpath.c: Changed xmlXPathCollectAndTest() to use
xmlXPathNodeSetAddNs() when adding a ns-node in case of
NODE_TEST_TYPE (the ns-node was previously added plainly
to the list). Since for NODE_TEST_ALL and NODE_TEST_NAME
this specialized ns-addition function was already used,
I assume it was missed to be used with NODE_TEST_TYPE.
* xpath.c: Enhanced xmlXPathCompOpEvalToBoolean() to be also
usable outside predicate evaluation; the intention is to
use it via xmlXPathCompiledEvalToBoolean() for XSLT tests,
like in <xsl:if test="/foo">.
* python/libxml.c, python/libxml.py, python/tests/compareNodes.py,
python/tests/Makefile.am:
Added code submitted by Andreas Pakulat to provide node
equality, inequality and hash functions, plus a single
test program to check the functions (bugs 345779 + 345961).
* xpath.c: Added xmlXPathCompiledEvalToBoolean() to the API and
adjusted/added xmlXPathRunEval(), xmlXPathRunStreamEval(),
xmlXPathCompOpEvalToBoolean(), xmlXPathNodeCollectAndTest()
to be aware of a boolean result request. The new function
is now used to evaluate predicates.
* xpath.c: Fixed an bug in xmlXPathCompExprAdd(): the newly
introduced field @rewriteType on xmlXPathStepOp was not
initialized to zero here; this could lead to the activation
of the axis rewrite code in xmlXPathNodeCollectAndTest() when
@rewriteType is randomly set to the value 1. A test
(hardcoding the intial value to 1) revealed that the
resulting incorrect behaviour is similar to the behaviour
as described by Arnold Hendriks on the mailing list; so I
hope that will fix the issue.
* xpath.c: Fixed an error in xmlXPathEvalExpr(), which
was introduced with the addition of the d-o-s rewrite
and made xpath.c unable to compile if XPATH_STREAMING
was not defined (reported by Kupriyanov Anatolij -
#345752). Fixed the check for d-o-s rewrite
to work on the correct XPath string, which is ctxt->base
and not comp->expr in this case.
* tree.c include/libxml/tree.h: Fixed a bug in
xmlDOMWrapAdoptNode(); the tree traversal stopped if the
very first given node had an attribute node :-( This was due
to a missed check in the traversal mechanism.
Expanded the xmlDOMWrapCtxt: it now holds the namespace map
used in xmlDOMWrapAdoptNode() and xmlDOMWrapCloneNode() for
reusal; so the map-items don't need to be created for every
cloning/adoption. Added a callback function to it for
retrieval of xmlNsPtr to be set on node->ns; this is needed
for my custom handling of ns-references in my DOM wrapper.
Substituted code which created the XML namespace decl on
the doc for a call to xmlTreeEnsureXMLDecl(). Removed
those nastly "warnigns" from the docs of the clone/adopt
functions; they work fine on my side.
* tree.c: Fixed xmlGetNodePath() to generate the node test "*"
for elements in the default namespace, rather than generating
an unprefixed named node test and loosing the namespace
information.
* include/libxml/parser.h: Clarified in the docs that the tree
must not be tried to be modified if using the parser flag
XML_PARSE_COMPACT as suggested by Stefan Behnel
(#344390).
* xpath.c: Fixed self-invented a segfault in xmlXPathCtxtCompile(),
when the expression was not valid and @comp was NULL and I
tried to do the d-o-s rewrite.