6 years agoCleanups before 2.8.0-rc2 master v2.8.0-rc2
Daniel Veillard [Mon, 21 May 2012 03:16:12 +0000 (11:16 +0800)]
Cleanups before 2.8.0-rc2

new symbols, a missing comment and a fix on symbol release

6 years agouse mingw C99 compatible functions {v}snprintf instead those from MSVC runtime
Roumen Petrov [Sun, 20 May 2012 13:07:54 +0000 (16:07 +0300)]
use mingw C99 compatible functions {v}snprintf instead those from MSVC runtime

6 years agoNew symbols added for the next release
Daniel Veillard [Mon, 21 May 2012 02:15:40 +0000 (10:15 +0800)]
New symbols added for the next release

6 years agoAvoid an extra operation
Daniel Veillard [Mon, 21 May 2012 02:14:34 +0000 (10:14 +0800)]
Avoid an extra operation

In the catalog code, tsan also complained of testing
the variable without locking and that was done a few lines below

6 years agoPart for rand_r checking missing
Daniel Veillard [Sun, 20 May 2012 12:48:34 +0000 (20:48 +0800)]
Part for rand_r checking missing

Forgot to push that change in previous commit

6 years agoCleanup on randomization
Daniel Veillard [Fri, 18 May 2012 07:41:31 +0000 (15:41 +0800)]
Cleanup on randomization

tsan reported that rand() is not thread safe, so create
a thread safe wrapper, use rand_r() if available.
Consolidate the function, initialization and cleanup in
dict.c and make sure it is initialized in xmlInitParser()

6 years agoxmlTextReader bails too quickly on error v2.8.0-rc1
Andy Lutomirski [Tue, 15 May 2012 12:10:25 +0000 (20:10 +0800)]
xmlTextReader bails too quickly on error

I use xmlTextReader to parse failed that might be incomplete.  These files are
the beginning of a well-formed file, but the end is missing so the file as a
whole is not well-formed.

The problem is that xmlTextReader starts returning errors when it encounters
the early EOF, even though I haven't finished reading all of the valid data in
the file.  It would be helpful if xmlTextReader kept working until the very

6 years agoFix undefined reference in python module
Pacho Ramos [Tue, 15 May 2012 11:36:02 +0000 (19:36 +0800)]
Fix undefined reference in python module

when compiled with LDFLAGS="${LDFLAGS} -Wl,-z,-defs -Wl,--no-undefined"
the python module would failed due to the undefined. This add an
explicit reference to python lib.

6 years agoFix a race in xmlNewInputStream
Daniel Veillard [Tue, 15 May 2012 03:18:40 +0000 (11:18 +0800)]
Fix a race in xmlNewInputStream

Reported by Bill Clarke <>, it used a global variable
as a counter for the input id and this was not thread safe. To avoid the
race without adding unneeded locking in the parser path, move the id to
the parser context instead.

6 years agoFix weird streaming RelaxNG errors
Noam [Tue, 15 May 2012 03:03:46 +0000 (11:03 +0800)]
Fix weird streaming RelaxNG errors

The bug was to use compiled determinitic automata when
the content model was found to be non-deterministic, leading
to random parsing errors.

6 years agoFix various bugs in new code raised by the API checking
Daniel Veillard [Tue, 15 May 2012 02:45:05 +0000 (10:45 +0800)]
Fix various bugs in new code raised by the API checking

* testapi.c: regenerated and covering new APIs
* tree.c: xmlBufferDetach can't work on immutable buffers
* xzlib.c: fix a deallocation error

6 years agoFix various problems with "make dist"
Daniel Veillard [Tue, 15 May 2012 02:25:31 +0000 (10:25 +0800)]
Fix various problems with "make dist"

* tree.c: missing documentation for xmlBufferDetach
* doc/symbols.xml: add two new symbols xmlTextReaderRelaxNGValidateCtxt
                   and xmlBufferDetach
* doc/ ignore internal header xzlib.h

6 years agoFix a memory leak in the xzlib code
Daniel Veillard [Tue, 15 May 2012 01:38:13 +0000 (09:38 +0800)]
Fix a memory leak in the xzlib code

The freeing function wasn't called due to a bogus #ifdef surrounding
value. Also switch the code to use the normal libxml2 allocation and
freeing routines.

6 years agoUse a hybrid allocation scheme in xmlNodeSetContent
Conrad Irwin [Mon, 14 May 2012 06:18:58 +0000 (14:18 +0800)]
Use a hybrid allocation scheme in xmlNodeSetContent

On Fri, May 11, 2012 at 9:10 AM, Daniel Veillard <> wrote:
>  Hi Conrad,
> that's interesting ! I was initially afraid of a sudden explosion of
> memory allocations for building a tree since by default buffers tend to
> "waste" memory by using doubling allocations, but that's not the case.
>  xmllint --noout doc/libxml2-api.xml
> when compiled with memory debug produce
> paphio:~/XML -> cat .memdump
>      MEMORY ALLOCATED : 0, MAX was 12756699
> and without your patch 12755657, i.e. the increase is minimal.

Heh, I thought that too. Actually you're looking at the result with XML_ALLOC_EXACT! This
is because EXACT adds 10bytes "spare" on each alloc, and that interestingly wastes about the
same amount of space as XML_ALLOC_DOUBLEIT on this example (see below).

So it turns out that the default realloc() on my system actually handles this case really
well — and I guess that all the time in xmlRealloc() was actually in xmlStrlen, not the
underlying realloc() after all (sorry for misleading you). If you replace the realloc()
with a bad one (like valgrind's), then the performance degrades severely.

This patch implements a HYBRID allocator which has the behaviour you describe (it's
like EXACT to start with, though without the spare 10 bytes; and switches to DOUBLEIT
after 4kb) — that gets the memory back down to 12755657, with no noticeable impact on the
performance of the synthetic pathological example under valgrind.

In summary:

     max_memory on ./xmllint --noout doc/libxml2-api.xml,
     valgrind time on

            max_memory    valgrind time
before   |  12755657    | 29:18.2
EXACT    |  12756699    |  2:58.6 <-- this is the state after the first patch.
DOUBLEIT |  12756727    |  0:02.7
HYBRID   |  12755754    |  0:02.7 <-- this is the state with both patches.

> There is also the cost of creating the buffers all the time.
> I need to read the code and check but I may be interested in an hybrid
> approach where we switch to buffer only when the text node starts to
> become too big (4k would remove nearly all usuall types of "document"
> usage, i.e. not blocks of data)

I tried to avoid too much buffer creation by introducing the xmlBufferDetach function,
which allows re-using one buffer to construct many strings. It's maybe a bit of a "hack"
in API terms though I thought the gains would be worth it.



To keep memory usage tight in normal conditions it's desirable to only
allocate as much space as is needed. Unfortunately this can lead to
problems when constructing a long string out of small chunks, because
every chunk you add will need to resize the buffer.

To fix this XML_ALLOC_HYBRID will switch (when the buffer is 4kb big)
from using exact allocations to doubling buffer size every time it is
full. This limits the number of buffer resizes to O(log n) (down from
O(n)), and thus greatly increases the performance of constructing very
large strings in this manner.

6 years agoUse buffers when constructing string node lists.
Conrad Irwin [Fri, 11 May 2012 03:17:25 +0000 (20:17 -0700)]
Use buffers when constructing string node lists.

Hi Veillard and all,

Firstly, thanks for libxml: it's awesome!

I noticed recently that libxml was taking a surprisingly long time to perform some
operations (many minutes instead of milliseconds), and so I did some digging. It turns out
that the problem was caused by the realloc()ing done in xmlNodeAddContentLen() which can
be called many (many) times when assigning some content into a node.

For background, I'm dealing with XML that contains emails, these can have large
attachments (~6MB) which are base-64 encoded, line-wrapped at 78 chars, and each line ends
with &#13;. This means that xmlNodeAddContentLen() is being called about 200,000 times,
and so there are 200,000 reallocs of a 6MB string, which takes a while... (I put a synthetic
example of this at

The attached patch works around that problem by using the existing buffer API to merge the
strings together before even creating the text node, this keeps the number of realloc()s
at a managable level.

I'd love feedback on the patch, and am happy to fix problems with it, or explore other
solutions if you think that this is barking up the wrong tree :).



P.S. Should I create a bug for this too?


Before this change xmlStringGetNodeList would perform a realloc() of the
entire new content for every XML entity in the assigned text in order to
merge together adjacent text nodes. This had the effect of making
xmlSetNodeContent O(n^2), which led to unexpectedly bad performance on
inputs that contained a large number of XML entities.

After this change the memory management is done by the buffer API,
avoiding the need to continually re-measure and realloc() the string.

For my test data (6MB of 80 character lines, each ending with &#13;)
this takes the time to xmlSetNodeContent from about 500 seconds to
around 50ms. I have not profiled smaller cases, though I tried to
minimize the performance impact of my change by avoiding unnecessary
string copying.

Signed-off-by: Conrad Irwin <>
6 years agoHTML parser error with <noscript> in the <head>
Denis Pauk [Fri, 11 May 2012 11:31:12 +0000 (19:31 +0800)]
HTML parser error with <noscript> in the <head>

When the <noscript> is found, <head> is closed and a <body> element is created.
The real <body id="xxx"> gets skipped over, so I can't see any of the
body's attributes.
Just don't close <head> when encountering a <noscript>
Add a regression test too

6 years agoXSD: optional element in complex type extension
Remi Gacogne [Fri, 11 May 2012 07:31:05 +0000 (15:31 +0800)]
XSD: optional element in complex type extension

Libxml2 fails to validate an instance document against a schema if an element
whose type is a complex extension of some base type with an optional child
element and that child element is not specified in the instance document.  For
example, suppose I have some complex type BaseType that is defined to have one
child element in a sequence group that has minOccurs set to 0

6 years agoFix html serialization error and htmlSetMetaEncoding()
Daniel Veillard [Fri, 11 May 2012 04:38:23 +0000 (12:38 +0800)]
Fix html serialization error and htmlSetMetaEncoding()

The python tests were reporting errors, some of it was due to
a small change in case encoding, but the main one was about
htmlSetMetaEncoding(doc, NULL) being broken by not removing
the associated meta tag anymore

6 years agoFix a wrong return value in previous patch
Daniel Veillard [Fri, 11 May 2012 04:08:15 +0000 (12:08 +0800)]
Fix a wrong return value in previous patch

6 years agoFix an uninitialized variable use
Daniel Veillard [Fri, 11 May 2012 02:52:27 +0000 (10:52 +0800)]
Fix an uninitialized variable use

When compiled without SAX1 support

6 years agoFix a compilation problem with --minimum
Brandon Slack [Fri, 11 May 2012 02:50:59 +0000 (10:50 +0800)]
Fix a compilation problem with --minimum

Moved a #endif /* LIBXML_OUTPUT_ENABLED */ a few lines down
to avoid reference an undefined variable

6 years agoRemove redundant and ungarded include of resolv.h
Daniel Veillard [Fri, 11 May 2012 02:09:32 +0000 (10:09 +0800)]
Remove redundant and ungarded include of resolv.h

This broke the build on Interix-6.0

6 years agoRemove git error message during configure
Christian Dywan [Thu, 10 May 2012 14:55:07 +0000 (22:55 +0800)]
Remove git error message during configure

If git is not installed but .git was found configure would emit an
error message

6 years agoxmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY)
Patrick R. Gansterer [Thu, 10 May 2012 14:17:51 +0000 (22:17 +0800)]
xmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY)

code was broken !

6 years agoemove a bashism in
John Hein [Thu, 10 May 2012 14:12:46 +0000 (22:12 +0800)]
emove a bashism in

Not portable, broke on old FreeBSD

6 years agoxinclude with parse="text" does not use the entity loader
Shaun McCance [Thu, 10 May 2012 12:59:33 +0000 (20:59 +0800)]
xinclude with parse="text" does not use the entity loader


The code for xinclude parse="text" was not using the registered
entity loader, defeating attempts to control loading of files.

6 years agoAllow to parse 1 byte HTML files
Denis Pauk [Thu, 10 May 2012 12:40:49 +0000 (20:40 +0800)]
Allow to parse 1 byte HTML files


File 1 byte long were not accepted by the HTML push parser

6 years agoundef ERROR if already defined
Patrick R. Gansterer [Thu, 10 May 2012 12:24:00 +0000 (20:24 +0800)]
undef ERROR if already defined

6 years agoPatch that fixes the skipping of the HTML_PARSE_NOIMPLIED flag
Martin Schröder [Thu, 10 May 2012 10:52:37 +0000 (18:52 +0800)]
Patch that fixes the skipping of the HTML_PARSE_NOIMPLIED flag


I just noticed that the HTML_PARSE_NOIMPLIED flag that you can pass to the
HTML-Parser methods doesn't do anything. Its intended purpose is to stop the
HTML-parser from forcibly adding a pair of html/body tags if the stream does
not contain any.

This is highly useful when you don't need this level of strictness.
Unfortunately, specifying it doesn't work, because the option is not
copied into the parsing context.

6 years agoAvoid memory leak if xmlParserInputBufferCreateIO fails
Lin Yi-Li [Thu, 10 May 2012 08:14:55 +0000 (16:14 +0800)]
Avoid memory leak if xmlParserInputBufferCreateIO fails


In case of error on an IO creation input the given context
is terminated with the given close function, except if the
error happened in xmlParserInputBufferCreateIO. This can
lead to a resource leak which is fixed by this patch.

6 years agoAdd HTML parser support for HTML5 meta charset encoding declaration
Denis Pauk [Thu, 10 May 2012 07:34:57 +0000 (15:34 +0800)]
Add HTML parser support for HTML5 meta charset encoding declaration


The charset attribute specifies the character encoding used by the document.
This is a character encoding declaration. If the attribute is present in an XML
document, its value must be an ASCII case-insensitive match for the string
"UTF-8" (and the document is therefore forced to use UTF-8 as its

However, while <meta http-equiv="Content-Type" content="text/html;
charset=utf8"> works, <meta charset="utf8"> does not.

While libxml2 HTML parser is not tuned for HTML5, this is a simple

Also added a testcase

6 years agoFix library problems with mingw-w64
Michael Cronenworth [Thu, 10 May 2012 03:25:38 +0000 (11:25 +0800)]
Fix library problems with mingw-w64

Fix a windows only issue when compiling the library with
MingW (64 bits) using Fedora cross-compiler chain.
Change the dllexport for data

6 years agofix windows build.
Rob Richards [Wed, 9 May 2012 16:42:51 +0000 (12:42 -0400)]
fix windows build.
ifdef addition from bug 666491 makes no sense

6 years agoprefer native threads on win32
Sam Thursfield [Wed, 9 May 2012 10:46:56 +0000 (18:46 +0800)]
prefer native threads on win32


When building on Win32 configure the suport to use native Windows
threads since there is support for it unless pthreads are found
and asked for explicitely

6 years agoAllow to compile with Visual Studio 2010
Thomas Lemm [Wed, 9 May 2012 10:27:04 +0000 (18:27 +0800)]
Allow to compile with Visual Studio 2010


This patch adds project files to compile and debug libxml2 using Visual
Studio 2010. Only few minor changes have been made to the actual source

This patch also requires for the iconv package to be compiled with visual
studio 2010 which has been submitted to the iconv project (see:

6 years agoPrevent an infinite loop when dumping a node with encoding problems
Timothy Elliott [Tue, 8 May 2012 14:03:22 +0000 (22:03 +0800)]
Prevent an infinite loop when dumping a node with encoding problems

When a node is dumped with a new encoding, we may encounter characters
that are not supported in the new encoding. libxml2 handles this by
replacing the character with character references, but in some encodings
this can result in an infinite loop when the character references
themselves contain unsupported characters.

This fixes the infinite loop by undoing a character reference substitution
when it cannot be inserted, and returning an encoder error.

This bug was noticed when looking into an infinite loop bug report for
the Ruby Nokogiri project. The original bug report, "nokogiri process
hangs on call to inner_html" is here:

6 years agowrong message for double hyphen in comment XML error
Bryan Henderson [Tue, 8 May 2012 08:39:05 +0000 (16:39 +0800)]
wrong message for double hyphen in comment XML error

The error message when you have a double hyphen in a comment is "comment
not terminated" and should be "double hyphen in comment".

6 years agoxmlParseNodeInContext problems with an empty document
Tim Elliott [Wed, 18 Jan 2012 03:25:08 +0000 (19:25 -0800)]
xmlParseNodeInContext problems with an empty document

When you call xmlParseNodeInContext on a fragment node with an
empty document, the parser associates the first new node twice --
once with the document, and once with the fragment node.

This fixes the issue by only associating the new node with the
fragment node.

6 years agoHTML element position is not detected propperly
Pavel Andrejs [Tue, 8 May 2012 03:01:12 +0000 (11:01 +0800)]
HTML element position is not detected propperly

The data in node_seq in xmlParserCtxt was not updated properly
when parsing HTML. This patch fixes the accounting for both
pull and push mode of HTML parsing.

6 years agoFix "make tst" to grab lzma lib too
Daniel Veillard [Tue, 8 May 2012 02:59:41 +0000 (10:59 +0800)]
Fix "make tst" to grab lzma lib too

6 years agoFix mingw's snprintf configure check
Andoni Morales [Tue, 8 May 2012 02:46:09 +0000 (10:46 +0800)]
Fix mingw's snprintf configure check

For mingw, snprintf is defined as _snprintf and therefore the check
should be for _snprintf. This applies to _vsnprintf too.

6 years agoAdd "whereis" command to xmllint shell
Ryan [Mon, 7 May 2012 11:53:19 +0000 (19:53 +0800)]
Add "whereis" command to xmllint shell

When playing with xpath in the xmllint shell, it's really handy to be
able to ask where the returned nodes live in the tree, in the same
way "pwd" asks where the current node lives.

The feature is actually quite easy to implement by combining the
functionality of the existing dir/ls and pwd commands (see proposed patch).

Example usage:

/ > whereis //last_name

6 years agofixed a 64bit big endian issue
Marcus Meissner [Mon, 7 May 2012 10:41:42 +0000 (18:41 +0800)]
fixed a 64bit big endian issue

patch fixes a 64bit endian issue, making libxml2 work (again) on ppc64
unsigned int and size_t are differently sized on 64bit.

6 years agoImprove xmllint shell
Ryan [Mon, 7 May 2012 09:04:04 +0000 (17:04 +0800)]
Improve xmllint shell


adds namespace support to ls, du and the element named in
the command shell prompt. It also fixes du to actually dump
the requested path, if the user gives one, rather than always
dumping the whole file.

6 years agoxmlcatalog: Add uri and delegateURI to possible add types in man page.
Ville Skyttä [Wed, 19 Oct 2011 19:08:03 +0000 (22:08 +0300)]
xmlcatalog: Add uri and delegateURI to possible add types in man page.

6 years agoUpdate README.tests
Daniel Veillard [Mon, 7 May 2012 07:23:25 +0000 (15:23 +0800)]
Update README.tests

document make check, make valgrind and fix a typo pointed out by
Daniel Neel <>


6 years agoFix an off by one pointer access
Jüri Aedla [Mon, 7 May 2012 07:06:56 +0000 (15:06 +0800)]
Fix an off by one pointer access

getting out of the range of memory allocated for xpointer decoding

6 years agoURI handling code is not OOM resilient
Daniel Veillard [Mon, 7 May 2012 07:02:25 +0000 (15:02 +0800)]
URI handling code is not OOM resilient

as pointed out by Dan Berrange, add a small comment in the header

6 years agoFix an error in comment
Daniel Veillard [Mon, 7 May 2012 07:01:29 +0000 (15:01 +0800)]
Fix an error in comment

nsWarn handler is not about parser fatal errors

6 years agoRemove vestigial de-ANSI-fication support.
Javier Jardón [Mon, 2 Apr 2012 17:13:23 +0000 (18:13 +0100)]
Remove vestigial de-ANSI-fication support. (AM_C_PROTOTYPES): Remove call to this macro.
The support for automatic de-ANSI-fication has been deprecated in
automake 1.11.2, and will be removed altogether in automake 1.12.0

6 years Fix typo
Javier Jardón [Mon, 2 Apr 2012 16:39:26 +0000 (17:39 +0100)] Fix typo

6 years agoDo not use unsigned but unsigned int
Daniel Veillard [Mon, 2 Apr 2012 09:52:20 +0000 (17:52 +0800)]
Do not use unsigned but unsigned int

as this breaks the API generator

6 years agoTry to fix a problem with entities in SAX mode
Daniel Veillard [Mon, 2 Apr 2012 09:50:54 +0000 (17:50 +0800)]
Try to fix a problem with entities in SAX mode

this is a problem which hit the raptor code and that small
patch should be a reliable workaround

6 years agoFix portability failure if netdb.h lacks NO_ADDRESS
Daniel Veillard [Mon, 2 Apr 2012 09:48:53 +0000 (17:48 +0800)]
Fix portability failure if netdb.h lacks NO_ADDRESS

6 years agoRemove two references to u_short
Daniel Veillard [Mon, 2 Apr 2012 07:45:13 +0000 (15:45 +0800)]
Remove two references to u_short

6 years agoFix a crash with xmllint --path on empty results
Daniel Veillard [Tue, 27 Mar 2012 06:41:37 +0000 (14:41 +0800)]
Fix a crash with xmllint --path on empty results

If the returned node set is empty, it is possible for the nodetab
to be null

6 years agoadd function xmlTextReaderRelaxNGValidateCtxt()
Noam Postavsky [Mon, 19 Mar 2012 08:08:16 +0000 (16:08 +0800)]
add function xmlTextReaderRelaxNGValidateCtxt()

Since there is xmlTextReaderSchemaValidateCtxt() it seems like there
should be an equivalent RelaxNG function. The attached patch adds it.
The code is essentially the same as Schema implementation, but I'm
uncertain as to how to add things to the documentation and test suite:
there seems to be a lot of auto-generation going on.

6 years agoFix windows build from lzma addition
Rob Richards [Wed, 21 Mar 2012 14:37:06 +0000 (10:37 -0400)]
Fix windows build from lzma addition

6 years agoFixed bug #617016
Daniel Mustieles [Mon, 19 Mar 2012 20:42:00 +0000 (21:42 +0100)]
Fixed bug #617016

6 years agoFixed bug #667946
Daniel Mustieles [Mon, 19 Mar 2012 20:39:58 +0000 (21:39 +0100)]
Fixed bug #667946

6 years agoFixed two typos in the README document
Daniel Neel [Sat, 20 Nov 2010 17:34:17 +0000 (12:34 -0500)]
Fixed two typos in the README document

Changes should be self-explanatory by viewing the diff

6 years agoFix -Wempty-body warning from clang
Nico Weber [Mon, 5 Mar 2012 08:36:59 +0000 (16:36 +0800)]
Fix -Wempty-body warning from clang

clang recently grew a warning on `for (...);`. This patch
fixes all two instances of this pattern in libxml. The changes
don't modify the code semantic.

6 years agoFix a logic error in Schemas Component Constraints
Ryan Sleevi [Wed, 29 Feb 2012 02:56:32 +0000 (10:56 +0800)]
Fix a logic error in Schemas Component Constraints

6 years agoFix a wrong enum type use in Schemas Types
Nico Weber [Wed, 29 Feb 2012 01:44:35 +0000 (09:44 +0800)]
Fix a wrong enum type use in Schemas Types

6 years agoAdd --system support to
Daniel Veillard [Wed, 29 Feb 2012 01:34:32 +0000 (09:34 +0800)]
Add --system support to

6 years agoAdd hash randomization to hash and dict structures
Daniel Veillard [Sat, 4 Feb 2012 11:07:44 +0000 (19:07 +0800)]
Add hash randomization to hash and dict structures

it seems that having hash randomization might be a good idea
when using XML with untrusted data
* lookup for rand, srand and time
* dict.c: add randomization to dictionaries hash tables
* hash.c: add randomization to normal hash tables

6 years agoCleanups of lzma support
Daniel Veillard [Thu, 26 Jan 2012 08:56:22 +0000 (16:56 +0800)]
Cleanups of lzma support

- fix inclusion of the separated file
- use namespaced name for the 4 non-static routines
- add padding after external structures included in-situ
- add new requirement to spec file
- general cleanup of code

6 years agoadd generated html files
Anders F Bjorklund [Mon, 19 Sep 2011 08:00:15 +0000 (10:00 +0200)]
add generated html files

6 years agoincluded xzlib in dist
Anders F Bjorklund [Mon, 19 Sep 2011 07:57:06 +0000 (09:57 +0200)]
included xzlib in dist

6 years agomove xz/lzma helpers to separate included files
Anders F Bjorklund [Mon, 19 Sep 2011 07:53:20 +0000 (09:53 +0200)]
move xz/lzma helpers to separate included files

6 years agoadd generated devhelp files
Anders F Bjorklund [Mon, 19 Sep 2011 07:51:07 +0000 (09:51 +0200)]
add generated devhelp files

6 years agoadd XML_WITH_LZMA to api
Anders F Bjorklund [Mon, 19 Sep 2011 07:50:45 +0000 (09:50 +0200)]
add XML_WITH_LZMA to api

6 years agoadd lzma compression support
Anders F Bjorklund [Sun, 18 Sep 2011 14:59:13 +0000 (16:59 +0200)]
add lzma compression support

6 years agoautogen: Only check for libtoolize
Colin Walters [Fri, 27 Jan 2012 11:56:23 +0000 (06:56 -0500)]
autogen: Only check for libtoolize

The system /usr/bin/libtool may not be in all installations.

6 years agoFix SAX2 builder in case of undefined attributes namespace
Daniel Veillard [Thu, 26 Jan 2012 11:43:06 +0000 (19:43 +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.

6 years agoFix SAX2 builder in case of undefined element namespaces
Daniel Veillard [Thu, 26 Jan 2012 11:11:02 +0000 (19:11 +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

6 years agofix reference to STDOUT_FILENO on MSVC
Tay Ray Chuan [Mon, 2 Jan 2012 07:49:31 +0000 (15:49 +0800)]
fix reference to STDOUT_FILENO on MSVC

The Microsoft Visual C++ compiler doesn't have unistd.h and thus
STDOUT_FILENO is undefined. Define it using stdio.h functions.

6 years agoClarify the need to use xmlFreeNode after xmlUnlinkNode
Daniel Veillard [Thu, 26 Jan 2012 09:44:35 +0000 (17:44 +0800)]
Clarify the need to use xmlFreeNode after xmlUnlinkNode

Just add one small sentence to the xmlUnlinkNode function comments

6 years agofix a pair of possible out of array char references
Daniel Veillard [Sun, 22 Jan 2012 09:42:35 +0000 (17:42 +0800)]
fix a pair of possible out of array char references

When serializing char references back to an character string
Reported by Abhishek Arya <>

6 years agoAugment the list of ignored files
Daniel Veillard [Sun, 22 Jan 2012 09:35:17 +0000 (17:35 +0800)]
Augment the list of ignored files

6 years Honor NOCONFIGURE environment variable
Colin Walters [Thu, 5 Jan 2012 15:08:03 +0000 (10:08 -0500)] Honor NOCONFIGURE environment variable


6 years agoFix an allocation error when copying entities
Daniel Veillard [Fri, 16 Dec 2011 10:53:35 +0000 (18:53 +0800)]
Fix an allocation error when copying entities

6 years agoMake sure the parser returns when getting a Stop order
Chris Evans [Wed, 14 Dec 2011 08:18:25 +0000 (16:18 +0800)]
Make sure the parser returns when getting a Stop order

patch backported from chromiun bug fixes, assuming author is Chris

6 years agoImprove the error report on undefined REFs
Daniel Veillard [Fri, 11 Nov 2011 03:25:07 +0000 (11:25 +0800)]
Improve the error report on undefined REFs

Use the tree node to provide the error context instead
of the parser input which is not relevant anymore,
based on a suggestion by François Delyon <>

6 years agoFix some potential problems on reallocation failures(parser.c)
Xia Xinfeng [Thu, 10 Nov 2011 05:50:22 +0000 (13:50 +0800)]
Fix some potential problems on reallocation failures(parser.c)

This problem is the same as d7958b21e7f8c447a26bb2436f08402b2c308be4.
The operation "ctxt->nameMax * = 2;" should be placed after the function
call of xmlRealloc().

6 years agoFix a schema type duration comparison overflow
Daniel Veillard [Thu, 10 Nov 2011 15:23:10 +0000 (23:23 +0800)]
Fix a schema type duration comparison overflow

Based on the fix suggested by Nick Pope <>
but just changing the casts to avoid using long long type

6 years agoFix an unimplemented part in RNG value validation
Daniel Veillard [Thu, 10 Nov 2011 10:08:33 +0000 (18:08 +0800)]
Fix an unimplemented part in RNG value validation

Forgot to implement <optional> this was raised again
as this make libxml2 fail to validate against ODF RNGs


7 years agoFix missing error status in XPath evaluation
Daniel Veillard [Tue, 11 Oct 2011 08:34:34 +0000 (16:34 +0800)]
Fix missing error status in XPath evaluation

Started by Chris Evans, I added a few more place where the
error should have been set in the evaluation context.

7 years agoFix the Windows build files
Patrick von Reth [Wed, 14 Sep 2011 08:00:28 +0000 (16:00 +0800)]
Fix the Windows build files

Patches comming from KDE project for Windows portability

To build libxml2 I had to patch the build system a little bit.
The windows build system tries to link about zdll, but on windows
its called zlib* too, so linking against z is enough.
Also the --include and the --lib command was ignored.

For the http and ftp stuff linking against some windows library's was
forgotten for mingw.

7 years agoHardening of XPath evaluation
Daniel Veillard [Thu, 18 Aug 2011 09:10:13 +0000 (17:10 +0800)]
Hardening of XPath evaluation

Add a mechanism of frame for XPath evaluation when entering a function
or a scoped evaluation, also fix a potential problem in predicate

7 years agoFix an off by one error in encoding
Daniel Veillard [Fri, 19 Aug 2011 03:05:04 +0000 (11:05 +0800)]
Fix an off by one error in encoding

this off by one error doesn't seems to reproduce on linux
but the error is real.

7 years agoFix RELAX NG include bug #655288
Shaun McCance [Thu, 4 Aug 2011 14:28:59 +0000 (10:28 -0400)]
Fix RELAX NG include bug #655288

When overriding during include, children of the root
node are scanned. But the root node was gotten with
doc->children, instead of xmlDocGetRootElement.

7 years agoFix XSD validation bug #630130
Toyoda Eizi [Thu, 4 Aug 2011 08:40:48 +0000 (16:40 +0800)]
Fix XSD validation bug #630130

This bug in xmlschemas made validation with the GML Schemas fail
Test cases to be commited separately

7 years agoAdd exception for new W3C PI xml-model
Daniel Veillard [Sun, 5 Jun 2011 03:29:29 +0000 (11:29 +0800)]
Add exception for new W3C PI xml-model

7 years agoAdd options to ignore the internal encoding
Daniel Veillard [Mon, 16 May 2011 08:03:50 +0000 (16:03 +0800)]
Add options to ignore the internal encoding

For both XML and HTML, the document can provide an encoding
either in XMLDecl in XML, or as a meta element in HTML head.
This adds options to ignore those encodings if the encoding
is known in advace for example if the content had been converted
before being passed to the parser.

* parser.c include/libxml/parser.h: add XML_PARSE_IGNORE_ENC option
  for XML parsing
* include/libxml/HTMLparser.h HTMLparser.c: adds the
* HTMLtree.c: fix the handling of saving when an unknown encoding is
  defined in meta document header
* xmllint.c: add a --noenc option to activate the new parser options

7 years agotestapi: use the right type for the check
Stefan Kost [Mon, 9 May 2011 12:11:45 +0000 (15:11 +0300)]
testapi: use the right type for the check

Fixes a compiler warning. Also wrap the long line if statement.

7 years agopython: remove unused variable
Stefan Kost [Mon, 9 May 2011 09:54:10 +0000 (12:54 +0300)]
python: remove unused variable

7 years agopython: flag two unused args
Stefan Kost [Mon, 9 May 2011 09:52:28 +0000 (12:52 +0300)]
python: flag two unused args

7 years agovarious: handle return values of write calls
Stefan Kost [Mon, 9 May 2011 09:14:59 +0000 (12:14 +0300)]
various: handle return values of write calls

7 years agotestWriter: xmlTextWriterWriteFormatElement wants an int instead of a long int
Stefan Kost [Mon, 9 May 2011 08:45:23 +0000 (11:45 +0300)]
testWriter: xmlTextWriterWriteFormatElement wants an int instead of a long int

Fixes compiler warnings about wrong argument type.