aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2016-08-18 22:39:48 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-08-18 22:39:48 +0000
commit6690f19b09a6bf47660a7d87b21860c5beaac8be (patch)
tree341dc6790424526b424173dc7bc5a1165db7de10
parentedb5870767fed8712a9b77ef34097209b61ab2db (diff)
parenta136fc2e5a8893a02b0912862d26a575fcbd641a (diff)
downloadandroid_external_libxml2-6690f19b09a6bf47660a7d87b21860c5beaac8be.tar.gz
android_external_libxml2-6690f19b09a6bf47660a7d87b21860c5beaac8be.tar.bz2
android_external_libxml2-6690f19b09a6bf47660a7d87b21860c5beaac8be.zip
Merge remote-tracking branch 'goog/upstream-master' into mymerge
am: a136fc2e5a Change-Id: Iaaa0c434f4528d32005d021c9e246ad64f13e8fe
-rw-r--r--ChangeLog24
-rw-r--r--Makefile.am6
-rw-r--r--NEWS22
-rw-r--r--SAX2.c12
-rw-r--r--catalog.c10
-rw-r--r--configure.ac133
-rw-r--r--debugXML.c14
-rw-r--r--dict.c50
-rw-r--r--doc/APIchunk13.html28
-rw-r--r--doc/APIchunk26.html1
-rw-r--r--doc/APIfunctions.html2
-rwxr-xr-xdoc/apibuild.py1
-rw-r--r--doc/devhelp/general.html2
-rw-r--r--doc/devhelp/libxml2-dict.html32
-rw-r--r--doc/devhelp/libxml2-parser.html2
-rw-r--r--doc/devhelp/libxml2-tree.html2
-rw-r--r--doc/devhelp/libxml2-xmlmemory.html2
-rw-r--r--doc/devhelp/libxml2-xmlregexp.html2
-rw-r--r--doc/devhelp/libxml2-xmlstring.html8
-rw-r--r--doc/docdescr.doc2
-rw-r--r--doc/examples/io1.res2
-rw-r--r--doc/html/book1.html2
-rw-r--r--doc/html/index.html2
-rw-r--r--doc/html/libxml-dict.html28
-rw-r--r--doc/html/libxml-lib.html2
-rw-r--r--doc/html/libxml-parser.html2
-rw-r--r--doc/html/libxml-tree.html2
-rw-r--r--doc/html/libxml-xmlmemory.html2
-rw-r--r--doc/html/libxml-xmlregexp.html2
-rw-r--r--doc/html/libxml-xmlstring.html8
-rwxr-xr-xdoc/index.py6
-rw-r--r--doc/libxml2-api.xml46
-rw-r--r--doc/libxml2-refs.xml35
-rw-r--r--doc/libxml2.xsa223
-rw-r--r--doc/news.html92
-rw-r--r--doc/xml.html92
-rw-r--r--encoding.c2
-rw-r--r--entities.c2
-rw-r--r--error.c6
-rw-r--r--include/libxml/dict.h22
-rw-r--r--include/libxml/parser.h4
-rw-r--r--include/libxml/parserInternals.h2
-rw-r--r--include/libxml/schemasInternals.h92
-rw-r--r--include/libxml/xmlerror.h2
-rw-r--r--include/libxml/xmlstring.h8
-rw-r--r--include/libxml/xpathInternals.h2
-rw-r--r--libxml.h5
-rw-r--r--optim/hash_dict.txt2
-rw-r--r--os400/README40022
-rw-r--r--os400/dlfcn/dlfcn.c2
-rw-r--r--os400/initscript.sh35
-rw-r--r--os400/libxmlmain.c102
-rw-r--r--os400/libxmlrpg/DOCBparser.rpgle18
-rw-r--r--os400/libxmlrpg/HTMLparser.rpgle105
-rw-r--r--os400/libxmlrpg/HTMLtree.rpgle44
-rw-r--r--os400/libxmlrpg/SAX.rpgle34
-rw-r--r--os400/libxmlrpg/SAX2.rpgle48
-rw-r--r--os400/libxmlrpg/c14n.rpgle42
-rw-r--r--os400/libxmlrpg/catalog.rpgle43
-rw-r--r--os400/libxmlrpg/chvalid.rpgle53
-rw-r--r--os400/libxmlrpg/debugXML.rpgle55
-rw-r--r--os400/libxmlrpg/dict.rpgle24
-rw-r--r--os400/libxmlrpg/encoding.rpgle38
-rw-r--r--os400/libxmlrpg/entities.rpgle16
-rw-r--r--os400/libxmlrpg/globals.rpgle154
-rw-r--r--os400/libxmlrpg/hash.rpgle36
-rw-r--r--os400/libxmlrpg/list.rpgle31
-rw-r--r--os400/libxmlrpg/nanoftp.rpgle52
-rw-r--r--os400/libxmlrpg/nanohttp.rpgle23
-rw-r--r--os400/libxmlrpg/parser.rpgle266
-rw-r--r--os400/libxmlrpg/parserInternals.rpgle97
-rw-r--r--os400/libxmlrpg/pattern.rpgle43
-rw-r--r--os400/libxmlrpg/relaxng.rpgle45
-rw-r--r--os400/libxmlrpg/schemasInternals.rpgle53
-rw-r--r--os400/libxmlrpg/schematron.rpgle31
-rw-r--r--os400/libxmlrpg/threads.rpgle7
-rw-r--r--os400/libxmlrpg/tree.rpgle251
-rw-r--r--os400/libxmlrpg/uri.rpgle15
-rw-r--r--os400/libxmlrpg/valid.rpgle114
-rw-r--r--os400/libxmlrpg/xinclude.rpgle35
-rw-r--r--os400/libxmlrpg/xlink.rpgle13
-rw-r--r--os400/libxmlrpg/xmlIO.rpgle97
-rw-r--r--os400/libxmlrpg/xmlTypesC.rpgle2
-rw-r--r--os400/libxmlrpg/xmlautomata.rpgle38
-rw-r--r--os400/libxmlrpg/xmlerror.rpgle27
-rw-r--r--os400/libxmlrpg/xmlmemory.rpgle31
-rw-r--r--os400/libxmlrpg/xmlmodule.rpgle16
-rw-r--r--os400/libxmlrpg/xmlreader.rpgle185
-rw-r--r--os400/libxmlrpg/xmlregexp.rpgle70
-rw-r--r--os400/libxmlrpg/xmlsave.rpgle30
-rw-r--r--os400/libxmlrpg/xmlschemas.rpgle43
-rw-r--r--os400/libxmlrpg/xmlschemastypes.rpgle55
-rw-r--r--os400/libxmlrpg/xmlstdarg.rpgle5
-rw-r--r--os400/libxmlrpg/xmlstring.rpgle80
-rw-r--r--os400/libxmlrpg/xmlunicode.rpgle832
-rw-r--r--os400/libxmlrpg/xmlversion.rpgle.in3
-rw-r--r--os400/libxmlrpg/xmlwriter.rpgle260
-rw-r--r--os400/libxmlrpg/xpath.rpgle178
-rw-r--r--os400/libxmlrpg/xpathInternals.rpgle133
-rw-r--r--os400/libxmlrpg/xpointer.rpgle13
-rw-r--r--os400/make-src.sh126
-rw-r--r--os400/rpgsupport.c14
-rw-r--r--os400/rpgsupport.h14
-rw-r--r--os400/xmlcatalog.cmd112
-rw-r--r--os400/xmlcatlgcl.c288
-rw-r--r--os400/xmllint.cmd146
-rw-r--r--os400/xmllintcl.c216
-rw-r--r--parser.c120
-rw-r--r--parserInternals.c178
-rw-r--r--python/drv_libxml2.py18
-rw-r--r--python/libxml.c2
-rwxr-xr-xpython/setup.py2
-rw-r--r--relaxng.c8
-rw-r--r--result/HTML/758605.html3
-rw-r--r--result/HTML/758605.html.err3
-rw-r--r--result/HTML/758605.html.sax14
-rw-r--r--result/HTML/758606.html2
-rw-r--r--result/HTML/758606.html.err16
-rw-r--r--result/HTML/758606.html.sax10
-rw-r--r--result/HTML/758606_2.html2
-rw-r--r--result/HTML/758606_2.html.err16
-rw-r--r--result/HTML/758606_2.html.sax17
-rw-r--r--result/XPath/expr/base8
-rw-r--r--result/XPath/tests/nssimple24
-rw-r--r--result/XPath/xptr/viderror4
-rw-r--r--result/cdata-2-byte-UTF-8.xml6
-rw-r--r--result/cdata-2-byte-UTF-8.xml.rde15
-rw-r--r--result/cdata-2-byte-UTF-8.xml.rdr15
-rw-r--r--result/cdata-2-byte-UTF-8.xml.sax18
-rw-r--r--result/cdata-2-byte-UTF-8.xml.sax218
-rw-r--r--result/cdata-3-byte-UTF-8.xml7
-rw-r--r--result/cdata-3-byte-UTF-8.xml.rde20
-rw-r--r--result/cdata-3-byte-UTF-8.xml.rdr20
-rw-r--r--result/cdata-3-byte-UTF-8.xml.sax23
-rw-r--r--result/cdata-3-byte-UTF-8.xml.sax223
-rw-r--r--result/cdata-4-byte-UTF-8.xml8
-rw-r--r--result/cdata-4-byte-UTF-8.xml.rde25
-rw-r--r--result/cdata-4-byte-UTF-8.xml.rdr25
-rw-r--r--result/cdata-4-byte-UTF-8.xml.sax28
-rw-r--r--result/cdata-4-byte-UTF-8.xml.sax228
-rw-r--r--result/errors/754946.xml.err10
-rw-r--r--result/errors/758588.xml0
-rw-r--r--result/errors/758588.xml.err9
-rw-r--r--result/errors/758588.xml.str10
-rw-r--r--result/errors/759020.xml0
-rw-r--r--result/errors/759020.xml.err6
-rw-r--r--result/errors/759020.xml.str7
-rw-r--r--result/errors/759398.xml0
-rw-r--r--result/errors/759398.xml.err9
-rw-r--r--result/errors/759398.xml.str5
-rw-r--r--result/errors/759573-2.xml0
-rw-r--r--result/errors/759573-2.xml.err58
-rw-r--r--result/errors/759573-2.xml.str4
-rw-r--r--result/errors/759573.xml0
-rw-r--r--result/errors/759573.xml.err31
-rw-r--r--result/errors/759573.xml.str4
-rw-r--r--result/errors/content1.xml.err2
-rw-r--r--result/noent/cdata-2-byte-UTF-8.xml6
-rw-r--r--result/noent/cdata-3-byte-UTF-8.xml7
-rw-r--r--result/noent/cdata-4-byte-UTF-8.xml8
-rw-r--r--result/relaxng/710744_err1
-rw-r--r--result/relaxng/710744_valid0
-rw-r--r--result/relaxng/pattern3_10
-rw-r--r--result/relaxng/pattern3_1.err1
-rw-r--r--result/schemas/regexp-char-ref_0_0.err0
-rw-r--r--result/schemas/regexp-char-ref_1_0.err0
-rw-r--r--result/valid/t8.xml.err2
-rw-r--r--result/valid/t8a.xml.err2
-rw-r--r--rngparser.c2
-rw-r--r--runtest.c106
-rw-r--r--schematron.c6
-rw-r--r--test/HTML/758605.html1
-rw-r--r--test/HTML/758606.html1
-rw-r--r--test/HTML/758606_2.html1
-rw-r--r--test/XPath/docs/ns3
-rw-r--r--test/XPath/expr/base2
-rw-r--r--test/XPath/tests/nssimple3
-rw-r--r--test/XPath/xptr/viderror1
-rw-r--r--test/cdata-2-byte-UTF-8.xml6
-rw-r--r--test/cdata-3-byte-UTF-8.xml7
-rw-r--r--test/cdata-4-byte-UTF-8.xml8
-rw-r--r--test/errors/758588.xml1
-rw-r--r--test/errors/759020.xml46
-rwxr-xr-xtest/errors/759398.xml326
-rw-r--r--test/errors/759573-2.xml9
-rw-r--r--test/errors/759573.xml1
-rw-r--r--test/relaxng/pattern3.rng11
-rw-r--r--test/relaxng/pattern3_1.xml1
-rw-r--r--testModule.c2
-rw-r--r--testapi.c14
-rw-r--r--tree.c15
-rw-r--r--uri.c11
-rw-r--r--valid.c10
-rw-r--r--win32/VC10/config.h2
-rw-r--r--xinclude.c4
-rw-r--r--xmlIO.c14
-rw-r--r--xmlcatalog.c1
-rw-r--r--xmllint.c28
-rw-r--r--xmlmemory.c12
-rw-r--r--xmlreader.c24
-rw-r--r--xmlregexp.c20
-rw-r--r--xmlsave.c8
-rw-r--r--xmlschemas.c120
-rw-r--r--xmlschemastypes.c25
-rw-r--r--xmlstring.c70
-rw-r--r--xmlwriter.c4
-rw-r--r--xpath.c44
-rw-r--r--xpointer.c2
208 files changed, 5525 insertions, 2366 deletions
diff --git a/ChangeLog b/ChangeLog
index 08725dd3..ef6cb8e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -593,7 +593,7 @@ Thu Apr 24 13:56:53 CEST 2008 Daniel Veillard <daniel@veillard.com>
Tue Apr 22 10:27:17 CEST 2008 Daniel Veillard <daniel@veillard.com>
- * dict.c: improvement on the hashing of the dictionnary, with visible
+ * dict.c: improvement on the hashing of the dictionary, with visible
speed up as the number of strings in the hash increases, work from
Stefan Behnel
@@ -5017,7 +5017,7 @@ Mon Jan 24 00:47:41 CET 2005 Daniel Veillard <daniel@veillard.com>
Sun Jan 23 23:54:39 CET 2005 Daniel Veillard <daniel@veillard.com>
* hash.c include/libxml/hash.h: added xmlHashCreateDict where
- the hash reuses the dictionnary for internal strings
+ the hash reuses the dictionary for internal strings
* entities.c valid.c parser.c: reuse that new API, leads to a decent
speedup when parsing for example DocBook documents.
@@ -5371,7 +5371,7 @@ Fri Nov 26 11:44:36 CET 2004 Daniel Veillard <daniel@veillard.com>
Wed Nov 24 13:41:52 CET 2004 Daniel Veillard <daniel@veillard.com>
* dict.c include/libxml/dict.h: added xmlDictExists() to the
- dictionnary interface.
+ dictionary interface.
* xmlreader.c: applying xmlTextReaderHasAttributes fix for namespaces
from Rob Richards
@@ -5697,7 +5697,7 @@ Tue Oct 26 23:57:02 CEST 2004 Daniel Veillard <daniel@veillard.com>
Tue Oct 26 18:09:59 CEST 2004 Daniel Veillard <daniel@veillard.com>
* debugXML.c include/libxml/xmlerror.h: added checking for names
- values and dictionnaries generates a tons of errors
+ values and dictionaries generates a tons of errors
* SAX2.ccatalog.c parser.c relaxng.c tree.c xinclude.c xmlwriter.c
include/libxml/tree.h: fixing the errors in the regression tests
@@ -7746,14 +7746,14 @@ Fri Jan 23 14:03:21 CET 2004 Daniel Veillard <daniel@veillard.com>
make tests
* xpath.c include/libxml/xpath.h: added xmlXPathCtxtCompile() to
compile an XPath expression within a context, currently the goal
- is to be able to reuse the XSLT stylesheet dictionnary, but this
+ is to be able to reuse the XSLT stylesheet dictionary, but this
opens the door to others possible optimizations.
* dict.c include/libxml/dict.h: added xmlDictCreateSub() which allows
- to build a new dictionnary based on another read-only dictionnary.
- This is needed for XSLT to keep the stylesheet dictionnary read-only
+ to build a new dictionary based on another read-only dictionary.
+ This is needed for XSLT to keep the stylesheet dictionary read-only
while being able to reuse the strings for the transformation
- dictionnary.
- * xinclude.c: fixed a dictionnar reference counting problem occuring
+ dictionary.
+ * xinclude.c: fixed a dictionary reference counting problem occuring
when document parsing failed.
* testSAX.c: adding option --repeat for timing 100times the parsing
* doc/* : rebuilt all the docs
@@ -7806,7 +7806,7 @@ Mon Jan 12 17:22:57 CET 2004 Daniel Veillard <daniel@veillard.com>
Thu Jan 8 17:57:50 CET 2004 Daniel Veillard <daniel@veillard.com>
* xmlschemas.c: removed a memory leak remaining from the switch
- to a dictionnary for string allocations c.f. #130891
+ to a dictionary for string allocations c.f. #130891
Thu Jan 8 17:48:46 CET 2004 Daniel Veillard <daniel@veillard.com>
@@ -7928,7 +7928,7 @@ Fri Jan 2 22:58:29 HKT 2004 William Brack <wbrack@mmm.com.hk>
Fri Jan 2 11:40:06 CET 2004 Daniel Veillard <daniel@veillard.com>
* SAX2.c: found and fixed a bug misallocating some non
- blank text node strings from the dictionnary.
+ blank text node strings from the dictionary.
* xmlmemory.c: fixed a problem with the memory debug mutex
release.
@@ -9386,7 +9386,7 @@ Sat Sep 27 01:25:39 CEST 2003 Daniel Veillard <daniel@veillard.com>
* parser.c: William's change allowed to spot a nasty bug in xmlDoRead
if the result is not well formed that ctxt->myDoc is not NULL
- and uses the context dictionnary.
+ and uses the context dictionary.
Fri Sep 26 21:09:34 CEST 2003 Daniel Veillard <daniel@veillard.com>
diff --git a/Makefile.am b/Makefile.am
index 70720f3d..9f988b06 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -216,6 +216,10 @@ check-valgrind valgrind: all
@echo '## Go get a cup of coffee it is gonna take a while ...'
$(MAKE) CHECKER='valgrind -q' runtests
+asan:
+ @echo '## rebuilding for ASAN'
+ ./configure CFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" CXXFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined" CC="clang" CXX="clang++" --disable-shared ; OptimOff ; $(MAKE) clean ; $(MAKE)
+
testall : tests SVGtests SAXtests
tests: XMLtests XMLenttests NStests IDtests Errtests APItests $(READER_TEST) $(TEST_SAX) $(TEST_PUSH) $(TEST_HTML) $(TEST_PHTML) $(TEST_VALID) URItests $(TEST_PATTERN) $(TEST_XPATH) $(TEST_XPTR) $(TEST_XINCLUDE) $(TEST_C14N) $(TEST_DEBUG) $(TEST_CATALOG) $(TEST_REGEXPS) $(TEST_SCHEMAS) $(TEST_SCHEMATRON) $(TEST_THREADS) Timingtests $(TEST_VTIME) $(PYTHON_TESTS) $(TEST_MODULES)
@@ -1207,7 +1211,7 @@ EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
check-xsddata-test-suite.py check-xinclude-test-suite.py \
example/Makefile.am example/gjobread.c example/gjobs.xml \
$(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
- libxml2-config.cmake.in \
+ libxml2-config.cmake.in autogen.sh \
trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
triop.h triodef.h libxml.h elfgcchack.h xzlib.h buf.h \
enc.h save.h testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
diff --git a/NEWS b/NEWS
index 8027d55c..d248c693 100644
--- a/NEWS
+++ b/NEWS
@@ -845,7 +845,7 @@ Gansterer),
- Improvement: switch parser to XML-1.0 5th edition, add parsing flags
for old versions, switch URI parsing to RFC 3986,
add xmlSchemaValidCtxtGetParserCtxt (Holger Kaelberer),
- new hashing functions for dictionnaries (based on Stefan Behnel work),
+ new hashing functions for dictionaries (based on Stefan Behnel work),
improve handling of misplaced html/head/body in HTML parser, better
regression test tools and code coverage display, better algorithms
to detect various versions of the billion laughts attacks, make
@@ -1231,7 +1231,7 @@ Do not use or package 2.6.25
Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
some gcc4 fixes, HP-UX portability fixes (Rick Jones).
- bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
- xmlreader stopping on non-fatal errors, thread support for dictionnaries
+ xmlreader stopping on non-fatal errors, thread support for dictionaries
reference counting (Gary Coady), internal subset and push problem, URL
saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python paths
fixup (Stephane Bidoul), xmlGetNodePath and namespaces, xmlSetNsProp fix
@@ -1244,7 +1244,7 @@ Do not use or package 2.6.25
Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
(Rob Richards), Schemas decimal type fixes (William Brack),
xmlByteConsumed static buffer (Ben Maurer).
- - improvement: speedup parsing comments and DTDs, dictionnary support for
+ - improvement: speedup parsing comments and DTDs, dictionary support for
hash tables, Schemas Identity constraints (Kasimier), streaming XPath
subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
@@ -1454,7 +1454,7 @@ Do not use or package 2.6.25
URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
XInclude and XPointer fixes for entities (William), XML parser bug
reported by Holger Rauch, nanohttp fd leak (William), regexps char
- groups '-' handling (William), dictionnary reference counting problems,
+ groups '-' handling (William), dictionary reference counting problems,
do not close stderr.
- performance patches from Petr Pajas
- Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)
@@ -1482,7 +1482,7 @@ Do not use or package 2.6.25
William) reported by Yuuichi Teranishi
- bugfixes: make test and path issues, xmlWriter attribute serialization
(William Brack), xmlWriter indentation (William), schemas validation
- (Eric Haszlakiewicz), XInclude dictionnaries issues (William and Oleg
+ (Eric Haszlakiewicz), XInclude dictionaries issues (William and Oleg
Paraschenko), XInclude empty fallback (William), HTML warnings (William),
XPointer in XInclude (William), Python namespace serialization,
isolat1ToUTF8 bound error (Alfred Mickautsch), output of parameter
@@ -1503,7 +1503,7 @@ Do not use or package 2.6.25
2.6.5: Jan 25 2004:
- - Bugfixes: dictionnaries for schemas (William Brack), regexp segfault
+ - Bugfixes: dictionaries for schemas (William Brack), regexp segfault
(William), xs:all problem (William), a number of XPointer bugfixes
(William), xmllint error go to stderr, DTD validation problem with
namespace, memory leak (William), SAX1 cleanup and minimal options fixes
@@ -1515,14 +1515,14 @@ Do not use or package 2.6.25
Fleck), doc (Sven Zimmerman), I/O example.
- Python bindings: fixes (William), enum support (Stéphane Bidoul),
structured error reporting (Stéphane Bidoul)
- - XInclude: various fixes for conformance, problem related to dictionnary
+ - XInclude: various fixes for conformance, problem related to dictionary
references (William & me), recursion (William)
- xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
Mickautsch),
- xmlSchemas: normalizedString datatype (John Belmonte)
- code cleanup for strings functions (William)
- Windows: compiler patches (Mark Vakoc)
- - Parser optimizations, a few new XPath and dictionnary APIs for future
+ - Parser optimizations, a few new XPath and dictionary APIs for future
XSLT optimizations.
@@ -1617,8 +1617,8 @@ Do not use or package 2.6.25
of change
- Increased the library modularity, far more options can be stripped out,
a --with-minimum configuration will weight around 160KBytes
- - Use per parser and per document dictionnary, allocate names and small
- text nodes from the dictionnary
+ - Use per parser and per document dictionary, allocate names and small
+ text nodes from the dictionary
- Switch to a SAX2 like parser rewrote most of the XML parser core,
provides namespace resolution and defaulted attributes, minimize memory
allocations and copies, namespace checking and specific error handling,
@@ -1665,7 +1665,7 @@ Do not use or package 2.6.25
(William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
error handling.
- xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
- testing, --nodict for building without tree dictionnary, --nocdata to
+ testing, --nodict for building without tree dictionary, --nocdata to
replace CDATA by text, --nsclean to remove surperfluous namespace
declarations
- added xml2-config --libtool-libs option from Kevin P. Fleming
diff --git a/SAX2.c b/SAX2.c
index ffef3e14..5cbb700a 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -55,7 +55,7 @@
* @ctxt: an XML validation parser context
* @msg: a string to accompany the error message
*/
-static void
+static void LIBXML_ATTR_FORMAT(2,0)
xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt, const char *msg) {
xmlStructuredErrorFunc schannel = NULL;
const char *str1 = "out of memory\n";
@@ -93,7 +93,7 @@ xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt, const char *msg) {
*
* Handle a validation error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlErrValid(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const char *str1, const char *str2)
{
@@ -133,7 +133,7 @@ xmlErrValid(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1, const xmlChar *str2)
{
@@ -164,7 +164,7 @@ xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a parser warning
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1)
{
@@ -189,7 +189,7 @@ xmlWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a namespace error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlNsErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1, const xmlChar *str2)
{
@@ -213,7 +213,7 @@ xmlNsErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a namespace warning
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlNsWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1, const xmlChar *str2)
{
diff --git a/catalog.c b/catalog.c
index 5773db3d..6dfdfbb8 100644
--- a/catalog.c
+++ b/catalog.c
@@ -47,9 +47,9 @@
#define MAX_CATAL_DEPTH 50
#ifdef _WIN32
-# define PATH_SEAPARATOR ';'
+# define PATH_SEPARATOR ';'
#else
-# define PATH_SEAPARATOR ':'
+# define PATH_SEPARATOR ':'
#endif
/**
@@ -238,7 +238,7 @@ xmlCatalogErrMemory(const char *extra)
*
* Handle a catalog error
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlCatalogErr(xmlCatalogEntryPtr catal, xmlNodePtr node, int error,
const char *msg, const xmlChar *str1, const xmlChar *str2,
const xmlChar *str3)
@@ -3247,7 +3247,7 @@ xmlLoadCatalogs(const char *pathss) {
while (xmlIsBlank_ch(*cur)) cur++;
if (*cur != 0) {
paths = cur;
- while ((*cur != 0) && (*cur != PATH_SEAPARATOR) && (!xmlIsBlank_ch(*cur)))
+ while ((*cur != 0) && (*cur != PATH_SEPARATOR) && (!xmlIsBlank_ch(*cur)))
cur++;
path = xmlStrndup((const xmlChar *)paths, cur - paths);
#ifdef _WIN32
@@ -3263,7 +3263,7 @@ xmlLoadCatalogs(const char *pathss) {
xmlFree(path);
}
}
- while (*cur == PATH_SEAPARATOR)
+ while (*cur == PATH_SEPARATOR)
cur++;
}
}
diff --git a/configure.ac b/configure.ac
index 02602814..911984e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,12 +3,13 @@ AC_PREREQ([2.63])
AC_INIT
AC_CONFIG_SRCDIR([entities.c])
AC_CONFIG_HEADERS([config.h])
+AM_MAINTAINER_MODE([enable])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_HOST
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=9
-LIBXML_MICRO_VERSION=3
+LIBXML_MICRO_VERSION=4
LIBXML_MICRO_VERSION_SUFFIX=
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
@@ -158,7 +159,7 @@ AC_ARG_WITH(readline,
if test "$withval" != "no" -a "$withval" != "yes"; then
RDL_DIR=$withval
CPPFLAGS="${CPPFLAGS} -I$withval/include"
- LIBS="${LIBS} -L$withval/lib"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
fi
])
AC_ARG_WITH(regexps,
@@ -194,7 +195,7 @@ AC_ARG_WITH(zlib,
if test "$withval" != "no" -a "$withval" != "yes"; then
Z_DIR=$withval
CPPFLAGS="${CPPFLAGS} -I$withval/include"
- LIBS="${LIBS} -L$withval/lib"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
fi
])
AC_ARG_WITH(lzma,
@@ -202,7 +203,7 @@ AC_ARG_WITH(lzma,
if test "$withval" != "no" -a "$withval" != "yes"; then
LZMA_DIR=$withval
CPPFLAGS="${CPPFLAGS} -I$withval/include"
- LIBS="${LIBS} -L$withval/lib"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
fi
])
AC_ARG_WITH(coverage,
@@ -390,24 +391,39 @@ WITH_ZLIB=0
if test "$with_zlib" = "no"; then
echo "Disabling compression support"
else
- AC_CHECK_HEADERS(zlib.h,
- [SAVE_LDFLAGS="${LDFLAGS}"
- LDFLAGS="-L${Z_DIR}/lib"
- AC_CHECK_LIB(z, gzread,[
- AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
- WITH_ZLIB=1
- if test "x${Z_DIR}" != "x"; then
- Z_CFLAGS="-I${Z_DIR}/include"
- Z_LIBS="-L${Z_DIR}/lib -lz"
- [case ${host} in
- *-*-solaris*)
- Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
- ;;
- esac]
- else
- Z_LIBS="-lz"
- fi])
- LDFLAGS="${SAVE_LDFLAGS}"])
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ZLIB directory.
+ PKG_CHECK_MODULES([Z],[zlib],
+ [have_libz=yes],
+ [have_libz=no])
+
+ if test "x$have_libz" = "xno"; then
+ AC_CHECK_HEADERS(zlib.h,
+ AC_CHECK_LIB(z, gzread,[
+ have_libz=yes
+ if test "x${Z_DIR}" != "x"; then
+ Z_CFLAGS="-I${Z_DIR}/include"
+ Z_LIBS="-L${Z_DIR}/lib -lz"
+ [case ${host} in
+ *-*-solaris*)
+ Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+ ;;
+ esac]
+ else
+ Z_LIBS="-lz"
+ fi],
+ [have_libz=no])
+ )
+ else
+ # we still need to check for zlib.h header
+ AC_CHECK_HEADERS([zlib.h])
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libz" = "xyes"; then
+ AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
+ WITH_ZLIB=1
+ fi
fi
AC_SUBST(Z_CFLAGS)
@@ -433,8 +449,6 @@ else
# private dependencies, though, so static linking may fail.
if test "x$have_liblzma" = "xno"; then
AC_CHECK_HEADERS(lzma.h,
- [SAVE_LDFLAGS="${LDFLAGS}"
- LDFLAGS="-L${LZMA_DIR}/lib"
AC_CHECK_LIB(lzma, lzma_code,[
have_liblzma=yes
if test "x${LZMA_DIR}" != "x"; then
@@ -444,7 +458,7 @@ else
LZMA_LIBS="-llzma"
fi],
[have_liblzma=no])
- LDFLAGS="${SAVE_LDFLAGS}"])
+ )
else
# we still need to check for lzma,h header
AC_CHECK_HEADERS([lzma.h])
@@ -777,7 +791,7 @@ else
fi
# warnings we'd like to see
- CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
# warnings we'd like to supress
CFLAGS="${CFLAGS} -Wno-long-long"
case "${host}" in
@@ -996,7 +1010,7 @@ if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \
fi
fi
if test "${GCC}" = "yes" ; then
- CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+ CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
fi
STATIC_BINARIES="-static"
dnl -Wcast-qual -ansi
@@ -1479,8 +1493,6 @@ case "$host" in
*) M_LIBS="-lm"
;;
esac
-XML_LIBS="-lxml2 $Z_LIBS $THREAD_LIBS $ICONV_LIBS $M_LIBS $LIBS"
-XML_LIBTOOLLIBS="libxml2.la"
AC_SUBST(WITH_ICONV)
WITH_ICU=0
@@ -1488,18 +1500,64 @@ ICU_LIBS=""
if test "$with_icu" != "yes" ; then
echo Disabling ICU support
else
- ICU_CONFIG=icu-config
- if ${ICU_CONFIG} --cflags >/dev/null 2>&1
- then
- ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ICU directory.
+ PKG_CHECK_MODULES([ICU],[icu-i18n],
+ [have_libicu=yes],
+ [have_libicu=no])
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "x$have_libicu" = "xno"; then
+ ICU_CONFIG=icu-config
+ if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+ then
+ ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ have_libicu=yes
+ echo Enabling ICU support
+ else
+ if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_icu"
+ # Export this since our headers include icu.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+ fi
+
+ AC_CHECK_HEADER(unicode/ucnv.h,
+ AC_MSG_CHECKING(for icu)
+ AC_TRY_LINK([#include <unicode/ucnv.h>],[
+ UConverter *utf = ucnv_open("UTF-8", NULL);],[
+ AC_MSG_RESULT(yes)
+ have_libicu=yes],[
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(for icu in -licucore)
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+ LIBS="${LIBS} -licucore"
+
+ AC_TRY_LINK([#include <unicode/ucnv.h>],[
+ UConverter *utf = ucnv_open("UTF-8", NULL);],[
+ AC_MSG_RESULT(yes)
+ have_libicu=yes
+ ICU_LIBS="${ICU_LIBS} -licucore"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"],[
+ AC_MSG_RESULT(no)
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"])]))
+ fi
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libicu" = "xyes"; then
WITH_ICU=1
- echo Enabling ICU support
- else
- AC_MSG_ERROR([libicu config program icu-config not found])
fi
fi
+XML_LIBS="-lxml2 $Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
AC_SUBST(WITH_ICU)
-AC_SUBST(ICU_LIBS)
WITH_ISO8859X=1
if test "$WITH_ICONV" != "1" ; then
@@ -1638,6 +1696,7 @@ AC_SUBST(XML_LIBDIR)
AC_SUBST(XML_LIBS)
AC_SUBST(XML_LIBTOOLLIBS)
AC_SUBST(ICONV_LIBS)
+AC_SUBST(ICU_LIBS)
AC_SUBST(XML_INCLUDEDIR)
AC_SUBST(HTML_DIR)
AC_SUBST(HAVE_ISNAN)
diff --git a/debugXML.c b/debugXML.c
index b05fdff5..a1b550ac 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -44,10 +44,10 @@ struct _xmlDebugCtxt {
int depth; /* current depth */
xmlDocPtr doc; /* current document */
xmlNodePtr node; /* current node */
- xmlDictPtr dict; /* the doc dictionnary */
+ xmlDictPtr dict; /* the doc dictionary */
int check; /* do just checkings */
int errors; /* number of errors found */
- int nodict; /* if the document has no dictionnary */
+ int nodict; /* if the document has no dictionary */
int options; /* options */
};
@@ -164,7 +164,7 @@ xmlDebugErr(xmlDebugCtxtPtr ctxt, int error, const char *msg)
NULL, NULL, NULL, 0, 0,
"%s", msg);
}
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlDebugErr2(xmlDebugCtxtPtr ctxt, int error, const char *msg, int extra)
{
ctxt->errors++;
@@ -174,7 +174,7 @@ xmlDebugErr2(xmlDebugCtxtPtr ctxt, int error, const char *msg, int extra)
NULL, NULL, NULL, 0, 0,
msg, extra);
}
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlDebugErr3(xmlDebugCtxtPtr ctxt, int error, const char *msg, const char *extra)
{
ctxt->errors++;
@@ -243,7 +243,7 @@ xmlCtxtCheckString(xmlDebugCtxtPtr ctxt, const xmlChar * str)
* @ctxt: the debug context
* @name: the name
*
- * Do debugging on the name, for example the dictionnary status and
+ * Do debugging on the name, for example the dictionary status and
* conformance to the Name production.
*/
static void
@@ -265,7 +265,7 @@ xmlCtxtCheckName(xmlDebugCtxtPtr ctxt, const xmlChar * name)
((ctxt->doc == NULL) ||
((ctxt->doc->parseFlags & (XML_PARSE_SAX1 | XML_PARSE_NODICT)) == 0))) {
xmlDebugErr3(ctxt, XML_CHECK_OUTSIDE_DICT,
- "Name is not from the document dictionnary '%s'",
+ "Name is not from the document dictionary '%s'",
(const char *) name);
}
}
@@ -292,7 +292,7 @@ xmlCtxtGenericNodeCheck(xmlDebugCtxtPtr ctxt, xmlNodePtr node) {
/* desactivated right now as it raises too many errors */
if (doc->type == XML_DOCUMENT_NODE)
xmlDebugErr(ctxt, XML_CHECK_NO_DICT,
- "Document has no dictionnary\n");
+ "Document has no dictionary\n");
#endif
ctxt->nodict = 1;
}
diff --git a/dict.c b/dict.c
index 8c8f9314..c0585fe2 100644
--- a/dict.c
+++ b/dict.c
@@ -87,7 +87,7 @@ typedef unsigned __int32 uint32_t;
#endif /* WITH_BIG_KEY */
/*
- * An entry in the dictionnary
+ * An entry in the dictionary
*/
typedef struct _xmlDictEntry xmlDictEntry;
typedef xmlDictEntry *xmlDictEntryPtr;
@@ -110,7 +110,7 @@ struct _xmlDictStrings {
xmlChar array[1];
};
/*
- * The entire dictionnary
+ * The entire dictionary
*/
struct _xmlDict {
int ref_counter;
@@ -229,7 +229,7 @@ xmlDictCleanup(void) {
/*
* xmlDictAddString:
- * @dict: the dictionnary
+ * @dict: the dictionary
* @name: the name of the userdata
* @len: the length of the name
*
@@ -291,7 +291,7 @@ found_pool:
/*
* xmlDictAddQString:
- * @dict: the dictionnary
+ * @dict: the dictionary
* @prefix: the prefix of the userdata
* @plen: the prefix length
* @name: the name of the userdata
@@ -533,7 +533,7 @@ xmlDictComputeFastQKey(const xmlChar *prefix, int plen,
*
* Create a new dictionary
*
- * Returns the newly created dictionnary, or NULL if an error occured.
+ * Returns the newly created dictionary, or NULL if an error occured.
*/
xmlDictPtr
xmlDictCreate(void) {
@@ -573,14 +573,14 @@ xmlDictCreate(void) {
/**
* xmlDictCreateSub:
- * @sub: an existing dictionnary
+ * @sub: an existing dictionary
*
* Create a new dictionary, inheriting strings from the read-only
- * dictionnary @sub. On lookup, strings are first searched in the
- * new dictionnary, then in @sub, and if not found are created in the
- * new dictionnary.
+ * dictionary @sub. On lookup, strings are first searched in the
+ * new dictionary, then in @sub, and if not found are created in the
+ * new dictionary.
*
- * Returns the newly created dictionnary, or NULL if an error occured.
+ * Returns the newly created dictionary, or NULL if an error occured.
*/
xmlDictPtr
xmlDictCreateSub(xmlDictPtr sub) {
@@ -599,7 +599,7 @@ xmlDictCreateSub(xmlDictPtr sub) {
/**
* xmlDictReference:
- * @dict: the dictionnary
+ * @dict: the dictionary
*
* Increment the reference counter of a dictionary
*
@@ -620,10 +620,10 @@ xmlDictReference(xmlDictPtr dict) {
/**
* xmlDictGrow:
- * @dict: the dictionnary
- * @size: the new size of the dictionnary
+ * @dict: the dictionary
+ * @size: the new size of the dictionary
*
- * resize the dictionnary
+ * resize the dictionary
*
* Returns 0 in case of success, -1 in case of failure
*/
@@ -755,7 +755,7 @@ xmlDictGrow(xmlDictPtr dict, size_t size) {
/**
* xmlDictFree:
- * @dict: the dictionnary
+ * @dict: the dictionary
*
* Free the hash @dict and its contents. The userdata is
* deallocated with @f if provided.
@@ -817,11 +817,11 @@ xmlDictFree(xmlDictPtr dict) {
/**
* xmlDictLookup:
- * @dict: the dictionnary
+ * @dict: the dictionary
* @name: the name of the userdata
* @len: the length of the name, if -1 it is recomputed
*
- * Add the @name to the dictionnary @dict if not present.
+ * Add the @name to the dictionary @dict if not present.
*
* Returns the internal copy of the name or NULL in case of internal error
*/
@@ -957,11 +957,11 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
/**
* xmlDictExists:
- * @dict: the dictionnary
+ * @dict: the dictionary
* @name: the name of the userdata
* @len: the length of the name, if -1 it is recomputed
*
- * Check if the @name exists in the dictionnary @dict.
+ * Check if the @name exists in the dictionary @dict.
*
* Returns the internal copy of the name or NULL if not found.
*/
@@ -1065,7 +1065,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
/**
* xmlDictQLookup:
- * @dict: the dictionnary
+ * @dict: the dictionary
* @prefix: the prefix
* @name: the name
*
@@ -1170,7 +1170,7 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
/**
* xmlDictOwns:
- * @dict: the dictionnary
+ * @dict: the dictionary
* @str: the string
*
* check if a string is owned by the disctionary
@@ -1197,11 +1197,11 @@ xmlDictOwns(xmlDictPtr dict, const xmlChar *str) {
/**
* xmlDictSize:
- * @dict: the dictionnary
+ * @dict: the dictionary
*
* Query the number of elements installed in the hash @dict.
*
- * Returns the number of elements in the dictionnary or
+ * Returns the number of elements in the dictionary or
* -1 in case of error
*/
int
@@ -1215,7 +1215,7 @@ xmlDictSize(xmlDictPtr dict) {
/**
* xmlDictSetLimit:
- * @dict: the dictionnary
+ * @dict: the dictionary
* @limit: the limit in bytes
*
* Set a size limit for the dictionary
@@ -1236,7 +1236,7 @@ xmlDictSetLimit(xmlDictPtr dict, size_t limit) {
/**
* xmlDictGetUsage:
- * @dict: the dictionnary
+ * @dict: the dictionary
*
* Get how much memory is used by a dictionary for strings
* Added in 2.9.0
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html
index b1f069d8..dba59525 100644
--- a/doc/APIchunk13.html
+++ b/doc/APIchunk13.html
@@ -383,34 +383,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
</dd><dt>dict</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
</dd><dt>dictionaries</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
-</dd><dt>dictionary</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
-<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
-<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
-<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
-<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
-<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
-<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
-<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
-<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
-<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
-<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
-</dd><dt>dictionnary</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
-<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
-<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
-<a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
-<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
-<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
-<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
-<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
-<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
-<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
-<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
-<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
</dd><dt>did</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html
index c68ae92b..af3b1a5d 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -143,6 +143,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
</dd><dt>unsafe</dt><dd><a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
</dd><dt>unsigned</dt><dd><a href="">c</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
</dd><dt>unsupported</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index 9027afe0..f9ac249b 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -368,9 +368,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
diff --git a/doc/apibuild.py b/doc/apibuild.py
index b5b669af..7a364663 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -81,6 +81,7 @@ ignored_words = {
"ATTRIBUTE_PRINTF": (5, "macro for gcc printf args checking extension"),
"LIBXML_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"),
"LIBXML_ATTR_ALLOC_SIZE": (3, "macro for gcc checking extension"),
+ "__XML_EXTERNC": (0, "Special macro added for os400"),
}
def escape(raw):
diff --git a/doc/devhelp/general.html b/doc/devhelp/general.html
index 68f93805..90f0d394 100644
--- a/doc/devhelp/general.html
+++ b/doc/devhelp/general.html
@@ -33,6 +33,6 @@
<h2>
<span class="refentrytitle">libxml2 API Modules</span>
</h2>
- <p><a href="libxml2-DOCBparser.html">DOCBparser</a> - old DocBook SGML parser<br/><a href="libxml2-HTMLparser.html">HTMLparser</a> - interface for an HTML 4.0 non-verifying parser<br/><a href="libxml2-HTMLtree.html">HTMLtree</a> - specific APIs to process HTML tree, especially serialization<br/><a href="libxml2-SAX.html">SAX</a> - Old SAX version 1 handler, deprecated<br/><a href="libxml2-SAX2.html">SAX2</a> - SAX2 parser interface used to build the DOM tree<br/><a href="libxml2-c14n.html">c14n</a> - Provide Canonical XML and Exclusive XML Canonicalization<br/><a href="libxml2-catalog.html">catalog</a> - interfaces to the Catalog handling system<br/><a href="libxml2-chvalid.html">chvalid</a> - Unicode character range checking<br/><a href="libxml2-debugXML.html">debugXML</a> - Tree debugging APIs<br/><a href="libxml2-dict.html">dict</a> - string dictionnary<br/><a href="libxml2-encoding.html">encoding</a> - interface for the encoding conversion functions<br/><a href="libxml2-entities.html">entities</a> - interface for the XML entities handling<br/><a href="libxml2-globals.html">globals</a> - interface for all global variables of the library<br/><a href="libxml2-hash.html">hash</a> - Chained hash tables<br/><a href="libxml2-list.html">list</a> - lists interfaces<br/><a href="libxml2-nanoftp.html">nanoftp</a> - minimal FTP implementation<br/><a href="libxml2-nanohttp.html">nanohttp</a> - minimal HTTP implementation<br/><a href="libxml2-parser.html">parser</a> - the core parser module<br/><a href="libxml2-parserInternals.html">parserInternals</a> - internals routines and limits exported by the parser.<br/><a href="libxml2-pattern.html">pattern</a> - pattern expression handling<br/><a href="libxml2-relaxng.html">relaxng</a> - implementation of the Relax-NG validation<br/><a href="libxml2-schemasInternals.html">schemasInternals</a> - internal interfaces for XML Schemas<br/><a href="libxml2-schematron.html">schematron</a> - XML Schemastron implementation<br/><a href="libxml2-threads.html">threads</a> - interfaces for thread handling<br/><a href="libxml2-tree.html">tree</a> - interfaces for tree manipulation<br/><a href="libxml2-uri.html">uri</a> - library of generic URI related routines<br/><a href="libxml2-valid.html">valid</a> - The DTD validation<br/><a href="libxml2-xinclude.html">xinclude</a> - implementation of XInclude<br/><a href="libxml2-xlink.html">xlink</a> - unfinished XLink detection module<br/><a href="libxml2-xmlIO.html">xmlIO</a> - interface for the I/O interfaces used by the parser<br/><a href="libxml2-xmlautomata.html">xmlautomata</a> - API to build regexp automata<br/><a href="libxml2-xmlerror.html">xmlerror</a> - error handling<br/><a href="libxml2-xmlexports.html">xmlexports</a> - macros for marking symbols as exportable/importable.<br/><a href="libxml2-xmlmemory.html">xmlmemory</a> - interface for the memory allocator<br/><a href="libxml2-xmlmodule.html">xmlmodule</a> - dynamic module loading<br/><a href="libxml2-xmlreader.html">xmlreader</a> - the XMLReader implementation<br/><a href="libxml2-xmlregexp.html">xmlregexp</a> - regular expressions handling<br/><a href="libxml2-xmlsave.html">xmlsave</a> - the XML document serializer<br/><a href="libxml2-xmlschemas.html">xmlschemas</a> - incomplete XML Schemas structure implementation<br/><a href="libxml2-xmlschemastypes.html">xmlschemastypes</a> - implementation of XML Schema Datatypes<br/><a href="libxml2-xmlstring.html">xmlstring</a> - set of routines to process strings<br/><a href="libxml2-xmlunicode.html">xmlunicode</a> - Unicode character APIs<br/><a href="libxml2-xmlversion.html">xmlversion</a> - compile-time version informations<br/><a href="libxml2-xmlwriter.html">xmlwriter</a> - text writing API for XML<br/><a href="libxml2-xpath.html">xpath</a> - XML Path Language implementation<br/><a href="libxml2-xpathInternals.html">xpathInternals</a> - internal interfaces for XML Path Language implementation<br/><a href="libxml2-xpointer.html">xpointer</a> - API to handle XML Pointers<br/></p>
+ <p><a href="libxml2-DOCBparser.html">DOCBparser</a> - old DocBook SGML parser<br/><a href="libxml2-HTMLparser.html">HTMLparser</a> - interface for an HTML 4.0 non-verifying parser<br/><a href="libxml2-HTMLtree.html">HTMLtree</a> - specific APIs to process HTML tree, especially serialization<br/><a href="libxml2-SAX.html">SAX</a> - Old SAX version 1 handler, deprecated<br/><a href="libxml2-SAX2.html">SAX2</a> - SAX2 parser interface used to build the DOM tree<br/><a href="libxml2-c14n.html">c14n</a> - Provide Canonical XML and Exclusive XML Canonicalization<br/><a href="libxml2-catalog.html">catalog</a> - interfaces to the Catalog handling system<br/><a href="libxml2-chvalid.html">chvalid</a> - Unicode character range checking<br/><a href="libxml2-debugXML.html">debugXML</a> - Tree debugging APIs<br/><a href="libxml2-dict.html">dict</a> - string dictionary<br/><a href="libxml2-encoding.html">encoding</a> - interface for the encoding conversion functions<br/><a href="libxml2-entities.html">entities</a> - interface for the XML entities handling<br/><a href="libxml2-globals.html">globals</a> - interface for all global variables of the library<br/><a href="libxml2-hash.html">hash</a> - Chained hash tables<br/><a href="libxml2-list.html">list</a> - lists interfaces<br/><a href="libxml2-nanoftp.html">nanoftp</a> - minimal FTP implementation<br/><a href="libxml2-nanohttp.html">nanohttp</a> - minimal HTTP implementation<br/><a href="libxml2-parser.html">parser</a> - the core parser module<br/><a href="libxml2-parserInternals.html">parserInternals</a> - internals routines and limits exported by the parser.<br/><a href="libxml2-pattern.html">pattern</a> - pattern expression handling<br/><a href="libxml2-relaxng.html">relaxng</a> - implementation of the Relax-NG validation<br/><a href="libxml2-schemasInternals.html">schemasInternals</a> - internal interfaces for XML Schemas<br/><a href="libxml2-schematron.html">schematron</a> - XML Schemastron implementation<br/><a href="libxml2-threads.html">threads</a> - interfaces for thread handling<br/><a href="libxml2-tree.html">tree</a> - interfaces for tree manipulation<br/><a href="libxml2-uri.html">uri</a> - library of generic URI related routines<br/><a href="libxml2-valid.html">valid</a> - The DTD validation<br/><a href="libxml2-xinclude.html">xinclude</a> - implementation of XInclude<br/><a href="libxml2-xlink.html">xlink</a> - unfinished XLink detection module<br/><a href="libxml2-xmlIO.html">xmlIO</a> - interface for the I/O interfaces used by the parser<br/><a href="libxml2-xmlautomata.html">xmlautomata</a> - API to build regexp automata<br/><a href="libxml2-xmlerror.html">xmlerror</a> - error handling<br/><a href="libxml2-xmlexports.html">xmlexports</a> - macros for marking symbols as exportable/importable.<br/><a href="libxml2-xmlmemory.html">xmlmemory</a> - interface for the memory allocator<br/><a href="libxml2-xmlmodule.html">xmlmodule</a> - dynamic module loading<br/><a href="libxml2-xmlreader.html">xmlreader</a> - the XMLReader implementation<br/><a href="libxml2-xmlregexp.html">xmlregexp</a> - regular expressions handling<br/><a href="libxml2-xmlsave.html">xmlsave</a> - the XML document serializer<br/><a href="libxml2-xmlschemas.html">xmlschemas</a> - incomplete XML Schemas structure implementation<br/><a href="libxml2-xmlschemastypes.html">xmlschemastypes</a> - implementation of XML Schema Datatypes<br/><a href="libxml2-xmlstring.html">xmlstring</a> - set of routines to process strings<br/><a href="libxml2-xmlunicode.html">xmlunicode</a> - Unicode character APIs<br/><a href="libxml2-xmlversion.html">xmlversion</a> - compile-time version informations<br/><a href="libxml2-xmlwriter.html">xmlwriter</a> - text writing API for XML<br/><a href="libxml2-xpath.html">xpath</a> - XML Path Language implementation<br/><a href="libxml2-xpathInternals.html">xpathInternals</a> - internal interfaces for XML Path Language implementation<br/><a href="libxml2-xpointer.html">xpointer</a> - API to handle XML Pointers<br/></p>
</body>
</html>
diff --git a/doc/devhelp/libxml2-dict.html b/doc/devhelp/libxml2-dict.html
index fd5f6b9a..3776c5bd 100644
--- a/doc/devhelp/libxml2-dict.html
+++ b/doc/devhelp/libxml2-dict.html
@@ -2,7 +2,7 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
- <title>dict: string dictionnary</title>
+ <title>dict: string dictionary</title>
<meta name="generator" content="Libxml2 devhelp stylesheet"/>
<link rel="start" href="index.html" title="libxml2 Reference Manual"/>
<link rel="up" href="general.html" title="API"/>
@@ -38,7 +38,7 @@
<h2>
<span class="refentrytitle">dict</span>
</h2>
- <p>dict - string dictionnary</p>
+ <p>dict - string dictionary</p>
<p>dictionary of reusable strings, just used to avoid allocation and freeing operations. </p>
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
@@ -82,47 +82,47 @@ The content of this structure is not made public by the API.
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictCreate"/>xmlDictCreate ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreate (void)<br/>
</pre><p>Create a new dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occured.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictCreateSub"/>xmlDictCreateSub ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br/>
-</pre><p>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div></div>
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occured.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictExists"/>xmlDictExists ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len)<br/>
-</pre><p>Check if the @name exists in the dictionnary @dict.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div></div>
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictFree"/>xmlDictFree ()</h3><pre class="programlisting">void xmlDictFree (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictGetUsage"/>xmlDictGetUsage ()</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictLookup"/>xmlDictLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len)<br/>
-</pre><p>Add the @name to the dictionnary @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div></div>
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictOwns"/>xmlDictOwns ()</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
</pre><p>check if a string is owned by the disctionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictQLookup"/>xmlDictQLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
</pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictReference"/>xmlDictReference ()</h3><pre class="programlisting">int xmlDictReference (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Increment the <a href="libxml2-SAX.html#reference">reference</a> counter of a dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictSetLimit"/>xmlDictSetLimit ()</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> size_t limit)<br/>
</pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictSize"/>xmlDictSize ()</h3><pre class="programlisting">int xmlDictSize (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Query the number of elements installed in the hash @dict.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionnary or -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlInitializeDict"/>xmlInitializeDict ()</h3><pre class="programlisting">int xmlInitializeDict (void)<br/>
</pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
diff --git a/doc/devhelp/libxml2-parser.html b/doc/devhelp/libxml2-parser.html
index 357c14a2..c7405544 100644
--- a/doc/devhelp/libxml2-parser.html
+++ b/doc/devhelp/libxml2-parser.html
@@ -300,7 +300,7 @@ void <a href="#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a> (<a hr
<a name="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 /* use the SAX1 interface internally */
<a name="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 /* Implement XInclude substitition */
<a name="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 /* Forbid network access */
- <a name="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 /* Do not reuse the context dictionnary */
+ <a name="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 /* Do not reuse the context dictionary */
<a name="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 /* remove redundant namespaces declarations */
<a name="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 /* merge CDATA as text nodes */
<a name="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 /* do not generate XINCLUDE START/END nodes */
diff --git a/doc/devhelp/libxml2-tree.html b/doc/devhelp/libxml2-tree.html
index 5f8d1f28..ac85d60e 100644
--- a/doc/devhelp/libxml2-tree.html
+++ b/doc/devhelp/libxml2-tree.html
@@ -782,7 +782,7 @@ The content of this structure is not made public by the API.
void * catalogs : document's own catalog
int recovery : run in recovery mode
int progressive : is this a progressive parsing
- <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionnary for the parser
+ <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary for the parser
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * * atts : array for the attributes callbacks
int maxatts : the size of the array
int docdict : * pre-interned strings *
diff --git a/doc/devhelp/libxml2-xmlmemory.html b/doc/devhelp/libxml2-xmlmemory.html
index 8610538f..bf400d0d 100644
--- a/doc/devhelp/libxml2-xmlmemory.html
+++ b/doc/devhelp/libxml2-xmlmemory.html
@@ -118,7 +118,7 @@ char * <a href="#xmlMemStrdupLoc">xmlMemStrdupLoc</a> (const char * str, <br/>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlMallocAtomicLoc"/>xmlMallocAtomicLoc ()</h3><pre class="programlisting">void * xmlMallocAtomicLoc (size_t size, <br/> const char * file, <br/> int line)<br/>
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlMallocLoc"/>xmlMallocLoc ()</h3><pre class="programlisting">void * xmlMallocLoc (size_t size, <br/> const char * file, <br/> int line)<br/>
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
diff --git a/doc/devhelp/libxml2-xmlregexp.html b/doc/devhelp/libxml2-xmlregexp.html
index 9427a345..8d5c80ec 100644
--- a/doc/devhelp/libxml2-xmlregexp.html
+++ b/doc/devhelp/libxml2-xmlregexp.html
@@ -200,7 +200,7 @@ The content of this structure is not made public by the API.
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlExpNewCtxt"/>xmlExpNewCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br/> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Creates a new context for manipulating expressions</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlExpNewOr"/>xmlExpNewOr ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br/>
</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
diff --git a/doc/devhelp/libxml2-xmlstring.html b/doc/devhelp/libxml2-xmlstring.html
index 6dfc70b4..ca90ed44 100644
--- a/doc/devhelp/libxml2-xmlstring.html
+++ b/doc/devhelp/libxml2-xmlstring.html
@@ -49,7 +49,7 @@ int <a href="#xmlStrcmp">xmlStrcmp</a> (const <a href="libxml2-xmlstring.html#
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCharStrndup">xmlCharStrndup</a> (const char * cur, <br/> int len);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcasestr">xmlStrcasestr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcat">xmlStrcat</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add);
-int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> ... ...);
+int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> ... ...);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrstr">xmlStrstr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
int <a href="#xmlUTF8Size">xmlUTF8Size</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf);
int <a href="#xmlStrQEqual">xmlStrQEqual</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pref, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
@@ -65,7 +65,7 @@ int <a href="#xmlStrncmp">xmlStrncmp</a> (const <a href="libxml2-xmlstring.htm
int <a href="#xmlGetUTF8Char">xmlGetUTF8Char</a> (const unsigned char * utf, <br/> int * len);
int <a href="#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrndup">xmlStrndup</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int len);
-int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> va_list ap);
+int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> va_list ap);
int <a href="#xmlUTF8Strsize">xmlUTF8Strsize</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int len);
int <a href="#xmlCheckUTF8">xmlCheckUTF8</a> (const unsigned char * utf);
int <a href="#xmlStrncasecmp">xmlStrncasecmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len);
@@ -111,7 +111,7 @@ int <a href="#xmlUTF8Strloc">xmlUTF8Strloc</a> (const <a href="libxml2-xmlstri
</pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> ... ...)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> ... ...)<br/>
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
<hr/>
@@ -119,7 +119,7 @@ int <a href="#xmlUTF8Strloc">xmlUTF8Strloc</a> (const <a href="libxml2-xmlstri
</pre><p>Check if a QName is Equal to a given string</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> va_list ap)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> va_list ap)<br/>
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
<hr/>
diff --git a/doc/docdescr.doc b/doc/docdescr.doc
index 427a1fff..3fec94a1 100644
--- a/doc/docdescr.doc
+++ b/doc/docdescr.doc
@@ -29,7 +29,7 @@ structure.gif \ /
w3c.png -
apibuild.py Python script which generates the file libxml2-api.xml
-parsedecl.py Python secipt which generates the file libxml2-refs.xml
+parsedecl.py Python script which generates the file libxml2-refs.xml
api.xsl xslt script to generate API cross-references APIchunk*.html
using information from libxml2-api.xml and libxml2-refs.xml
diff --git a/doc/examples/io1.res b/doc/examples/io1.res
index adf65c70..4a4c036a 100644
--- a/doc/examples/io1.res
+++ b/doc/examples/io1.res
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<document xmlns:xi="http://www.w3.org/2003/XInclude">
<p>List of people:</p>
- <list xml:base="sql://select_name_from_people"><people>a</people><people>b</people></list>
+ <list><people>a</people><people>b</people></list>
</document>
diff --git a/doc/html/book1.html b/doc/html/book1.html
index 1a58210b..42d71a66 100644
--- a/doc/html/book1.html
+++ b/doc/html/book1.html
@@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline }
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+ </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/index.html b/doc/html/index.html
index 1a58210b..42d71a66 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline }
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+ </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-dict.html b/doc/html/libxml-dict.html
index bdd21f4f..74e243b9 100644
--- a/doc/html/libxml-dict.html
+++ b/doc/html/libxml-dict.html
@@ -33,26 +33,26 @@ The content of this structure is not made public by the API.
</pre><p>Free the dictionary mutex. Do not call unless sure the library is not in use anymore !</p>
<h3><a name="xmlDictCreate" id="xmlDictCreate"></a>Function: xmlDictCreate</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreate (void)<br />
</pre><p>Create a new dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictCreateSub" id="xmlDictCreateSub"></a>Function: xmlDictCreateSub</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br />
-</pre><p>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictExists" id="xmlDictExists"></a>Function: xmlDictExists</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
-</pre><p>Check if the @name exists in the dictionnary @dict.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlDictFree" id="xmlDictFree"></a>Function: xmlDictFree</h3><pre class="programlisting">void xmlDictFree (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictCreateSub" id="xmlDictCreateSub"></a>Function: xmlDictCreateSub</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br />
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictExists" id="xmlDictExists"></a>Function: xmlDictExists</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlDictFree" id="xmlDictFree"></a>Function: xmlDictFree</h3><pre class="programlisting">void xmlDictFree (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr></tbody></table></div><h3><a name="xmlDictGetUsage" id="xmlDictGetUsage"></a>Function: xmlDictGetUsage</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div><h3><a name="xmlDictGetUsage" id="xmlDictGetUsage"></a>Function: xmlDictGetUsage</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div><h3><a name="xmlDictLookup" id="xmlDictLookup"></a>Function: xmlDictLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
-</pre><p>Add the @name to the dictionnary @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictOwns" id="xmlDictOwns"></a>Function: xmlDictOwns</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div><h3><a name="xmlDictLookup" id="xmlDictLookup"></a>Function: xmlDictLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictOwns" id="xmlDictOwns"></a>Function: xmlDictOwns</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
</pre><p>check if a string is owned by the disctionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictQLookup" id="xmlDictQLookup"></a>Function: xmlDictQLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictQLookup" id="xmlDictQLookup"></a>Function: xmlDictQLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
</pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictReference" id="xmlDictReference"></a>Function: xmlDictReference</h3><pre class="programlisting">int xmlDictReference (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictReference" id="xmlDictReference"></a>Function: xmlDictReference</h3><pre class="programlisting">int xmlDictReference (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Increment the <a href="libxml-SAX.html#reference">reference</a> counter of a dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictSetLimit" id="xmlDictSetLimit"></a>Function: xmlDictSetLimit</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> size_t limit)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictSetLimit" id="xmlDictSetLimit"></a>Function: xmlDictSetLimit</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> size_t limit)<br />
</pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div><h3><a name="xmlDictSize" id="xmlDictSize"></a>Function: xmlDictSize</h3><pre class="programlisting">int xmlDictSize (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div><h3><a name="xmlDictSize" id="xmlDictSize"></a>Function: xmlDictSize</h3><pre class="programlisting">int xmlDictSize (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Query the number of elements installed in the hash @dict.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionnary or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlInitializeDict" id="xmlInitializeDict"></a>Function: xmlInitializeDict</h3><pre class="programlisting">int xmlInitializeDict (void)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlInitializeDict" id="xmlInitializeDict"></a>Function: xmlInitializeDict</h3><pre class="programlisting">int xmlInitializeDict (void)<br />
</pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if initialization was already done, and 1 if that call led to the initialization</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-lib.html b/doc/html/libxml-lib.html
index 1a58210b..42d71a66 100644
--- a/doc/html/libxml-lib.html
+++ b/doc/html/libxml-lib.html
@@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline }
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+ </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html
index 98123f75..4d890c62 100644
--- a/doc/html/libxml-parser.html
+++ b/doc/html/libxml-parser.html
@@ -279,7 +279,7 @@ void <a href="#xmlParserInputDeallocate">xmlParserInputDeallocate</a> (<a href="
<a name="XML_PARSE_SAX1" id="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 : use the SAX1 interface internally
<a name="XML_PARSE_XINCLUDE" id="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 : Implement XInclude substitition
<a name="XML_PARSE_NONET" id="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 : Forbid network access
- <a name="XML_PARSE_NODICT" id="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 : Do not reuse the context dictionnary
+ <a name="XML_PARSE_NODICT" id="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 : Do not reuse the context dictionary
<a name="XML_PARSE_NSCLEAN" id="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 : remove redundant namespaces declarations
<a name="XML_PARSE_NOCDATA" id="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 : merge CDATA as text nodes
<a name="XML_PARSE_NOXINCNODE" id="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 : do not generate XINCLUDE START/END nodes
diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html
index d1d005f6..d95872dc 100644
--- a/doc/html/libxml-tree.html
+++ b/doc/html/libxml-tree.html
@@ -555,7 +555,7 @@ The content of this structure is not made public by the API.
void * catalogs : document's own catalog
int recovery : run in recovery mode
int progressive : is this a progressive parsing
- <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionnary for the parser
+ <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary for the parser
const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * * atts : array for the attributes callbacks
int maxatts : the size of the array
int docdict : * pre-interned strings *
diff --git a/doc/html/libxml-xmlmemory.html b/doc/html/libxml-xmlmemory.html
index d6537758..3406e098 100644
--- a/doc/html/libxml-xmlmemory.html
+++ b/doc/html/libxml-xmlmemory.html
@@ -65,7 +65,7 @@ void xmlFreeFunc (void * mem)
</pre><p>Initialize the memory layer.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMallocAtomicLoc" id="xmlMallocAtomicLoc"></a>Function: xmlMallocAtomicLoc</h3><pre class="programlisting">void * xmlMallocAtomicLoc (size_t size, <br /> const char * file, <br /> int line)<br />
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
void * xmlMallocFunc (size_t size)
</pre><p>Signature for a malloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly allocated block or NULL in case of error.</td></tr></tbody></table></div><br />
<h3><a name="xmlMallocLoc" id="xmlMallocLoc"></a>Function: xmlMallocLoc</h3><pre class="programlisting">void * xmlMallocLoc (size_t size, <br /> const char * file, <br /> int line)<br />
diff --git a/doc/html/libxml-xmlregexp.html b/doc/html/libxml-xmlregexp.html
index 8dda699d..564f65e0 100644
--- a/doc/html/libxml-xmlregexp.html
+++ b/doc/html/libxml-xmlregexp.html
@@ -101,7 +101,7 @@ The content of this structure is not made public by the API.
</pre><p>Get the atom associated to this name from that context</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the atom name</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the atom name length in byte (or -1);</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewCtxt" id="xmlExpNewCtxt"></a>Function: xmlExpNewCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Creates a new context for manipulating expressions</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewRange" id="xmlExpNewRange"></a>Function: xmlExpNewRange</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewRange (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br /> int min, <br /> int max)<br />
</pre><p>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</p>
diff --git a/doc/html/libxml-xmlstring.html b/doc/html/libxml-xmlstring.html
index 4f12cc75..89e98099 100644
--- a/doc/html/libxml-xmlstring.html
+++ b/doc/html/libxml-xmlstring.html
@@ -16,9 +16,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<pre class="programlisting">int <a href="#xmlCheckUTF8">xmlCheckUTF8</a> (const unsigned char * utf)</pre>
<pre class="programlisting">int <a href="#xmlGetUTF8Char">xmlGetUTF8Char</a> (const unsigned char * utf, <br /> int * len)</pre>
<pre class="programlisting">int <a href="#xmlStrEqual">xmlStrEqual</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
-<pre class="programlisting">int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> ... ...)</pre>
<pre class="programlisting">int <a href="#xmlStrQEqual">xmlStrQEqual</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
-<pre class="programlisting">int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> va_list ap)</pre>
+<pre class="programlisting">int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> va_list ap)</pre>
<pre class="programlisting">int <a href="#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcasestr">xmlStrcasestr</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcat">xmlStrcat</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)</pre>
@@ -55,11 +55,11 @@ A:link, A:visited, A:active { text-decoration: underline }
</pre><p>Read the first UTF8 character from @utf</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)</td></tr></tbody></table></div><h3><a name="xmlStrEqual" id="xmlStrEqual"></a>Function: xmlStrEqual</h3><pre class="programlisting">int xmlStrEqual (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
</pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> ... ...)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> ... ...)<br />
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrQEqual" id="xmlStrQEqual"></a>Function: xmlStrQEqual</h3><pre class="programlisting">int xmlStrQEqual (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
</pre><p>Check if a QName is Equal to a given string</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> va_list ap)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> va_list ap)<br />
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrcasecmp" id="xmlStrcasecmp"></a>Function: xmlStrcasecmp</h3><pre class="programlisting">int xmlStrcasecmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
</pre><p>a strcasecmp for xmlChar's</p>
diff --git a/doc/index.py b/doc/index.py
index 578f288b..1895d84d 100755
--- a/doc/index.py
+++ b/doc/index.py
@@ -49,7 +49,7 @@ def callback(ctx, str):
libxml2.registerErrorHandler(callback, None)
#
-# The dictionnary of tables required and the SQL command needed
+# The dictionary of tables required and the SQL command needed
# to create them
#
TABLES={
@@ -438,12 +438,12 @@ def updateWordArchive(name, id, relevance):
print """UPDATE wordsArchive SET relevance='%d' where name='%s' and ID='%d'""" % (relevance, name, id)
print sys.exc_type, sys.exc_value
return -1
-
+
return ret
#########################################################################
# #
-# Word dictionnary and analysis routines #
+# Word dictionary and analysis routines #
# #
#########################################################################
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index 5573f0c5..a0a01178 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -367,7 +367,7 @@
<exports symbol='xmlShell' type='function'/>
</file>
<file name='dict'>
- <summary>string dictionnary</summary>
+ <summary>string dictionary</summary>
<description>dictionary of reusable strings, just used to avoid allocation and freeing operations. </description>
<author>Daniel Veillard </author>
<exports symbol='xmlDict' type='typedef'/>
@@ -5142,7 +5142,7 @@ crash if you try to modify the tree)'/>
<enum name='XML_PARSE_NOBASEFIX' file='parser' value='262144' type='xmlParserOption' info='do not fixup XINCLUDE xml:base uris'/>
<enum name='XML_PARSE_NOBLANKS' file='parser' value='256' type='xmlParserOption' info='remove blank nodes'/>
<enum name='XML_PARSE_NOCDATA' file='parser' value='16384' type='xmlParserOption' info='merge CDATA as text nodes'/>
- <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionnary'/>
+ <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionary'/>
<enum name='XML_PARSE_NOENT' file='parser' value='2' type='xmlParserOption' info='substitute entities'/>
<enum name='XML_PARSE_NOERROR' file='parser' value='32' type='xmlParserOption' info='suppress error reports'/>
<enum name='XML_PARSE_NONET' file='parser' value='2048' type='xmlParserOption' info='Forbid network access'/>
@@ -6410,7 +6410,7 @@ actually an xmlCharEncoding'/>
<field name='catalogs' type='void *' info=' document&apos;s own catalog'/>
<field name='recovery' type='int' info=' run in recovery mode'/>
<field name='progressive' type='int' info=' is this a progressive parsing'/>
- <field name='dict' type='xmlDictPtr' info=' dictionnary for the parser'/>
+ <field name='dict' type='xmlDictPtr' info=' dictionary for the parser'/>
<field name='atts' type='const xmlChar * *' info=' array for the attributes callbacks'/>
<field name='maxatts' type='int' info=' the size of the array'/>
<field name='docdict' type='int' info='* pre-interned strings
@@ -9504,65 +9504,65 @@ Could we use @subtypes for this?'/>
</function>
<function name='xmlDictCreate' file='dict' module='dict'>
<info>Create a new dictionary</info>
- <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
+ <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occured.'/>
</function>
<function name='xmlDictCreateSub' file='dict' module='dict'>
- <info>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</info>
- <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
- <arg name='sub' type='xmlDictPtr' info='an existing dictionnary'/>
+ <info>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</info>
+ <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occured.'/>
+ <arg name='sub' type='xmlDictPtr' info='an existing dictionary'/>
</function>
<function name='xmlDictExists' file='dict' module='dict'>
- <info>Check if the @name exists in the dictionnary @dict.</info>
+ <info>Check if the @name exists in the dictionary @dict.</info>
<return type='const xmlChar *' info='the internal copy of the name or NULL if not found.'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
</function>
<function name='xmlDictFree' file='dict' module='dict'>
<info>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</info>
<return type='void'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDictGetUsage' file='dict' module='dict'>
<info>Get how much memory is used by a dictionary for strings Added in 2.9.0</info>
<return type='size_t' info='the amount of strings allocated'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDictLookup' file='dict' module='dict'>
- <info>Add the @name to the dictionnary @dict if not present.</info>
+ <info>Add the @name to the dictionary @dict if not present.</info>
<return type='const xmlChar *' info='the internal copy of the name or NULL in case of internal error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
</function>
<function name='xmlDictOwns' file='dict' module='dict'>
<info>check if a string is owned by the disctionary</info>
<return type='int' info='1 if true, 0 if false and -1 in case of error -1 in case of error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='str' type='const xmlChar *' info='the string'/>
</function>
<function name='xmlDictQLookup' file='dict' module='dict'>
<info>Add the QName @prefix:@name to the hash @dict if not present.</info>
<return type='const xmlChar *' info='the internal copy of the QName or NULL in case of internal error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='prefix' type='const xmlChar *' info='the prefix'/>
<arg name='name' type='const xmlChar *' info='the name'/>
</function>
<function name='xmlDictReference' file='dict' module='dict'>
<info>Increment the reference counter of a dictionary</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDictSetLimit' file='dict' module='dict'>
<info>Set a size limit for the dictionary Added in 2.9.0</info>
<return type='size_t' info='the previous limit of the dictionary or 0'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='limit' type='size_t' info='the limit in bytes'/>
</function>
<function name='xmlDictSize' file='dict' module='dict'>
<info>Query the number of elements installed in the hash @dict.</info>
- <return type='int' info='the number of elements in the dictionnary or -1 in case of error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <return type='int' info='the number of elements in the dictionary or -1 in case of error'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDllMain' file='threads' module='threads'>
<info></info>
@@ -9827,7 +9827,7 @@ Could we use @subtypes for this?'/>
<info>Creates a new context for manipulating expressions</info>
<return type='xmlExpCtxtPtr' info='the context or NULL in case of error'/>
<arg name='maxNodes' type='int' info='the maximum number of nodes'/>
- <arg name='dict' type='xmlDictPtr' info='optional dictionnary to use internally'/>
+ <arg name='dict' type='xmlDictPtr' info='optional dictionary to use internally'/>
</function>
<function name='xmlExpNewOr' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
@@ -10985,7 +10985,7 @@ Could we use @subtypes for this?'/>
<function name='xmlMallocAtomicLoc' file='xmlmemory' module='xmlmemory'>
<info>a malloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
- <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+ <arg name='size' type='size_t' info='an unsigned int specifying the size in byte to allocate.'/>
<arg name='file' type='const char *' info='the file name or NULL'/>
<arg name='line' type='int' info='the line number'/>
</function>
@@ -14487,7 +14487,7 @@ Could we use @subtypes for this?'/>
<return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
<arg name='buf' type='xmlChar *' info='the result buffer.'/>
<arg name='len' type='int' info='the result buffer length.'/>
- <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+ <arg name='msg' type='const char *' info='the message with printf formatting.'/>
<arg name='...' type='...' info='extra parameters for the message.'/>
</function>
<function name='xmlStrQEqual' file='xmlstring' module='xmlstring'>
@@ -14502,7 +14502,7 @@ Could we use @subtypes for this?'/>
<return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
<arg name='buf' type='xmlChar *' info='the result buffer.'/>
<arg name='len' type='int' info='the result buffer length.'/>
- <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+ <arg name='msg' type='const char *' info='the message with printf formatting.'/>
<arg name='ap' type='va_list' info='extra parameters for the message.'/>
</function>
<function name='xmlStrcasecmp' file='xmlstring' module='xmlstring'>
diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml
index 71586099..6dce37f0 100644
--- a/doc/libxml2-refs.xml
+++ b/doc/libxml2-refs.xml
@@ -8406,9 +8406,7 @@
<ref name='xmlSplitQName2'/>
<ref name='xmlSplitQName3'/>
<ref name='xmlStrEqual'/>
- <ref name='xmlStrPrintf'/>
<ref name='xmlStrQEqual'/>
- <ref name='xmlStrVPrintf'/>
<ref name='xmlStrcasecmp'/>
<ref name='xmlStrcasestr'/>
<ref name='xmlStrcat'/>
@@ -21822,38 +21820,6 @@
<word name='dictionaries'>
<ref name='XML_MAX_NAME_LENGTH'/>
</word>
- <word name='dictionary'>
- <ref name='XML_MAX_DICTIONARY_LIMIT'/>
- <ref name='_xmlParserCtxt'/>
- <ref name='_xmlXPathContext'/>
- <ref name='xmlDictCleanup'/>
- <ref name='xmlDictCreate'/>
- <ref name='xmlDictCreateSub'/>
- <ref name='xmlDictGetUsage'/>
- <ref name='xmlDictReference'/>
- <ref name='xmlDictSetLimit'/>
- <ref name='xmlHashCreateDict'/>
- <ref name='xmlInitializeDict'/>
- <ref name='xmlPatterncompile'/>
- <ref name='xmlStreamPush'/>
- <ref name='xmlStreamPushAttr'/>
- <ref name='xmlStreamPushNode'/>
- </word>
- <word name='dictionnary'>
- <ref name='_xmlParserCtxt'/>
- <ref name='xmlDictCreate'/>
- <ref name='xmlDictCreateSub'/>
- <ref name='xmlDictExists'/>
- <ref name='xmlDictFree'/>
- <ref name='xmlDictGetUsage'/>
- <ref name='xmlDictLookup'/>
- <ref name='xmlDictOwns'/>
- <ref name='xmlDictQLookup'/>
- <ref name='xmlDictReference'/>
- <ref name='xmlDictSetLimit'/>
- <ref name='xmlDictSize'/>
- <ref name='xmlExpNewCtxt'/>
- </word>
<word name='did'>
<ref name='XML_SCHEMAS_TYPE_BLOCK_DEFAULT'/>
<ref name='xmlTextReaderGetRemainder'/>
@@ -30381,6 +30347,7 @@
</word>
<word name='unsigned'>
<ref name='c'/>
+ <ref name='xmlMallocAtomicLoc'/>
<ref name='xmlURIUnescapeString'/>
</word>
<word name='unsupported'>
diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa
index 0825d53f..0d4b8fe9 100644
--- a/doc/libxml2.xsa
+++ b/doc/libxml2.xsa
@@ -8,182 +8,73 @@
</vendor>
<product id="libxml2">
<name>libxml2</name>
- <version>2.9.2</version>
- <last-release> Oct 16 2014</last-release>
+ <version>v2.9.3</version>
+ <last-release> Nov 20 2015</last-release>
<info-url>http://xmlsoft.org/</info-url>
<changes> - Security:
- Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),
- CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)
-
- - Bug Fixes:
- fix memory leak xml header encoding field with XML_PARSE_IGNORE_ENC (Bart De Schuymer),
- xmlmemory: handle realloc properly (Yegor Yefremov),
- Python generator bug raised by the const change (Daniel Veillard),
- Windows Critical sections not released correctly (Daniel Veillard),
- Parser error on repeated recursive entity expansion containing &amp;lt; (Daniel Veillard),
- xpointer : fixing Null Pointers (Gaurav Gupta),
- Remove Unnecessary Null check in xpointer.c (Gaurav Gupta),
- parser bug on misformed namespace attributes (Dennis Filder),
- Pointer dereferenced before null check (Daniel Veillard),
- Leak of struct addrinfo in xmlNanoFTPConnect() (Gaurav Gupta),
- Possible overflow in HTMLParser.c (Daniel Veillard),
- python/tests/sync.py assumes Python dictionaries are ordered (John Beck),
- Fix Enum check and missing break (Gaurav Gupta),
- xmlIO: Handle error returns from dup() (Philip Withnall),
- Fix a problem properly saving URIs (Daniel Veillard),
- wrong error column in structured error when parsing attribute values (Juergen Keil),
- wrong error column in structured error when skipping whitespace in xml decl (Juergen Keil),
- no error column in structured error handler for xml schema validation errors (Juergen Keil),
- Couple of Missing Null checks (Gaurav Gupta),
- Add couple of missing Null checks (Daniel Veillard),
- xmlschemastypes: Fix potential array overflow (Philip Withnall),
- runtest: Fix a memory leak on parse failure (Philip Withnall),
- xmlIO: Fix an FD leak on gzdopen() failure (Philip Withnall),
- xmlcatalog: Fix a memory leak on quit (Philip Withnall),
- HTMLparser: Correctly initialise a stack allocated structure (Philip Withnall),
- Check for tmon in _xmlSchemaDateAdd() is incorrect (David Kilzer),
- Avoid Possible Null Pointer in trio.c (Gaurav Gupta),
- Fix processing in SAX2 in case of an allocation failure (Daniel Veillard),
- XML Shell command "cd" does not handle "/" at end of path (Daniel Veillard),
- Fix various Missing Null checks (Gaurav Gupta),
- Fix a potential NULL dereference (Daniel Veillard),
- Add a couple of misisng check in xmlRelaxNGCleanupTree (Gaurav Gupta),
- Add a missing argument check (Gaurav Gupta),
- Adding a check in case of allocation error (Gaurav Gupta),
- xmlSaveUri() incorrectly recomposes URIs with rootless paths (Dennis Filder),
- Adding some missing NULL checks (Gaurav),
- Fixes for xmlInitParserCtxt (Daniel Veillard),
- Fix regressions introduced by CVE-2014-0191 patch (Daniel Veillard),
- erroneously ignores a validation error if no error callback set (Daniel Veillard),
- xmllint was not parsing the --c14n11 flag (Sérgio Batista),
- Avoid Possible null pointer dereference in memory debug mode (Gaurav),
- Avoid Double Null Check (Gaurav),
- Restore context size and position after XPATH_OP_ARG (Nick Wellnhofer),
- Fix xmlParseInNodeContext() if node is not element (Daniel Veillard),
- Avoid a possible NULL pointer dereference (Gaurav),
- Fix xmlTextWriterWriteElement when a null content is given (Daniel Veillard),
- Fix an typo 'onrest' in htmlScriptAttributes (Daniel Veillard),
- fixing a ptotential uninitialized access (Daniel Veillard),
- Fix an fd leak in an error case (Daniel Veillard),
- Missing initialization for the catalog module (Daniel Veillard),
- Handling of XPath function arguments in error case (Nick Wellnhofer),
- Fix a couple of missing NULL checks (Gaurav),
- Avoid a possibility of dangling encoding handler (Gaurav),
- Fix HTML push parser to accept HTML_PARSE_NODEFDTD (Arnold Hendriks),
- Fix a bug loading some compressed files (Mike Alexander),
- Fix XPath node comparison bug (Gaurav),
- Type mismatch in xmlschemas.c (Gaurav),
- Type mismatch in xmlschemastypes.c (Gaurav),
- Avoid a deadcode in catalog.c (Daniel Veillard),
- run close socket on Solaris, same as we do on other platforms (Denis Pauk),
- Fix pointer dereferenced before null check (Gaurav),
- Fix a potential NULL dereference in tree code (Daniel Veillard),
- Fix potential NULL pointer dereferences in regexp code (Gaurav),
- xmllint --pretty crashed without following numeric argument (Tim Galeckas),
- Fix XPath expressions of the form '@ns:*' (Nick Wellnhofer),
- Fix XPath '//' optimization with predicates (Nick Wellnhofer),
- Clear up a potential NULL dereference (Daniel Veillard),
- Fix a possible NULL dereference (Gaurav),
- Avoid crash if allocation fails (Daniel Veillard),
- Remove occasional leading space in XPath number formatting (Daniel Veillard),
- Fix handling of mmap errors (Daniel Veillard),
- Catch malloc error and exit accordingly (Daniel Veillard),
- missing else in xlink.c (Ami Fischman),
- Fix a parsing bug on non-ascii element and CR/LF usage (Daniel Veillard),
- Fix a regression in xmlGetDocCompressMode() (Daniel Veillard),
- properly quote the namespace uris written out during c14n (Aleksey Sanin),
- Remove premature XInclude check on URI being relative (Alexey Neyman),
- Fix missing break on last() function for attributes (dcb),
- Do not URI escape in server side includes (Romain Bondue),
- Fix an error in xmlCleanupParser (Alexander Pastukhov)
+ CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),
+ CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),
+ CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),
+ CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),
+ CVE-2015-5312 Another entity expansion issue (David Drysdale),
+ CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),
+ CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),
+ CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),
+ CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),
+ CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),
+ CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)
+ CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),
+ CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),
- Documentation:
- typo in error messages "colon are forbidden from..." (Daniel Veillard),
- Fix a link to James SAX documentation old page (Daniel Veillard),
- Fix typos in relaxng.c (Jan Pokorný),
- Fix a doc typo (Daniel Veillard),
- Fix typos in {tree,xpath}.c (errror) (Jan Pokorný),
- Add limitations about encoding conversion (Daniel Veillard),
- Fix typos in xmlschemas{,types}.c (Jan Pokorný),
- Fix incorrect spelling entites-&gt;entities (Jan Pokorný),
- Forgot to document 2.9.1 release, regenerate docs (Daniel Veillard)
+ Correct spelling of "calling" (Alex Henrie),
+ Fix a small error in xmllint --format description (Fabien Degomme),
+ Avoid XSS on the search of xmlsoft.org (Daniel Veillard)
- Portability:
- AC_CONFIG_FILES and executable bit (Roumen Petrov),
- remove HAVE_CONFIG_H dependency in testlimits.c (Roumen Petrov),
- fix some tabs mixing incompatible with python3 (Roumen Petrov),
- Visual Studio 14 CTP defines snprintf() (Francis Dupont),
- OS400: do not try to copy unexisting doc files (Patrick Monnerat),
- OS400: use either configure.ac or configure.in. (Patrick Monnerat),
- os400: make-src.sh: create physical file with target CCSID (Patrick Monnerat),
- OS400: Add some more C macros equivalent procedures. (Patrick Monnerat),
- OS400: use C macros to implement equivalent RPG support procedures. (Patrick Monnerat),
- OS400: implement XPath macros as procedures for ILE/RPG support. (Patrick Monnerat),
- OS400: include in distribution tarball. (Patrick Monnerat),
- OS400: Add README: compilation directives and OS/400 specific stuff. (Patrick Monnerat),
- OS400: Add compilation scripts. (Patrick Monnerat),
- OS400: ILE RPG language header files. (Patrick Monnerat),
- OS400: implement some macros as functions for ILE/RPG language support (that as no macros). (Patrick Monnerat),
- OS400: UTF8&lt;--&gt;EBCDIC wrappers for system and external library calls (Patrick Monnerat),
- OS400: Easy character transcoding support (Patrick Monnerat),
- OS400: iconv functions compatibility wrappers and table builder. (Patrick Monnerat),
- OS400: create architecture directory. Implement dlfcn emulation. (Patrick Monnerat),
- Fix building when configuring without xpath and xptr (Daniel Veillard),
- configure: Add --with-python-install-dir (Jonas Eriksson),
- Fix compilation with minimum and xinclude. (Nicolas Le Cam),
- Compile out use of xmlValidateNCName() when not available. (Nicolas Le Cam),
- Fix compilation with minimum and schematron. (Nicolas Le Cam),
- Legacy needs xmlSAX2StartElement() and xmlSAX2EndElement(). (Nicolas Le Cam),
- Don't use xmlValidateName() when not available. (Nicolas Le Cam),
- Fix a portability issue on Windows (Longstreth Jon),
- Various portability patches for OpenVMS (Jacob (Jouk) Jansen),
- Use specific macros for portability to OS/400 (Patrick Monnerat),
- Add macros needed for OS/400 portability (Patrick Monnerat),
- Portability patch for fopen on OS/400 (Patrick Monnerat),
- Portability fixes for OS/400 (Patrick Monnerat),
- Improve va_list portability (Patrick Monnerat),
- Portability fix (Patrick Monnerat),
- Portability fix (Patrick Monnerat),
- Generic portability fix (Patrick Monnerat),
- Shortening lines in headers (Patrick Monnerat),
- build: Use pkg-config to find liblzma in preference to AC_CHECK_LIB (Philip Withnall),
- build: Add @LZMA_LIBS@ to libxml’s pkg-config files (Philip Withnall),
- fix some tabs mixing incompatible with python3 (Daniel Veillard),
- add additional defines checks for support "./configure --with-minimum" (Denis Pauk),
- Another round of fixes for older versions of Python (Arfrever Frehtes Taifersar Arahesis),
- python: fix drv_libxml2.py for python3 compatibility (Alexandre Rostovtsev),
- python: Fix compiler warnings when building python3 bindings (Armin K),
- Fix for compilation with python 2.6.8 (Petr Sumbera)
+ threads: use forward declarations only for glibc (Michael Heimpold),
+ Update Win32 configure.js to search for configure.ac (Daniel Veillard)
+
+ - Bug Fixes:
+ Bug on creating new stream from entity (Daniel Veillard),
+ Fix some loop issues embedding NEXT (Daniel Veillard),
+ Do not print error context when there is none (Daniel Veillard),
+ Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),
+ Fix parsing short unclosed comment uninitialized access (Daniel Veillard),
+ Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),
+ Fix a bug in CData error handling in the push parser (Daniel Veillard),
+ Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),
+ Fix the spurious ID already defined error (Daniel Veillard),
+ Fix previous change to node sort order (Nick Wellnhofer),
+ Fix a self assignment issue raised by clang (Scott Graham),
+ Fail parsing early on if encoding conversion failed (Daniel Veillard),
+ Do not process encoding values if the declaration if broken (Daniel Veillard),
+ Silence clang's -Wunknown-attribute (Michael Catanzaro),
+ xmlMemUsed is not thread-safe (Martin von Gagern),
+ Fix support for except in nameclasses (Daniel Veillard),
+ Fix order of root nodes (Nick Wellnhofer),
+ Allow attributes on descendant-or-self axis (Nick Wellnhofer),
+ Fix the fix to Windows locking (Steve Nairn),
+ Fix timsort invariant loop re: Envisage article (Christopher Swenson),
+ Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),
+ Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),
+ Remove various unused value assignments (Philip Withnall),
+ Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),
+ Revert "Missing initialization for the catalog module" (Daniel Veillard)
- Improvements:
- win32/libxml2.def.src after rebuild in doc (Roumen Petrov),
- elfgcchack.h: more legacy needs xmlSAX2StartElement() and xmlSAX2EndElement() (Roumen Petrov),
- elfgcchack.h: add xmlXPathNodeEval and xmlXPathSetContextNode (Roumen Petrov),
- Provide cmake module (Samuel Martin),
- Fix a couple of issues raised by make dist (Daniel Veillard),
- Fix and add const qualifiers (Kurt Roeckx),
- Preparing for upcoming release of 2.9.2 (Daniel Veillard),
- Fix zlib and lzma libraries check via command line (Dmitriy),
- wrong error column in structured error when parsing end tag (Juergen Keil),
- doc/news.html: small update to avoid line join while generating NEWS. (Patrick Monnerat),
- Add methods for python3 iterator (Ron Angeles),
- Support element node traversal in document fragments. (Kyle VanderBeek),
- xmlNodeSetName: Allow setting the name to a substring of the currently set name (Tristan Van Berkom),
- Added macros for argument casts (Eric Zurcher),
- adding init calls to xml and html Read parsing entry points (Daniel Veillard),
- Get rid of 'REPLACEMENT CHARACTER' Unicode chars in xmlschemas.c (Jan Pokorný),
- Implement choice for name classes on attributes (Shaun McCance),
- Two small namespace tweaks (Daniel Veillard),
- xmllint --memory should fail on empty files (Daniel Veillard),
- Cast encoding name to char pointer to match arg type (Nikolay Sivov)
+ Reuse xmlHaltParser() where it makes sense (Daniel Veillard),
+ xmlStopParser reset errNo (Daniel Veillard),
+ Reenable xz support by default (Daniel Veillard),
+ Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),
+ Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),
+ Regression test for bug #695699 (Nick Wellnhofer),
+ Add a couple of XPath tests (Nick Wellnhofer),
+ Add Python 3 rpm subpackage (Tomas Radej),
+ libxml2-config.cmake.in: update include directories (Samuel Martin),
+ Adding example from bugs 738805 to regression tests (Daniel Veillard)
- Cleanups:
- Removal of old configure.in (Daniel Veillard),
- Unreachable code in tree.c (Gaurav Gupta),
- Remove a couple of dead conditions (Gaurav Gupta),
- Avoid some dead code and cleanup in relaxng.c (Gaurav),
- Drop not needed checks (Denis Pauk),
- Fix a wrong test (Daniel Veillard)
</changes>
diff --git a/doc/news.html b/doc/news.html
index e76ef558..0c692c8b 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -8,7 +8,97 @@ H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>Releases</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Releases</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The <a href="ChangeLog.html">change log</a> describes the recents commits
-to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>v2.9.3: Nov 20 2015</h3><ul>
+to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>2.9.4: May 23 2016</h3><ul>
+ <li>Security:<br />
+ More format string warnings with possible format string vulnerability (David Kilzer),<br />
+ Avoid building recursive entities (Daniel Veillard),<br />
+ Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br />
+ Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br />
+ Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br />
+ Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br />
+ Fix some format string warnings with possible format string vulnerability (David Kilzer),<br />
+ Detect change of encoding when parsing HTML names (Hugh Davenport),<br />
+ Fix inappropriate fetch of entities content (Daniel Veillard),<br />
+ Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br />
+ Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br />
+ Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br />
+ Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br />
+ Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br />
+ </li>
+
+ <li>Documentation:<br />
+ Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br />
+ Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br />
+ Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br />
+ Correct a typo. (Shlomi Fish)<br />
+ </li>
+
+ <li>Portability:<br />
+ Correct the usage of LDFLAGS (Mattias Hansson),<br />
+ Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br />
+ libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br />
+ Fix apibuild for a recently added construct (Daniel Veillard),<br />
+ Use pkg-config to locate zlib when possible (Stewart Brodie),<br />
+ Use pkg-config to locate ICU when possible (Stewart Brodie),<br />
+ Portability to non C99 compliant compilers (Patrick Monnerat),<br />
+ dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br />
+ os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br />
+ os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br />
+ os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br />
+ os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br />
+ os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br />
+ os400: implement CL command XMLLINT. (Patrick Monnerat),<br />
+ os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br />
+ os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br />
+ os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br />
+ os400: use like() for double type. (Patrick Monnerat),<br />
+ os400: use like() for int type. (Patrick Monnerat),<br />
+ os400: use like() for unsigned int type. (Patrick Monnerat),<br />
+ os400: use like() for enum types. (Patrick Monnerat),<br />
+ Add xz to xml2-config --libs output (Baruch Siach),<br />
+ Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br />
+ win32\VC10\config.h and VS 2015 (Bruce Dawson),<br />
+ Add configure maintainer mode (orzen)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br />
+ Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br />
+ Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br />
+ Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br />
+ Integer overflow parsing port number in URI (Michael Paddon),<br />
+ Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br />
+ Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br />
+ Fix namespace axis traversal (Nick Wellnhofer),<br />
+ Fix null pointer deref in docs with no root element (Hugh Davenport),<br />
+ Fix XSD validation of URIs with ampersands (Alex Henrie),<br />
+ xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br />
+ xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+ xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+ Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br />
+ Fix namespace::node() XPath expression (Nick Wellnhofer),<br />
+ Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br />
+ Fix parsing of NCNames in XPath (Nick Wellnhofer),<br />
+ Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br />
+ Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br />
+ Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br />
+ Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br />
+ error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br />
+ Add missing RNG test files (David Kilzer),<br />
+ Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br />
+ Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br />
+ Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br />
+ python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br />
+ Add autogen.sh to distrib (orzen),<br />
+ Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Add more debugging info to runtest (Daniel Veillard),<br />
+ Implement "runtest -u" mode (David Kilzer),<br />
+ Add a make rule to rebuild for ASAN (Daniel Veillard)<br />
+ </li>
+</ul><h3>v2.9.3: Nov 20 2015</h3><ul>
<li>Security:<br />
CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br />
CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br />
diff --git a/doc/xml.html b/doc/xml.html
index 51dca8c3..d035934b 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -709,6 +709,98 @@ to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p>
<p>Here is the list of public releases:</p>
+<h3>2.9.4: May 23 2016</h3>
+<ul>
+ <li>Security:<br/>
+ More format string warnings with possible format string vulnerability (David Kilzer),<br/>
+ Avoid building recursive entities (Daniel Veillard),<br/>
+ Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br/>
+ Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br/>
+ Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br/>
+ Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br/>
+ Fix some format string warnings with possible format string vulnerability (David Kilzer),<br/>
+ Detect change of encoding when parsing HTML names (Hugh Davenport),<br/>
+ Fix inappropriate fetch of entities content (Daniel Veillard),<br/>
+ Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br/>
+ Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br/>
+ Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br/>
+ Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br/>
+ Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br/>
+ Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br/>
+ Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br/>
+ Correct a typo. (Shlomi Fish)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Correct the usage of LDFLAGS (Mattias Hansson),<br/>
+ Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br/>
+ libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br/>
+ Fix apibuild for a recently added construct (Daniel Veillard),<br/>
+ Use pkg-config to locate zlib when possible (Stewart Brodie),<br/>
+ Use pkg-config to locate ICU when possible (Stewart Brodie),<br/>
+ Portability to non C99 compliant compilers (Patrick Monnerat),<br/>
+ dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br/>
+ os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br/>
+ os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br/>
+ os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br/>
+ os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br/>
+ os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br/>
+ os400: implement CL command XMLLINT. (Patrick Monnerat),<br/>
+ os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br/>
+ os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br/>
+ os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br/>
+ os400: use like() for double type. (Patrick Monnerat),<br/>
+ os400: use like() for int type. (Patrick Monnerat),<br/>
+ os400: use like() for unsigned int type. (Patrick Monnerat),<br/>
+ os400: use like() for enum types. (Patrick Monnerat),<br/>
+ Add xz to xml2-config --libs output (Baruch Siach),<br/>
+ Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br/>
+ win32\VC10\config.h and VS 2015 (Bruce Dawson),<br/>
+ Add configure maintainer mode (orzen)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br/>
+ Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br/>
+ Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br/>
+ Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br/>
+ Integer overflow parsing port number in URI (Michael Paddon),<br/>
+ Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br/>
+ Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br/>
+ Fix namespace axis traversal (Nick Wellnhofer),<br/>
+ Fix null pointer deref in docs with no root element (Hugh Davenport),<br/>
+ Fix XSD validation of URIs with ampersands (Alex Henrie),<br/>
+ xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br/>
+ xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+ xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+ Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br/>
+ Fix namespace::node() XPath expression (Nick Wellnhofer),<br/>
+ Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br/>
+ Fix parsing of NCNames in XPath (Nick Wellnhofer),<br/>
+ Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br/>
+ Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br/>
+ Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br/>
+ Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br/>
+ error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br/>
+ Add missing RNG test files (David Kilzer),<br/>
+ Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br/>
+ Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br/>
+ Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br/>
+ python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br/>
+ Add autogen.sh to distrib (orzen),<br/>
+ Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Add more debugging info to runtest (Daniel Veillard),<br/>
+ Implement "runtest -u" mode (David Kilzer),<br/>
+ Add a make rule to rebuild for ASAN (Daniel Veillard)<br/>
+ </li>
+</ul>
<h3>v2.9.3: Nov 20 2015</h3>
<ul>
<li>Security:<br/>
diff --git a/encoding.c b/encoding.c
index 574e1aed..e49c7f89 100644
--- a/encoding.c
+++ b/encoding.c
@@ -93,7 +93,7 @@ xmlEncodingErrMemory(const char *extra)
*
* n encoding error
*/
-static void
+static void LIBXML_ATTR_FORMAT(2,0)
xmlEncodingErr(xmlParserErrors error, const char *msg, const char *val)
{
__xmlRaiseError(NULL, NULL, NULL, NULL, NULL,
diff --git a/entities.c b/entities.c
index a72afb34..64808ff6 100644
--- a/entities.c
+++ b/entities.c
@@ -83,7 +83,7 @@ xmlEntitiesErrMemory(const char *extra)
*
* Handle an out of memory condition
*/
-static void
+static void LIBXML_ATTR_FORMAT(2,0)
xmlEntitiesErr(xmlParserErrors code, const char *msg)
{
__xmlSimpleError(XML_FROM_TREE, code, NULL, msg, NULL);
diff --git a/error.c b/error.c
index 9c450405..9606f135 100644
--- a/error.c
+++ b/error.c
@@ -18,7 +18,7 @@
void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED,
const char *msg,
- ...);
+ ...) LIBXML_ATTR_FORMAT(2,3);
#define XML_GET_VAR_STR(msg, str) { \
int size, prev_size = -1; \
@@ -177,8 +177,8 @@ xmlParserPrintFileContextInternal(xmlParserInputPtr input ,
xmlChar content[81]; /* space for 80 chars + line terminator */
xmlChar *ctnt;
- if ((input == NULL) || (input->cur == NULL) ||
- (*input->cur == 0)) return;
+ if ((input == NULL) || (input->cur == NULL))
+ return;
cur = input->cur;
base = input->base;
diff --git a/include/libxml/dict.h b/include/libxml/dict.h
index 7022ec8b..b83db59a 100644
--- a/include/libxml/dict.h
+++ b/include/libxml/dict.h
@@ -1,5 +1,5 @@
/*
- * Summary: string dictionnary
+ * Summary: string dictionary
* Description: dictionary of reusable strings, just used to avoid allocation
* and freeing operations.
*
@@ -11,6 +11,18 @@
#ifndef __XML_DICT_H__
#define __XML_DICT_H__
+#ifdef __cplusplus
+#define __XML_EXTERNC extern "C"
+#else
+#define __XML_EXTERNC
+#endif
+
+/*
+ * The dictionary.
+ */
+__XML_EXTERNC typedef struct _xmlDict xmlDict;
+__XML_EXTERNC typedef xmlDict *xmlDictPtr;
+
#include <limits.h>
#include <libxml/xmlversion.h>
#include <libxml/tree.h>
@@ -20,12 +32,6 @@ extern "C" {
#endif
/*
- * The dictionnary.
- */
-typedef struct _xmlDict xmlDict;
-typedef xmlDict *xmlDictPtr;
-
-/*
* Initializer
*/
XMLPUBFUN int XMLCALL xmlInitializeDict(void);
@@ -48,7 +54,7 @@ XMLPUBFUN void XMLCALL
xmlDictFree (xmlDictPtr dict);
/*
- * Lookup of entry in the dictionnary.
+ * Lookup of entry in the dictionary.
*/
XMLPUBFUN const xmlChar * XMLCALL
xmlDictLookup (xmlDictPtr dict,
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 3f5730dc..47fbec03 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -260,7 +260,7 @@ struct _xmlParserCtxt {
void *catalogs; /* document's own catalog */
int recovery; /* run in recovery mode */
int progressive; /* is this a progressive parsing */
- xmlDictPtr dict; /* dictionnary for the parser */
+ xmlDictPtr dict; /* dictionary for the parser */
const xmlChar * *atts; /* array for the attributes callbacks */
int maxatts; /* the size of the array */
int docdict; /* use strings from dict to build tree */
@@ -1099,7 +1099,7 @@ typedef enum {
XML_PARSE_SAX1 = 1<<9, /* use the SAX1 interface internally */
XML_PARSE_XINCLUDE = 1<<10,/* Implement XInclude substitition */
XML_PARSE_NONET = 1<<11,/* Forbid network access */
- XML_PARSE_NODICT = 1<<12,/* Do not reuse the context dictionnary */
+ XML_PARSE_NODICT = 1<<12,/* Do not reuse the context dictionary */
XML_PARSE_NSCLEAN = 1<<13,/* remove redundant namespaces declarations */
XML_PARSE_NOCDATA = 1<<14,/* merge CDATA as text nodes */
XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */
diff --git a/include/libxml/parserInternals.h b/include/libxml/parserInternals.h
index 6065320e..f30fc687 100644
--- a/include/libxml/parserInternals.h
+++ b/include/libxml/parserInternals.h
@@ -351,7 +351,7 @@ XMLPUBFUN void XMLCALL
xmlParserErrors xmlerr,
const char *msg,
const xmlChar * str1,
- const xmlChar * str2);
+ const xmlChar * str2) LIBXML_ATTR_FORMAT(3,0);
#endif
/**
diff --git a/include/libxml/schemasInternals.h b/include/libxml/schemasInternals.h
index 4f0ca9a1..c7cf5525 100644
--- a/include/libxml/schemasInternals.h
+++ b/include/libxml/schemasInternals.h
@@ -28,52 +28,52 @@ extern "C" {
typedef enum {
XML_SCHEMAS_UNKNOWN = 0,
- XML_SCHEMAS_STRING,
- XML_SCHEMAS_NORMSTRING,
- XML_SCHEMAS_DECIMAL,
- XML_SCHEMAS_TIME,
- XML_SCHEMAS_GDAY,
- XML_SCHEMAS_GMONTH,
- XML_SCHEMAS_GMONTHDAY,
- XML_SCHEMAS_GYEAR,
- XML_SCHEMAS_GYEARMONTH,
- XML_SCHEMAS_DATE,
- XML_SCHEMAS_DATETIME,
- XML_SCHEMAS_DURATION,
- XML_SCHEMAS_FLOAT,
- XML_SCHEMAS_DOUBLE,
- XML_SCHEMAS_BOOLEAN,
- XML_SCHEMAS_TOKEN,
- XML_SCHEMAS_LANGUAGE,
- XML_SCHEMAS_NMTOKEN,
- XML_SCHEMAS_NMTOKENS,
- XML_SCHEMAS_NAME,
- XML_SCHEMAS_QNAME,
- XML_SCHEMAS_NCNAME,
- XML_SCHEMAS_ID,
- XML_SCHEMAS_IDREF,
- XML_SCHEMAS_IDREFS,
- XML_SCHEMAS_ENTITY,
- XML_SCHEMAS_ENTITIES,
- XML_SCHEMAS_NOTATION,
- XML_SCHEMAS_ANYURI,
- XML_SCHEMAS_INTEGER,
- XML_SCHEMAS_NPINTEGER,
- XML_SCHEMAS_NINTEGER,
- XML_SCHEMAS_NNINTEGER,
- XML_SCHEMAS_PINTEGER,
- XML_SCHEMAS_INT,
- XML_SCHEMAS_UINT,
- XML_SCHEMAS_LONG,
- XML_SCHEMAS_ULONG,
- XML_SCHEMAS_SHORT,
- XML_SCHEMAS_USHORT,
- XML_SCHEMAS_BYTE,
- XML_SCHEMAS_UBYTE,
- XML_SCHEMAS_HEXBINARY,
- XML_SCHEMAS_BASE64BINARY,
- XML_SCHEMAS_ANYTYPE,
- XML_SCHEMAS_ANYSIMPLETYPE
+ XML_SCHEMAS_STRING = 1,
+ XML_SCHEMAS_NORMSTRING = 2,
+ XML_SCHEMAS_DECIMAL = 3,
+ XML_SCHEMAS_TIME = 4,
+ XML_SCHEMAS_GDAY = 5,
+ XML_SCHEMAS_GMONTH = 6,
+ XML_SCHEMAS_GMONTHDAY = 7,
+ XML_SCHEMAS_GYEAR = 8,
+ XML_SCHEMAS_GYEARMONTH = 9,
+ XML_SCHEMAS_DATE = 10,
+ XML_SCHEMAS_DATETIME = 11,
+ XML_SCHEMAS_DURATION = 12,
+ XML_SCHEMAS_FLOAT = 13,
+ XML_SCHEMAS_DOUBLE = 14,
+ XML_SCHEMAS_BOOLEAN = 15,
+ XML_SCHEMAS_TOKEN = 16,
+ XML_SCHEMAS_LANGUAGE = 17,
+ XML_SCHEMAS_NMTOKEN = 18,
+ XML_SCHEMAS_NMTOKENS = 19,
+ XML_SCHEMAS_NAME = 20,
+ XML_SCHEMAS_QNAME = 21,
+ XML_SCHEMAS_NCNAME = 22,
+ XML_SCHEMAS_ID = 23,
+ XML_SCHEMAS_IDREF = 24,
+ XML_SCHEMAS_IDREFS = 25,
+ XML_SCHEMAS_ENTITY = 26,
+ XML_SCHEMAS_ENTITIES = 27,
+ XML_SCHEMAS_NOTATION = 28,
+ XML_SCHEMAS_ANYURI = 29,
+ XML_SCHEMAS_INTEGER = 30,
+ XML_SCHEMAS_NPINTEGER = 31,
+ XML_SCHEMAS_NINTEGER = 32,
+ XML_SCHEMAS_NNINTEGER = 33,
+ XML_SCHEMAS_PINTEGER = 34,
+ XML_SCHEMAS_INT = 35,
+ XML_SCHEMAS_UINT = 36,
+ XML_SCHEMAS_LONG = 37,
+ XML_SCHEMAS_ULONG = 38,
+ XML_SCHEMAS_SHORT = 39,
+ XML_SCHEMAS_USHORT = 40,
+ XML_SCHEMAS_BYTE = 41,
+ XML_SCHEMAS_UBYTE = 42,
+ XML_SCHEMAS_HEXBINARY = 43,
+ XML_SCHEMAS_BASE64BINARY = 44,
+ XML_SCHEMAS_ANYTYPE = 45,
+ XML_SCHEMAS_ANYSIMPLETYPE = 46
} xmlSchemaValType;
/*
diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h
index 43e68ca5..037c16d5 100644
--- a/include/libxml/xmlerror.h
+++ b/include/libxml/xmlerror.h
@@ -937,7 +937,7 @@ XMLPUBFUN void XMLCALL
int code,
xmlNodePtr node,
const char *msg,
- const char *extra);
+ const char *extra) LIBXML_ATTR_FORMAT(4,0);
#endif
#ifdef __cplusplus
}
diff --git a/include/libxml/xmlstring.h b/include/libxml/xmlstring.h
index 20362365..2d0b2d16 100644
--- a/include/libxml/xmlstring.h
+++ b/include/libxml/xmlstring.h
@@ -97,13 +97,13 @@ XMLPUBFUN xmlChar * XMLCALL
XMLPUBFUN int XMLCALL
xmlStrPrintf (xmlChar *buf,
int len,
- const xmlChar *msg,
- ...);
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(3,4);
XMLPUBFUN int XMLCALL
xmlStrVPrintf (xmlChar *buf,
int len,
- const xmlChar *msg,
- va_list ap);
+ const char *msg,
+ va_list ap) LIBXML_ATTR_FORMAT(3,0);
XMLPUBFUN int XMLCALL
xmlGetUTF8Char (const unsigned char *utf,
diff --git a/include/libxml/xpathInternals.h b/include/libxml/xpathInternals.h
index 70c9db96..76a6b481 100644
--- a/include/libxml/xpathInternals.h
+++ b/include/libxml/xpathInternals.h
@@ -229,7 +229,7 @@ XMLPUBFUN void * XMLCALL
* Empties a node-set.
*/
#define xmlXPathEmptyNodeSet(ns) \
- { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
+ { while ((ns)->nodeNr > 0) (ns)->nodeTab[--(ns)->nodeNr] = NULL; }
/**
* CHECK_ERROR:
diff --git a/libxml.h b/libxml.h
index 2da9044e..88e515f5 100644
--- a/libxml.h
+++ b/libxml.h
@@ -9,6 +9,8 @@
#ifndef __XML_LIBXML_H__
#define __XML_LIBXML_H__
+#include <libxml/xmlstring.h>
+
#ifndef NO_LARGEFILE_SOURCE
#ifndef _LARGEFILE_SOURCE
#define _LARGEFILE_SOURCE
@@ -68,7 +70,7 @@ extern int __xmlRegisterCallbacks;
* internal error reporting routines, shared but not partof the API.
*/
void __xmlIOErr(int domain, int code, const char *extra);
-void __xmlLoaderErr(void *ctx, const char *msg, const char *filename);
+void __xmlLoaderErr(void *ctx, const char *msg, const char *filename) LIBXML_ATTR_FORMAT(2,0);
#ifdef LIBXML_HTML_ENABLED
/*
* internal function of HTML parser needed for xmlParseInNodeContext
@@ -93,6 +95,7 @@ int __xmlInitializeDict(void);
int __xmlRandom(void);
#endif
+XMLPUBFUN xmlChar * XMLCALL xmlEscapeFormatString(xmlChar **msg);
int xmlNop(void);
#ifdef IN_LIBXML
diff --git a/optim/hash_dict.txt b/optim/hash_dict.txt
index f655deb4..a447b7e9 100644
--- a/optim/hash_dict.txt
+++ b/optim/hash_dict.txt
@@ -1,4 +1,4 @@
-Reuses a dictionnary for the hash table to reduce the string compare
+Reuses a dictionary for the hash table to reduce the string compare
costs. Not worth it unless validating big DTDs
without with
diff --git a/os400/README400 b/os400/README400
index 6c16de91..fff923cd 100644
--- a/os400/README400
+++ b/os400/README400
@@ -185,15 +185,27 @@ const char * xmlVasprintf(xmlDictPtr * dict,
va_list args);
+xmllint and xmlcatalog programs:
+
+ These programs are fully implemented at the qshell level, with standard
+command line options. Links to these are installed in sub-directory bin of
+the IFS installation directory.
+ CL command interfaces to these programs are also provided with limited
+support. In particular, interactive mode is not supported and argument count
+and lengths are limited by the CL command syntax.
+
ILE/RPG binding:
All standard types and procedures are provided. Since ILE/RPG does not
-support macros, they have not been ported, with the exceptions of the more
-useful ones and the global/threaded variables access macros. These variables
-can be read with function get_xxx(void), where xxxx is the name of the
-variable; they may be set by calling function set_xxxx(value), where value is
-of the same type as the variable.
+support macros, they have not been ported. However some of them are emulated
+as functions: these are the more useful ones (xmlXPathNodeSetGetLength,
+xmlXPathNodeSetItem, xmlXPathNodeSetIsEmpty, htmlDefaultSubelement,
+htmlElementAllowedHereDesc, htmlRequiredAttrs) and the global/threaded
+variables access macros. These variables can be read with function
+get_xxx(void), where xxxx is the name of the variable; they may be set by
+calling function set_xxxx(value), where value is of the same type as the
+variable.
The C va_list is not implemented as such in ILE/RPG. Functions implementing
va_list and associated methods are provided:
diff --git a/os400/dlfcn/dlfcn.c b/os400/dlfcn/dlfcn.c
index 1488e121..77190b32 100644
--- a/os400/dlfcn/dlfcn.c
+++ b/os400/dlfcn/dlfcn.c
@@ -375,7 +375,7 @@ dlmakepath(char * path, size_t pathlen, const char * tail, size_t taillen)
case 2:
if (tail[1] != '.')
break;
-
+
pathlen = dlparentpath(path, pathlen);
case 1:
diff --git a/os400/initscript.sh b/os400/initscript.sh
index fb805071..cc52e45e 100644
--- a/os400/initscript.sh
+++ b/os400/initscript.sh
@@ -165,15 +165,38 @@ action_needed()
}
-# make_module module_name source_name [additional_definitions]
+# make_module [option] module_name source_name
#
# Compile source name into ASCII module if needed.
# As side effect, append the module name to variable MODULES.
# Set LINK to "YES" if the module has been compiled.
+# Options are:
+# --define <additional definitions>
+# --ebcdic
+# --sysiconv
make_module()
{
+ DEFN=
+ EBCDIC=
+ SYSICONV=
+ while true
+ do case "${1}" in
+ --define)
+ DEFN="${2}"
+ shift
+ ;;
+ --ebcdic)
+ EBCDIC=yes
+ ;;
+ --sysiconv)
+ SYSICONV=yes
+ ;;
+ *) break
+ esac
+ shift
+ done
MODULES="${MODULES} ${1}"
MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
action_needed "${MODIFSNAME}" "${2}" || return 0;
@@ -185,7 +208,7 @@ make_module()
# the source file and we compile that temporary file.
rm -f __tmpsrcf.c
- if [ "${4}" != 'ebcdic' ]
+ if [ -z "${EBCDIC}" ]
then echo "#line 1 \"${2}\"" >> __tmpsrcf.c
echo "#pragma convert(819)" >> __tmpsrcf.c
echo '#include "wrappers.h"' >> __tmpsrcf.c
@@ -197,8 +220,10 @@ make_module()
CMD="${CMD} OPTION(*INCDIRFIRST)"
CMD="${CMD} SYSIFCOPT(*IFS64IO) LANGLVL(*EXTENDED) LOCALETYPE(*LOCALE)"
CMD="${CMD} INCDIR("
- CMD="${CMD} '${TOPDIR}/os400/iconv'"
- if [ "${4}" != 'ebcdic' ]
+ if [ -z "${SYSICONV}" ]
+ then CMD="${CMD} '${TOPDIR}/os400/iconv'"
+ fi
+ if [ -z "${EBCDIC}" ]
then CMD="${CMD} '/qibm/proddata/qadrt/include'"
fi
CMD="${CMD} '${TOPDIR}/os400' '${TOPDIR}/os400/dlfcn'"
@@ -211,7 +236,7 @@ make_module()
CMD="${CMD} OUTPUT(${OUTPUT})"
CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
CMD="${CMD} DBGVIEW(${DEBUG})"
- CMD="${CMD} DEFINE('_REENTRANT' 'TRIO_HAVE_CONFIG_H' 'NDEBUG' ${3})"
+ CMD="${CMD} DEFINE('_REENTRANT' 'TRIO_HAVE_CONFIG_H' 'NDEBUG' ${DEFN})"
system "${CMD}"
rm -f __tmpsrcf.c
diff --git a/os400/libxmlmain.c b/os400/libxmlmain.c
new file mode 100644
index 00000000..91c848af
--- /dev/null
+++ b/os400/libxmlmain.c
@@ -0,0 +1,102 @@
+/**
+*** QADRT/QADRTMAIN2 substitution program.
+*** This is needed because the IBM-provided QADRTMAIN2 does not
+*** properly translate arguments by default or if no locale is provided.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdlib.h>
+#include <string.h>
+#include <iconv.h>
+#include <errno.h>
+#include <locale.h>
+
+/* Do not use qadrt.h since it defines unneeded static procedures. */
+extern void QadrtInit(void);
+extern int QadrtFreeConversionTable(void);
+extern int QadrtFreeEnviron(void);
+extern char * setlocale_a(int, const char *);
+
+
+/* The ASCII main program. */
+extern int main_a(int argc, char * * argv);
+
+/* Global values of original EBCDIC arguments. */
+int ebcdic_argc;
+char * * ebcdic_argv;
+
+
+int
+main(int argc, char * * argv)
+
+{
+ int i;
+ int j;
+ iconv_t cd;
+ size_t bytecount = 0;
+ char * inbuf;
+ char * outbuf;
+ size_t inbytesleft;
+ size_t outbytesleft;
+ char dummybuf[128];
+ char tocode[32];
+ char fromcode[32];
+
+ ebcdic_argc = argc;
+ ebcdic_argv = argv;
+
+ /* Build the encoding converter. */
+ strncpy(tocode, "IBMCCSID01208", sizeof tocode);
+ strncpy(fromcode, "IBMCCSID000000000010", sizeof fromcode);
+ cd = iconv_open(tocode, fromcode);
+
+ /* Measure the arguments. */
+ for (i = 0; i < argc; i++) {
+ inbuf = argv[i];
+ do {
+ inbytesleft = 0;
+ outbuf = dummybuf;
+ outbytesleft = sizeof dummybuf;
+ j = iconv(cd,
+ &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ bytecount += outbuf - dummybuf;
+ } while (j == -1 && errno == E2BIG);
+ /* Reset the shift state. */
+ iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+ }
+
+ /* Allocate memory for the ASCII arguments and vector. */
+ argv = (char * *) malloc((argc + 1) * sizeof *argv + bytecount);
+
+ /* Build the vector and convert argument encoding. */
+ outbuf = (char *) (argv + argc + 1);
+ outbytesleft = bytecount;
+
+ for (i = 0; i < argc; i++) {
+ argv[i] = outbuf;
+ inbuf = ebcdic_argv[i];
+ inbytesleft = 0;
+ iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+ }
+
+ iconv_close(cd);
+ argv[argc] = NULL;
+
+ /* Try setting the locale regardless of QADRT_ENV_LOCALE. */
+ setlocale_a(LC_ALL, "");
+
+ /* Call the program. */
+ i = main_a(argc, argv);
+
+ /* Clean-up allocated items. */
+ free((char *) argv);
+ QadrtFreeConversionTable();
+ QadrtFreeEnviron();
+
+ /* Terminate. */
+ return i;
+}
diff --git a/os400/libxmlrpg/DOCBparser.rpgle b/os400/libxmlrpg/DOCBparser.rpgle
index bf5aaa2d..08a6b8c0 100644
--- a/os400/libxmlrpg/DOCBparser.rpgle
+++ b/os400/libxmlrpg/DOCBparser.rpgle
@@ -13,6 +13,7 @@
/if defined(LIBXML_DOCB_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/parserInternals"
@@ -46,13 +47,14 @@
* There is only few public functions.
d docbEncodeEntities...
- d pr 10i 0 extproc('docbEncodeEntities')
+ d pr extproc('docbEncodeEntities')
+ d like(xmlCint)
d out * value options(*string) unsigned char *
d outlen * value int *
d in * value options(*string) const unsigned char
d *
d inlen * value int *
- d quoteChar 10i 0 value
+ d quoteChar value like(xmlCint)
d docbSAXParseDoc...
d pr extproc('docbSAXParseDoc')
@@ -92,15 +94,16 @@
d sax value like(docbSAXHandlerPtr)
d user_data * value void *
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
d enc value like(xmlCharEncoding)
- d docbParseChunk pr 10i 0 extproc('docbParseChunk')
+ d docbParseChunk pr extproc('docbParseChunk')
+ d like(xmlCint)
d ctxt value like(docbParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
- d terminate 10i 0 value
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
d docbCreateFileParserCtxt...
d pr extproc('docbCreateFileParserCtxt')
@@ -109,7 +112,8 @@
d encoding * value options(*string) const char *
d docbParseDocument...
- d pr 10i 0 extproc('docbParseDocument')
+ d pr extproc('docbParseDocument')
+ d like(xmlCint)
d ctxt value like(docbParserCtxtPtr)
/endif LIBXML_DOCB_ENABLED
diff --git a/os400/libxmlrpg/HTMLparser.rpgle b/os400/libxmlrpg/HTMLparser.rpgle
index d4c5f8d9..c27d8e5f 100644
--- a/os400/libxmlrpg/HTMLparser.rpgle
+++ b/os400/libxmlrpg/HTMLparser.rpgle
@@ -12,11 +12,12 @@
/define HTML_PARSER_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xmlTypesC"
- /include "libxmlrpg/parser"
/if defined(LIBXML_HTML_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+
* Most of the back-end structures from XML and HTML are shared.
d htmlParserCtxtPtr...
@@ -96,7 +97,7 @@
d htmlEntityDesc...
d ds based(htmlEntityDescPtr)
d align qualified
- d value 10u 0 Unicode char value
+ d value like(xmlCuint)
d name * const char *
d desc * const char *
@@ -114,15 +115,17 @@
d htmlEntityValueLookup...
d pr extproc('htmlEntityValueLookup')
d like(htmlEntityDescPtr) const
- d value 10u 0 value
+ d value value like(xmlCuint)
d htmlIsAutoClosed...
- d pr 10i 0 extproc('htmlIsAutoClosed')
+ d pr extproc('htmlIsAutoClosed')
+ d like(xmlCint)
d doc value like(htmlDocPtr)
d elem value like(htmlNodePtr)
d htmlAutoCloseTag...
- d pr 10i 0 extproc('htmlAutoCloseTag')
+ d pr extproc('htmlAutoCloseTag')
+ d like(xmlCint)
d doc value like(htmlDocPtr)
d name * value options(*string) const xmlChar *
d elem value like(htmlNodePtr)
@@ -134,7 +137,8 @@
d str * const xmlChar *(*)
d htmlParseCharRef...
- d pr 10i 0 extproc('htmlParseCharRef')
+ d pr extproc('htmlParseCharRef')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
d htmlParseElement...
@@ -149,10 +153,11 @@
d pr extproc('htmlCreateMemoryParserCtxt')
d like(htmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d htmlParseDocument...
- d pr 10i 0 extproc('htmlParseDocument')
+ d pr extproc('htmlParseDocument')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
d htmlSAXParseDoc...
@@ -181,27 +186,31 @@
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d UTF8ToHtml pr 10i 0 extproc('UTF8ToHtml')
+ d UTF8ToHtml pr extproc('UTF8ToHtml')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char []
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
+ d inlen like(xmlCint)
d htmlEncodeEntities...
- d pr 10i 0 extproc('htmlEncodeEntities')
+ d pr extproc('htmlEncodeEntities')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char []
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
- d quoteChar 10i 0 value
+ d inlen like(xmlCint)
+ d quoteChar value like(xmlCint)
d htmlIsScriptAttribute...
- d pr 10i 0 extproc('htmlIsScriptAttribute')
+ d pr extproc('htmlIsScriptAttribute')
+ d like(xmlCint)
d name * value options(*string) const xmlChar *
d htmlHandleOmittedElem...
- d pr 10i 0 extproc('htmlHandleOmittedElem')
- d val 10i 0 value
+ d pr extproc('htmlHandleOmittedElem')
+ d like(xmlCint)
+ d val value like(xmlCint)
/if defined(LIBXML_PUSH_ENABLED)
@@ -213,15 +222,16 @@
d sax value like(htmlSAXHandlerPtr)
d user_data * value void *
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
d enc value like(xmlCharEncoding)
- d htmlParseChunk pr 10i 0 extproc('htmlParseChunk')
+ d htmlParseChunk pr extproc('htmlParseChunk')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
- d terminate 10i 0 value
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
/endif LIBXML_PUSH_ENABLED
d htmlFreeParserCtxt...
@@ -236,7 +246,8 @@
* to the xmlReadDoc() and similar calls.
d htmlParserOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d HTML_PARSE_RECOVER... Relaxed parsing
d c X'00000001'
d HTML_PARSE_NODEFDTD... No default doctype
@@ -262,37 +273,38 @@
d ctxt value like(htmlParserCtxtPtr)
d htmlCtxtUseOptions...
- d pr 10i 0 extproc('htmlCtxtUseOptions')
+ d pr extproc('htmlCtxtUseOptions')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadDoc pr extproc('htmlReadDoc')
d like(htmlDocPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadFile pr extproc('htmlReadFile')
d like(htmlDocPtr)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadMemory pr extproc('htmlReadMemory')
d like(htmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadFd pr extproc('htmlReadFd')
d like(htmlDocPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadIO pr extproc('htmlReadIO')
d like(htmlDocPtr)
@@ -301,7 +313,7 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadDoc...
d pr extproc('htmlCtxtReadDoc')
@@ -310,7 +322,7 @@
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadFile...
d pr extproc('htmlCtxtReadFile')
@@ -318,25 +330,25 @@
d ctxt value like(xmlParserCtxtPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadMemory...
d pr extproc('htmlCtxtReadMemory')
d like(htmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadFd pr extproc('htmlCtxtReadFd')
d like(htmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadIO pr extproc('htmlCtxtReadIO')
d like(htmlDocPtr)
@@ -346,11 +358,12 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Further knowledge of HTML structure
- d htmlStatus s 10i 0 based(######typedef######) enum
+ d htmlStatus s based(######typedef######)
+ d like(xmlCenum)
d HTML_NA c X'0000' No check at all
d HTML_INVALID c X'0001'
d HTML_DEPRECATED...
@@ -366,10 +379,11 @@
d like(htmlStatus)
d #param1 value like(htmlElemDescPtr) const
d #param2 * value options(*string) const xmlChar *
- d #param3 10i 0 value
+ d #param3 value like(xmlCint)
d htmlElementAllowedHere...
- d pr 10i 0 extproc('htmlElementAllowedHere')
+ d pr extproc('htmlElementAllowedHere')
+ d like(xmlCint)
d #param1 value like(htmlElemDescPtr) const
d #param2 * value options(*string) const xmlChar *
@@ -382,7 +396,7 @@
d htmlNodeStatus pr extproc('htmlNodeStatus')
d like(htmlStatus)
d #param1 value like(htmlNodePtr)
- d #param2 10i 0 value
+ d #param2 value like(xmlCint)
* C macros implemented as procedures for ILE/RPG support.
@@ -391,8 +405,9 @@
d elt * value const htmlElemDesc *
d htmlElementAllowedHereDesc...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__htmlElementAllowedHereDesc')
+ d like(xmlCint)
d parent * value const htmlElemDesc *
d elt * value const htmlElemDesc *
diff --git a/os400/libxmlrpg/HTMLtree.rpgle b/os400/libxmlrpg/HTMLtree.rpgle
index 82a11ca4..99c38a0c 100644
--- a/os400/libxmlrpg/HTMLtree.rpgle
+++ b/os400/libxmlrpg/HTMLtree.rpgle
@@ -10,11 +10,13 @@
/define HTML_TREE_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
- /include "libxmlrpg/HTMLparser"
/if defined(LIBXML_HTML_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/HTMLparser"
+
* HTML_TEXT_NODE:
*
* Macro. A text node in a HTML document is really implemented
@@ -69,7 +71,8 @@
d doc value like(htmlDocPtr)
d htmlSetMetaEncoding...
- d pr 10i 0 extproc('htmlSetMetaEncoding')
+ d pr extproc('htmlSetMetaEncoding')
+ d like(xmlCint)
d doc value like(htmlDocPtr)
d encoding * value options(*string) const xmlChar *
@@ -78,24 +81,27 @@
d pr extproc('htmlDocDumpMemory')
d cur value like(xmlDocPtr)
d mem * value xmlChar * *
- d size 10i 0
+ d size like(xmlCint)
d htmlDocDumpMemoryFormat...
d pr extproc('htmlDocDumpMemoryFormat')
d cur value like(xmlDocPtr)
d mem * value xmlChar * *
- d size 10i 0
- d format 10i 0 value
+ d size like(xmlCint)
+ d format value like(xmlCint)
- d htmlDocDump pr 10i 0 extproc('htmlDocDump')
+ d htmlDocDump pr extproc('htmlDocDump')
+ d like(xmlCint)
d f * value FILE *
d cur value like(xmlDocPtr)
- d htmlSaveFile pr 10i 0 extproc('htmlSaveFile')
+ d htmlSaveFile pr extproc('htmlSaveFile')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
- d htmlNodeDump pr 10i 0 extproc('htmlNodeDump')
+ d htmlNodeDump pr extproc('htmlNodeDump')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
@@ -107,25 +113,28 @@
d cur value like(xmlNodePtr)
d htmlNodeDumpFileFormat...
- d pr 10i 0 extproc('htmlNodeDumpFileFormat')
+ d pr extproc('htmlNodeDumpFileFormat')
+ d like(xmlCint)
d out * value FILE *
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlSaveFileEnc...
- d pr 10i 0 extproc('htmlSaveFileEnc')
+ d pr extproc('htmlSaveFileEnc')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
d htmlSaveFileFormat...
- d pr 10i 0 extproc('htmlSaveFileFormat')
+ d pr extproc('htmlSaveFileFormat')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlNodeDumpFormatOutput...
d pr extproc('htmlNodeDumpFormatOutput')
@@ -133,7 +142,7 @@
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlDocContentDumpOutput...
d pr extproc('htmlDocContentDumpOutput')
@@ -147,7 +156,7 @@
d buf value like(xmlOutputBufferPtr)
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlNodeDumpOutput...
d pr extproc('htmlNodeDumpOutput')
@@ -159,7 +168,8 @@
/endif LIBXML_OUTPUT_ENABLD
d htmlIsBooleanAttr...
- d pr 10i 0 extproc('htmlIsBooleanAttr')
+ d pr extproc('htmlIsBooleanAttr')
+ d like(xmlCint)
d name * value options(*string) const xmlChar *
/endif LIBXML_HTML_ENABLED
diff --git a/os400/libxmlrpg/SAX.rpgle b/os400/libxmlrpg/SAX.rpgle
index 85f15ccf..a22d49ae 100644
--- a/os400/libxmlrpg/SAX.rpgle
+++ b/os400/libxmlrpg/SAX.rpgle
@@ -26,22 +26,27 @@
d ctx * value void *
d loc value like(xmlSAXLocatorPtr)
- d getLineNumber pr 10i 0 extproc('getLineNumber')
+ d getLineNumber pr extproc('getLineNumber')
+ d like(xmlCint)
d ctx * value void *
d getColumnNumber...
- d pr 10i 0 extproc('getColumnNumber')
+ d pr extproc('getColumnNumber')
+ d like(xmlCint)
d ctx * value void *
- d isStandalone pr 10i 0 extproc('isStandalone')
+ d isStandalone pr extproc('isStandalone')
+ d like(xmlCint)
d ctx * value void *
d hasInternalSubset...
- d pr 10i 0 extproc('hasInternalSubset')
+ d pr extproc('hasInternalSubset')
+ d like(xmlCint)
d ctx * value void *
d hasExternalSubset...
- d pr 10i 0 extproc('hasExternalSubset')
+ d pr extproc('hasExternalSubset')
+ d like(xmlCint)
d ctx * value void *
d internalSubset pr extproc('internalSubset')
@@ -76,7 +81,7 @@
d entityDecl pr extproc('entityDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d publicId * value options(*string) const xmlChar *
d systemId * value options(*string) const xmlChar *
d content * value options(*string) xmlChar *
@@ -85,15 +90,15 @@
d ctx * value void *
d elem * value options(*string) const xmlChar *
d fullname * value options(*string) const xmlChar *
- d type 10i 0 value
- d def 10i 0 value
+ d type value like(xmlCint)
+ d def value like(xmlCint)
d defaultValue * value options(*string) const xmlChar *
d tree value like(xmlEnumerationPtr)
d elementDecl pr extproc('elementDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d content value like(xmlElementContentPtr)
d notationDecl pr extproc('notationDecl')
@@ -137,13 +142,13 @@
d characters pr extproc('characters')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d ignorableWhitespace...
d pr extproc('ignorableWhitespace')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d processingInstruction...
d pr extproc('processingInstruction')
@@ -165,7 +170,8 @@
d like(xmlNsPtr)
d ctx * value void *
- d checkNamespace pr 10i 0 extproc('checkNamespace')
+ d checkNamespace pr extproc('checkNamespace')
+ d like(xmlCint)
d ctx * value void *
d nameSpace * value options(*string) xmlChar *
@@ -181,13 +187,13 @@
d cdataBlock pr extproc('cdataBlock')
d ctx * value void *
d value * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
/if defined(LIBXML_SAX1_ENABLED)
d initxmlDefaultSAXHandler...
d pr extproc('initxmlDefaultSAXHandler')
d hdlr likeds(xmlSAXHandlerV1)
- d warning 10i 0 value
+ d warning value like(xmlCint)
/if defined(LIBXML_HTML_ENABLED)
d inithtmlDefaultSAXHandler...
diff --git a/os400/libxmlrpg/SAX2.rpgle b/os400/libxmlrpg/SAX2.rpgle
index fb687e99..c72be259 100644
--- a/os400/libxmlrpg/SAX2.rpgle
+++ b/os400/libxmlrpg/SAX2.rpgle
@@ -10,6 +10,7 @@
/define XML_SAX2_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/xlink"
@@ -27,23 +28,28 @@
d loc value like(xmlSAXLocatorPtr)
d xmlSAX2GetLineNumber...
- d pr 10i 0 extproc('xmlSAX2GetLineNumber')
+ d pr extproc('xmlSAX2GetLineNumber')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2GetColumnNumber...
- d pr 10i 0 extproc('xmlSAX2GetColumnNumber')
+ d pr extproc('xmlSAX2GetColumnNumber')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2IsStandalone...
- d pr 10i 0 extproc('xmlSAX2IsStandalone')
+ d pr extproc('xmlSAX2IsStandalone')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2HasInternalSubset...
- d pr 10i 0 extproc('xmlSAX2HasInternalSubset')
+ d pr extproc('xmlSAX2HasInternalSubset')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2HasExternalSubset...
- d pr 10i 0 extproc('xmlSAX2HasExternalSubset')
+ d pr extproc('xmlSAX2HasExternalSubset')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2InternalSubset...
@@ -83,7 +89,7 @@
d pr extproc('xmlSAX2EntityDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d publicId * value options(*string) const xmlChar *
d systemId * value options(*string) const xmlChar *
d content * value options(*string) xmlChar *
@@ -93,8 +99,8 @@
d ctx * value void *
d elem * value options(*string) const xmlChar *
d fullname * value options(*string) const xmlChar *
- d type 10i 0 value
- d def 10i 0 value
+ d type value like(xmlCint)
+ d def value like(xmlCint)
d defaultValue * value options(*string) const xmlChar *
d tree value like(xmlEnumerationPtr)
@@ -102,7 +108,7 @@
d pr extproc('xmlSAX2ElementDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d content value like(xmlElementContentPtr)
d xmlSAX2NotationDecl...
@@ -158,10 +164,10 @@
d localname * value options(*string) const xmlChar *
d prefix * value options(*string) const xmlChar *
d URI * value options(*string) const xmlChar *
- d nb_namespaces 10i 0 value
+ d nb_namespaces value like(xmlCint)
d namespaces * value const xmlChar *(*)
- d nb_attributes 10i 0 value
- d nb_defaulted 10i 0 value
+ d nb_attributes value like(xmlCint)
+ d nb_defaulted value like(xmlCint)
d attributes * const xmlChar *(*)
d xmlSAX2EndElementNs...
@@ -180,13 +186,13 @@
d pr extproc('xmlSAX2Characters')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlSAX2IgnorableWhitespace...
d pr extproc('xmlSAX2IgnorableWhitespace')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlSAX2ProcessingInstruction...
d pr extproc(
@@ -204,23 +210,25 @@
d pr extproc('xmlSAX2CDataBlock')
d ctx * value void *
d value * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
/if defined(LIBXML_SAX1_ENABLED)
d xmlSAXDefaultVersion...
- d pr 10i 0 extproc('xmlSAXDefaultVersion')
- d version 10i 0 value
+ d pr extproc('xmlSAXDefaultVersion')
+ d like(xmlCint)
+ d version value like(xmlCint)
/endif LIBXML_SAX1_ENABLED
- d xmlSAXVersion pr 10i 0 extproc('xmlSAXVersion')
+ d xmlSAXVersion pr extproc('xmlSAXVersion')
+ d like(xmlCint)
d hdlr likeds(xmlSAXHandler)
- d version 10i 0 value
+ d version value like(xmlCint)
d xmlSAX2InitDefaultSAXHandler...
d pr extproc(
d 'xmlSAX2InitDefaultSAXHandler')
d hdlr likeds(xmlSAXHandler)
- d warning 10i 0 value
+ d warning value like(xmlCint)
/if defined(LIBXML_HTML_ENABLED)
d xmlSAX2InitHtmlDefaultSAXHandler...
diff --git a/os400/libxmlrpg/c14n.rpgle b/os400/libxmlrpg/c14n.rpgle
index b64efb28..963ed374 100644
--- a/os400/libxmlrpg/c14n.rpgle
+++ b/os400/libxmlrpg/c14n.rpgle
@@ -21,6 +21,7 @@
/if defined(LIBXML_C14N_ENABLED)
/if defined(LIBXML_OUTPUT_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/xpath"
@@ -52,41 +53,45 @@
* Predefined values for C14N modes
d xmlBufferAllocationScheme...
- d xmlC14NMode s 10i 0 based(######typedef######) enum
+ d xmlC14NMode s based(######typedef######)
+ d like(xmlCenum)
d XML_C14N_1_0 c 0 Original C14N 1.0
d XML_C14N_EXCLUSIVE_1_0... Exclusive C14N 1.0
d c 1
d XML_C14N_1_1 c 2 C14N 1.1 spec
d xmlC14NDocSaveTo...
- d pr 10i 0 extproc('xmlC14NDocSaveTo')
+ d pr extproc('xmlC14NDocSaveTo')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d nodes value like(xmlNodeSetPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d buf value like(xmlOutputBufferPtr)
d xmlC14NDocDumpMemory...
- d pr 10i 0 extproc('xmlC14NDocDumpMemory')
+ d pr extproc('xmlC14NDocDumpMemory')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d nodes value like(xmlNodeSetPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d doc_txt_ptr * xmlChar *(*)
- d xmlC14NDocSave pr 10i 0 extproc('xmlC14NDocSave')
+ d xmlC14NDocSave pr extproc('xmlC14NDocSave')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d nodes value like(xmlNodeSetPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d filename * value options(*string) const char *
- d compression 10i 0 value
+ d compression value like(xmlCint)
* This is the core C14N function
@@ -103,15 +108,16 @@
d s * based(######typedef######)
d procptr
- d xmlC14NExecute pr 10i 0 extproc('xmlC14NExecute')
+ d xmlC14NExecute pr extproc('xmlC14NExecute')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d is_visible_callback...
d value like(xmlC14NIsVisibleCallback)
d user_data * value void *
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d buf value like(xmlOutputBufferPtr)
/endif LIBXML_OUTPUT_ENABLD
diff --git a/os400/libxmlrpg/catalog.rpgle b/os400/libxmlrpg/catalog.rpgle
index 52baf4e9..1dab819d 100644
--- a/os400/libxmlrpg/catalog.rpgle
+++ b/os400/libxmlrpg/catalog.rpgle
@@ -16,11 +16,13 @@
/define XML_CATALOG_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xmlstring"
- /include "libxmlrpg/tree"
/if defined(LIBXML_CATALOG_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlstring"
+ /include "libxmlrpg/tree"
+
* XML_CATALOGS_NAMESPACE:
*
* The namespace for the XML Catalogs elements.
@@ -38,7 +40,8 @@
* The API is voluntarily limited to general cataloging.
d xmlCatalogPrefer...
- d s 10u 0 based(######typedef######) enum type
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_CATA_PREFER_NONE...
d c 0
d XML_CATA_PREFER_PUBLIC...
@@ -47,7 +50,8 @@
d c 2
d xmlCatalogAllow...
- d s 10u 0 based(######typedef######) enum type
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_CATA_ALLOW_NONE...
d c 0
d XML_CATA_ALLOW_GLOBAL...
@@ -63,7 +67,7 @@
d xmlNewCatalog pr extproc('xmlNewCatalog')
d like(xmlCatalogPtr)
- d sgml 10i 0 value
+ d sgml value like(xmlCint)
d xmlLoadACatalog...
d pr extproc('xmlLoadACatalog')
@@ -76,17 +80,20 @@
d filename * value options(*string) const char *
d xmlConvertSGMLCatalog...
- d pr 10i 0 extproc('xmlConvertSGMLCatalog')
+ d pr extproc('xmlConvertSGMLCatalog')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
- d xmlACatalogAdd pr 10i 0 extproc('xmlACatalogAdd')
+ d xmlACatalogAdd pr extproc('xmlACatalogAdd')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
d type * value options(*string) const xmlChar *
d orig * value options(*string) const xmlChar *
d replace * value options(*string) const xmlChar *
d xmlACatalogRemove...
- d pr 10i 0 extproc('xmlACatalogRemove')
+ d pr extproc('xmlACatalogRemove')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
d value * value options(*string) const xmlChar *
@@ -122,7 +129,8 @@
d catal value like(xmlCatalogPtr)
d xmlCatalogIsEmpty...
- d pr 10i 0 extproc('xmlCatalogIsEmpty')
+ d pr extproc('xmlCatalogIsEmpty')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
* Global operations.
@@ -130,7 +138,8 @@
d xmlInitializeCatalog...
d pr extproc('xmlInitializeCatalog')
- d xmlLoadCatalog pr 10i 0 extproc('xmlLoadCatalog')
+ d xmlLoadCatalog pr extproc('xmlLoadCatalog')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlLoadCatalogs...
@@ -162,13 +171,15 @@
d pr * extproc('xmlCatalogResolveURI') xmlChar *
d URI * value options(*string) const xmlChar *
- d xmlCatalogAdd pr 10i 0 extproc('xmlCatalogAdd')
+ d xmlCatalogAdd pr extproc('xmlCatalogAdd')
+ d like(xmlCint)
d type * value options(*string) const xmlChar *
d orig * value options(*string) const xmlChar *
d replace * value options(*string) const xmlChar *
d xmlCatalogRemove...
- d pr 10i 0 extproc('xmlCatalogRemove')
+ d pr extproc('xmlCatalogRemove')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlParseCatalogFile...
@@ -177,7 +188,8 @@
d filename * value options(*string) const char *
d xmlCatalogConvert...
- d pr 10i 0 extproc('xmlCatalogConvert')
+ d pr extproc('xmlCatalogConvert')
+ d like(xmlCint)
* Strictly minimal interfaces for per-document catalogs used
* by the parser.
@@ -205,8 +217,9 @@
* Preference settings.
d xmlCatalogSetDebug...
- d pr 10i 0 extproc('xmlCatalogSetDebug')
- d level 10i 0 value
+ d pr extproc('xmlCatalogSetDebug')
+ d like(xmlCint)
+ d level value like(xmlCint)
d xmlCatalogSetDefaultPrefer...
d pr extproc('xmlCatalogSetDefaultPrefer')
diff --git a/os400/libxmlrpg/chvalid.rpgle b/os400/libxmlrpg/chvalid.rpgle
index 444d1cb2..c601442f 100644
--- a/os400/libxmlrpg/chvalid.rpgle
+++ b/os400/libxmlrpg/chvalid.rpgle
@@ -26,8 +26,8 @@
d xmlChLRange ds based(xmlChLRangePtr)
d align qualified
- d low 10u 0
- d high 10u 0
+ d low like(xmlCuint)
+ d high like(xmlCuint)
d xmlChRangeGroupPtr...
d s * based(######typedef######)
@@ -35,15 +35,16 @@
d xmlChRangeGroup...
d ds based(xmlChRangeGroupPtr)
d align qualified
- d nbShortRange 10i 0
- d nbLongRange 10i 0
+ d nbShortRange like(xmlCint)
+ d nbLongRange like(xmlCint)
d shortRange like(xmlChSRangePtr)
d longRange like(xmlChLRangePtr)
* Range checking routine
- d xmlCharInRange pr 10i 0 extproc('xmlCharInRange')
- d val 10u 0 value
+ d xmlCharInRange pr extproc('xmlCharInRange')
+ d like(xmlCint)
+ d val value like(xmlCuint)
d group like(xmlChRangeGroupPtr) const
d xmlIsBaseCharGroup...
@@ -70,29 +71,37 @@
d ds import('xmlIsIdeographicGroup')
d likeds(xmlChRangeGroup) const
- d xmlIsBaseChar pr 10i 0 extproc('xmlIsBaseChar')
- d ch 10u 0 value
+ d xmlIsBaseChar pr extproc('xmlIsBaseChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsBlank pr 10i 0 extproc('xmlIsBlank')
- d ch 10u 0 value
+ d xmlIsBlank pr extproc('xmlIsBlank')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsChar pr 10i 0 extproc('xmlIsChar')
- d ch 10u 0 value
+ d xmlIsChar pr extproc('xmlIsChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsCombining pr 10i 0 extproc('xmlIsCombining')
- d ch 10u 0 value
+ d xmlIsCombining pr extproc('xmlIsCombining')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsDigit pr 10i 0 extproc('xmlIsDigit')
- d ch 10u 0 value
+ d xmlIsDigit pr extproc('xmlIsDigit')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsExtender pr 10i 0 extproc('xmlIsExtender')
- d ch 10u 0 value
+ d xmlIsExtender pr extproc('xmlIsExtender')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
d xmlIsIdeographic...
- d pr 10i 0 extproc('xmlIsIdeographic')
- d ch 10u 0 value
+ d pr extproc('xmlIsIdeographic')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsPubidChar pr 10i 0 extproc('xmlIsPubidChar')
- d ch 10u 0 value
+ d xmlIsPubidChar pr extproc('xmlIsPubidChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
/endif XML_CHVALID_H__
diff --git a/os400/libxmlrpg/debugXML.rpgle b/os400/libxmlrpg/debugXML.rpgle
index 5005a2d4..81826bcf 100644
--- a/os400/libxmlrpg/debugXML.rpgle
+++ b/os400/libxmlrpg/debugXML.rpgle
@@ -10,10 +10,11 @@
/define DEBUG_XML__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
/if defined(LIBXML_DEBUG_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
/include "libxmlrpg/xpath"
* The standard Dump routines.
@@ -27,31 +28,31 @@
d pr extproc('xmlDebugDumpAttr')
d output * value FILE *
d attr value like(xmlAttrPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpAttrList...
d pr extproc('xmlDebugDumpAttrList')
d output * value FILE *
d attr value like(xmlAttrPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpOneNode...
d pr extproc('xmlDebugDumpOneNode')
d output * value FILE *
d node value like(xmlNodePtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpNode...
d pr extproc('xmlDebugDumpNode')
d output * value FILE *
d node value like(xmlNodePtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpNodeList...
d pr extproc('xmlDebugDumpNodeList')
d output * value FILE *
d node value like(xmlNodePtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpDocumentHead...
d pr extproc('xmlDebugDumpDocumentHead')
@@ -80,7 +81,8 @@
****************************************************************
d xmlDebugCheckDocument...
- d pr 10i 0 extproc('xmlDebugCheckDocument')
+ d pr extproc('xmlDebugCheckDocument')
+ d like(xmlCint)
d output * value FILE *
d doc value like(xmlDocPtr)
@@ -94,11 +96,12 @@
d output * value FILE *
d node value like(xmlNodePtr)
- d xmlLsCountNode pr 10i 0 extproc('xmlLsCountNode')
+ d xmlLsCountNode pr extproc('xmlLsCountNode')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d xmlBoolToText pr * extproc('xmlBoolToText') const char *
- d boolval 10i 0 value
+ d boolval value like(xmlCint)
****************************************************************
* *
@@ -133,7 +136,7 @@
d doc like(xmlDocPtr)
d node like(xmlNodePtr)
d pctxt like(xmlXPathContextPtr)
- d loaded 10i 0
+ d loaded like(xmlCint)
d output * FILE *
d input like(xmlShellReadlineFunc)
@@ -152,32 +155,36 @@
d xmlShellPrintXPathError...
d pr extproc('xmlShellPrintXPathError')
- d errorType 10i 0 value
+ d errorType value like(xmlCint)
d arg * value options(*string) const char *
d xmlShellPrintXPathResult...
d pr extproc('xmlShellPrintXPathResult')
d list value like(xmlXPathObjectPtr)
- d xmlShellList pr 10i 0 extproc('xmlShellList')
+ d xmlShellList pr extproc('xmlShellList')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellBase pr 10i 0 extproc('xmlShellBase')
+ d xmlShellBase pr extproc('xmlShellBase')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellDir pr 10i 0 extproc('xmlShellDir')
+ d xmlShellDir pr extproc('xmlShellDir')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellLoad pr 10i 0 extproc('xmlShellLoad')
+ d xmlShellLoad pr extproc('xmlShellLoad')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d filename * value options(*string) char *
d node value like(xmlNodePtr)
@@ -188,19 +195,22 @@
d pr extproc('xmlShellPrintNode')
d node value like(xmlNodePtr)
- d xmlShellCat pr 10i 0 extproc('xmlShellCat')
+ d xmlShellCat pr extproc('xmlShellCat')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellWrite pr 10i 0 extproc('xmlShellWrite')
+ d xmlShellWrite pr extproc('xmlShellWrite')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d filename * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellSave pr 10i 0 extproc('xmlShellSave')
+ d xmlShellSave pr extproc('xmlShellSave')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d filename * value options(*string) char *
d node value like(xmlNodePtr)
@@ -209,20 +219,23 @@
/if defined(LIBXML_VALID_ENABLED)
d xmlShellValidate...
- d pr 10i 0 extproc('xmlShellValidate')
+ d pr extproc('xmlShellValidate')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d dtd * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
/endif LIBXML_VALID_ENABLED
- d xmlShellDu pr 10i 0 extproc('xmlShellDu')
+ d xmlShellDu pr extproc('xmlShellDu')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d tree value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellPwd pr 10i 0 extproc('xmlShellPwd')
+ d xmlShellPwd pr extproc('xmlShellPwd')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d buffer * value options(*string) char *
d node value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/dict.rpgle b/os400/libxmlrpg/dict.rpgle
index bcb6576e..c061e4c8 100644
--- a/os400/libxmlrpg/dict.rpgle
+++ b/os400/libxmlrpg/dict.rpgle
@@ -9,18 +9,19 @@
/if not defined(XML_DICT_H__)
/define XML_DICT_H__
- /include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xmlTypesC"
- /include "libxmlrpg/tree"
-
* The dictionary.
d xmlDictPtr s * based(######typedef######)
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
* Initializer
d xmlInitializeDict...
- d pr 10i 0 extproc('xmlInitializeDict')
+ d pr extproc('xmlInitializeDict')
+ d like(xmlCint)
* Constructor and destructor.
@@ -44,7 +45,8 @@
d sub value like(xmlDictPtr)
d xmlDictReference...
- d pr 10i 0 extproc('xmlDictGetReference')
+ d pr extproc('xmlDictGetReference')
+ d like(xmlCint)
d dict value like(xmlDictPtr)
d xmlDictFree pr extproc('xmlDictFree')
@@ -55,23 +57,25 @@
d xmlDictLookup pr * extproc('xmlDictLookup') const xmlChar *
d dict value like(xmlDictPtr)
d name * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlDictExists pr * extproc('xmlDictExists') const xmlChar *
d dict value like(xmlDictPtr)
d name * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlDictQLookup pr * extproc('xmlDictQLookup') const xmlChar *
d dict value like(xmlDictPtr)
d name * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
- d xmlDictOwns pr 10i 0 extproc('xmlDictOwns')
+ d xmlDictOwns pr extproc('xmlDictOwns')
+ d like(xmlCint)
d dict value like(xmlDictPtr)
d str * value options(*string) const xmlChar *
- d xmlDictSize pr 10i 0 extproc('xmlDictSize')
+ d xmlDictSize pr extproc('xmlDictSize')
+ d like(xmlCint)
d dict value like(xmlDictPtr)
* Cleanup function
diff --git a/os400/libxmlrpg/encoding.rpgle b/os400/libxmlrpg/encoding.rpgle
index c0ed7e65..8153f3ca 100644
--- a/os400/libxmlrpg/encoding.rpgle
+++ b/os400/libxmlrpg/encoding.rpgle
@@ -21,6 +21,7 @@
/define XML_CHAR_ENCODING_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* xmlCharEncoding:
*
@@ -43,7 +44,8 @@
* the specific UTF-16LE and UTF-16BE are present.
d xmlCharEncoding...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_CHAR_ENCODING_ERROR... No encoding detected
d c -1
d XML_CHAR_ENCODING_NONE... No encoding detected
@@ -200,12 +202,14 @@
* Interfaces for encoding names and aliases.
d xmlAddEncodingAlias...
- d pr 10i 0 extproc('xmlAddEncodingAlias')
+ d pr extproc('xmlAddEncodingAlias')
+ d like(xmlCint)
d name * value options(*string) const char *
d alias * value options(*string) const char *
d xmlDelEncodingAlias...
- d pr 10i 0 extproc('xmlDelEncodingAlias')
+ d pr extproc('xmlDelEncodingAlias')
+ d like(xmlCint)
d alias * value options(*string) const char *
d xmlGetEncodingAlias...
@@ -230,45 +234,51 @@
d pr extproc('xmlDetectCharEncoding')
d like(xmlCharEncoding)
d in * value options(*string) const unsigned char*
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlCharEncOutFunc...
- d pr 10i 0 extproc('xmlCharEncOutFunc')
+ d pr extproc('xmlCharEncOutFunc')
+ d like(xmlCint)
d handler likeds(xmlCharEncodingHandler)
d out value like(xmlBufferPtr)
d in value like(xmlBufferPtr)
d xmlCharEncInFunc...
- d pr 10i 0 extproc('xmlCharEncInFunc')
+ d pr extproc('xmlCharEncInFunc')
+ d like(xmlCint)
d handler likeds(xmlCharEncodingHandler)
d out value like(xmlBufferPtr)
d in value like(xmlBufferPtr)
d xmlCharEncFirstLine...
- d pr 10i 0 extproc('xmlCharEncFirstLine')
+ d pr extproc('xmlCharEncFirstLine')
+ d like(xmlCint)
d handler likeds(xmlCharEncodingHandler)
d out value like(xmlBufferPtr)
d in value like(xmlBufferPtr)
d xmlCharEncCloseFunc...
- d pr 10i 0 extproc('xmlCharEncCloseFunc')
+ d pr extproc('xmlCharEncCloseFunc')
+ d like(xmlCint)
d handler likeds(xmlCharEncodingHandler)
* Export a few useful functions
/if defined(LIBXML_OUTPUT_ENABLED)
- d UTF8Toisolat1 pr 10i 0 extproc('UTF8Toisolat1')
+ d UTF8Toisolat1 pr extproc('UTF8Toisolat1')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char (*)
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
+ d inlen like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
- d isolat1ToUTF8 pr 10i 0 extproc('isolat1ToUTF8')
+ d isolat1ToUTF8 pr extproc('isolat1ToUTF8')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char (*)
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
+ d inlen like(xmlCint)
/endif XML_CHAR_ENCODING_H
diff --git a/os400/libxmlrpg/entities.rpgle b/os400/libxmlrpg/entities.rpgle
index 8d97915a..eeec1b6d 100644
--- a/os400/libxmlrpg/entities.rpgle
+++ b/os400/libxmlrpg/entities.rpgle
@@ -10,11 +10,13 @@
/define XML_ENTITIES_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
* The different valid entity types.
- d xmlEntityType s 10i 0 based(######typedef######) enum
+ d xmlEntityType s based(######typedef######)
+ d like(xmlCenum)
d XML_INTERNAL_GENERAL_ENTITY...
d c 1
d XML_EXTERNAL_GENERAL_PARSED_ENTITY...
@@ -44,14 +46,14 @@
d doc like(xmlDocPtr) containing document
d orig * xmlChar *
d content * xmlChar *
- d length 10i 0 content length
+ d length like(xmlCint) content length
d etype like(xmlEntityType) The entity type
d ExternalID * const xmlChar *
d SystemlID * const xmlChar *
d nexte like(xmlEntityPtr) unused
d URI * const xmlChar *
- d owner 10i 0 Owns children ?
- d checked 10i 0 Content checked ?
+ d owner like(xmlCint) Owns children ?
+ d checked like(xmlCint) Content checked ?
* All entities are stored in an hash table.
* There is 2 separate hash tables for global and parameter entities.
@@ -71,7 +73,7 @@
d like(xmlEntityPtr)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -81,7 +83,7 @@
d like(xmlEntityPtr)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -91,7 +93,7 @@
d like(xmlEntityPtr)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
diff --git a/os400/libxmlrpg/globals.rpgle b/os400/libxmlrpg/globals.rpgle
index e51182fb..3fe3a9bc 100644
--- a/os400/libxmlrpg/globals.rpgle
+++ b/os400/libxmlrpg/globals.rpgle
@@ -13,6 +13,7 @@
/define XML_GLOBALS_H
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/xmlerror"
/include "libxmlrpg/SAX"
@@ -112,31 +113,31 @@
d xmlGenericErrorContext...
d * void *
d oldXMLWDcompatibility...
- d 10i 0
+ d like(xmlCint)
d xmlBufferAllocScheme...
d like(xmlBufferAllocationScheme)
d xmlDefaultBufferSize...
- d 10i 0
+ d like(xmlCint)
d xmlSubstituteEntitiesDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlDoValidityCheckingDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlGetWarningsDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlKeepBlanksDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlLineNumbersDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlLoadExtDtdDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlParserDebugEntities...
- d 10i 0
+ d like(xmlCint)
d xmlPedanticParserDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlSaveNoEmptyTags...
- d 10i 0
+ d like(xmlCint)
d xmlIndentTreeOutput...
- d 10i 0
+ d like(xmlCint)
d xmlTreeIndentString...
d * const char *
d xmlRegisterNodeDefaultValue...
@@ -244,13 +245,14 @@
d value value likeds(xmlError)
d get_oldXMLWDcompatibility...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_oldXMLWDcompatibility')
+ d like(xmlCint)
d set_oldXMLWDcompatibility...
d pr extproc(
d '__set_oldXMLWDcompatibility')
- d value 10i 0 value
+ d value value like(xmlCint)
d get_xmlBufferAllocScheme...
d pr extproc('__get_xmlBufferAllocScheme')
@@ -266,15 +268,17 @@
d v value like(xmlBufferAllocationScheme)
d get_xmlDefaultBufferSize...
- d pr 10i 0 extproc('__get_xmlDefaultBufferSize')
+ d pr extproc('__get_xmlDefaultBufferSize')
+ d like(xmlCint)
d set_xmlDefaultBufferSize...
d pr extproc('__set_xmlDefaultBufferSize')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefDefaultBufferSize...
- d pr 10i 0 extproc('xmlThrDefDefaultBufferSize')
- d v 10i 0 value
+ d pr extproc('xmlThrDefDefaultBufferSize')
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlDefaultSAXHandler...
d pr extproc('__get_xmlDefaultSAXHandler')
@@ -293,18 +297,20 @@
d value value likeds(xmlSAXLocator)
d get_xmlDoValidityCheckingDefaultValue...
- d pr 10i 0 extproc('__get_xmlDoValidity+
+ d pr extproc('__get_xmlDoValidity+
d CheckingDefaultValue')
+ d like(xmlCint)
d set_xmlDoValidityCheckingDefaultValue...
d pr extproc('__set_xmlDoValidity+
d CheckingDefaultValue')
- d value 10i 0 value
-
+ d value value like(xmlCint)
+
d xmlThrDefDoValidityCheckingDefaultValue...
- d pr 10i 0 extproc('xmlThrDefDoValidity+
+ d pr extproc('xmlThrDefDoValidity+
d CheckingDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlGenericError...
d pr extproc('__get_xmlGenericError')
@@ -325,7 +331,7 @@
d xmlStructuredError...
d pr extproc('__call_xmlStructuredError')
d userData * value options(*string) void *
- d error value like(xmlErrorPtr)
+ d error value like(xmlErrorPtr)
d get_xmlGenericErrorContext...
d pr extproc(
@@ -348,29 +354,33 @@
d value * value options(*string) void *
d get_xmlGetWarningsDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlGetWarningsDefaultValue')
+ d like(xmlCint)
d set_xmlGetWarningsDefaultValue...
d pr extproc(
d '__set_xmlGetWarningsDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefGetWarningsDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefGetWarningsDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlIndentTreeOutput...
- d pr 10i 0 extproc('__get_xmlIndentTreeOutput')
+ d pr extproc('__get_xmlIndentTreeOutput')
+ d like(xmlCint)
d set_xmlIndentTreeOutput...
- d pr extproc('__set_xmlIndentTreeOutput')
- d value 10i 0 value
+ d pr extproc('__set_xmlIndentTreeOutput')
+ d value value like(xmlCint)
d xmlThrDefIndentTreeOutput...
- d pr 10i 0 extproc('xmlThrDefIndentTreeOutput')
- d v 10i 0 value
+ d pr extproc('xmlThrDefIndentTreeOutput')
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlTreeIndentString...
d pr * extproc('__get_xmlTreeIndentString') const char *
@@ -378,66 +388,74 @@
d set_xmlTreeIndentString...
d pr extproc('__set_xmlTreeIndentString')
d value * value options(*string) const char *
-
+
d xmlThrDefTreeIndentString...
d pr * extproc('xmlThrDefTreeIndentString') const char *
d v * value options(*string) const char *
d get_xmlKeepBlanksDefaultValue...
- d pr 10i 0 extproc(
- d '__get_xmlKeepBlanksDefaultValue')
+ d pr extproc(
+ d '__get_xmlKeepBlanksDefaultValue')
+ d like(xmlCint)
d set_xmlKeepBlanksDefaultValue...
d pr extproc(
- d '__set_xmlKeepBlanksDefaultValue')
- d value 10i 0 value
+ d '__set_xmlKeepBlanksDefaultValue')
+ d value value like(xmlCint)
d xmlThrDefKeepBlanksDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefKeepBlanksDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlLineNumbersDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlLineNumbersDefaultValue')
+ d like(xmlCint)
d set_xmlLineNumbersDefaultValue...
d pr extproc(
d '__set_xmlLineNumbersDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefLineNumbersDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefLineNumbersDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlLoadExtDtdDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlLoadExtDtdDefaultValue')
+ d like(xmlCint)
d set_xmlLoadExtDtdDefaultValue...
d pr extproc(
d '__set_xmlLoadExtDtdDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefLoadExtDtdDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefLoadExtDtdDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlParserDebugEntities...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlParserDebugEntities')
+ d like(xmlCint)
d set_xmlParserDebugEntities...
d pr extproc(
d '__set_xmlParserDebugEntities')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefParserDebugEntities...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefParserDebugEntities')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlParserVersion...
d pr * extproc('__get_xmlParserVersion') const char *
@@ -447,43 +465,49 @@
d value * value options(*string) const char *
d get_xmlPedanticParserDefaultValue...
- d pr 10i 0 extproc('__get_xmlPedantic+
+ d pr extproc('__get_xmlPedantic+
d ParserDefaultValue')
+ d like(xmlCint)
d set_xmlPedanticParserDefaultValue...
d pr extproc('__set_xmlPedantic+
d ParserDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefPedanticParserDefaultValue...
- d pr 10i 0 extproc('xmlThrDefPedantic+
+ d pr extproc('xmlThrDefPedantic+
d ParserDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlSaveNoEmptyTags...
- d pr 10i 0 extproc('__get_xmlSaveNoEmptyTags')
+ d pr extproc('__get_xmlSaveNoEmptyTags')
+ d like(xmlCint)
d set_xmlSaveNoEmptyTags...
d pr extproc('__set_xmlSaveNoEmptyTags')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefSaveNoEmptyTags...
- d pr 10i 0 extproc('xmlThrDefSaveNoEmptyTags')
- d v 10i 0 value
+ d pr extproc('xmlThrDefSaveNoEmptyTags')
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlSubstituteEntitiesDefaultValue...
- d pr 10i 0 extproc('__get_xmlSubstitute+
+ d pr extproc('__get_xmlSubstitute+
d EntitiesDefaultValue')
+ d like(xmlCint)
d set_xmlSubstituteEntitiesDefaultValue...
d pr extproc('__set_xmlSubstitute+
d EntitiesDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefSubstituteEntitiesDefaultValue...
- d pr 10i 0 extproc('xmlThrDefSubstitute+
+ d pr extproc('xmlThrDefSubstitute+
d EntitiesDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlRegisterNodeDefaultValue...
d pr extproc('__get_xmlRegisterNode+
@@ -552,6 +576,6 @@
d like(xmlOutputBufferPtr)
d URI * value options(*string) const char *
d encoder value like(xmlCharEncodingHandlerPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
/endif XML_GLOBALS_H
diff --git a/os400/libxmlrpg/hash.rpgle b/os400/libxmlrpg/hash.rpgle
index 867f98f6..b2169dfe 100644
--- a/os400/libxmlrpg/hash.rpgle
+++ b/os400/libxmlrpg/hash.rpgle
@@ -9,6 +9,8 @@
/if not defined(XML_HASH_H__)
/define XML_HASH_H__
+ /include "libxmlrpg/xmlTypesC"
+
* The hash table.
d xmlHashTablePtr...
@@ -68,12 +70,12 @@
d xmlHashCreate pr extproc('xmlHashCreate')
d like(xmlHashTablePtr)
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlHashCreateDict...
d pr extproc('xmlHashCreateDict')
d like(xmlHashTablePtr)
- d size 10i 0 value
+ d size value like(xmlCint)
d dict value like(xmlDictPtr)
d xmlHashFree pr extproc('xmlHashFree')
@@ -83,27 +85,31 @@
* Add a new entry to the hash table.
d xmlHashAddEntry...
- d pr 10i 0 extproc('xmlHashAddEntry')
+ d pr extproc('xmlHashAddEntry')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d userdata * value options(*string) void *
d xmlHashUpdateEntry...
- d pr 10i 0 extproc('xmlHashUpdateEntry')
+ d pr extproc('xmlHashUpdateEntry')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d userdata * value options(*string) void *
d f value like(xmlHashDeallocator)
d xmlHashAddEntry2...
- d pr 10i 0 extproc('xmlHashAddEntry2')
+ d pr extproc('xmlHashAddEntry2')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
d userdata * value options(*string) void *
d xmlHashUpdateEntry2...
- d pr 10i 0 extproc('xmlHashUpdateEntry2')
+ d pr extproc('xmlHashUpdateEntry2')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -111,7 +117,8 @@
d f value like(xmlHashDeallocator)
d xmlHashAddEntry3...
- d pr 10i 0 extproc('xmlHashAddEntry3')
+ d pr extproc('xmlHashAddEntry3')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -119,7 +126,8 @@
d userdata * value options(*string) void *
d xmlHashUpdateEntry3...
- d pr 10i 0 extproc('xmlHashUpdateEntry3')
+ d pr extproc('xmlHashUpdateEntry3')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -130,20 +138,23 @@
* Remove an entry from the hash table.
d xmlHashRemoveEntry...
- d pr 10i 0 extproc('xmlHashRemoveEntry')
+ d pr extproc('xmlHashRemoveEntry')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d f value like(xmlHashDeallocator)
d xmlHashRemoveEntry2...
- d pr 10i 0 extproc('xmlHashRemoveEntry2')
+ d pr extproc('xmlHashRemoveEntry2')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
d f value like(xmlHashDeallocator)
d xmlHashRemoveEntry3...
- d pr 10i 0 extproc('xmlHashRemoveEntry3')
+ d pr extproc('xmlHashRemoveEntry3')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -197,7 +208,8 @@
d table value like(xmlHashTablePtr)
d f value like(xmlHashCopier)
- d xmlHashSize pr 10i 0 extproc('xmlHashSize')
+ d xmlHashSize pr extproc('xmlHashSize')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d xmlHashScan pr extproc('xmlHashScan')
diff --git a/os400/libxmlrpg/list.rpgle b/os400/libxmlrpg/list.rpgle
index c62fcbd1..ce2fa1c1 100644
--- a/os400/libxmlrpg/list.rpgle
+++ b/os400/libxmlrpg/list.rpgle
@@ -10,6 +10,7 @@
/define XML_LINK_INCLUDE__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
d xmlLinkPtr s * based(######typedef######)
@@ -68,33 +69,39 @@
d l value like(xmlListPtr)
d data * value void *
- d xmlListInsert pr 10i 0 extproc('xmlListInsert')
+ d xmlListInsert pr extproc('xmlListInsert')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
- d xmlListAppend pr 10i 0 extproc('xmlListAppend')
+ d xmlListAppend pr extproc('xmlListAppend')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListRemoveFirst...
- d pr 10i 0 extproc('xmlListRemoveFirst')
+ d pr extproc('xmlListRemoveFirst')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListRemoveLast...
- d pr 10i 0 extproc('xmlListRemoveLast')
+ d pr extproc('xmlListRemoveLast')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListRemoveAll...
- d pr 10i 0 extproc('xmlListRemoveAll')
+ d pr extproc('xmlListRemoveAll')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListClear pr extproc('xmlListClear')
d l value like(xmlListPtr)
- d xmlListEmpty pr 10i 0 extproc('xmlListEmpty')
+ d xmlListEmpty pr extproc('xmlListEmpty')
+ d like(xmlCint)
d l value like(xmlListPtr)
d xmlListFront pr extproc('xmlListFront')
@@ -105,7 +112,8 @@
d like(xmlLinkPtr)
d l value like(xmlListPtr)
- d xmlListSize pr 10i 0 extproc('xmlListSize')
+ d xmlListSize pr extproc('xmlListSize')
+ d like(xmlCint)
d l value like(xmlListPtr)
d xmlListPopFront...
@@ -117,12 +125,14 @@
d l value like(xmlListPtr)
d xmlListPushFront...
- d pr 10i 0 extproc('xmlListPushFront')
+ d pr extproc('xmlListPushFront')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListPushBack...
- d pr 10i 0 extproc('xmlListPushBack')
+ d pr extproc('xmlListPushBack')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
@@ -153,7 +163,8 @@
d like(xmlListPtr)
d old value like(xmlListPtr)
- d xmlListCopy pr 10i 0 extproc('xmlListCopy')
+ d xmlListCopy pr extproc('xmlListCopy')
+ d like(xmlCint)
d cur value like(xmlListPtr)
d old value like(xmlListPtr) const
diff --git a/os400/libxmlrpg/nanoftp.rpgle b/os400/libxmlrpg/nanoftp.rpgle
index d8d5ef97..ac4f2aaf 100644
--- a/os400/libxmlrpg/nanoftp.rpgle
+++ b/os400/libxmlrpg/nanoftp.rpgle
@@ -13,6 +13,8 @@
/if defined(LIBXML_FTP_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
d INVALID_SOCKET c -1
* ftpListCallback:
@@ -67,7 +69,7 @@
d xmlNanoFTPConnectTo...
d pr * extproc('xmlNanoFTPConnectTo') void *
d server * value options(*string) const char *
- d port 10i 0 value
+ d port value like(xmlCint)
* Opening/closing session connections.
@@ -75,14 +77,17 @@
d URL * value options(*string) const char *
d xmlNanoFTPConnect...
- d pr 10i 0 extproc('xmlNanoFTPConnect')
+ d pr extproc('xmlNanoFTPConnect')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPClose...
- d pr 10i 0 extproc('xmlNanoFTPClose')
+ d pr extproc('xmlNanoFTPClose')
+ d like(xmlCint)
d ctx * value void *
- d xmlNanoFTPQuit pr 10i 0 extproc('xmlNanoFTPQuit')
+ d xmlNanoFTPQuit pr extproc('xmlNanoFTPQuit')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPScanProxy...
@@ -92,65 +97,76 @@
d xmlNanoFTPProxy...
d pr extproc('xmlNanoFTPProxy')
d host * value options(*string) const char *
- d port 10i 0 value
+ d port value like(xmlCint)
d user * value options(*string) const char *
d passwd * value options(*string) const char *
- d type 10i 0 value
+ d type value like(xmlCint)
d xmlNanoFTPUpdateURL...
- d pr 10i 0 extproc('xmlNanoFTPUpdateURL')
+ d pr extproc('xmlNanoFTPUpdateURL')
+ d like(xmlCint)
d ctx * value void *
d URL * value options(*string) const char *
* Rather internal commands.
d xmlNanoFTPGetResponse...
- d pr 10i 0 extproc('xmlNanoFTPGetResponse')
+ d pr extproc('xmlNanoFTPGetResponse')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPCheckResponse...
- d pr 10i 0 extproc('xmlNanoFTPCheckResponse')
+ d pr extproc('xmlNanoFTPCheckResponse')
+ d like(xmlCint)
d ctx * value void *
* CD/DIR/GET handlers.
- d xmlNanoFTPCwd pr 10i 0 extproc('xmlNanoFTPCwd')
+ d xmlNanoFTPCwd pr extproc('xmlNanoFTPCwd')
+ d like(xmlCint)
d ctx * value void *
d directory * value options(*string) const char *
- d xmlNanoFTPDele pr 10i 0 extproc('xmlNanoFTPDele')
+ d xmlNanoFTPDele pr extproc('xmlNanoFTPDele')
+ d like(xmlCint)
d ctx * value void *
d file * value options(*string) const char *
d xmlNanoFTPGetConnection...
- d pr 10i 0 extproc('xmlNanoFTPGetConnection') Socket descriptor
+ d pr extproc('xmlNanoFTPGetConnection') Socket descriptor
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPCloseConnection...
- d pr 10i 0 extproc('xmlNanoFTPCloseConnection')
+ d pr extproc('xmlNanoFTPCloseConnection')
+ d like(xmlCint)
d ctx * value void *
- d xmlNanoFTPList pr 10i 0 extproc('xmlNanoFTPList')
+ d xmlNanoFTPList pr extproc('xmlNanoFTPList')
+ d like(xmlCint)
d ctx * value void *
d callback value like(ftpListCallback)
d userData * value void *
d filename * value options(*string) const char *
d xmlNanoFTPGetSocket...
- d pr 10i 0 extproc('xmlNanoFTPGetSocket') Socket descriptor
+ d pr extproc('xmlNanoFTPGetSocket') Socket descriptor
+ d like(xmlCint)
d ctx * value void *
d filename * value options(*string) const char *
- d xmlNanoFTPGet pr 10i 0 extproc('xmlNanoFTPGet')
+ d xmlNanoFTPGet pr extproc('xmlNanoFTPGet')
+ d like(xmlCint)
d ctx * value void *
d callback value like(ftpDataCallback)
d userData * value void *
d filename * value options(*string) const char *
- d xmlNanoFTPRead pr 10i 0 extproc('xmlNanoFTPRead')
+ d xmlNanoFTPRead pr extproc('xmlNanoFTPRead')
+ d like(xmlCint)
d ctx * value void *
d dest * value void *
- d len 10i 0 value
+ d len value like(xmlCint)
/endif LIBXML_FTP_ENABLED
/endif NANO_FTP_H__
diff --git a/os400/libxmlrpg/nanohttp.rpgle b/os400/libxmlrpg/nanohttp.rpgle
index 4a076d2b..d4e6008f 100644
--- a/os400/libxmlrpg/nanohttp.rpgle
+++ b/os400/libxmlrpg/nanohttp.rpgle
@@ -13,6 +13,8 @@
/if defined(LIBXML_HTTP_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
d xmlNanoHTTPInit...
d pr extproc('xmlNanoHTTPInit')
@@ -24,7 +26,8 @@
d URL * value options(*string) const char *
d xmlNanoHTTPFetch...
- d pr 10i 0 extproc('xmlNanoHTTPFetch')
+ d pr extproc('xmlNanoHTTPFetch')
+ d like(xmlCint)
d URL * value options(*string) const char *
d filename * value options(*string) const char *
@@ -35,7 +38,7 @@
d input * value options(*string) const char *
d contentType * value char * *
d headers * value options(*string) const char *
- d ilen 10i 0 value
+ d ilen value like(xmlCint)
d xmlNanoHTTPMethodRedir...
d pr * extproc('xmlNanoHTTPMethodRedir') void *
@@ -45,7 +48,7 @@
d contentType * value char * *
d redir * value char * *
d headers * value options(*string) const char *
- d ilen 10i 0 value
+ d ilen value like(xmlCint)
d xmlNanoHTTPOpen...
d pr * extproc('xmlNanoHTTPOpen') void *
@@ -59,7 +62,8 @@
d redir * value char * *
d xmlNanoHTTPReturnCode...
- d pr 10i 0 extproc('xmlNanoHTTPReturnCode')
+ d pr extproc('xmlNanoHTTPReturnCode')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoHTTPAuthHeader...
@@ -71,7 +75,8 @@
d ctx * value void *
d xmlNanoHTTPContentLength...
- d pr 10i 0 extproc('xmlNanoHTTPContentLength')
+ d pr extproc('xmlNanoHTTPContentLength')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoHTTPEncoding...
@@ -83,14 +88,16 @@
d ctx * value void *
d xmlNanoHTTPRead...
- d pr 10i 0 extproc('xmlNanoHTTPRead')
+ d pr extproc('xmlNanoHTTPRead')
+ d like(xmlCint)
d ctx * value void *
d dest * value void *
- d len 10i 0 value
+ d len value like(xmlCint)
/if defined(LIBXML_OUTPUT_ENABLED)
d xmlNanoHTTPSave...
- d pr 10i 0 extproc('xmlNanoHTTPSave')
+ d pr extproc('xmlNanoHTTPSave')
+ d like(xmlCint)
d ctxt * value void *
d filename * value options(*string) const char *
/endif LIBXML_OUTPUT_ENABLD
diff --git a/os400/libxmlrpg/parser.rpgle b/os400/libxmlrpg/parser.rpgle
index f04aa2eb..fa48d4f3 100644
--- a/os400/libxmlrpg/parser.rpgle
+++ b/os400/libxmlrpg/parser.rpgle
@@ -53,9 +53,9 @@
d base * const char *
d cur * const char *
d end * const char *
- d length 10i 0 Length if known
- d line 10i 0 Current line
- d col 10i 0 Current column
+ d length like(xmlCint) Length if known
+ d line like(xmlCint) Current line
+ d col like(xmlCint) Current column
*
* NOTE: consumed is only tested for equality in the parser code,
* so even if there is an overflow this should not give troubles
@@ -65,8 +65,8 @@
d free like(xmlParserInputDeallocate) base deallocator
d encoding * const xmlChar *
d version * const xmlChar *
- d standalone 10i 0 Standalone entity ?
- d id 10i 0 Entity unique ID
+ d standalone like(xmlCint) Standalone entity ?
+ d id like(xmlCint) Entity unique ID
* xmlParserNodeInfo:
*
@@ -103,7 +103,8 @@
* The recursive one use the state info for entities processing.
d xmlParserInputState...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSER_EOF... Nothing to parse
d c -1
d XML_PARSER_START... Nothing parsed
@@ -168,7 +169,8 @@
*
* A parser can operate in various modes
- d xmlParserMode s 10i 0 based(######typedef######) enum
+ d xmlParserMode s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSE_UNKNOWN...
d c 0
d XML_PARSE_DOM...
@@ -199,59 +201,59 @@
d sax like(xmlSAXHandlerPtr) The SAX handler
d userData * SAX only-4 DOM build
d myDoc like(xmlDocPtr) Document being built
- d wellFormed 10i 0 Well formed doc ?
+ d wellFormed like(xmlCint) Well formed doc ?
d replaceEntities... Replace entities ?
- d 10i 0
+ d like(xmlCint)
d version * const xmlChar *
d encoding * const xmlChar *
- d standalone 10i 0 Standalone document
- d html 10i 0 HTML state/type
+ d standalone like(xmlCint) Standalone document
+ d html like(xmlCint) HTML state/type
*
* Input stream stack
*
d input like(xmlParserInputPtr) Current input stream
- d inputNr 10i 0 # current in streams
- d inputMax 10i 0 Max # of in streams
+ d inputNr like(xmlCint) # current in streams
+ d inputMax like(xmlCint) Max # of in streams
d inputTab * xmlParserInputPtr *
*
* Node analysis stack only used for DOM building
*
d node like(xmlNodePtr) Current parsed node
- d nodeNr 10i 0 Parsing stack depth
- d nodeMax 10i 0 Max stack depth
+ d nodeNr like(xmlCint) Parsing stack depth
+ d nodeMax like(xmlCint) Max stack depth
d nodeTab * xmlNodePtr *
*
- d record_info 10i 0 Keep node info ?
+ d record_info like(xmlCint) Keep node info ?
d node_seq likeds(xmlParserNodeInfoSeq) Parsed nodes info
*
- d errNo 10i 0 Error code
+ d errNo like(xmlCint) Error code
*
d hasExternalSubset...
- d 10i 0
- d hasPErefs 10i 0
- d external 10i 0 Parsing ext. entity?
+ d like(xmlCint)
+ d hasPErefs like(xmlCint)
+ d external like(xmlCint) Parsing ext. entity?
*
- d valid 10i 0 Valid document ?
- d validate 10i 0 Try to validate ?
+ d valid like(xmlCint) Valid document ?
+ d validate like(xmlCint) Try to validate ?
d vctxt likeds(xmlValidCtxt) Validity context
*
d instate like(xmlParserInputState) Current input type
- d token 10i 0 Next look-ahead char
+ d token like(xmlCint) Next look-ahead char
*
d directory * char *
*
* Node name stack
*
d name * const xmlChar *
- d nameNr 10i 0 Parsing stack depth
- d nameMax 10i 0 Max stack depth
+ d nameNr like(xmlCint) Parsing stack depth
+ d nameMax like(xmlCint) Max stack depth
d nameTab * const xmlChar * *
*
d nbChars like(xmlClong) # xmlChars processed
d checkIndex like(xmlClong) 4 progressive parse
- d keepBlanks 10i 0 Ugly but ...
- d disableSAX 10i 0 Disable SAX cllbacks
- d inSubset 10i 0 In int 1/ext 2 sbset
+ d keepBlanks like(xmlCint) Ugly but ...
+ d disableSAX like(xmlCint) Disable SAX cllbacks
+ d inSubset like(xmlCint) In int 1/ext 2 sbset
d intSubName * const xmlChar *
d extSubURI * const xmlChar *
d extSubSytem * const xmlChar *
@@ -259,27 +261,27 @@
* xml:space values
*
d space * int *
- d spaceNr 10i 0 Parsing stack depth
- d spaceMax 10i 0 Max stack depth
+ d spaceNr like(xmlCint) Parsing stack depth
+ d spaceMax like(xmlCint) Max stack depth
d spaceTab * int *
*
- d depth 10i 0 To detect loops
+ d depth like(xmlCint) To detect loops
d entity like(xmlParserInputPtr) To check boundaries
- d charset 10i 0 In-memory content
- d nodelen 10i 0 Speed up parsing
- d nodemem 10i 0 Speed up parsing
- d pedantic 10i 0 Enb. pedantic warng
+ d charset like(xmlCint) In-memory content
+ d nodelen like(xmlCint) Speed up parsing
+ d nodemem like(xmlCint) Speed up parsing
+ d pedantic like(xmlCint) Enb. pedantic warng
d #private * void *
*
- d loadsubset 10i 0 Load ext. subset ?
- d linenumbers 10i 0 Set line numbers ?
+ d loadsubset like(xmlCint) Load ext. subset ?
+ d linenumbers like(xmlCint) Set line numbers ?
d catalogs * void *
- d recovery 10i 0 Run in recovery mode
- d progressive 10i 0 Progressive parsing?
+ d recovery like(xmlCint) Run in recovery mode
+ d progressive like(xmlCint) Progressive parsing?
d dict like(xmlDictPtr) Parser dictionary
d atts * const xmlChar *
- d maxatts 10i 0 Above array size
- d docdict 10i 0 Use dictionary ?
+ d maxatts like(xmlCint) Above array size
+ d docdict like(xmlCint) Use dictionary ?
*
* pre-interned strings
*
@@ -289,23 +291,23 @@
*
* Everything below is used only by the new SAX mode
*
- d sax2 10i 0 New SAX mode ?
- d nsNr 10i 0 # inherited nmspaces
- d nsMax 10i 0 Array size
+ d sax2 like(xmlCint) New SAX mode ?
+ d nsNr like(xmlCint) # inherited nmspaces
+ d nsMax like(xmlCint) Array size
d nsTab * const xmlChar *
d attallocs * int *
d pushTab * void *
d attsDefault like(xmlHashTablePtr) Defaulted attrs
d attsSpecial like(xmlHashTablePtr) non-CDATA attrs
- d nsWellFormed 10i 0 Doc namespace OK ?
- d options 10i 0 Extra options
+ d nsWellFormed like(xmlCint) Doc namespace OK ?
+ d options like(xmlCint) Extra options
*
* Those fields are needed only for treaming parsing so far
*
- d dictNames 10i 0 Dict names in tree ?
- d freeElemsNr 10i 0 # free element nodes
+ d dictNames like(xmlCint) Dict names in tree ?
+ d freeElemsNr like(xmlCint) # free element nodes
d freeElems like(xmlNodePtr) Free elem nodes list
- d freeAttrsNr 10i 0 # free attr. nodes
+ d freeAttrsNr like(xmlCint) # free attr. nodes
d freeAttrs like(xmlAttrPtr) Free attr noes list
*
* the complete error informations for the last error.
@@ -318,11 +320,11 @@
* for use by HTML non-recursive parser
*
d nodeInfo like(xmlParserNodeInfoPtr) Current NodeInfo
- d nodeInfoNr 10i 0 Parsing stack depth
- d nodeInfoMax 10i 0 Max stack depth
+ d nodeInfoNr like(xmlCint) Parsing stack depth
+ d nodeInfoMax like(xmlCint) Max stack depth
d nodeInfoTab * xmlParserNodeInfo *
*
- d input_id 10i 0 Label inputs ?
+ d input_id like(xmlCint) Label inputs ?
d sizeentcopy like(xmlCulong) Entity copy volume
* xmlSAXLocator:
@@ -756,7 +758,7 @@
d cdataBlock like(cdataBlockSAXFunc)
d externalSubset...
d like(externalSubsetSAXFunc)
- d initialized 10u 0
+ d initialized like(xmlCuint)
*
* The following fields are extensions available only on version 2
*
@@ -810,7 +812,7 @@
d cdataBlock like(cdataBlockSAXFunc)
d externalSubset...
d like(externalSubsetSAXFunc)
- d initialized 10u 0
+ d initialized like(xmlCuint)
* xmlExternalEntityLoader:
* @URL: The System ID of the resource requested
@@ -839,14 +841,16 @@
* Input functions
d xmlParserInputRead...
- d pr 10i 0 extproc('xmlParserInputRead')
+ d pr extproc('xmlParserInputRead')
+ d like(xmlCint)
d in value like(xmlParserInputPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlParserInputGrow...
- d pr 10i 0 extproc('xmlParserInputGrow')
+ d pr extproc('xmlParserInputGrow')
+ d like(xmlCint)
d in value like(xmlParserInputPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
* Basic parsing Interfaces
@@ -862,28 +866,32 @@
d xmlParseMemory pr extproc('xmlParseMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
/endif LIBXML_SAX1_ENABLED
d xmlSubstituteEntitiesDefault...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSubstituteEntitiesDefault')
- d val 10i 0 value
+ d like(xmlCint)
+ d val value like(xmlCint)
d xmlKeepBlanksDefault...
- d pr 10i 0 extproc('xmlKeepBlanksDefault')
- d val 10i 0 value
+ d pr extproc('xmlKeepBlanksDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
d xmlStopParser pr extproc('xmlStopParser')
d ctxt value like(xmlParserCtxtPtr)
d xmlPedanticParserDefault...
- d pr 10i 0 extproc('xmlPedanticParserDefault')
- d val 10i 0 value
+ d pr extproc('xmlPedanticParserDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
d xmlLineNumbersDefault...
- d pr 10i 0 extproc('xmlLineNumbersDefault')
- d val 10i 0 value
+ d pr extproc('xmlLineNumbersDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
/if defined(LIBXML_SAX1_ENABLED)
* Recovery mode
@@ -896,7 +904,7 @@
d pr extproc('xmlRecoverMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlRecoverFile pr extproc('xmlRecoverFile')
d like(xmlDocPtr)
@@ -906,48 +914,52 @@
* Less common routines and SAX interfaces
d xmlParseDocument...
- d pr 10i 0 extproc('xmlParseDocument')
+ d pr extproc('xmlParseDocument')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseExtParsedEnt...
- d pr 10i 0 extproc('xmlParseExtParsedEnt')
+ d pr extproc('xmlParseExtParsedEnt')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
/if defined(LIBXML_SAX1_ENABLED)
d xmlSAXUserParseFile...
- d pr 10i 0 extproc('xmlSAXUserParseFile')
+ d pr extproc('xmlSAXUserParseFile')
+ d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d filename * value options(*string) const char *
d xmlSAXUserParseMemory...
- d pr 10i 0 extproc('xmlSAXUserParseMemory')
+ d pr extproc('xmlSAXUserParseMemory')
+ d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlSAXParseDoc pr extproc('xmlSAXParseDoc')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d cur * value options(*string) const xmlChar *
- d recovery 10i 0 value
+ d recovery value like(xmlCint)
d xmlSAXParseMemory...
d pr extproc('xmlSAXParseMemory')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
- d recovery 10i 0 value
+ d size value like(xmlCint)
+ d recovery value like(xmlCint)
d xmlSAXParseMemoryWithData...
d pr extproc('xmlSAXParseMemoryWithData')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
- d recovery 10i 0 value
+ d size value like(xmlCint)
+ d recovery value like(xmlCint)
d data * value void *
d xmlSAXParseFile...
@@ -955,14 +967,14 @@
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d filename * value options(*string) const char *
- d recovery 10i 0 value
+ d recovery value like(xmlCint)
d xmlSAXParseFileWithData...
d pr extproc('xmlSAXParseFileWithData')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d filename * value options(*string) const char *
- d recovery 10i 0 value
+ d recovery value like(xmlCint)
d data * value void *
d xmlSAXParseEntity...
@@ -998,12 +1010,13 @@
/if defined(LIBXML_SAX1_ENABLED)
d xmlParseBalancedChunkMemory...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlParseBalancedChunkMemory')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
- d depth 10i 0 value
+ d depth value like(xmlCint)
d user_data * value void *
d string * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
@@ -1014,35 +1027,38 @@
d like(xmlParserErrors)
d node value like(xmlNodePtr)
d data * value options(*string) const char *
- d datalen 10i 0 value
- d options 10i 0 value
+ d datalen value like(xmlCint)
+ d options value like(xmlCint)
d lst * value xmlNodePtr *
/if defined(LIBXML_SAX1_ENABLED)
d xmlParseBalancedChunkMemoryRecover...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlParseBalancedChunkMemoryRecover')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
- d depth 10i 0 value
+ d depth value like(xmlCint)
d string * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
- d recover 10i 0 value
+ d recover value like(xmlCint)
d xmlParseExternalEntity...
- d pr 10i 0 extproc('xmlParseExternalEntity')
+ d pr extproc('xmlParseExternalEntity')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
- d depth 10i 0 value
+ d depth value like(xmlCint)
d URL * value options(*string) const xmlChar *
d ID * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
/endif LIBXML_SAX1_ENABLED
d xmlParseCtxtExternalEntity...
- d pr 10i 0 extproc('xmlParseCtxtExternalEntity')
+ d pr extproc('xmlParseCtxtExternalEntity')
+ d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d URL * value options(*string) const xmlChar *
d ID * value options(*string) const xmlChar *
@@ -1055,7 +1071,8 @@
d like(xmlParserCtxtPtr)
d xmlInitParserCtxt...
- d pr 10i 0 extproc('xmlInitParserCtxt')
+ d pr extproc('xmlInitParserCtxt')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlClearParserCtxt...
@@ -1083,16 +1100,19 @@
* Reading/setting optional parsing features.
d xmlGetFeaturesList...
- d pr 10i 0 extproc('xmlGetFeaturesList')
- d len 10i 0
+ d pr extproc('xmlGetFeaturesList')
+ d like(xmlCint)
+ d len like(xmlCint)
d result * const char *(*)
- d xmlGetFeature pr 10i 0 extproc('xmlGetFeature')
+ d xmlGetFeature pr extproc('xmlGetFeature')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const char *
d result * value void *
- d xmlSetFeature pr 10i 0 extproc('xmlSetFeature')
+ d xmlSetFeature pr extproc('xmlSetFeature')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const char *
d result * value void *
@@ -1107,14 +1127,15 @@
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
- d xmlParseChunk pr 10i 0 extproc('xmlParseChunk')
+ d xmlParseChunk pr extproc('xmlParseChunk')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
- d terminate 10i 0 value
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
/endif LIBXML_PUSH_ENABLED
* Special I/O mode.
@@ -1194,7 +1215,8 @@
* to the xmlReadDoc() and similar calls.
d xmlParserOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSE_RECOVER... Recover on errors
d c X'00000001'
d XML_PARSE_NOENT... Substitute entities
@@ -1246,45 +1268,47 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlCtxtResetPush...
- d pr 10i 0 extproc('xmlCtxtResetPush')
+ d pr extproc('xmlCtxtResetPush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
d xmlCtxtUseOptions...
- d pr 10i 0 extproc('xmlCtxtUseOptions')
+ d pr extproc('xmlCtxtUseOptions')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadDoc pr extproc('xmlReadDoc')
d like(xmlDocPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadFile pr extproc('xmlReadFile')
d like(xmlDocPtr)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadMemory pr extproc('xmlReadMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadFd pr extproc('xmlReadFd')
d like(xmlDocPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadIO pr extproc('xmlReadIO')
d like(xmlDocPtr)
@@ -1293,7 +1317,7 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadDoc pr extproc('xmlCtxtReadDoc')
d like(xmlDocPtr)
@@ -1301,7 +1325,7 @@
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadFile...
d pr extproc('xmlCtxtReadFile')
@@ -1309,25 +1333,25 @@
d ctxt value like(xmlParserCtxtPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadMemory...
d pr extproc('xmlCtxtReadMemory')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadFd pr extproc('xmlCtxtReadFd')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadIO pr extproc('xmlCtxtReadIO')
d like(xmlDocPtr)
@@ -1337,7 +1361,7 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Library wide options
@@ -1347,7 +1371,8 @@
* or disabled at compile-time.
* They used to be called XML_FEATURE_xxx but this clashed with Expat
- d xmlFeature s 10i 0 based(######typedef######) enum
+ d xmlFeature s based(######typedef######)
+ d like(xmlCenum)
d XML_WITH_THREAD...
d c 1
d XML_WITH_TREE c 2
@@ -1404,7 +1429,8 @@
d XML_WITH_LZMA c 33
d XML_WITH_NONE c 99999
- d xmlHasFeature pr 10i 0 extproc('xmlHasFeature')
+ d xmlHasFeature pr extproc('xmlHasFeature')
+ d like(xmlCint)
d feature value like(xmlFeature)
/endif XML_PARSER_H__
diff --git a/os400/libxmlrpg/parserInternals.rpgle b/os400/libxmlrpg/parserInternals.rpgle
index 26913977..6c8f3884 100644
--- a/os400/libxmlrpg/parserInternals.rpgle
+++ b/os400/libxmlrpg/parserInternals.rpgle
@@ -11,6 +11,7 @@
/define XML_PARSER_INTERNALS_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/HTMLparser"
/include "libxmlrpg/chvalid"
@@ -22,7 +23,8 @@
* boundary feature, use XML_PARSE_HUGE option to override it.
d xmlParserMaxDepth...
- d s 10u 0 import('xmlParserMaxDepth')
+ d s import('xmlParserMaxDepth')
+ d like(xmlCuint)
* XML_MAX_TEXT_LENGTH:
*
@@ -93,8 +95,9 @@
* Function to finish the work of the macros where needed.
- d xmlIsLetter pr 10i 0 extproc('xmlIsLetter')
- d c 10i 0 value
+ d xmlIsLetter pr extproc('xmlIsLetter')
+ d like(xmlCint)
+ d c value like(xmlCint)
* Parser context.
@@ -107,13 +110,13 @@
d pr extproc('xmlCreateURLParserCtxt')
d like(xmlParserCtxtPtr)
d filename * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCreateMemoryParserCtxt...
d pr extproc('xmlCreateMemoryParserCtxt')
d like(xmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlCreateEntityParserCtxt...
d pr extproc('xmlCreateEntityParserCtxt')
@@ -123,17 +126,20 @@
d base * value options(*string) const xmlChar *
d xmlSwitchEncoding...
- d pr 10i 0 extproc('xmlSwitchEncoding')
+ d pr extproc('xmlSwitchEncoding')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d enc value like(xmlCharEncoding)
d xmlSwitchToEncoding...
- d pr 10i 0 extproc('xmlSwitchToEncoding')
+ d pr extproc('xmlSwitchToEncoding')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d handler value like(xmlCharEncodingHandlerPtr)
d xmlSwitchInputEncoding...
- d pr 10i 0 extproc('xmlSwitchInputEncoding')
+ d pr extproc('xmlSwitchInputEncoding')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d input value like(xmlParserInputPtr)
d handler value like(xmlCharEncodingHandlerPtr)
@@ -152,7 +158,8 @@
d ctxt value like(xmlParserCtxtPtr)
d entity value like(xmlEntityPtr)
- d xmlPushInput pr 10i 0 extproc('xmlPushInput')
+ d xmlPushInput pr extproc('xmlPushInput')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d input value like(xmlParserInputPtr)
@@ -211,13 +218,13 @@
d xmlParseCharData...
d pr extproc('xmlParseCharData')
d ctxt value like(xmlParserCtxtPtr)
- d cdata 10i 0 value
+ d cdata value like(xmlCint)
d xmlParseExternalID...
d pr * extproc('xmlParseExternalID') xmlChar *
d ctxt value like(xmlParserCtxtPtr)
d publicID * xmlChar *(*)
- d strict 10i 0 value
+ d strict value like(xmlCint)
d xmlParseComment...
d pr extproc('xmlParseComment')
@@ -239,7 +246,8 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlParseDefaultDecl...
- d pr 10i 0 extproc('xmlParseDefaultDecl')
+ d pr extproc('xmlParseDefaultDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value * xmlChar *(*)
@@ -254,12 +262,14 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlParseEnumeratedType...
- d pr 10i 0 extproc('xmlParseEnumeratedType')
+ d pr extproc('xmlParseEnumeratedType')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d tree * value xmlEnumerationPtr *
d xmlParseAttributeType...
- d pr 10i 0 extproc('xmlParseAttributeType')
+ d pr extproc('xmlParseAttributeType')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d tree * value xmlEnumerationPtr *
@@ -272,24 +282,26 @@
d 'xmlParseElementMixedContentDecl')
d like(xmlElementContentPtr)
d ctxt value like(xmlParserCtxtPtr)
- d inputchk 10i 0 value
+ d inputchk value like(xmlCint)
d xmlParseElementChildrenContentDecl...
d pr extproc(
d 'xmlParseElementChildrenContentDecl')
d like(xmlElementContentPtr)
d ctxt value like(xmlParserCtxtPtr)
- d inputchk 10i 0 value
+ d inputchk value like(xmlCint)
d xmlParseElementContentDecl...
- d pr 10i 0 extproc('xmlParseElementContentDecl')
+ d pr extproc('xmlParseElementContentDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const xmlChar *
d result * value xmlElementContentPtr
d *
d xmlParseElementDecl...
- d pr 10i 0 extproc('xmlParseElementDecl')
+ d pr extproc('xmlParseElementDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseMarkupDecl...
@@ -297,7 +309,8 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlParseCharRef...
- d pr 10i 0 extproc('xmlParseCharRef')
+ d pr extproc('xmlParseCharRef')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseEntityRef...
@@ -358,7 +371,8 @@
d pr * extproc('xmlParseEncodingDecl') const xmlChar *
d ctxt value like(xmlParserCtxtPtr)
- d xmlParseSDDecl pr 10i 0 extproc('xmlParseSDDecl')
+ d xmlParseSDDecl pr extproc('xmlParseSDDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseXMLDecl...
@@ -410,7 +424,7 @@
d pr * extproc('xmlStringDecodeEntities') xmlChar *
d ctxt value like(xmlParserCtxtPtr)
d str * value options(*string) const xmlChar *
- d what 10i 0 value
+ d what value like(xmlCint)
d end value like(xmlChar)
d end2 value like(xmlChar)
d end3 value like(xmlChar)
@@ -419,15 +433,16 @@
d pr * extproc('xmlStringLenDecodeEntities')xmlChar *
d ctxt value like(xmlParserCtxtPtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value
- d what 10i 0 value
+ d len value like(xmlCint)
+ d what value like(xmlCint)
d end value like(xmlChar)
d end2 value like(xmlChar)
d end3 value like(xmlChar)
* Generated by MACROS on top of parser.c c.f. PUSH_AND_POP.
- d nodePush pr 10i 0 extproc('nodePush')
+ d nodePush pr extproc('nodePush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value value like(xmlNodePtr)
@@ -435,7 +450,8 @@
d like(xmlNodePtr)
d ctxt value like(xmlParserCtxtPtr)
- d inputPush pr 10i 0 extproc('inputPush')
+ d inputPush pr extproc('inputPush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value value like(xmlParserInputPtr)
@@ -446,18 +462,21 @@
d namePop pr * extproc('namePop') const xmlChar *
d ctxt value like(xmlParserCtxtPtr)
- d namePush pr 10i 0 extproc('namePush')
+ d namePush pr extproc('namePush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value * value options(*string) const xmlChar *
* other commodities shared between parser.c and parserInternals.
d xmlSkipBlankChars...
- d pr 10i 0 extproc('xmlSkipBlankChars')
+ d pr extproc('xmlSkipBlankChars')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlStringCurrentChar...
- d pr 10i 0 extproc('xmlStringCurrentChar')
+ d pr extproc('xmlStringCurrentChar')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d cur * value options(*string) const xmlChar *
d len * value int *
@@ -467,24 +486,28 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlCheckLanguageID...
- d pr 10i 0 extproc('xmlCheckLanguageID')
+ d pr extproc('xmlCheckLanguageID')
+ d like(xmlCint)
d lang * value options(*string) const xmlChar *
* Really core function shared with HTML parser.
- d xmlCurrentChar pr 10i 0 extproc('xmlCurrentChar')
+ d xmlCurrentChar pr extproc('xmlCurrentChar')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d len * value int *
d xmlCopyCharMultiByte...
- d pr 10i 0 extproc('xmlCopyCharMultiByte')
+ d pr extproc('xmlCopyCharMultiByte')
+ d like(xmlCint)
d out * value options(*string) xmlChar *
- d val 10i 0 value
+ d val value like(xmlCint)
- d xmlCopyChar pr 10i 0 extproc('xmlCopyChar')
- d len 10i 0 value
+ d xmlCopyChar pr extproc('xmlCopyChar')
+ d like(xmlCint)
+ d len value like(xmlCint)
d out * value options(*string) xmlChar *
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlNextChar pr extproc('xmlNextChar')
d ctxt value like(xmlParserCtxtPtr)
@@ -560,8 +583,8 @@
d xmlDecodeEntities...
d pr * extproc('xmlDecodeEntities') xmlChar *
d ctxt value like(xmlParserCtxtPtr)
- d len 10i 0 value
- d what 10i 0 value
+ d len value like(xmlCint)
+ d what value like(xmlCint)
d end value like(xmlChar)
d end2 value like(xmlChar)
d end3 value like(xmlChar)
diff --git a/os400/libxmlrpg/pattern.rpgle b/os400/libxmlrpg/pattern.rpgle
index 2e881e5d..ef023010 100644
--- a/os400/libxmlrpg/pattern.rpgle
+++ b/os400/libxmlrpg/pattern.rpgle
@@ -10,11 +10,13 @@
/define XML_PATTERN_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
- /include "libxmlrpg/dict"
/if defined(LIBXML_PATTERN_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/dict"
+
* xmlPattern:
*
* A compiled (XPath based) pattern to select nodes
@@ -28,7 +30,8 @@
* matching with this module
d xmlPatternFlags...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PATTERN_DEFAULT... Simple pattern match
d c X'0000'
d XML_PATTERN_XPATH... Std XPath pattern
@@ -50,11 +53,12 @@
d like(xmlPatternPtr)
d pattern * value options(*string) const xmlChar *
d dict * value xmlDict *
- d flags 10i 0 value
+ d flags value like(xmlCint)
d namespaces * const xmlChar *(*)
d xmlPatternMatch...
- d pr 10i 0 extproc('xmlPatternMatch')
+ d pr extproc('xmlPatternMatch')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d node value like(xmlNodePtr)
@@ -64,19 +68,23 @@
d s * based(######typedef######)
d xmlPatternStreamable...
- d pr 10i 0 extproc('xmlPatternStreamable')
+ d pr extproc('xmlPatternStreamable')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternMaxDepth...
- d pr 10i 0 extproc('xmlPatternMaxDepth')
+ d pr extproc('xmlPatternMaxDepth')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternMinDepth...
- d pr 10i 0 extproc('xmlPatternMinDepth')
+ d pr extproc('xmlPatternMinDepth')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternFromRoot...
- d pr 10i 0 extproc('xmlPatternFromRoot')
+ d pr extproc('xmlPatternFromRoot')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternGetStreamCtxt...
@@ -89,28 +97,33 @@
d stream value like(xmlStreamCtxtPtr)
d xmlStreamPushNode...
- d pr 10i 0 extproc('xmlStreamPushNode')
+ d pr extproc('xmlStreamPushNode')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d name * value options(*string) const xmlChar *
d ns * value options(*string) const xmlChar *
- d nodeType 10i 0 value
+ d nodeType value like(xmlCint)
- d xmlStreamPush pr 10i 0 extproc('xmlStreamPush')
+ d xmlStreamPush pr extproc('xmlStreamPush')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d name * value options(*string) const xmlChar *
d ns * value options(*string) const xmlChar *
d xmlStreamPushAttr...
- d pr 10i 0 extproc('xmlStreamPushAttr')
+ d pr extproc('xmlStreamPushAttr')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d name * value options(*string) const xmlChar *
d ns * value options(*string) const xmlChar *
- d xmlStreamPop pr 10i 0 extproc('xmlStreamPop')
+ d xmlStreamPop pr extproc('xmlStreamPop')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d xmlStreamWantsAnyNode...
- d pr 10i 0 extproc('xmlStreamWantsAnyNode')
+ d pr extproc('xmlStreamWantsAnyNode')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
/endif LIBXML_PATTERN_ENBLD
diff --git a/os400/libxmlrpg/relaxng.rpgle b/os400/libxmlrpg/relaxng.rpgle
index af662aa6..15b8471c 100644
--- a/os400/libxmlrpg/relaxng.rpgle
+++ b/os400/libxmlrpg/relaxng.rpgle
@@ -9,11 +9,13 @@
/define XML_RELAX_NG__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/hash"
- /include "libxmlrpg/xmlstring"
/if defined(LIBXML_SCHEMAS_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/hash"
+ /include "libxmlrpg/xmlstring"
+
d xmlRelaxNGPtr s * based(######typedef######)
* xmlRelaxNGValidityErrorFunc:
@@ -51,7 +53,8 @@
* List of possible Relax NG validation errors
d xmlRelaxNGValidErr...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_RELAXNG_OK...
d c 0
d XML_RELAXNG_ERR_MEMORY...
@@ -138,7 +141,8 @@
* List of possible Relax NG Parser flags
d xmlRelaxNGParserFlag...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_RELAXNGP_NONE...
d c 0
d XML_RELAXNGP_FREE_DOC...
@@ -147,7 +151,8 @@
d c 2
d xmlRelaxNGInitTypes...
- d pr 10i 0 extproc('xmlRelaxNGInitTypes')
+ d pr extproc('xmlRelaxNGInitTypes')
+ d like(xmlCint)
d xmlRelaxNGCleanupTypes...
d pr extproc('xmlRelaxNGCleanupTypes')
@@ -164,7 +169,7 @@
d pr extproc('xmlRelaxNGNewMemParserCtxt')
d like(xmlRelaxNGParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlRelaxNGNewDocParserCtxt...
d pr extproc('xmlRelaxNGNewDocParserCtxt')
@@ -172,9 +177,10 @@
d doc value like(xmlDocPtr)
d xmlRelaxParserSetFlag...
- d pr 10i 0 extproc('xmlRelaxParserSetFlag')
+ d pr extproc('xmlRelaxParserSetFlag')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGParserCtxtPtr)
- d flag 10i 0 value
+ d flag value like(xmlCint)
d xmlRelaxNGFreeParserCtxt...
d pr extproc('xmlRelaxNGFreeParserCtxt')
@@ -190,7 +196,8 @@
d ctx * value void *
d xmlRelaxNGGetParserErrors...
- d pr 10i 0 extproc('xmlRelaxNGGetParserErrors')
+ d pr extproc('xmlRelaxNGGetParserErrors')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGParserCtxtPtr)
d err like(xmlRelaxNGValidityErrorFunc)
d warn like(xmlRelaxNGValidityWarningFunc)
@@ -236,7 +243,8 @@
d ctx * value void *
d xmlRelaxNGGetValidErrors...
- d pr 10i 0 extproc('xmlRelaxNGGetValidErrors')
+ d pr extproc('xmlRelaxNGGetValidErrors')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d err like(xmlRelaxNGValidityErrorFunc)
d warn like(xmlRelaxNGValidityWarningFunc)
@@ -259,36 +267,41 @@
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d xmlRelaxNGValidateDoc...
- d pr 10i 0 extproc('xmlRelaxNGValidateDoc')
+ d pr extproc('xmlRelaxNGValidateDoc')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
* Interfaces for progressive validation when possible
d xmlRelaxNGValidatePushElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidatePushElement')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlRelaxNGValidatePushCData...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidatePushCData')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d data * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlRelaxNGValidatePopElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidatePopElement')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlRelaxNGValidateFullElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidateFullElement')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/schemasInternals.rpgle b/os400/libxmlrpg/schemasInternals.rpgle
index edeea5b7..8d3013ef 100644
--- a/os400/libxmlrpg/schemasInternals.rpgle
+++ b/os400/libxmlrpg/schemasInternals.rpgle
@@ -15,12 +15,15 @@
/include "libxmlrpg/xmlversion"
/if defined(LIBXML_SCHEMAS_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlregexp"
/include "libxmlrpg/hash"
/include "libxmlrpg/dict"
d xmlSchemaValType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMAS_UNKNOWN...
d c 0
d XML_SCHEMAS_STRING...
@@ -119,7 +122,8 @@
* XML Schemas defines multiple type of types.
d xmlSchemaTypeType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMA_TYPE_BASIC... A builtin datatype
d c 1
d XML_SCHEMA_TYPE_ANY...
@@ -202,7 +206,8 @@
d c 2001
d xmlSchemaContentType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMA_CONTENT_UNKNOWN...
d c 0
d XML_SCHEMA_CONTENT_EMPTY...
@@ -357,13 +362,13 @@
d annot like(xmlSchemaAnnotPtr)
*
d base like(xmlSchemaTypePtr) Deprecated
- d occurs 10i 0 Deprecated
+ d occurs like(xmlCint) Deprecated
d defValue * const xmlChar *
d subtypes like(xmlSchemaTypePtr) The type definition
d node like(xmlNodePtr)
d targetNamespace... const xmlChar *
d *
- d flags 10i 0
+ d flags like(xmlCint)
d refPrefix * const xmlChar *
d defVal like(xmlSchemaValPtr) Compiled constraint
d refDecl like(xmlSchemaAttributePtr) Deprecated
@@ -413,14 +418,14 @@
d id * const xmlChar *
d annot like(xmlSchemaAnnotPtr)
d node like(xmlNodePtr)
- d minOccurs 10i 0 Deprecated; not used
- d maxOccurs 10i 0 Deprecated; not used
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
d processContents...
- d 10i 0
- d any 10i 0 Ns constraint ##any?
+ d like(xmlCint)
+ d any like(xmlCint) Ns constraint ##any?
d nsSet like(xmlSchemaWildcardNsPtr) Allowed namspce list
d negNsSet like(xmlSchemaWildcardNsPtr) Negated namespace
- d flags 10i 0 Deprecated; not used
+ d flags like(xmlCint) Deprecated; not used
* XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
*
@@ -478,7 +483,7 @@
*
d attributes like(xmlSchemaAttributePtr) Deprecated; not used
d node like(xmlNodePtr)
- d flags 10i 0
+ d flags like(xmlCint)
d attributeWildcard...
d like(xmlSchemaWildcardPtr)
d refPrefix * const xmlChar *
@@ -753,21 +758,21 @@
d subtypes like(xmlSchemaTypePtr)
d attributes like(xmlSchemaAttributePtr) Deprecated; not used
d node like(xmlNodePtr)
- d minOccurs 10i 0 Deprecated; not used
- d maxOccurs 10i 0 Deprecated; not used
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
*
- d flags 10i 0
+ d flags like(xmlCint)
d contentType like(xmlSchemaContentType)
d base * const xmlChar *
d baseNs * const xmlChar *
d baseType like(xmlSchemaTypePtr) Base type component
d facets like(xmlSchemaFacetPtr) Local facets
d redef like(xmlSchemaTypePtr) Deprecated; not used
- d recurse 10i 0 Obsolete
+ d recurse like(xmlCint) Obsolete
d attributeUses like(xmlSchemaAttributeLinkPtr) Deprecated; not used
d attributeWildcard...
d like(xmlSchemaWildcardPtr)
- d builtInType 10i 0 Built-in types type
+ d builtInType like(xmlCint) Built-in types type
d memberTypes like(xmlSchemaTypeLinkPtr) Union member-types
d facetSet like(xmlSchemaFacetLinkPtr) All facets
d refPrefix * const xmlChar *
@@ -937,10 +942,10 @@
d subtypes like(xmlSchemaTypePtr)
d attributes like(xmlSchemaAttributePtr) Deprecated; not used
d node like(xmlNodePtr)
- d minOccurs 10i 0 Deprecated; not used
- d maxOccurs 10i 0 Deprecated; not used
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
*
- d flags 10i 0
+ d flags like(xmlCint)
d targetNamespace...
d * const xmlChar *
d namedType * const xmlChar *
@@ -995,8 +1000,8 @@
d id * const xmlChar *
d annot like(xmlSchemaAnnotPtr)
d node like(xmlNodePtr)
- d fixed 10i 0 _FACET_PRESERVE, etc
- d whitespace 10i 0
+ d fixed like(xmlCint) _FACET_PRESERVE, etc
+ d whitespace like(xmlCint)
d val like(xmlSchemaValPtr) Compiled value
d regexp like(xmlRegexpPtr) Regexp for patterns
@@ -1106,7 +1111,7 @@
d id * const xmlChar *
d doc like(xmlDocPtr)
d annot like(xmlSchemaAnnotPtr)
- d flags 10i 0
+ d flags like(xmlCint)
*
d typeDecl like(xmlHashTablePtr)
d attrDecl like(xmlHashTablePtr)
@@ -1120,8 +1125,8 @@
d groupDecl like(xmlHashTablePtr)
d dict like(xmlDictPtr)
d includes * void *
- d preserve 10i 0 Do not free doc ?
- d counter 10i 0 For name uniqueness
+ d preserve like(xmlCint) Do not free doc ?
+ d counter like(xmlCint) For name uniqueness
d idcDef like(xmlHashTablePtr) All id-constr. defs
d volatiles * void *
diff --git a/os400/libxmlrpg/schematron.rpgle b/os400/libxmlrpg/schematron.rpgle
index c987cd5e..8271ca5e 100644
--- a/os400/libxmlrpg/schematron.rpgle
+++ b/os400/libxmlrpg/schematron.rpgle
@@ -12,10 +12,12 @@
/if defined(LIBXML_SCHEMATRON_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
d xmlSchematronValidOptions...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMATRON_OUT_QUIET... Quiet no report
d c X'0001'
d XML_SCHEMATRON_OUT_TEXT... Build textual report
@@ -78,7 +80,7 @@
d 'xmlSchematronNewMemParserCtxt')
d like(xmlSchematronParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlSchematronNewDocParserCtxt...
d pr extproc(
@@ -105,8 +107,9 @@
d ctx * value void *
d xmlSchematronGetParserErrors...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronGetParserErrors')
+ d like(xmlCint)
d ctxt value
d like(xmlSchematronParserCtxtPtr)
d err like(xmlSchematronValidityErrorFunc)
@@ -115,7 +118,8 @@
d ctx * void *(*)
d xmlSchematronIsValid...
- d pr 10i 0 extproc('xmlSchematronIsValid')
+ d pr extproc('xmlSchematronIsValid')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
/endif
@@ -150,8 +154,9 @@
d ctx * value void *
d xmlSchematronGetValidErrors...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronGetValidErrors')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d err like(xmlSchematronValidityErrorFunc)
d warn like(
@@ -159,19 +164,22 @@
d ctx * void *(*)
d xmlSchematronSetValidOptions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronSetValidOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchematronValidCtxtGetOptions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronValidCtxtGetOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d xmlSchematronValidateOneElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronValidateOneElement')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d elem value like(xmlNodePtr)
/endif
@@ -180,14 +188,15 @@
d pr extproc('xmlSchematronNewValidCtxt')
d like(xmlSchematronValidCtxtPtr)
d schema value like(xmlSchematronPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchematronFreeValidCtxt...
d pr extproc('xmlSchematronFreeValidCtxt')
d ctxt value like(xmlSchematronValidCtxtPtr)
d xmlSchematronValidateDoc...
- d pr 10i 0 extproc('xmlSchematronValidateDoc')
+ d pr extproc('xmlSchematronValidateDoc')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d instance value like(xmlDocPtr)
diff --git a/os400/libxmlrpg/threads.rpgle b/os400/libxmlrpg/threads.rpgle
index 07d42785..124798bb 100644
--- a/os400/libxmlrpg/threads.rpgle
+++ b/os400/libxmlrpg/threads.rpgle
@@ -10,6 +10,7 @@
/define XML_THREADS_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* xmlMutex are a simple mutual exception locks.
@@ -55,10 +56,12 @@
d xmlUnlockLibrary...
d pr extproc('xmlUnlockLibrary')
- d xmlGetThreadId pr 10i 0 extproc('xmlGetThreadId')
+ d xmlGetThreadId pr extproc('xmlGetThreadId')
+ d like(xmlCint)
d xmlIsMainThread...
- d pr 10i 0 extproc('xmlIsMainThread')
+ d pr extproc('xmlIsMainThread')
+ d like(xmlCint)
d xmlCleanupThreads...
d pr extproc('xmlCleanupThreads')
diff --git a/os400/libxmlrpg/tree.rpgle b/os400/libxmlrpg/tree.rpgle
index 5c67f4fa..6512778c 100644
--- a/os400/libxmlrpg/tree.rpgle
+++ b/os400/libxmlrpg/tree.rpgle
@@ -67,7 +67,8 @@
* need or double it's allocated size each time it is found too small.
d xmlBufferAllocationScheme...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_BUFFER_ALLOC_DOUBLEIT...
d c 0
d XML_BUFFER_ALLOC_EXACT...
@@ -89,8 +90,8 @@
d xmlBuffer ds based(xmlBufferPtr)
d align qualified
d content * xmlChar *
- d use 10u 0 The buffer size used
- d size 10u 0 The buffer size
+ d use like(xmlCuint)
+ d size like(xmlCuint)
d alloc like(xmlBufferAllocationScheme) The realloc method
d contentIO * xmlChar *
@@ -150,7 +151,8 @@
* Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
* be deprecated to use an XML_DTD_NODE.
- d xmlElementType s 10i 0 based(######typedef######) enum
+ d xmlElementType s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_NODE...
d c 1
d XML_ATTRIBUTE_NODE...
@@ -212,7 +214,8 @@
* A DTD Attribute type definition.
d xmlAttributeType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ATTRIBUTE_CDATA...
d c 1
d XML_ATTRIBUTE_ID...
@@ -239,7 +242,8 @@
* A DTD Attribute default definition.
d xmlAttributeDefault...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ATTRIBUTE_NONE...
d c 1
d XML_ATTRIBUTE_REQUIRED...
@@ -298,7 +302,8 @@
* Possible definitions of element content types.
d xmlElementContentType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_CONTENT_PCDATA...
d c 1
d XML_ELEMENT_CONTENT_ELEMENT...
@@ -313,7 +318,8 @@
* Possible definitions of element content occurrences.
d xmlElementContentOccur...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_CONTENT_ONCE...
d c 1
d XML_ELEMENT_CONTENT_OPT...
@@ -347,7 +353,8 @@
* The different possibilities for an element content type.
d xmlElementTypeVal...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_TYPE_UNDEFINED...
d c 0
d XML_ELEMENT_TYPE_EMPTY...
@@ -469,7 +476,7 @@
d next like(xmlIdPtr) Next ID
d attr like(xmlAttrPtr) Attribute holding it
d name * const xmlChar *
- d lineno 10i 0 Line # if not avail
+ d lineno like(xmlCint) Line # if not avail
d doc like(xmlDocPtr) Doc holding ID
* xmlRef:
@@ -484,7 +491,7 @@
d value * const xmlChar *
d attr like(xmlAttrPtr) Attribute holding it
d name * const xmlChar *
- d lineno 10i 0 Line # if not avail
+ d lineno like(xmlCint) Line # if not avail
* xmlNode:
*
@@ -515,7 +522,8 @@
* Some of them are linked to similary named xmlParserOption
d xmlDocProperties...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_DOC_WELLFORMED...
d c X'00000001'
d XML_DOC_NSVALID...
@@ -546,8 +554,8 @@
d next like(xmlNodePtr) next sibling link
d prev like(xmlNodePtr) previous sibling lnk
d doc like(xmlDocPtr) Reference to itself
- d compression 10i 0 zlib compression lev
- d standalone 10i 0
+ d compression like(xmlCint) zlib compression lev
+ d standalone like(xmlCint)
d intSubset like(xmlDtdPtr) Internal subset
d extSubset like(xmlDtdPtr) External subset
d oldns like(xmlNsPtr) Global namespace
@@ -556,11 +564,11 @@
d ids * IDs hash table
d refs * IDREFs hash table
d URL * const xmlChar *
- d charset 10i 0 In-memory encoding
+ d charset like(xmlCint) In-memory encoding
d dict * xmlDictPtr for names
d psvi * Type/PSVI ino
- d parseFlags 10i 0 xmlParserOption's
- d properties 10i 0 xmlDocProperties
+ d parseFlags like(xmlCint) xmlParserOption's
+ d properties like(xmlCint) xmlDocProperties
* xmlDOMWrapAcquireNsFunction:
* @ctxt: a DOM wrapper context
@@ -587,7 +595,7 @@
d ds based(xmlDOMWrapCtxtPtr)
d align qualified
d #private * void *
- d type 10i 0
+ d type like(xmlCint)
d namespaceMap * void *
d getNsForNodeFunc...
d like(xmlDOMWrapAcquireNsFunction)
@@ -619,9 +627,10 @@
/endif
/if defined(XML_TESTVAL)
d xmlValidateNCName...
- d pr 10i 0 extproc('xmlValidateNCName')
+ d pr extproc('xmlValidateNCName')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
/undefine XML_TESTVAL
/endif
@@ -633,19 +642,22 @@
/endif
/if defined(XML_TESTVAL)
d xmlValidateQName...
- d pr 10i 0 extproc('xmlValidateQName')
+ d pr extproc('xmlValidateQName')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
d xmlValidateName...
- d pr 10i 0 extproc('xmlValidateName')
+ d pr extproc('xmlValidateName')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
d xmlValidateNMToken...
- d pr 10i 0 extproc('xmlValidateNMToken')
+ d pr extproc('xmlValidateNMToken')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
/undefine XML_TESTVAL
/endif
@@ -654,7 +666,7 @@
d ncname * value options(*string) const xmlChar *
d prefix * value options(*string) const xmlChar *
d memory 65535 options(*varsize: *omit) xmlChar[]
- d len 10i 0 value memory length
+ d len value like(xmlCint) memory length
d xmlSplitQName2 pr * extproc('xmlSplitQName2') xmlChar *
d name * value options(*string) const xmlChar *
@@ -662,7 +674,7 @@
d xmlSplitQName3 pr * extproc('xmlSplitQName3') const xmlChar *
d name * value options(*string) const xmlChar *
- d len 10i 0
+ d len like(xmlCint)
* Handling Buffers, the old ones see @xmlBuf for the new ones.
@@ -693,44 +705,52 @@
d size value like(xmlCsize_t)
d xmlBufferResize...
- d pr 10i 0 extproc('xmlBufferResize')
+ d pr extproc('xmlBufferResize')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d size value like(xmlCsize_t)
d xmlBufferFree pr extproc('xmlBufferFree')
d buf value like(xmlBufferPtr)
- d xmlBufferDump pr 10i 0 extproc('xmlBufferDump')
+ d xmlBufferDump pr extproc('xmlBufferDump')
+ d like(xmlCint)
d file * value FILE *
d buf value like(xmlBufferPtr)
- d xmlBufferAdd pr 10i 0 extproc('xmlBufferAdd')
+ d xmlBufferAdd pr extproc('xmlBufferAdd')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value str length
+ d len value like(xmlCint) str length
d xmlBufferAddHead...
- d pr 10i 0 extproc('xmlBufferAddHead')
+ d pr extproc('xmlBufferAddHead')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value str length
+ d len value like(xmlCint) str length
- d xmlBufferCat pr 10i 0 extproc('xmlBufferCat')
+ d xmlBufferCat pr extproc('xmlBufferCat')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const xmlChar *
- d xmlBufferCCat pr 10i 0 extproc('xmlBufferCCat')
+ d xmlBufferCCat pr extproc('xmlBufferCCat')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const char *
d xmlBufferShrink...
- d pr 10i 0 extproc('xmlBufferShrink')
+ d pr extproc('xmlBufferShrink')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
- d len 10u 0 value str length
+ d len value like(xmlCuint)
- d xmlBufferGrow pr 10i 0 extproc('xmlBufferGrow')
+ d xmlBufferGrow pr extproc('xmlBufferGrow')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
- d len 10u 0 value str length
+ d len value like(xmlCuint)
d xmlBufferEmpty pr extproc('xmlBufferEmpty')
d buf value like(xmlBufferPtr)
@@ -751,7 +771,8 @@
d like(xmlBufferAllocationScheme)
d xmlBufferLength...
- d pr 10i 0 extproc('xmlBufferLength')
+ d pr extproc('xmlBufferLength')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
* Creating/freeing new structures.
@@ -876,7 +897,7 @@
d xmlCopyDoc pr extproc('xmlCopyDoc')
d like(xmlDocPtr)
d doc value like(xmlDocPtr)
- d recursive 10i 0 value
+ d recursive value like(xmlCint)
/undefine XML_TESTVAL
/endif
@@ -950,12 +971,12 @@
d like(xmlNodePtr)
d doc value like(xmlDocPtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNewTextLen pr extproc('xmlNewTextLen')
d like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNewDocComment...
d pr extproc('xmlNewDocComment')
@@ -972,7 +993,7 @@
d like(xmlNodePtr)
d doc value like(xmlDocPtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNewCharRef pr extproc('xmlNewCharRef')
d like(xmlNodePtr)
@@ -988,13 +1009,13 @@
d xmlCopyNode pr extproc('xmlCopyNode')
d like(xmlNodePtr)
d node value like(xmlNodePtr)
- d recursive 10i 0 value
+ d recursive value like(xmlCint)
d xmlDocCopyNode pr extproc('xmlDocCopyNode')
d like(xmlNodePtr)
d node value like(xmlNodePtr)
d doc value like(xmlDocPtr)
- d recursive 10i 0 value
+ d recursive value like(xmlCint)
d xmlDocCopyNodeList...
d pr extproc('xmlDocCopyNodeList')
@@ -1059,10 +1080,12 @@
d like(xmlNodePtr)
d parent value like(xmlNodePtr)
- d xmlNodeIsText pr 10i 0 extproc('xmlNodeIsText')
+ d xmlNodeIsText pr extproc('xmlNodeIsText')
+ d like(xmlCint)
d node value like(xmlNodePtr)
- d xmlIsBlankNode pr 10i 0 extproc('xmlIsBlankNode')
+ d xmlIsBlankNode pr extproc('xmlIsBlankNode')
+ d like(xmlCint)
d node value like(xmlNodePtr)
* Changing the structure.
@@ -1149,10 +1172,11 @@
d first value like(xmlNodePtr)
d second value like(xmlNodePtr)
- d xmlTextConcat pr 10i 0 extproc('xmlTextConcat')
+ d xmlTextConcat pr extproc('xmlTextConcat')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlFreeNodeList...
d pr extproc('xmlFreeNodeList')
@@ -1276,20 +1300,20 @@
d like(xmlNodePtr)
d doc value like(xmlDocPtr)
d value * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNodeListGetString...
d pr * extproc('xmlNodeListGetString') xmlChar *
d doc value like(xmlDocPtr)
d list value like(xmlNodePtr)
- d inLine 10i 0 value
+ d inLine value like(xmlCint)
/if defined(LIBXML_TREE_ENABLED)
d xmlNodeListGetRawString...
d pr * extproc('xmlNodeListGetRawString') xmlChar *
d doc value like(xmlDocPtr)
d list value like(xmlNodePtr)
- d inLine 10i 0 value
+ d inLine value like(xmlCint)
/endif LIBXML_TREE_ENABLED
d xmlNodeSetContent...
@@ -1302,7 +1326,7 @@
d pr extproc('xmlNodeSetContentLen')
d cur value like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
/endif LIBXML_TREE_ENABLED
d xmlNodeAddContent...
@@ -1314,19 +1338,21 @@
d pr extproc('xmlNodeAddContentLen')
d cur value like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNodeGetContent...
d pr * extproc('xmlNodeGetContent') xmlChar *
d cur value like(xmlNodePtr)
d xmlNodeBufGetContent...
- d pr 10i 0 extproc('xmlNodeBufGetContent')
+ d pr extproc('xmlNodeBufGetContent')
+ d like(xmlCint)
d buffer value like(xmlBufferPtr)
d cur value like(xmlNodePtr)
d xmlBufGetNodeContent...
- d pr 10i 0 extproc('xmlBufGetNodeContent')
+ d pr extproc('xmlBufGetNodeContent')
+ d like(xmlCint)
d buf value like(xmlBufPtr)
d cur value like(xmlNodePtr)
@@ -1334,7 +1360,8 @@
d cur value like(xmlNodePtr)
d xmlNodeGetSpacePreserve...
- d pr 10i 0 extproc('xmlNodeGetSpacePreserve')
+ d pr extproc('xmlNodeGetSpacePreserve')
+ d like(xmlCint)
d cur value like(xmlNodePtr)
/if defined(LIBXML_TREE_ENABLED)
@@ -1345,7 +1372,7 @@
d xmlNodeSetSpacePreserve...
d pr extproc('xmlNodeSetSpacePreserve')
d cur value like(xmlNodePtr)
- d val 10i 0 value
+ d val value like(xmlCint)
/endif LIBXML_TREE_ENABLED
d xmlNodeGetBase pr * extproc('xmlNodeGetBase') xmlChar *
@@ -1367,7 +1394,8 @@
* Removing content.
- d xmlRemoveProp pr 10i 0 extproc('xmlRemoveProp')
+ d xmlRemoveProp pr extproc('xmlRemoveProp')
+ d like(xmlCint)
d cur value like(xmlAttrPtr)
/if defined(LIBXML_TREE_ENABLED)
@@ -1376,12 +1404,14 @@
/define XML_TESTVAL
/endif
/if defined(XML_TESTVAL)
- d xmlUnsetNsProp pr 10i 0 extproc('xmlUnsetNsProp')
+ d xmlUnsetNsProp pr extproc('xmlUnsetNsProp')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d ns value like(xmlNsPtr)
d name * value options(*string) const xmlChar *
- d xmlUnsetProp pr 10i 0 extproc('xmlUnsetProp')
+ d xmlUnsetProp pr extproc('xmlUnsetProp')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d name * value options(*string) const xmlChar *
@@ -1418,7 +1448,8 @@
* Namespace handling.
d xmlReconciliateNs...
- d pr 10i 0 extproc('xmlReconciliateNs')
+ d pr extproc('xmlReconciliateNs')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d tree value like(xmlNodePtr)
/endif
@@ -1431,37 +1462,39 @@
d pr extproc('xmlDocDumpFormatMemory')
d cur value like(xmlDocPtr)
d mem * xmlChar * (*)
- d size 10i 0
- d format 10i 0 value
+ d size like(xmlCint)
+ d format value like(xmlCint)
d xmlDocDumpMemory...
d pr extproc('xmlDocDumpMemory')
d cur value like(xmlDocPtr)
d mem * xmlChar * (*)
- d size 10i 0
+ d size like(xmlCint)
d xmlDocDumpMemoryEnc...
d pr extproc('xmlDocDumpMemoryEnc')
d out_doc value like(xmlDocPtr)
d doc_txt_ptr * xmlChar * (*)
- d doc_txt_len 10i 0
+ d doc_txt_len like(xmlCint)
d txt_encoding * value options(*string) const char *
d xmlDocDumpFormatMemoryEnc...
d pr extproc('xmlDocDumpFormatMemoryEnc')
d out_doc value like(xmlDocPtr)
d doc_txt_ptr * xmlChar * (*)
- d doc_txt_len 10i 0
+ d doc_txt_len like(xmlCint)
d txt_encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d xmlDocFormatDump...
- d pr 10i 0 extproc('xmlDocFormatDump')
+ d pr extproc('xmlDocFormatDump')
+ d like(xmlCint)
d f * value FILE *
d cur value like(xmlDocPtr)
- d format 10i 0 value
+ d format value like(xmlCint)
- d xmlDocDump pr 10i 0 extproc('xmlDocDump')
+ d xmlDocDump pr extproc('xmlDocDump')
+ d like(xmlCint)
d f * value FILE *
d cur value like(xmlDocPtr)
@@ -1470,60 +1503,67 @@
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d xmlSaveFile pr 10i 0 extproc('xmlSaveFile')
+ d xmlSaveFile pr extproc('xmlSaveFile')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d xmlSaveFormatFile...
- d pr 10i 0 extproc('xmlSaveFormatFile')
+ d pr extproc('xmlSaveFormatFile')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
- d format 10i 0 value
+ d format value like(xmlCint)
d xmlBufNodeDump pr extproc('xmlBufNodeDump')
d like(xmlCsize_t)
d buf value like(xmlBufPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d level 10i 0 value
- d format 10i 0 value
+ d level value like(xmlCint)
+ d format value like(xmlCint)
- d xmlNodeDump pr 10i 0 extproc('xmlNodeDump')
+ d xmlNodeDump pr extproc('xmlNodeDump')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d level 10i 0 value
- d format 10i 0 value
+ d level value like(xmlCint)
+ d format value like(xmlCint)
- d xmlSaveFileTo pr 10i 0 extproc('xmlSaveFileTo')
+ d xmlSaveFileTo pr extproc('xmlSaveFileTo')
+ d like(xmlCint)
d buf value like(xmlOutputBufferPtr)
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
d xmlSaveFormatFileTo...
- d pr 10i 0 extproc('xmlSaveFormatFileTo')
+ d pr extproc('xmlSaveFormatFileTo')
+ d like(xmlCint)
d buf value like(xmlOutputBufferPtr)
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d xmlNodeDumpOutput...
d pr extproc('xmlNodeDumpOutput')
d buf value like(xmlOutputBufferPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d level 10i 0 value
- d format 10i 0 value
+ d level value like(xmlCint)
+ d format value like(xmlCint)
d encoding * value options(*string) const char *
d xmlSaveFormatFileEnc...
- d pr 10i 0 extproc('xmlSaveFormatFileEnc')
+ d pr extproc('xmlSaveFormatFileEnc')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
- d xmlSaveFileEnc pr 10i 0 extproc('xmlSaveFileEnc')
+ d xmlSaveFileEnc pr extproc('xmlSaveFileEnc')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
@@ -1531,27 +1571,30 @@
* XHTML
- d xmlIsXHTML pr 10i 0 extproc('xmlIsXHTML')
+ d xmlIsXHTML pr extproc('xmlIsXHTML')
+ d like(xmlCint)
d systemID * value options(*string) const xmlChar *
d publicID * value options(*string) const xmlChar *
* Compression.
d xmlGetDocCompressMode...
- d pr 10i 0 extproc('xmlGetDocCompressMode')
+ d pr extproc('xmlGetDocCompressMode')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d xmlSetDocCompressMode...
d pr extproc('xmlSetDocCompressMode')
d doc value like(xmlDocPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d xmlGetCompressMode...
- d pr 10i 0 extproc('xmlGetCompressMode')
+ d pr extproc('xmlGetCompressMode')
+ d like(xmlCint)
d xmlSetCompressMode...
d pr extproc('xmlSetCompressMode')
- d mode 10i 0 value
+ d mode value like(xmlCint)
* DOM-wrapper helper functions.
@@ -1564,37 +1607,41 @@
d ctxt value like(xmlDOMWrapCtxtPtr)
d xmlDOMWrapReconcileNamespaces...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlDOMWrapReconcileNamespaces')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d elem value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlDOMWrapAdoptNode...
- d pr 10i 0 extproc('xmlDOMWrapAdoptNode')
+ d pr extproc('xmlDOMWrapAdoptNode')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d sourceDoc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d destDoc value like(xmlDocPtr)
d destParent value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlDOMWrapRemoveNode...
- d pr 10i 0 extproc('xmlDOMWrapRemoveNode')
+ d pr extproc('xmlDOMWrapRemoveNode')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlDOMWrapCloneNode...
- d pr 10i 0 extproc('xmlDOMWrapCloneNode')
+ d pr extproc('xmlDOMWrapCloneNode')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d sourceDoc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d clonedNode like(xmlNodePtr)
d destDoc value like(xmlDocPtr)
d destParent value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
/if defined(LIBXML_TREE_ENABLED)
diff --git a/os400/libxmlrpg/uri.rpgle b/os400/libxmlrpg/uri.rpgle
index 9a23d80d..de03392f 100644
--- a/os400/libxmlrpg/uri.rpgle
+++ b/os400/libxmlrpg/uri.rpgle
@@ -10,6 +10,7 @@
/define XML_URI_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
* xmlURI:
@@ -30,11 +31,11 @@
d authority * char *
d server * char *
d user * char *
- d port 10i 0
+ d port like(xmlCint)
d path * char *
d query * char *
d fragment * char *
- d cleanup 10i 0
+ d cleanup like(xmlCint)
d query_raw * char *
d xmlCreateURI pr extproc('xmlCreateURI')
@@ -56,10 +57,11 @@
d xmlParseURIRaw pr extproc('xmlParseURIRaw')
d like(xmlURIPtr)
d str * value options(*string) const char *
- d raw 10i 0 value
+ d raw value like(xmlCint)
d xmlParseURIReference...
- d pr 10i 0 extproc('xmlParseURIReference')
+ d pr extproc('xmlParseURIReference')
+ d like(xmlCint)
d uri value like(xmlURIPtr)
d str * value options(*string) const char *
@@ -78,11 +80,12 @@
d xmlURIUnescapeString...
d pr * extproc('xmlURIUnescapeString') char *
d str * value options(*string) const char *
- d len 10i 0 value
+ d len value like(xmlCint)
d target * value options(*string) char *
d xmlNormalizeURIPath...
- d pr 10i 0 extproc('xmlNormalizeURIPath')
+ d pr extproc('xmlNormalizeURIPath')
+ d like(xmlCint)
d path * value options(*string) char *
d xmlURIEscape pr * extproc('xmlURIEscape') xmlChar *
diff --git a/os400/libxmlrpg/valid.rpgle b/os400/libxmlrpg/valid.rpgle
index 722b89d2..32ebbd39 100644
--- a/os400/libxmlrpg/valid.rpgle
+++ b/os400/libxmlrpg/valid.rpgle
@@ -9,6 +9,7 @@
/define XML_VALID_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlerror"
/include "libxmlrpg/tree"
/include "libxmlrpg/list"
@@ -63,19 +64,19 @@
* Node analysis stack used when validating within entities
*
d node like(xmlNodePtr) Current parsed Node
- d nodeNr 10i 0 Parsing stack depth
- d nodeMax 10i 0 Max stack depth
+ d nodeNr like(xmlCint) Parsing stack depth
+ d nodeMax like(xmlCint) Max stack depth
d nodeTab * xmlNodePtr *
*
- d finishDtd 10u 0 Finish validtng DTD?
+ d finishDtd like(xmlCuint)
d doc like(xmlDocPtr) The document
- d valid 10i 0 Temp check result
+ d valid like(xmlCint) Temp check result
*
* state state used for non-determinist content validation
*
d vstate * xmlValidState *
- d vstateNr 10i 0 Validat. stack depth
- d vstateMax 10i 0 Max stack depth
+ d vstateNr like(xmlCint) Validat. stack depth
+ d vstateMax like(xmlCint) Max stack depth
d vstateTab * xmlValidState *
*
/if defined(LIBXML_REGEXP_ENABLED)
@@ -189,9 +190,9 @@
d xmlSnprintfElementContent...
d pr extproc('xmlSnprintfElementContent')
d buf 65535 options(*varsize)
- d size 10i 0 value
+ d size value like(xmlCint)
d content value like(xmlElementContentPtr)
- d englob 10i 0 value
+ d englob value like(xmlCint)
/if defined(LIBXML_OUTPUT_ENABLED)
* DEPRECATED
@@ -199,7 +200,7 @@
d pr extproc('xmlSprintfElementContent')
d buf 65535 options(*varsize)
d content value like(xmlElementContentPtr)
- d englob 10i 0 value
+ d englob value like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
* DEPRECATED
@@ -311,12 +312,14 @@
d doc value like(xmlDocPtr)
d ID * value options(*string) const xmlChar *
- d xmlIsID pr 10i 0 extproc('xmlIsID')
+ d xmlIsID pr extproc('xmlIsID')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d attr value like(xmlAttrPtr)
- d xmlRemoveID pr 10i 0 extproc('xmlRemoveID')
+ d xmlRemoveID pr extproc('xmlRemoveID')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d attr value like(xmlAttrPtr)
@@ -333,12 +336,14 @@
d pr extproc('xmlFreeRefTable')
d table value like(xmlRefTablePtr)
- d xmlIsRef pr 10i 0 extproc('xmlIsRef')
+ d xmlIsRef pr extproc('xmlIsRef')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d attr value like(xmlAttrPtr)
- d xmlRemoveRef pr 10i 0 extproc('xmlRemoveRef')
+ d xmlRemoveRef pr extproc('xmlRemoveRef')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d attr value like(xmlAttrPtr)
@@ -361,12 +366,14 @@
d ctxt value like(xmlValidCtxtPtr)
d xmlValidateRoot...
- d pr 10i 0 extproc('xmlValidateRoot')
+ d pr extproc('xmlValidateRoot')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d xmlValidateElementDecl...
- d pr 10i 0 extproc('xmlValidateElementDecl')
+ d pr extproc('xmlValidateElementDecl')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlElementPtr)
@@ -389,51 +396,60 @@
d value * value options(*string) const xmlChar *
d xmlValidateAttributeDecl...
- d pr 10i 0 extproc('xmlValidateAttributeDecl')
+ d pr extproc('xmlValidateAttributeDecl')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d attr value like(xmlAttributePtr)
d xmlValidateAttributeValue...
- d pr 10i 0 extproc('xmlValidateAttributeValue')
+ d pr extproc('xmlValidateAttributeValue')
+ d like(xmlCint)
d type value like(xmlAttributeType)
d value * value options(*string) const xmlChar *
d xmlValidateNotationDecl...
- d pr 10i 0 extproc('xmlValidateNotationDecl')
+ d pr extproc('xmlValidateNotationDecl')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d nota value like(xmlNotationPtr)
- d xmlValidateDtd pr 10i 0 extproc('xmlValidateDtd')
+ d xmlValidateDtd pr extproc('xmlValidateDtd')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d dtd value like(xmlDtdPtr)
d xmlValidateDtdFinal...
- d pr 10i 0 extproc('xmlValidateDtdFinal')
+ d pr extproc('xmlValidateDtdFinal')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d xmlValidateDocument...
- d pr 10i 0 extproc('xmlValidateDocument')
+ d pr extproc('xmlValidateDocument')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d xmlValidateElement...
- d pr 10i 0 extproc('xmlValidateElement')
+ d pr extproc('xmlValidateElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlValidateOneElement...
- d pr 10i 0 extproc('xmlValidateOneElement')
+ d pr extproc('xmlValidateOneElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlValidateOneAttribute...
- d pr 10i 0 extproc('xmlValidateOneAttribute')
+ d pr extproc('xmlValidateOneAttribute')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
@@ -441,7 +457,8 @@
d value * value options(*string) const xmlChar *
d xmlValidateOneNamespace...
- d pr 10i 0 extproc('xmlValidateOneNamespace')
+ d pr extproc('xmlValidateOneNamespace')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
@@ -450,7 +467,8 @@
d value * value options(*string) const xmlChar *
d xmlValidateDocumentFinal...
- d pr 10i 0 extproc('xmlValidateDocumentFinal')
+ d pr extproc('xmlValidateDocumentFinal')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
/endif LIBXML_VALID_ENABLED
@@ -463,7 +481,8 @@
/endif
/if defined(XML_TESTVAL)
d xmlValidateNotationUse...
- d pr 10i 0 extproc('xmlValidateNotationUse')
+ d pr extproc('xmlValidateNotationUse')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d notationName * value options(*string) const xmlChar *
@@ -472,7 +491,8 @@
/endif
d xmlIsMixedElement...
- d pr 10i 0 extproc('xmlIsMixedElement')
+ d pr extproc('xmlIsMixedElement')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
@@ -512,59 +532,69 @@
/if defined(LIBXML_VALID_ENABLED)
d xmlValidGetPotentialChildren...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlValidGetPotentialChildren')
+ d like(xmlCint)
d ctree * value xmlElementContent *
d names * const xmlChar *(*)
- d len 10i 0
- d max 10i 0 value
+ d len like(xmlCint)
+ d max value like(xmlCint)
d xmlValidGetValidElements...
- d pr 10i 0 extproc('xmlValidGetValidElements')
+ d pr extproc('xmlValidGetValidElements')
+ d like(xmlCint)
d prev like(xmlNodePtr)
d next like(xmlNodePtr)
d names * const xmlChar *(*)
- d max 10i 0 value
+ d max value like(xmlCint)
d xmlValidateNameValue...
- d pr 10i 0 extproc('xmlValidateNameValue')
+ d pr extproc('xmlValidateNameValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlValidateNamesValue...
- d pr 10i 0 extproc('xmlValidateNamesValue')
+ d pr extproc('xmlValidateNamesValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlValidateNmtokenValue...
- d pr 10i 0 extproc('xmlValidateNmtokenValue')
+ d pr extproc('xmlValidateNmtokenValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlValidateNmtokensValue...
- d pr 10i 0 extproc('xmlValidateNmtokensValue')
+ d pr extproc('xmlValidateNmtokensValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
/if defined(LIBXML_REGEXP_ENABLED)
* Validation based on the regexp support
d xmlValidBuildContentModel...
- d pr 10i 0 extproc('xmlValidBuildContentModel')
+ d pr extproc('xmlValidBuildContentModel')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d elem value like(xmlElementPtr)
d xmlValidatePushElement...
- d pr 10i 0 extproc('xmlValidatePushElement')
+ d pr extproc('xmlValidatePushElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d qname * value options(*string) const xmlChar *
d xmlValidatePushCData...
- d pr 10i 0 extproc('xmlValidatePushCData')
+ d pr extproc('xmlValidatePushCData')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d data * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlValidatePopElement...
- d pr 10i 0 extproc('xmlValidatePopElement')
+ d pr extproc('xmlValidatePopElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/xinclude.rpgle b/os400/libxmlrpg/xinclude.rpgle
index c0b68ffe..93b7c515 100644
--- a/os400/libxmlrpg/xinclude.rpgle
+++ b/os400/libxmlrpg/xinclude.rpgle
@@ -12,6 +12,7 @@
/define XML_XINCLUDE_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/if defined(LIBXML_XINCLUDE_ENABLED)
@@ -89,37 +90,43 @@
* standalone processing
d xmlXIncludeProcess...
- d pr 10i 0 extproc('xmlXIncludeProcess')
+ d pr extproc('xmlXIncludeProcess')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d xmlXIncludeProcessFlags...
- d pr 10i 0 extproc('xmlXIncludeProcessFlags')
+ d pr extproc('xmlXIncludeProcessFlags')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d xmlXIncludeProcessFlagsData...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXIncludeProcessFlagsData')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d data * value void *
d xmlXIncludeProcessTreeFlagsData...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXIncludeProcessTreeFlagsData')
+ d like(xmlCint)
d tree value like(xmlNodePtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d data * value void *
d xmlXIncludeProcessTree...
- d pr 10i 0 extproc('xmlXIncludeProcessTree')
+ d pr extproc('xmlXIncludeProcessTree')
+ d like(xmlCint)
d tree value like(xmlNodePtr)
d xmlXIncludeProcessTreeFlags...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXIncludeProcessTreeFlags')
+ d like(xmlCint)
d tree value like(xmlNodePtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
* contextual processing
@@ -130,16 +137,18 @@
d doc value like(xmlDocPtr)
d xmlXIncludeSetFlags...
- d pr 10i 0 extproc('xmlXIncludeSetFlags')
+ d pr extproc('xmlXIncludeSetFlags')
+ d like(xmlCint)
d ctxt value like(xmlXIncludeCtxtPtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d xmlXIncludeFreeContext...
d pr extproc('xmlXIncludeFreeContext')
d ctxt value like(xmlXIncludeCtxtPtr)
d xmlXIncludeProcessNode...
- d pr 10i 0 extproc('xmlXIncludeProcessNode')
+ d pr extproc('xmlXIncludeProcessNode')
+ d like(xmlCint)
d ctxt value like(xmlXIncludeCtxtPtr)
d tree value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/xlink.rpgle b/os400/libxmlrpg/xlink.rpgle
index 964e605f..e6ebdc64 100644
--- a/os400/libxmlrpg/xlink.rpgle
+++ b/os400/libxmlrpg/xlink.rpgle
@@ -9,10 +9,12 @@
/define XML_XLINK_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
/if defined(LIBXML_XPTR_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
* Various defines for the various Link properties.
*
* NOTE: the link detection layer will try to resolve QName expansion
@@ -26,7 +28,8 @@
d xlinkRole s * based(######typedef######) xmlChar *
d xlinkTitle s * based(######typedef######) xmlChar *
- d xlinkType s 10i 0 based(######typedef######) enum
+ d xlinkType s based(######typedef######)
+ d like(xmlCenum)
d XLINK_TYPE_NONE...
d c 0
d XLINK_TYPE_SIMPLE...
@@ -36,7 +39,8 @@
d XLINK_TYPE_EXTENDED_SET...
d c 3
- d xlinkShow s 10i 0 based(######typedef######) enum
+ d xlinkShow s based(######typedef######)
+ d like(xmlCenum)
d XLINK_SHOW_NONE...
d c 0
d XLINK_SHOW_NEW...
@@ -46,7 +50,8 @@
d XLINK_SHOW_REPLACE...
d c 3
- d xlinkActuate s 10i 0 based(######typedef######) enum
+ d xlinkActuate s based(######typedef######)
+ d like(xmlCenum)
d XLINK_ACTUATE_NONE...
d c 0
d XLINK_ACTUATE_AUTO...
diff --git a/os400/libxmlrpg/xmlIO.rpgle b/os400/libxmlrpg/xmlIO.rpgle
index 261b0e22..6c0afcc9 100644
--- a/os400/libxmlrpg/xmlIO.rpgle
+++ b/os400/libxmlrpg/xmlIO.rpgle
@@ -130,8 +130,8 @@
*
d buffer like(xmlBufPtr) UTF-8 local buffer
d raw like(xmlBufPtr) Raw input buffer
- d compressed 10i 0
- d error 10i 0
+ d compressed like(xmlCint)
+ d error like(xmlCint)
d rawconsumed like(xmlCulong)
/if defined(LIBXML_OUTPUT_ENABLED)
@@ -146,8 +146,8 @@
*
d buffer like(xmlBufPtr) UTF-8/ISOLatin local
d conv like(xmlBufPtr) Buffer for output
- d written 10i 0 Total # byte written
- d error 10i 0
+ d written like(xmlCint) Total # byte written
+ d error like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
* Interfaces for input
@@ -156,7 +156,8 @@
d pr extproc('xmlCleanupInputCallbacks')
d xmlPopInputCallbacks...
- d pr 10i 0 extproc('xmlPopInputCallbacks')
+ d pr extproc('xmlPopInputCallbacks')
+ d like(xmlCint)
d xmlRegisterDefaultInputCallbacks...
d pr extproc(
@@ -185,7 +186,7 @@
d pr extproc(
d 'xmlParserInputBufferCreateFd')
d like(xmlParserInputBufferPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d enc value like(xmlCharEncoding)
d xmlParserInputBufferCreateMem...
@@ -193,7 +194,7 @@
d 'xmlParserInputBufferCreateMem')
d like(xmlParserInputBufferPtr)
d mem * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d enc value like(xmlCharEncoding)
d xmlParserInputBufferCreateStatic...
@@ -201,7 +202,7 @@
d 'xmlParserInputBufferCreateStatic')
d like(xmlParserInputBufferPtr)
d mem * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d enc value like(xmlCharEncoding)
d xmlParserInputBufferCreateIO...
@@ -214,19 +215,22 @@
d enc value like(xmlCharEncoding)
d xmlParserInputBufferRead...
- d pr 10i 0 extproc('xmlParserInputBufferRead')
+ d pr extproc('xmlParserInputBufferRead')
+ d like(xmlCint)
d in value like(xmlParserInputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlParserInputBufferGrow...
- d pr 10i 0 extproc('xmlParserInputBufferGrow')
+ d pr extproc('xmlParserInputBufferGrow')
+ d like(xmlCint)
d in value like(xmlParserInputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlParserInputBufferPush...
- d pr 10i 0 extproc('xmlParserInputBufferPush')
+ d pr extproc('xmlParserInputBufferPush')
+ d like(xmlCint)
d in value like(xmlParserInputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d buf * value options(*string) const char *
d xmlFreeParserInputBuffer...
@@ -238,7 +242,8 @@
d filename * value options(*string) const char *
d xmlRegisterInputCallbacks...
- d pr 10i 0 extproc('xmlRegisterInputCallbacks')
+ d pr extproc('xmlRegisterInputCallbacks')
+ d like(xmlCint)
d matchFunc value like(xmlInputMatchCallback)
d openFunc value like(xmlInputOpenCallback)
d readFunc value like(xmlInputReadCallback)
@@ -268,7 +273,7 @@
d URI * value options(*string) const char *
d encoder value
d like(xmlCharEncodingHandlerPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlOutputBufferCreateFile...
d pr extproc('xmlOutputBufferCreateFile')
@@ -288,7 +293,7 @@
d xmlOutputBufferCreateFd...
d pr extproc('xmlOutputBufferCreateFd')
d like(xmlOutputBufferPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d encoder value
d like(xmlCharEncodingHandlerPtr)
@@ -313,32 +318,38 @@
d out value like(xmlOutputBufferPtr)
d xmlOutputBufferWrite...
- d pr 10i 0 extproc('xmlOutputBufferWrite')
+ d pr extproc('xmlOutputBufferWrite')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d buf * value options(*string) const char *
d xmlOutputBufferWriteString...
- d pr 10i 0 extproc('xmlOutputBufferWriteString')
+ d pr extproc('xmlOutputBufferWriteString')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d str * value options(*string) const char *
d xmlOutputBufferWriteEscape...
- d pr 10i 0 extproc('xmlOutputBufferWriteEscape')
+ d pr extproc('xmlOutputBufferWriteEscape')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d str * value options(*string) const xmlChar *
d escaping value like(xmlCharEncodingOutputFunc)
d xmlOutputBufferFlush...
- d pr 10i 0 extproc('xmlOutputBufferFlush')
+ d pr extproc('xmlOutputBufferFlush')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d xmlOutputBufferClose...
- d pr 10i 0 extproc('xmlOutputBufferClose')
+ d pr extproc('xmlOutputBufferClose')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d xmlRegisterOutputCallbacks...
- d pr 10i 0 extproc('xmlRegisterOutputCallbacks')
+ d pr extproc('xmlRegisterOutputCallbacks')
+ d like(xmlCint)
d matchFunc value like(xmlOutputMatchCallback)
d openFunc value like(xmlOutputOpenCallback)
d writeFunc value like(xmlOutputWriteCallback)
@@ -379,29 +390,34 @@
d path * value options(*string) const xmlChar *
d xmlCheckFilename...
- d pr 10i 0 extproc('xmlCheckFilename')
+ d pr extproc('xmlCheckFilename')
+ d like(xmlCint)
d path * value options(*string) const char *
* Default 'file://' protocol callbacks
- d xmlFileMatch pr 10i 0 extproc('xmlFileMatch')
+ d xmlFileMatch pr extproc('xmlFileMatch')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlFileOpen pr * extproc('xmlFileOpen') void *
d filename * value options(*string) const char *
- d xmlFileRead pr 10i 0 extproc('xmlFileRead')
+ d xmlFileRead pr extproc('xmlFileRead')
+ d like(xmlCint)
d context * value void *
d buffer 65535 options(*varsize)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlFileClose pr 10i 0 extproc('xmlFileClose')
+ d xmlFileClose pr extproc('xmlFileClose')
+ d like(xmlCint)
d context * value void *
* Default 'http://' protocol callbacks
/if defined(LIBXML_HTTP_ENABLED)
- d xmlIOHTTPMatch pr 10i 0 extproc('xmlIOHTTPMatch')
+ d xmlIOHTTPMatch pr extproc('xmlIOHTTPMatch')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlIOHTTPOpen pr * extproc('xmlIOHTTPOpen') void *
@@ -410,33 +426,38 @@
/if defined(LIBXML_OUTPUT_ENABLED)
d xmlIOHTTPOpenW pr * extproc('xmlIOHTTPOpenW') void *
d post_uri * value options(*string) const char *
- d compression 10i 0 value
+ d compression value like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
- d xmlIOHTTPRead pr 10i 0 extproc('xmlIOHTTPRead')
+ d xmlIOHTTPRead pr extproc('xmlIOHTTPRead')
+ d like(xmlCint)
d context * value void *
d buffer 65535 options(*varsize)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlIOHTTPClose pr 10i 0 extproc('xmlIOHTTPClose')
+ d xmlIOHTTPClose pr extproc('xmlIOHTTPClose')
+ d like(xmlCint)
d context * value void *
/endif LIBXML_HTTP_ENABLED
* Default 'ftp://' protocol callbacks
/if defined(LIBXML_FTP_ENABLED)
- d xmlIOFTPMatch pr 10i 0 extproc('xmlIOFTPMatch')
+ d xmlIOFTPMatch pr extproc('xmlIOFTPMatch')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlIOFTPOpen pr * extproc('xmlIOFTPOpen') void *
d filename * value options(*string) const char *
- d xmlIOFTPRead pr 10i 0 extproc('xmlIOFTPRead')
+ d xmlIOFTPRead pr extproc('xmlIOFTPRead')
+ d like(xmlCint)
d context * value void *
d buffer 65535 options(*varsize)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlIOFTPClose pr 10i 0 extproc('xmlIOFTPClose')
+ d xmlIOFTPClose pr extproc('xmlIOFTPClose')
+ d like(xmlCint)
d context * value void *
/endif LIBXML_FTP_ENABLED
diff --git a/os400/libxmlrpg/xmlTypesC.rpgle b/os400/libxmlrpg/xmlTypesC.rpgle
index 798d74d3..48a23bfc 100644
--- a/os400/libxmlrpg/xmlTypesC.rpgle
+++ b/os400/libxmlrpg/xmlTypesC.rpgle
@@ -20,5 +20,7 @@
d xmlCenum s 10i 0 based(######typedef######)
d xmlCssize_t s 10i 0 based(######typedef######)
d xmlCsize_t s 10u 0 based(######typedef######)
+ d xmlCfloat s 4f based(######typedef######)
+ d xmlCdouble s 8f based(######typedef######)
/endif
diff --git a/os400/libxmlrpg/xmlautomata.rpgle b/os400/libxmlrpg/xmlautomata.rpgle
index 49797256..0e9cc223 100644
--- a/os400/libxmlrpg/xmlautomata.rpgle
+++ b/os400/libxmlrpg/xmlautomata.rpgle
@@ -9,11 +9,12 @@
/define XML_AUTOMATA_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
/if defined(LIBXML_REGEXP_ENABLED)
/if defined(LIBXML_AUTOMATA_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
/include "libxmlrpg/xmlregexp"
* xmlAutomataPtr:
@@ -44,7 +45,8 @@
d am value like(xmlAutomataPtr)
d xmlAutomataSetFinalState...
- d pr 10i 0 extproc('xmlAutomataSetFinalState')
+ d pr extproc('xmlAutomataSetFinalState')
+ d like(xmlCint)
d am value like(xmlAutomataPtr)
d state value like(xmlAutomataStatePtr)
@@ -89,8 +91,8 @@
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewCountTrans2...
@@ -101,8 +103,8 @@
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
d token2 * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewOnceTrans...
@@ -112,8 +114,8 @@
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewOnceTrans2...
@@ -124,8 +126,8 @@
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
d token2 * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewAllTrans...
@@ -134,7 +136,7 @@
d am value like(xmlAutomataPtr)
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
- d lax 10i 0 value
+ d lax value like(xmlCint)
d xmlAutomataNewEpsilon...
d pr extproc('xmlAutomataNewEpsilon')
@@ -149,7 +151,7 @@
d am value like(xmlAutomataPtr)
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
- d counter 10i 0 value
+ d counter value like(xmlCint)
d xmlAutomataNewCounterTrans...
d pr extproc('xmlAutomataNewCounterTrans')
@@ -157,13 +159,14 @@
d am value like(xmlAutomataPtr)
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
- d counter 10i 0 value
+ d counter value like(xmlCint)
d xmlAutomataNewCounter...
- d pr 10i 0 extproc('xmlAutomataNewCounter')
+ d pr extproc('xmlAutomataNewCounter')
+ d like(xmlCint)
d am value like(xmlAutomataPtr)
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d xmlAutomataCompile...
d pr extproc('xmlAutomataCompile')
@@ -171,7 +174,8 @@
d am value like(xmlAutomataPtr)
d xmlAutomataIsDeterminist...
- d pr 10i 0 extproc('xmlAutomataIsDeterminist')
+ d pr extproc('xmlAutomataIsDeterminist')
+ d like(xmlCint)
d am value like(xmlAutomataPtr)
/endif AUTOMATA_ENABLED
diff --git a/os400/libxmlrpg/xmlerror.rpgle b/os400/libxmlrpg/xmlerror.rpgle
index b77caad4..6688b37b 100644
--- a/os400/libxmlrpg/xmlerror.rpgle
+++ b/os400/libxmlrpg/xmlerror.rpgle
@@ -5,16 +5,18 @@
*
* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
- /include "libxmlrpg/parser"
-
/if not defined(XML_ERROR_H__)
/define XML_ERROR_H__
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+
* xmlErrorLevel:
*
* Indicates the level of an error
- d xmlErrorLevel s 10i 0 based(######typedef######) enum
+ d xmlErrorLevel s based(######typedef######)
+ d like(xmlCenum)
d XML_ERR_NONE c 0
d XML_ERR_WARNING... A simple warning
d c 1
@@ -25,7 +27,8 @@
*
* Indicates where an error may have come from
- d xmlErrorDomain s 10i 0 based(######typedef######) enum
+ d xmlErrorDomain s based(######typedef######)
+ d like(xmlCenum)
d XML_FROM_NONE c 0
d XML_FROM_PARSER... XML parser
d c 1
@@ -86,17 +89,17 @@
d xmlError ds based(xmlErrorPtr)
d align qualified
- d domain 10i 0 Libpart raising err
- d code 10i 0 Error code
+ d domain like(xmlCint) Libpart raising err
+ d code like(xmlCint) Error code
d message * char *
d level like(xmlErrorLevel) Error severity
d file * File name
- d line 10i 0 Line number
+ d line like(xmlCint) Line number
d str1 * char *
d str2 * char *
d str3 * char *
- d int1 10i 0 Extra number info
- d int2 10i 0 Error column
+ d int1 like(xmlCint) Extra number info
+ d int2 like(xmlCint) Error column
d ctxt * void *
d node * void *
@@ -105,7 +108,8 @@
* This is an error that the XML (or HTML) parser can generate
d xmlParserErrors...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ERR_OK c 0
d XML_ERR_INTERNAL_ERROR...
d c 1
@@ -1674,7 +1678,8 @@
d xmlResetError pr extproc('xmlResetError')
d err value like(xmlErrorPtr)
- d xmlCopyError pr 10i 0 extproc('xmlCopyError')
+ d xmlCopyError pr extproc('xmlCopyError')
+ d like(xmlCint)
d from value like(xmlErrorPtr)
d to value like(xmlErrorPtr)
diff --git a/os400/libxmlrpg/xmlmemory.rpgle b/os400/libxmlrpg/xmlmemory.rpgle
index 3c791038..472e9410 100644
--- a/os400/libxmlrpg/xmlmemory.rpgle
+++ b/os400/libxmlrpg/xmlmemory.rpgle
@@ -136,19 +136,22 @@
* The xmlGc function have an extra entry for atomic block
* allocations useful for garbage collected memory allocators
- d xmlMemSetup pr 10i 0 extproc('xmlMemSetup')
+ d xmlMemSetup pr extproc('xmlMemSetup')
+ d like(xmlCint)
d freeFunc value like(xmlFreeFunc)
d mallocFunc value like(xmlMallocFunc)
d reallocFunc value like(xmlReallocFunc)
d strdupFunc value like(xmlStrdupFunc)
- d xmlMemGet pr 10i 0 extproc('xmlMemGet')
+ d xmlMemGet pr extproc('xmlMemGet')
+ d like(xmlCint)
d freeFunc like(xmlFreeFunc)
d mallocFunc like(xmlMallocFunc)
d reallocFunc like(xmlReallocFunc)
d strdupFunc like(xmlStrdupFunc)
- d xmlGcMemSetup pr 10i 0 extproc('xmlGcMemSetup')
+ d xmlGcMemSetup pr extproc('xmlGcMemSetup')
+ d like(xmlCint)
d freeFunc value like(xmlFreeFunc)
d mallocFunc value like(xmlMallocFunc)
d mallocAtomicFunc...
@@ -156,7 +159,8 @@
d reallocFunc value like(xmlReallocFunc)
d strdupFunc value like(xmlStrdupFunc)
- d xmlGcMemGet pr 10i 0 extproc('xmlGcMemGet')
+ d xmlGcMemGet pr extproc('xmlGcMemGet')
+ d like(xmlCint)
d freeFunc like(xmlFreeFunc)
d mallocFunc like(xmlMallocFunc)
d mallocAtomicFunc...
@@ -166,7 +170,8 @@
* Initialization of the memory layer.
- d xmlInitMemory pr 10i 0 extproc('xmlInitMemory')
+ d xmlInitMemory pr extproc('xmlInitMemory')
+ d like(xmlCint)
* Cleanup of the memory layer.
@@ -175,9 +180,11 @@
* These are specific to the XML debug memory wrapper.
- d xmlMemUsed pr 10i 0 extproc('xmlMemUsed')
+ d xmlMemUsed pr extproc('xmlMemUsed')
+ d like(xmlCint)
- d xmlMemBlocks pr 10i 0 extproc('xmlMemBlocks')
+ d xmlMemBlocks pr extproc('xmlMemBlocks')
+ d like(xmlCint)
d xmlMemDisplay pr extproc('xmlMemDisplay')
d fp * value FILE *
@@ -189,7 +196,7 @@
d xmlMemShow pr extproc('xmlMemShow')
d fp * value FILE *
- d nr 10i 0 value
+ d nr value like(xmlCint)
d xmlMemoryDump pr extproc('xmlMemoryDump')
@@ -210,25 +217,25 @@
d xmlMallocLoc pr * extproc('xmlMallocLoc') void *
d size value like(xmlCsize_t)
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
d xmlReallocLoc pr * extproc('xmlReallocLoc') void *
d ptr * value void *
d size value like(xmlCsize_t)
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
d xmlMallocAtomicLoc...
d pr * extproc('xmlMallocAtomicLoc') void *
d size value like(xmlCsize_t)
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
d xmlMemStrdupLoc...
d pr * extproc('xmlMemStrdupLoc') char *
d str * value options(*string) const char *
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
/if not defined(XML_GLOBALS_H)
/if not defined(XML_THREADS_H__)
diff --git a/os400/libxmlrpg/xmlmodule.rpgle b/os400/libxmlrpg/xmlmodule.rpgle
index 09592a6a..035254d6 100644
--- a/os400/libxmlrpg/xmlmodule.rpgle
+++ b/os400/libxmlrpg/xmlmodule.rpgle
@@ -13,6 +13,8 @@
/if defined(LIBXML_MODULES_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
* xmlModulePtr:
*
* A handle to a dynamically loaded module
@@ -24,7 +26,8 @@
* enumeration of options that can be passed down to xmlModuleOpen()
d xmlModuleOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_MODULE_LAZY... Lazy binding
d c 1
d XML_MODULE_LOCAL... Local binding
@@ -33,18 +36,21 @@
d xmlModuleOpen pr extproc('xmlModuleOpen')
d like(xmlModulePtr)
d filename * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlModuleSymbol...
- d pr 10i 0 extproc('xmlModuleSymbol')
+ d pr extproc('xmlModuleSymbol')
+ d like(xmlCint)
d module value like(xmlModulePtr)
d name * value options(*string) const char *
d result * void *(*)
- d xmlModuleClose pr 10i 0 extproc('xmlModuleClose')
+ d xmlModuleClose pr extproc('xmlModuleClose')
+ d like(xmlCint)
d module value like(xmlModulePtr)
- d xmlModuleFree pr 10i 0 extproc('xmlModuleFree')
+ d xmlModuleFree pr extproc('xmlModuleFree')
+ d like(xmlCint)
d module value like(xmlModulePtr)
/endif LIBXML_MODULES_ENBLD
diff --git a/os400/libxmlrpg/xmlreader.rpgle b/os400/libxmlrpg/xmlreader.rpgle
index 5084fc86..9ec76b3b 100644
--- a/os400/libxmlrpg/xmlreader.rpgle
+++ b/os400/libxmlrpg/xmlreader.rpgle
@@ -24,7 +24,8 @@
* is used.
d xmlParserSeverities...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSER_SEVERITY_VALIDITY_WARNING...
d c 1
d XML_PARSER_SEVERITY_VALIDITY_ERROR...
@@ -41,7 +42,8 @@
* Internal state values for the reader.
d xmlTextReaderMode...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_TEXTREADER_MODE_INITIAL...
d c 0
d XML_TEXTREADER_MODE_INTERACTIVE...
@@ -62,7 +64,8 @@
* xmlReaderForxxx APIs now.
d xmlParserProperties...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSER_LOADDTD...
d c 1
d XML_PARSER_DEFAULTATTRS...
@@ -76,7 +79,8 @@
*
* Predefined constants for the different types of nodes.
- d xmlReaderTypes s 10i 0 based(######typedef######) enum
+ d xmlReaderTypes s based(######typedef######)
+ d like(xmlCenum)
d XML_READER_TYPE_NONE...
d c 0
d XML_READER_TYPE_ELEMENT...
@@ -139,17 +143,19 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderSetup...
- d pr 10i 0 extproc('xmlTextReaderSetup')
+ d pr extproc('xmlTextReaderSetup')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d input value like(xmlParserInputBufferPtr)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Iterators
d xmlTextReaderRead...
- d pr 10i 0 extproc('xmlTextReaderRead')
+ d pr extproc('xmlTextReaderRead')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
/if defined(LIBXML_WRITER_ENABLED)
@@ -167,53 +173,64 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderReadAttributeValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderReadAttributeValue')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
* Attributes of the node
d xmlTextReaderAttributeCount...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderAttributeCount')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderDepth...
- d pr 10i 0 extproc('xmlTextReaderDepth')
+ d pr extproc('xmlTextReaderDepth')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderHasAttributes...
- d pr 10i 0 extproc('xmlTextReaderHasAttributes')
+ d pr extproc('xmlTextReaderHasAttributes')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderHasValue...
- d pr 10i 0 extproc('xmlTextReaderHasValue')
+ d pr extproc('xmlTextReaderHasValue')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsDefault...
- d pr 10i 0 extproc('xmlTextReaderIsDefault')
+ d pr extproc('xmlTextReaderIsDefault')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsEmptyElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderIsEmptyElement')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNodeType...
- d pr 10i 0 extproc('xmlTextReaderNodeType')
+ d pr extproc('xmlTextReaderNodeType')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderQuoteChar...
- d pr 10i 0 extproc('xmlTextReaderQuoteChar')
+ d pr extproc('xmlTextReaderQuoteChar')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderReadState...
- d pr 10i 0 extproc('xmlTextReaderReadState')
+ d pr extproc('xmlTextReaderReadState')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsNamespaceDecl...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderIsNamespaceDecl')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderConstBaseUri...
@@ -285,14 +302,15 @@
* Methods of the XmlTextReader
d xmlTextReaderClose...
- d pr 10i 0 extproc('xmlTextReaderClose')
+ d pr extproc('xmlTextReaderClose')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderGetAttributeNo...
d pr * extproc( xmlChar *
d 'xmlTextReaderGetAttributeNo')
d reader value like(xmlTextReaderPtr)
- d no 10i 0 value
+ d no value like(xmlCint)
d xmlTextReaderGetAttribute...
d pr * extproc('xmlTextReaderGetAttribute') xmlChar *
@@ -318,40 +336,47 @@
d prefix * value options(*string) const xmlChar *
d xmlTextReaderMoveToAttributeNo...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToAttributeNo')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d no 10i 0 value
+ d no value like(xmlCint)
d xmlTextReaderMoveToAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToAttribute')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d name * value options(*string) const xmlChar *
d xmlTextReaderMoveToAttributeNs...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToAttributeNs')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d localName * value options(*string) const xmlChar *
d namespaceURI * value options(*string) const xmlChar *
d xmlTextReaderMoveToFirstAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToFirstAttribute')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderMoveToNextAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToNextAttribute')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderMoveToElement...
- d pr 10i 0 extproc('xmlTextReaderMoveToElement')
+ d pr extproc('xmlTextReaderMoveToElement')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNormalization...
- d pr 10i 0 extproc('xmlTextReaderNormalization')
+ d pr extproc('xmlTextReaderNormalization')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderConstEncoding...
@@ -361,15 +386,17 @@
* Extensions
d xmlTextReaderSetParserProp...
- d pr 10i 0 extproc('xmlTextReaderSetParserProp')
+ d pr extproc('xmlTextReaderSetParserProp')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d prop 10i 0 value
- d value 10i 0 value
+ d prop value like(xmlCint)
+ d value value like(xmlCint)
d xmlTextReaderGetParserProp...
- d pr 10i 0 extproc('xmlTextReaderGetParserProp')
+ d pr extproc('xmlTextReaderGetParserProp')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d prop 10i 0 value
+ d prop value like(xmlCint)
d xmlTextReaderCurrentNode...
d pr extproc('xmlTextReaderCurrentNode')
@@ -377,13 +404,15 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderGetParserLineNumber...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderGetParserLineNumber')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderGetParserColumnNumber...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderGetParserColumnNumber')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderPreserve...
@@ -393,8 +422,9 @@
/if defined(LIBXML_PATTERN_ENABLED)
d xmlTextReaderPreservePattern...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderPreservePattern')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d pattern * value options(*string) const xmlChar *
d namespaces * const xmlChar *(*)
@@ -411,52 +441,61 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNext...
- d pr 10i 0 extproc('xmlTextReaderNext')
+ d pr extproc('xmlTextReaderNext')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNextSibling...
- d pr 10i 0 extproc('xmlTextReaderNextSibling')
+ d pr extproc('xmlTextReaderNextSibling')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsValid...
- d pr 10i 0 extproc('xmlTextReaderIsValid')
+ d pr extproc('xmlTextReaderIsValid')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
/if defined(LIBXML_SCHEMAS_ENABLED)
d xmlTextReaderRelaxNGValidate...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderRelaxNGValidate')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d rng * value options(*string) const char *
d xmlTextReaderRelaxNGValidateCtxt...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderRelaxNGValidateCtxt')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlTextReaderRelaxNGSetSchema...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderRelaxNGSetSchema')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d schema value like(xmlRelaxNGPtr)
d xmlTextReaderSchemaValidate...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderSchemaValidate')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xsd * value options(*string) const char *
d xmlTextReaderSchemaValidateCtxt...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderSchemaValidateCtxt')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d ctxt value like(xmlSchemaValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlTextReaderSetSchema...
- d pr 10i 0 extproc('xmlTextReaderSetSchema')
+ d pr extproc('xmlTextReaderSetSchema')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d schema value like(xmlSchemaPtr)
/endif
@@ -467,7 +506,8 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderStandalone...
- d pr 10i 0 extproc('xmlTextReaderStandalone')
+ d pr extproc('xmlTextReaderStandalone')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
* Index lookup
@@ -490,30 +530,30 @@
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForFile...
d pr extproc('xmlReaderForFile')
d like(xmlTextReaderPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForMemory...
d pr extproc('xmlReaderForMemory')
d like(xmlTextReaderPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForFd pr extproc('xmlReaderForFd')
d like(xmlTextReaderPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForIO pr extproc('xmlReaderForIO')
d like(xmlTextReaderPtr)
@@ -522,52 +562,58 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderNewWalker...
- d pr 10i 0 extproc('xmlReaderNewWalker')
+ d pr extproc('xmlReaderNewWalker')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d doc value like(xmlDocPtr)
d xmlReaderNewDoc...
- d pr 10i 0 extproc('xmlReaderNewDoc')
+ d pr extproc('xmlReaderNewDoc')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderNewFile...
- d pr 10i 0 extproc('xmlReaderNewFile')
+ d pr extproc('xmlReaderNewFile')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderNewMemory...
- d pr 10i 0 extproc('xmlReaderNewMemory')
+ d pr extproc('xmlReaderNewMemory')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
- d xmlReaderNewFd pr 10i 0 extproc('xmlReaderNewFd')
+ d xmlReaderNewFd pr extproc('xmlReaderNewFd')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
- d xmlReaderNewIO pr 10i 0 extproc('xmlReaderNewIO')
+ d xmlReaderNewIO pr extproc('xmlReaderNewIO')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d ioread value like(xmlInputReadCallback)
d ioclose value like(xmlInputCloseCallback)
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Error handling extensions
@@ -587,8 +633,9 @@
d procptr
d xmlTextReaderLocatorLineNumber...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderLocatorLineNumber')
+ d like(xmlCint)
d locator value like(xmlTextReaderLocatorPtr)
d xmlTextReaderLocatorBaseURI...
diff --git a/os400/libxmlrpg/xmlregexp.rpgle b/os400/libxmlrpg/xmlregexp.rpgle
index 65c2d077..01d411a7 100644
--- a/os400/libxmlrpg/xmlregexp.rpgle
+++ b/os400/libxmlrpg/xmlregexp.rpgle
@@ -13,6 +13,8 @@
/if defined(LIBXML_REGEXP_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
* xmlRegexpPtr:
*
* A libxml regular expression, they can actually be far more complex
@@ -41,7 +43,8 @@
d pr extproc('xmlRegFreeRegexp')
d regexp value like(xmlRegexpPtr)
- d xmlRegexpExec pr 10i 0 extproc('xmlRegexpExec')
+ d xmlRegexpExec pr extproc('xmlRegexpExec')
+ d like(xmlCint)
d comp value like(xmlRegexpPtr)
d value * value options(*string) const xmlChar *
@@ -50,7 +53,8 @@
d regexp value like(xmlRegexpPtr)
d xmlRegexpIsDeterminist...
- d pr 10i 0 extproc('xmlRegexpIsDeterminist')
+ d pr extproc('xmlRegexpIsDeterminist')
+ d like(xmlCint)
d comp value like(xmlRegexpPtr)
* xmlRegExecCallbacks:
@@ -79,34 +83,38 @@
d exec value like(xmlRegExecCtxtPtr)
d xmlRegExecPushString...
- d pr 10i 0 extproc('xmlRegExecPushString')
+ d pr extproc('xmlRegExecPushString')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
d value * value options(*string) const xmlChar *
d data * value void *
d xmlRegExecPushString2...
- d pr 10i 0 extproc('xmlRegExecPushString2')
+ d pr extproc('xmlRegExecPushString2')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
d value * value options(*string) const xmlChar *
d value2 * value options(*string) const xmlChar *
d data * value void *
d xmlRegExecNextValues...
- d pr 10i 0 extproc('xmlRegExecNextValues')
+ d pr extproc('xmlRegExecNextValues')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
- d nbval 10i 0
- d nbneg 10i 0
+ d nbval like(xmlCint)
+ d nbneg like(xmlCint)
d values * xmlChar * (*)
- d terminal 10i 0
+ d terminal like(xmlCint)
d xmlRegExecErrInfo...
- d pr 10i 0 extproc('xmlRegExecErrInfo')
+ d pr extproc('xmlRegExecErrInfo')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
d string * const xmlChar * (*)
- d nbval 10i 0
- d nbneg 10i 0
+ d nbval like(xmlCint)
+ d nbneg like(xmlCint)
d values * xmlChar * (*)
- d terminal 10i 0
+ d terminal like(xmlCint)
/if defined(LIBXML_EXPR_ENABLED)
@@ -122,22 +130,25 @@
d xmlExpNewCtxt pr extproc('xmlExpNewCtxt')
d like(xmlExpCtxtPtr)
- d maxNodes 10i 0 value
+ d maxNodes value like(xmlCint)
d dict value like(xmlDictPtr)
d xmlExpCtxtNbNodes...
- d pr 10i 0 extproc('xmlExpCtxtNbNodes')
+ d pr extproc('xmlExpCtxtNbNodes')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d xmlExpCtxtNbCons...
- d pr 10i 0 extproc('xmlExpCtxtNbCons')
+ d pr extproc('xmlExpCtxtNbCons')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
* Expressions are trees but the tree is opaque
d xmlExpNodePtr s * based(######typedef######)
- d xmlExpNodeType s 10i 0 based(######typedef######) enum
+ d xmlExpNodeType s based(######typedef######)
+ d like(xmlCenum)
d XML_EXP_EMPTY c 0
d XML_EXP_FORBID...
d c 1
@@ -175,7 +186,7 @@
d like(xmlExpNodePtr)
d ctxt value like(xmlExpCtxtPtr)
d name * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlExpNewOr pr extproc('xmlExpNewOr')
d like(xmlExpNodePtr)
@@ -193,30 +204,34 @@
d like(xmlExpNodePtr)
d ctxt value like(xmlExpCtxtPtr)
d subset value like(xmlExpNodePtr)
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
* The really interesting APIs
d xmlExpIsNillable...
- d pr 10i 0 extproc('xmlExpIsNillable')
+ d pr extproc('xmlExpIsNillable')
+ d like(xmlCint)
d expr value like(xmlExpNodePtr)
- d xmlExpMaxToken pr 10i 0 extproc('xmlExpMaxToken')
+ d xmlExpMaxToken pr extproc('xmlExpMaxToken')
+ d like(xmlCint)
d expr value like(xmlExpNodePtr)
d xmlExpGetLanguage...
- d pr 10i 0 extproc('xmlExpGetLanguage')
+ d pr extproc('xmlExpGetLanguage')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d langList * const xmlChar *(*)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlExpGetStart pr 10i 0 extproc('xmlExpGetStart')
+ d xmlExpGetStart pr extproc('xmlExpGetStart')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d tokList * const xmlChar *(*)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlExpStringDerive...
d pr extproc('xmlExpStringDerive')
@@ -224,7 +239,7 @@
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlExpExpDerive...
d pr extproc('xmlExpExpDerive')
@@ -233,7 +248,8 @@
d expr value like(xmlExpNodePtr)
d sub value like(xmlExpNodePtr)
- d xmlExpSubsume pr 10i 0 extproc('xmlExpSubsume')
+ d xmlExpSubsume pr extproc('xmlExpSubsume')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d sub value like(xmlExpNodePtr)
diff --git a/os400/libxmlrpg/xmlsave.rpgle b/os400/libxmlrpg/xmlsave.rpgle
index 764dceb6..ad0d15d5 100644
--- a/os400/libxmlrpg/xmlsave.rpgle
+++ b/os400/libxmlrpg/xmlsave.rpgle
@@ -9,19 +9,21 @@
/define XML_XMLSAVE_H__
/include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+
/include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/encoding"
/include "libxmlrpg/xmlIO"
- /if defined(LIBXML_OUTPUT_ENABLED)
-
* xmlSaveOption:
*
* This is the set of XML save options that can be passed down
* to the xmlSaveToFd() and similar calls.
- d xmlSaveOption s 10i 0 based(######typedef######) enum
+ d xmlSaveOption s based(######typedef######)
+ d like(xmlCenum)
d XML_SAVE_FORMAT... Format save output
d c X'0001'
d XML_SAVE_NO_DECL... Drop xml declaration
@@ -43,23 +45,23 @@
d xmlSaveToFd pr extproc('xmlSaveToFd')
d like(xmlSaveCtxtPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSaveToFilename...
d pr extproc('xmlSaveToFilename')
d like(xmlSaveCtxtPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSaveToBuffer...
d pr extproc('xmlSaveToBuffer')
d like(xmlSaveCtxtPtr)
d buffer value like(xmlBufferPtr)
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSaveToIO pr extproc('xmlSaveToIO')
d like(xmlSaveCtxtPtr)
@@ -67,7 +69,7 @@
d ioclose value like(xmlOutputCloseCallback)
d ioctx * value void *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSaveDoc pr extproc('xmlSaveDoc')
d like(xmlClong)
@@ -79,19 +81,23 @@
d ctxt value like(xmlSaveCtxtPtr)
d node value like(xmlNodePtr)
- d xmlSaveFlush pr 10i 0 extproc('xmlSaveFlush')
+ d xmlSaveFlush pr extproc('xmlSaveFlush')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
- d xmlSaveClose pr 10i 0 extproc('xmlSaveClose')
+ d xmlSaveClose pr extproc('xmlSaveClose')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
d xmlSaveSetEscape...
- d pr 10i 0 extproc('xmlSaveSetEscape')
+ d pr extproc('xmlSaveSetEscape')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
d escape value like(xmlCharEncodingOutputFunc)
d xmlSaveSetAttrEscape...
- d pr 10i 0 extproc('xmlSaveSetAttrEscape')
+ d pr extproc('xmlSaveSetAttrEscape')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
d escape value like(xmlCharEncodingOutputFunc)
diff --git a/os400/libxmlrpg/xmlschemas.rpgle b/os400/libxmlrpg/xmlschemas.rpgle
index 865dd262..f34ddcd3 100644
--- a/os400/libxmlrpg/xmlschemas.rpgle
+++ b/os400/libxmlrpg/xmlschemas.rpgle
@@ -13,12 +13,14 @@
/if defined(LIBXML_SCHEMAS_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
* This error codes are obsolete; not used any more.
d xmlSchemaValidError...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMAS_ERR_OK...
d c 0
d XML_SCHEMAS_ERR_NOROOT...
@@ -81,7 +83,8 @@
* This is the set of XML Schema validation options.
d xmlSchemaValidOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
*
* Default/fixed: create an attribute node
* or an element's text node on the instance.
@@ -158,7 +161,7 @@
d pr extproc('xmlSchemaNewMemParserCtxt')
d like(xmlSchemaParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlSchemaNewDocParserCtxt...
d pr extproc('xmlSchemaNewDocParserCtxt')
@@ -186,14 +189,16 @@
d ctx * value void *
d xmlSchemaGetParserErrors...
- d pr 10i 0 extproc('xmlSchemaGetParserErrors')
+ d pr extproc('xmlSchemaGetParserErrors')
+ d like(xmlCint)
d ctxt value like(xmlSchemaParserCtxtPtr)
d err like(xmlSchemaValidityErrorFunc)
d warn like(xmlSchemaValidityWarningFunc)
d ctx * void *(*)
d xmlSchemaIsValid...
- d pr 10i 0 extproc('xmlSchemaIsValid')
+ d pr extproc('xmlSchemaIsValid')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d xmlSchemaParse pr extproc('xmlSchemaParse')
@@ -228,16 +233,18 @@
d ctx * value void *
d xmlSchemaGetValidErrors...
- d pr 10i 0 extproc('xmlSchemaGetValidErrors')
+ d pr extproc('xmlSchemaGetValidErrors')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d err like(xmlSchemaValidityErrorFunc)
d warn like(xmlSchemaValidityWarningFunc)
d ctx * void *(*)
d xmlSchemaSetValidOptions...
- d pr 10i 0 extproc('xmlSchemaSetValidOptions')
+ d pr extproc('xmlSchemaSetValidOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchemaValidateSetFilename...
d pr extproc(
@@ -246,8 +253,9 @@
d filename * value options(*string) const char *
d xmlSchemaValidCtxtGetOptions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidCtxtGetOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d xmlSchemaNewValidCtxt...
@@ -260,18 +268,21 @@
d ctxt value like(xmlSchemaValidCtxtPtr)
d xmlSchemaValidateDoc...
- d pr 10i 0 extproc('xmlSchemaValidateDoc')
+ d pr extproc('xmlSchemaValidateDoc')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d instance value like(xmlDocPtr)
d xmlSchemaValidateOneElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateOneElement')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d elem value like(xmlNodePtr)
d xmlSchemaValidateStream...
- d pr 10i 0 extproc('xmlSchemaValidateStream')
+ d pr extproc('xmlSchemaValidateStream')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d input value like(xmlParserInputBufferPtr)
d enc value like(xmlCharEncoding)
@@ -279,10 +290,11 @@
d user_data * value void *
d xmlSchemaValidateFile...
- d pr 10i 0 extproc('xmlSchemaValidateFile')
+ d pr extproc('xmlSchemaValidateFile')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d filename * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchemaValidCtxtGetParserCtxt...
d pr extproc(
@@ -303,7 +315,8 @@
d user_data * void *(*)
d xmlSchemaSAXUnplug...
- d pr 10i 0 extproc('xmlSchemaSAXUnplug')
+ d pr extproc('xmlSchemaSAXUnplug')
+ d like(xmlCint)
d plug value like(xmlSchemaSAXPlugPtr)
d xmlSchemaValidateSetLocator...
diff --git a/os400/libxmlrpg/xmlschemastypes.rpgle b/os400/libxmlrpg/xmlschemastypes.rpgle
index 0bf0f709..ecd6aba3 100644
--- a/os400/libxmlrpg/xmlschemastypes.rpgle
+++ b/os400/libxmlrpg/xmlschemastypes.rpgle
@@ -10,15 +10,16 @@
/define XML_SCHEMA_TYPES_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xmlTypesC"
/if defined(LIBXML_SCHEMAS_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/schemasInternals"
/include "libxmlrpg/xmlschemas"
d xmlSchemaWhitespaceValueType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMA_WHITESPACE_UNKNOWN...
d c 0
d XML_SCHEMA_WHITESPACE_PRESERVE...
@@ -41,29 +42,33 @@
d ns * value options(*string) const xmlChar *
d xmlSchemaValidatePredefinedType...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidatePredefinedType')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d value * value options(*string) const xmlChar *
d val * value xmlSchemaValPtr *
d xmlSchemaValPredefTypeNode...
- d pr 10i 0 extproc('xmlSchemaValPredefTypeNode')
+ d pr extproc('xmlSchemaValPredefTypeNode')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d value * value options(*string) const xmlChar *
d val * value xmlSchemaValPtr *
d node value like(xmlNodePtr)
d xmlSchemaValidateFacet...
- d pr 10i 0 extproc('xmlSchemaValidateFacet')
+ d pr extproc('xmlSchemaValidateFacet')
+ d like(xmlCint)
d base value like(xmlSchemaTypePtr)
d facet value like(xmlSchemaFacetPtr)
d value * value options(*string) const xmlChar *
d val value like(xmlSchemaValPtr)
d xmlSchemaValidateFacetWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateFacetWhtsp')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d fws value
d like(xmlSchemaWhitespaceValueType)
@@ -82,7 +87,8 @@
d like(xmlSchemaFacetPtr)
d xmlSchemaCheckFacet...
- d pr 10i 0 extproc('xmlSchemaCheckFacet')
+ d pr extproc('xmlSchemaCheckFacet')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d typeDecl value like(xmlSchemaTypePtr)
d ctxt value like(xmlSchemaParserCtxtPtr)
@@ -93,7 +99,8 @@
d facet value like(xmlSchemaFacetPtr)
d xmlSchemaCompareValues...
- d pr 10i 0 extproc('xmlSchemaCompareValues')
+ d pr extproc('xmlSchemaCompareValues')
+ d like(xmlCint)
d x value like(xmlSchemaValPtr)
d y value like(xmlSchemaValPtr)
@@ -104,8 +111,9 @@
d type value like(xmlSchemaTypePtr)
d xmlSchemaValidateListSimpleTypeFacet...
- d pr 10i 0 extproc('xmlSchemaValidateListSimple-
+ d pr extproc('xmlSchemaValidateListSimple-
d TypeFacet')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d value * value options(*string) const xmlChar *
d actualLen value like(xmlCulong)
@@ -117,10 +125,11 @@
d type value like(xmlSchemaValType)
d xmlSchemaIsBuiltInTypeFacet...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaIsBuiltInTypeFacet')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
- d facetType 10i 0 value
+ d facetType value like(xmlCint)
d xmlSchemaCollapseString...
d pr * extproc('xmlSchemaCollapseString') xmlChar *
@@ -137,8 +146,9 @@
d facet value like(xmlSchemaFacetPtr)
d xmlSchemaValidateLengthFacet...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateLengthFacet')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d facet value like(xmlSchemaFacetPtr)
d value * value options(*string) const xmlChar *
@@ -146,8 +156,9 @@
d length like(xmlCulong)
d xmlSchemaValidateLengthFacetWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateLengthFacetWhtsp')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d valType value like(xmlSchemaValType)
d value * value options(*string) const xmlChar *
@@ -157,28 +168,32 @@
d like(xmlSchemaWhitespaceValueType)
d xmlSchemaValPredefTypeNodeNoNorm...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValPredefTypeNodeNoNorm')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d value * value options(*string) const xmlChar *
d val like(xmlSchemaValPtr)
d node value like(xmlNodePtr)
d xmlSchemaGetCanonValue...
- d pr 10i 0 extproc('xmlSchemaGetCanonValue')
+ d pr extproc('xmlSchemaGetCanonValue')
+ d like(xmlCint)
d val value like(xmlSchemaValPtr)
d retValue * value const xmlChar * *
d xmlSchemaGetCanonValueWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaGetCanonValueWhtsp')
+ d like(xmlCint)
d val value like(xmlSchemaValPtr)
d retValue * value const xmlChar * *
d ws value
d like(xmlSchemaWhitespaceValueType)
d xmlSchemaValueAppend...
- d pr 10i 0 extproc('xmlSchemaValueAppend')
+ d pr extproc('xmlSchemaValueAppend')
+ d like(xmlCint)
d prev value like(xmlSchemaValPtr)
d cur value like(xmlSchemaValPtr)
@@ -192,7 +207,8 @@
d val value like(xmlSchemaValPtr)
d xmlSchemaValueGetAsBoolean...
- d pr 10i 0 extproc('xmlSchemaValueGetAsBoolean')
+ d pr extproc('xmlSchemaValueGetAsBoolean')
+ d like(xmlCint)
d val value like(xmlSchemaValPtr)
d xmlSchemaNewStringValue...
@@ -214,8 +230,9 @@
d localName * value options(*string) const xmlChar *
d xmlSchemaCompareValuesWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaCompareValuesWhtsp')
+ d like(xmlCint)
d x value like(xmlSchemaValPtr)
d xws value
d like(xmlSchemaWhitespaceValueType)
diff --git a/os400/libxmlrpg/xmlstdarg.rpgle b/os400/libxmlrpg/xmlstdarg.rpgle
index 9e45a4c8..3c8e200f 100644
--- a/os400/libxmlrpg/xmlstdarg.rpgle
+++ b/os400/libxmlrpg/xmlstdarg.rpgle
@@ -8,6 +8,7 @@
/define XML_STDARG_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* The va_list object.
@@ -21,12 +22,12 @@
d xmlVaStart pr extproc('__xmlVaStart')
d list likeds(xmlVaList)
d lastargaddr * value
- d lastargsize 10u 0 value
+ d lastargsize value like(xmlCsize_t)
d xmlVaArg pr * extproc('__xmlVaArg')
d list likeds(xmlVaList)
d dest * value
- d argsize 10i 0 value
+ d argsize value like(xmlCsize_t)
d xmlVaEnd pr extproc('__xmlVaEnd')
d list likeds(xmlVaList)
diff --git a/os400/libxmlrpg/xmlstring.rpgle b/os400/libxmlrpg/xmlstring.rpgle
index 5b863e45..8980fc04 100644
--- a/os400/libxmlrpg/xmlstring.rpgle
+++ b/os400/libxmlrpg/xmlstring.rpgle
@@ -29,19 +29,19 @@
d xmlStrndup pr * extproc('xmlStrndup') xmlChar *
d cur * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlCharStrndup pr * extproc('xmlCharStrndup') xmlChar *
d cur * value options(*string) const char *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlCharStrdup pr * extproc('xmlCharStrdup') xmlChar *
d cur * value options(*string) const char *
d xmlStrsub pr * extproc('xmlStrsub') const xmlChar *
d str * value options(*string) const xmlChar *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
d xmlStrchr pr * extproc('xmlStrchr') const xmlChar *
d str * value options(*string) const xmlChar *
@@ -55,34 +55,41 @@
d str * value options(*string) const xmlChar *
d val * value options(*string) const xmlChar *
- d xmlStrcmp pr 10i 0 extproc('xmlStrcmp')
+ d xmlStrcmp pr extproc('xmlStrcmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d xmlStrncmp pr 10i 0 extproc('xmlStrncmp')
+ d xmlStrncmp pr extproc('xmlStrncmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlStrcasecmp pr 10i 0 extproc('xmlStrcasecmp')
+ d xmlStrcasecmp pr extproc('xmlStrcasecmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d xmlStrncasecmp pr 10i 0 extproc('xmlStrncasecmp')
+ d xmlStrncasecmp pr extproc('xmlStrncasecmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlStrEqual pr 10i 0 extproc('xmlStrEqual')
+ d xmlStrEqual pr extproc('xmlStrEqual')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d xmlStrQEqual pr 10i 0 extproc('xmlStrQEqual')
+ d xmlStrQEqual pr extproc('xmlStrQEqual')
+ d like(xmlCint)
d pref * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
d stre * value options(*string) const xmlChar *
- d xmlStrlen pr 10i 0 extproc('xmlStrlen')
+ d xmlStrlen pr extproc('xmlStrlen')
+ d like(xmlCint)
d str * value options(*string) const xmlChar *
d xmlStrcat pr * extproc('xmlStrcat') xmlChar *
@@ -92,21 +99,22 @@
d xmlStrncat pr * extproc('xmlStrncat') xmlChar *
d cur * value options(*string) xmlChar *
d add * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlStrncatNew pr * extproc('xmlStrncatNew') xmlChar *
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
* xmlStrPrintf() is a vararg function.
* The following prototype supports up to 8 pointer arguments.
* Other argument signature can be achieved by defining alternate
* prototypes redirected to the same function.
- d xmlStrPrintf pr 10i 0 extproc('xmlStrPrintf')
+ d xmlStrPrintf pr extproc('xmlStrPrintf')
+ d like(xmlCint)
d buf * value options(*string) xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d msg * value options(*string) const xmlChar *
d arg1 * value options(*string: *nopass)
d arg2 * value options(*string: *nopass)
@@ -117,47 +125,55 @@
d arg7 * value options(*string: *nopass)
d arg8 * value options(*string: *nopass)
- d xmlStrVPrintf pr 10i 0 extproc('xmlStrVPrintf')
+ d xmlStrVPrintf pr extproc('xmlStrVPrintf')
+ d like(xmlCint)
d buf * value options(*string) xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d msg * value options(*string) const xmlChar *
d ap likeds(xmlVaList)
- d xmlGetUTF8Char pr 10i 0 extproc('xmlGetUTF8Char')
+ d xmlGetUTF8Char pr extproc('xmlGetUTF8Char')
+ d like(xmlCint)
d utf * value options(*string) const uns. char *
- d len 10i 0
+ d len like(xmlCint)
- d xmlCheckUTF8 pr 10i 0 extproc('xmlCheckUTF8')
+ d xmlCheckUTF8 pr extproc('xmlCheckUTF8')
+ d like(xmlCint)
d utf * value options(*string) const uns. char *
- d xmlUTF8Strsize pr 10i 0 extproc('xmlUTF8Strsize')
+ d xmlUTF8Strsize pr extproc('xmlUTF8Strsize')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlUTF8Strndup pr * extproc('xmlUTF8Strndup') xmlChar *
d utf * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlUTF8Strpos pr * extproc('xmlUTF8Strpos') const xmlChar *
d utf * value options(*string) const xmlChar *
- d pos 10i 0 value
+ d pos value like(xmlCint)
- d xmlUTF8Strloc pr 10i 0 extproc('xmlUTF8Strloc')
+ d xmlUTF8Strloc pr extproc('xmlUTF8Strloc')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
d utfchar * value options(*string) const xmlChar *
d xmlUTF8Strsub pr * extproc('xmlUTF8Strsub') xmlChar *
d utf * value options(*string) const xmlChar *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
- d xmlUTF8Strlen pr 10i 0 extproc('xmlUTF8Strlen')
+ d xmlUTF8Strlen pr extproc('xmlUTF8Strlen')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
- d xmlUTF8Size pr 10i 0 extproc('xmlUTF8Size')
+ d xmlUTF8Size pr extproc('xmlUTF8Size')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
- d xmlUTF8Charcmp pr 10i 0 extproc('xmlUTF8Charcmp')
+ d xmlUTF8Charcmp pr extproc('xmlUTF8Charcmp')
+ d like(xmlCint)
d utf1 * value options(*string) const xmlChar *
d utf2 * value options(*string) const xmlChar *
diff --git a/os400/libxmlrpg/xmlunicode.rpgle b/os400/libxmlrpg/xmlunicode.rpgle
index 64f7abfb..c4c4ba1f 100644
--- a/os400/libxmlrpg/xmlunicode.rpgle
+++ b/os400/libxmlrpg/xmlunicode.rpgle
@@ -12,656 +12,824 @@
/if defined(LIBXML_UNICODE_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
d xmlUCSIsAegeanNumbers...
- d pr 10i 0 extproc('xmlUCSIsAegeanNumbers')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsAegeanNumbers')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsAlphabeticPresentationForms...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsAlphabeticPresentationForms'
d )
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsArabic pr 10i 0 extproc('xmlUCSIsArabic')
- d code 10i 0 value
+ d xmlUCSIsArabic pr extproc('xmlUCSIsArabic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsArabicPresentationFormsA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsArabicPresentationFormsA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsArabicPresentationFormsB...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsArabicPresentationFormsB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsArmenian...
- d pr 10i 0 extproc('xmlUCSIsArmenian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsArmenian')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsArrows pr 10i 0 extproc('xmlUCSIsArrows')
- d code 10i 0 value
+ d xmlUCSIsArrows pr extproc('xmlUCSIsArrows')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBasicLatin...
- d pr 10i 0 extproc('xmlUCSIsBasicLatin')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBasicLatin')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBengali...
- d pr 10i 0 extproc('xmlUCSIsBengali')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBengali')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBlockElements...
- d pr 10i 0 extproc('xmlUCSIsBlockElements')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBlockElements')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBopomofo...
- d pr 10i 0 extproc('xmlUCSIsBopomofo')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBopomofo')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBopomofoExtended...
- d pr 10i 0 extproc('xmlUCSIsBopomofoExtended')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBopomofoExtended')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBoxDrawing...
- d pr 10i 0 extproc('xmlUCSIsBoxDrawing')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBoxDrawing')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBraillePatterns...
- d pr 10i 0 extproc('xmlUCSIsBraillePatterns')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBraillePatterns')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsBuhid pr 10i 0 extproc('xmlUCSIsBuhid')
- d code 10i 0 value
+ d xmlUCSIsBuhid pr extproc('xmlUCSIsBuhid')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsByzantineMusicalSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsByzantineMusicalSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibility...
- d pr 10i 0 extproc('xmlUCSIsCJKCompatibility')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCJKCompatibility')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibilityForms...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKCompatibilityForms')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibilityIdeographs...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKCompatibilityIdeographs')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibilityIdeographsSupplement...
- d pr 10i 0 extproc('xmlUCSIsCJKCompatibilityIde-
+ d pr extproc('xmlUCSIsCJKCompatibilityIde-
d ographsSupplement')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKRadicalsSupplement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKRadicalsSupplement')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKSymbolsandPunctuation...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKSymbolsandPunctuation')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKUnifiedIdeographs...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKUnifiedIdeographs')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKUnifiedIdeographsExtensionA...
- d pr 10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph-
+ d pr extproc('xmlUCSIsCJKUnifiedIdeograph-
d sExtensionA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKUnifiedIdeographsExtensionB...
- d pr 10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph-
+ d pr extproc('xmlUCSIsCJKUnifiedIdeograph-
d sExtensionB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCherokee...
- d pr 10i 0 extproc('xmlUCSIsCherokee')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCherokee')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningDiacriticalMarks...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCombiningDiacriticalMarks')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningDiacriticalMarksforSymbols...
- d pr 10i 0 extproc('xmlUCSIsCombiningDiacritica-
+ d pr extproc('xmlUCSIsCombiningDiacritica-
d lMarksforSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningHalfMarks...
- d pr 10i 0 extproc('xmlUCSIsCombiningHalfMarks')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCombiningHalfMarks')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningMarksforSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCombiningMarksforSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsControlPictures...
- d pr 10i 0 extproc('xmlUCSIsControlPictures')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsControlPictures')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCurrencySymbols...
- d pr 10i 0 extproc('xmlUCSIsCurrencySymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCurrencySymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCypriotSyllabary...
- d pr 10i 0 extproc('xmlUCSIsCypriotSyllabary')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCypriotSyllabary')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCyrillic...
- d pr 10i 0 extproc('xmlUCSIsCyrillic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCyrillic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCyrillicSupplement...
- d pr 10i 0 extproc('xmlUCSIsCyrillicSupplement')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCyrillicSupplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsDeseret...
- d pr 10i 0 extproc('xmlUCSIsDeseret')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsDeseret')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsDevanagari...
- d pr 10i 0 extproc('xmlUCSIsDevanagari')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsDevanagari')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsDingbats...
- d pr 10i 0 extproc('xmlUCSIsDingbats')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsDingbats')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsEnclosedAlphanumerics...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsEnclosedAlphanumerics')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsEnclosedCJKLettersandMonths...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsEnclosedCJKLettersandMonths'
d )
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsEthiopic...
- d pr 10i 0 extproc('xmlUCSIsEthiopic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsEthiopic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGeneralPunctuation...
- d pr 10i 0 extproc('xmlUCSIsGeneralPunctuation')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGeneralPunctuation')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGeometricShapes...
- d pr 10i 0 extproc('xmlUCSIsGeometricShapes')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGeometricShapes')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGeorgian...
- d pr 10i 0 extproc('xmlUCSIsGeorgian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGeorgian')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsGothic pr 10i 0 extproc('xmlUCSIsGothic')
- d code 10i 0 value
+ d xmlUCSIsGothic pr extproc('xmlUCSIsGothic')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsGreek pr 10i 0 extproc('xmlUCSIsGreek')
- d code 10i 0 value
+ d xmlUCSIsGreek pr extproc('xmlUCSIsGreek')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGreekExtended...
- d pr 10i 0 extproc('xmlUCSIsGreekExtended')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGreekExtended')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGreekandCoptic...
- d pr 10i 0 extproc('xmlUCSIsGreekandCoptic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGreekandCoptic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGujarati...
- d pr 10i 0 extproc('xmlUCSIsGujarati')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGujarati')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGurmukhi...
- d pr 10i 0 extproc('xmlUCSIsGurmukhi')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGurmukhi')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHalfwidthandFullwidthForms...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsHalfwidthandFullwidthForms')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHangulCompatibilityJamo...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsHangulCompatibilityJamo')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHangulJamo...
- d pr 10i 0 extproc('xmlUCSIsHangulJamo')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHangulJamo')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHangulSyllables...
- d pr 10i 0 extproc('xmlUCSIsHangulSyllables')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHangulSyllables')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHanunoo...
- d pr 10i 0 extproc('xmlUCSIsHanunoo')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHanunoo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsHebrew pr 10i 0 extproc('xmlUCSIsHebrew')
- d code 10i 0 value
+ d xmlUCSIsHebrew pr extproc('xmlUCSIsHebrew')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHighPrivateUseSurrogates...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsHighPrivateUseSurrogates')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHighSurrogates...
- d pr 10i 0 extproc('xmlUCSIsHighSurrogates')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHighSurrogates')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHiragana...
- d pr 10i 0 extproc('xmlUCSIsHiragana')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHiragana')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsIPAExtensions...
- d pr 10i 0 extproc('xmlUCSIsIPAExtensions')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsIPAExtensions')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsIdeographicDescriptionCharacters...
- d pr 10i 0 extproc('xmlUCSIsIdeographicDescript-
+ d pr extproc('xmlUCSIsIdeographicDescript-
d ionCharacters')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsKanbun pr 10i 0 extproc('xmlUCSIsKanbun')
- d code 10i 0 value
+ d xmlUCSIsKanbun pr extproc('xmlUCSIsKanbun')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKangxiRadicals...
- d pr 10i 0 extproc('xmlUCSIsKangxiRadicals')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKangxiRadicals')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKannada...
- d pr 10i 0 extproc('xmlUCSIsKannada')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKannada')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKatakana...
- d pr 10i 0 extproc('xmlUCSIsKatakana')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKatakana')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKatakanaPhoneticExtensions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsKatakanaPhoneticExtensions')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsKhmer pr 10i 0 extproc('xmlUCSIsKhmer')
- d code 10i 0 value
+ d xmlUCSIsKhmer pr extproc('xmlUCSIsKhmer')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKhmerSymbols...
- d pr 10i 0 extproc('xmlUCSIsKhmerSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKhmerSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsLao pr 10i 0 extproc('xmlUCSIsLao')
- d code 10i 0 value
+ d xmlUCSIsLao pr extproc('xmlUCSIsLao')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatin1Supplement...
- d pr 10i 0 extproc('xmlUCSIsLatin1Supplement')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLatin1Supplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatinExtendedA...
- d pr 10i 0 extproc('xmlUCSIsLatinExtendedA')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLatinExtendedA')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatinExtendedB...
- d pr 10i 0 extproc('xmlUCSIsLatinExtendedB')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLatinExtendedB')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatinExtendedAdditional...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsLatinExtendedAdditional')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLetterlikeSymbols...
- d pr 10i 0 extproc('xmlUCSIsLetterlikeSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLetterlikeSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsLimbu pr 10i 0 extproc('xmlUCSIsLimbu')
- d code 10i 0 value
+ d xmlUCSIsLimbu pr extproc('xmlUCSIsLimbu')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLinearBIdeograms...
- d pr 10i 0 extproc('xmlUCSIsLinearBIdeograms')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLinearBIdeograms')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLinearBSyllabary...
- d pr 10i 0 extproc('xmlUCSIsLinearBSyllabary')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLinearBSyllabary')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLowSurrogates...
- d pr 10i 0 extproc('xmlUCSIsLowSurrogates')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLowSurrogates')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMalayalam...
- d pr 10i 0 extproc('xmlUCSIsMalayalam')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMalayalam')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMathematicalAlphanumericSymbols...
- d pr 10i 0 extproc('xmlUCSIsMathematicalAlphanu-
+ d pr extproc('xmlUCSIsMathematicalAlphanu-
d mericSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMathematicalOperators...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsMathematicalOperators')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousMathematicalSymbolsA...
- d pr 10i 0 extproc('xmlUCSIsMiscellaneousMathem-
+ d pr extproc('xmlUCSIsMiscellaneousMathem-
d aticalSymbolsA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousMathematicalSymbolsB...
- d pr 10i 0 extproc('xmlUCSIsMiscellaneousMathem-
+ d pr extproc('xmlUCSIsMiscellaneousMathem-
d aticalSymbolsB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsMiscellaneousSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousSymbolsandArrows...
- d pr 10i 0 extproc('xmlUCSIsMiscellaneousSymbol-
+ d pr extproc('xmlUCSIsMiscellaneousSymbol-
d sandArrows')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousTechnical...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsMiscellaneousTechnical')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMongolian...
- d pr 10i 0 extproc('xmlUCSIsMongolian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMongolian')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMusicalSymbols...
- d pr 10i 0 extproc('xmlUCSIsMusicalSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMusicalSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMyanmar...
- d pr 10i 0 extproc('xmlUCSIsMyanmar')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMyanmar')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsNumberForms...
- d pr 10i 0 extproc('xmlUCSIsNumberForms')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsNumberForms')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsOgham pr 10i 0 extproc('xmlUCSIsOgham')
- d code 10i 0 value
+ d xmlUCSIsOgham pr extproc('xmlUCSIsOgham')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsOldItalic...
- d pr 10i 0 extproc('xmlUCSIsOldItalic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsOldItalic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsOpticalCharacterRecognition...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsOpticalCharacterRecognition'
d )
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsOriya pr 10i 0 extproc('xmlUCSIsOriya')
- d code 10i 0 value
+ d xmlUCSIsOriya pr extproc('xmlUCSIsOriya')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsOsmanya...
- d pr 10i 0 extproc('xmlUCSIsOsmanya')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsOsmanya')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsPhoneticExtensions...
- d pr 10i 0 extproc('xmlUCSIsPhoneticExtensions')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsPhoneticExtensions')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsPrivateUse...
- d pr 10i 0 extproc('xmlUCSIsPrivateUse')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsPrivateUse')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsPrivateUseArea...
- d pr 10i 0 extproc('xmlUCSIsPrivateUseArea')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsPrivateUseArea')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsRunic pr 10i 0 extproc('xmlUCSIsRunic')
- d code 10i 0 value
+ d xmlUCSIsRunic pr extproc('xmlUCSIsRunic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsShavian...
- d pr 10i 0 extproc('xmlUCSIsShavian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsShavian')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSinhala...
- d pr 10i 0 extproc('xmlUCSIsSinhala')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsSinhala')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSmallFormVariants...
- d pr 10i 0 extproc('xmlUCSIsSmallFormVariants')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsSmallFormVariants')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSpacingModifierLetters...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSpacingModifierLetters')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSpecials...
- d pr 10i 0 extproc('xmlUCSIsSpecials')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsSpecials')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSuperscriptsandSubscripts...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSuperscriptsandSubscripts')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementalArrowsA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSupplementalArrowsA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementalArrowsB...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSupplementalArrowsB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementalMathematicalOperators...
- d pr 10i 0 extproc('xmlUCSIsSupplementalMathema-
+ d pr extproc('xmlUCSIsSupplementalMathema-
d ticalOperators')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementaryPrivateUseAreaA...
- d pr 10i 0 extproc('xmlUCSIsSupplementaryPrivat-
+ d pr extproc('xmlUCSIsSupplementaryPrivat-
d eUseAreaA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementaryPrivateUseAreaB...
- d pr 10i 0 extproc('xmlUCSIsSupplementaryPrivat-
+ d pr extproc('xmlUCSIsSupplementaryPrivat-
d eUseAreaB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsSyriac pr 10i 0 extproc('xmlUCSIsSyriac')
- d code 10i 0 value
+ d xmlUCSIsSyriac pr extproc('xmlUCSIsSyriac')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTagalog...
- d pr 10i 0 extproc('xmlUCSIsTagalog')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTagalog')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTagbanwa...
- d pr 10i 0 extproc('xmlUCSIsTagbanwa')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTagbanwa')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTags pr 10i 0 extproc('xmlUCSIsTags')
- d code 10i 0 value
+ d xmlUCSIsTags pr extproc('xmlUCSIsTags')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTaiLe pr 10i 0 extproc('xmlUCSIsTaiLe')
- d code 10i 0 value
+ d xmlUCSIsTaiLe pr extproc('xmlUCSIsTaiLe')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTaiXuanJingSymbols...
- d pr 10i 0 extproc('xmlUCSIsTaiXuanJingSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTaiXuanJingSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTamil pr 10i 0 extproc('xmlUCSIsTamil')
- d code 10i 0 value
+ d xmlUCSIsTamil pr extproc('xmlUCSIsTamil')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTelugu pr 10i 0 extproc('xmlUCSIsTelugu')
- d code 10i 0 value
+ d xmlUCSIsTelugu pr extproc('xmlUCSIsTelugu')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsThaana pr 10i 0 extproc('xmlUCSIsThaana')
- d code 10i 0 value
+ d xmlUCSIsThaana pr extproc('xmlUCSIsThaana')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsThai pr 10i 0 extproc('xmlUCSIsThai')
- d code 10i 0 value
+ d xmlUCSIsThai pr extproc('xmlUCSIsThai')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTibetan...
- d pr 10i 0 extproc('xmlUCSIsTibetan')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTibetan')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsUgaritic...
- d pr 10i 0 extproc('xmlUCSIsUgaritic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsUgaritic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsUnifiedCanadianAboriginalSyllabics...
- d pr 10i 0 extproc('xmlUCSIsUnifiedCanadianAbor-
+ d pr extproc('xmlUCSIsUnifiedCanadianAbor-
d iginalSyllabics')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsVariationSelectors...
- d pr 10i 0 extproc('xmlUCSIsVariationSelectors')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsVariationSelectors')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsVariationSelectorsSupplement...
- d pr 10i 0 extproc('xmlUCSIsVariationSelectorsS-
+ d pr extproc('xmlUCSIsVariationSelectorsS-
d upplement')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsYiRadicals...
- d pr 10i 0 extproc('xmlUCSIsYiRadicals')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsYiRadicals')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsYiSyllables...
- d pr 10i 0 extproc('xmlUCSIsYiSyllables')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsYiSyllables')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsYijingHexagramSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsYijingHexagramSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsBlock pr 10i 0 extproc('xmlUCSIsBlock')
- d code 10i 0 value
+ d xmlUCSIsBlock pr extproc('xmlUCSIsBlock')
+ d like(xmlCint)
+ d code value like(xmlCint)
d block * value options(*string) const char *
- d xmlUCSIsCatC pr 10i 0 extproc('xmlUCSIsCatC')
- d code 10i 0 value
+ d xmlUCSIsCatC pr extproc('xmlUCSIsCatC')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCc pr 10i 0 extproc('xmlUCSIsCatCc')
- d code 10i 0 value
+ d xmlUCSIsCatCc pr extproc('xmlUCSIsCatCc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCf pr 10i 0 extproc('xmlUCSIsCatCf')
- d code 10i 0 value
+ d xmlUCSIsCatCf pr extproc('xmlUCSIsCatCf')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCo pr 10i 0 extproc('xmlUCSIsCatCo')
- d code 10i 0 value
+ d xmlUCSIsCatCo pr extproc('xmlUCSIsCatCo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCs pr 10i 0 extproc('xmlUCSIsCatCs')
- d code 10i 0 value
+ d xmlUCSIsCatCs pr extproc('xmlUCSIsCatCs')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatL pr 10i 0 extproc('xmlUCSIsCatL')
- d code 10i 0 value
+ d xmlUCSIsCatL pr extproc('xmlUCSIsCatL')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLl pr 10i 0 extproc('xmlUCSIsCatLl')
- d code 10i 0 value
+ d xmlUCSIsCatLl pr extproc('xmlUCSIsCatLl')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLm pr 10i 0 extproc('xmlUCSIsCatLm')
- d code 10i 0 value
+ d xmlUCSIsCatLm pr extproc('xmlUCSIsCatLm')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLo pr 10i 0 extproc('xmlUCSIsCatLo')
- d code 10i 0 value
+ d xmlUCSIsCatLo pr extproc('xmlUCSIsCatLo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLt pr 10i 0 extproc('xmlUCSIsCatLt')
- d code 10i 0 value
+ d xmlUCSIsCatLt pr extproc('xmlUCSIsCatLt')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLu pr 10i 0 extproc('xmlUCSIsCatLu')
- d code 10i 0 value
+ d xmlUCSIsCatLu pr extproc('xmlUCSIsCatLu')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatM pr 10i 0 extproc('xmlUCSIsCatM')
- d code 10i 0 value
+ d xmlUCSIsCatM pr extproc('xmlUCSIsCatM')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatMc pr 10i 0 extproc('xmlUCSIsCatMc')
- d code 10i 0 value
+ d xmlUCSIsCatMc pr extproc('xmlUCSIsCatMc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatMe pr 10i 0 extproc('xmlUCSIsCatMe')
- d code 10i 0 value
+ d xmlUCSIsCatMe pr extproc('xmlUCSIsCatMe')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatMn pr 10i 0 extproc('xmlUCSIsCatMn')
- d code 10i 0 value
+ d xmlUCSIsCatMn pr extproc('xmlUCSIsCatMn')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatN pr 10i 0 extproc('xmlUCSIsCatN')
- d code 10i 0 value
+ d xmlUCSIsCatN pr extproc('xmlUCSIsCatN')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatNd pr 10i 0 extproc('xmlUCSIsCatNd')
- d code 10i 0 value
+ d xmlUCSIsCatNd pr extproc('xmlUCSIsCatNd')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatNl pr 10i 0 extproc('xmlUCSIsCatNl')
- d code 10i 0 value
+ d xmlUCSIsCatNl pr extproc('xmlUCSIsCatNl')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatNo pr 10i 0 extproc('xmlUCSIsCatNo')
- d code 10i 0 value
+ d xmlUCSIsCatNo pr extproc('xmlUCSIsCatNo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatP pr 10i 0 extproc('xmlUCSIsCatP')
- d code 10i 0 value
+ d xmlUCSIsCatP pr extproc('xmlUCSIsCatP')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPc pr 10i 0 extproc('xmlUCSIsCatPc')
- d code 10i 0 value
+ d xmlUCSIsCatPc pr extproc('xmlUCSIsCatPc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPd pr 10i 0 extproc('xmlUCSIsCatPd')
- d code 10i 0 value
+ d xmlUCSIsCatPd pr extproc('xmlUCSIsCatPd')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPe pr 10i 0 extproc('xmlUCSIsCatPe')
- d code 10i 0 value
+ d xmlUCSIsCatPe pr extproc('xmlUCSIsCatPe')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPf pr 10i 0 extproc('xmlUCSIsCatPf')
- d code 10i 0 value
+ d xmlUCSIsCatPf pr extproc('xmlUCSIsCatPf')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPi pr 10i 0 extproc('xmlUCSIsCatPi')
- d code 10i 0 value
+ d xmlUCSIsCatPi pr extproc('xmlUCSIsCatPi')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPo pr 10i 0 extproc('xmlUCSIsCatPo')
- d code 10i 0 value
+ d xmlUCSIsCatPo pr extproc('xmlUCSIsCatPo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPs pr 10i 0 extproc('xmlUCSIsCatPs')
- d code 10i 0 value
+ d xmlUCSIsCatPs pr extproc('xmlUCSIsCatPs')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatS pr 10i 0 extproc('xmlUCSIsCatS')
- d code 10i 0 value
+ d xmlUCSIsCatS pr extproc('xmlUCSIsCatS')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSc pr 10i 0 extproc('xmlUCSIsCatSc')
- d code 10i 0 value
+ d xmlUCSIsCatSc pr extproc('xmlUCSIsCatSc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSk pr 10i 0 extproc('xmlUCSIsCatSk')
- d code 10i 0 value
+ d xmlUCSIsCatSk pr extproc('xmlUCSIsCatSk')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSm pr 10i 0 extproc('xmlUCSIsCatSm')
- d code 10i 0 value
+ d xmlUCSIsCatSm pr extproc('xmlUCSIsCatSm')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSo pr 10i 0 extproc('xmlUCSIsCatSo')
- d code 10i 0 value
+ d xmlUCSIsCatSo pr extproc('xmlUCSIsCatSo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZ pr 10i 0 extproc('xmlUCSIsCatZ')
- d code 10i 0 value
+ d xmlUCSIsCatZ pr extproc('xmlUCSIsCatZ')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZl pr 10i 0 extproc('xmlUCSIsCatZl')
- d code 10i 0 value
+ d xmlUCSIsCatZl pr extproc('xmlUCSIsCatZl')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZp pr 10i 0 extproc('xmlUCSIsCatZp')
- d code 10i 0 value
+ d xmlUCSIsCatZp pr extproc('xmlUCSIsCatZp')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZs pr 10i 0 extproc('xmlUCSIsCatZs')
- d code 10i 0 value
+ d xmlUCSIsCatZs pr extproc('xmlUCSIsCatZs')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCat pr 10i 0 extproc('xmlUCSIsCat')
- d code 10i 0 value
+ d xmlUCSIsCat pr extproc('xmlUCSIsCat')
+ d like(xmlCint)
+ d code value like(xmlCint)
d cat * value options(*string) const char *
/endif LIBXML_UNICODE_ENBLD
diff --git a/os400/libxmlrpg/xmlversion.rpgle.in b/os400/libxmlrpg/xmlversion.rpgle.in
index 81676bed..955599e2 100644
--- a/os400/libxmlrpg/xmlversion.rpgle.in
+++ b/os400/libxmlrpg/xmlversion.rpgle.in
@@ -8,6 +8,7 @@
/if not defined(XML_VERSION_H__)
/define XML_VERSION_H__
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlexports"
* use those to be sure nothing nasty will happen if
@@ -16,7 +17,7 @@
d xmlCheckVersion...
d pr extproc('xmlCheckVersion')
- d version 10i 0 value
+ d version value like(xmlCint)
* LIBXML_DOTTED_VERSION:
*
diff --git a/os400/libxmlrpg/xmlwriter.rpgle b/os400/libxmlrpg/xmlwriter.rpgle
index f2d3d30e..c8530f8d 100644
--- a/os400/libxmlrpg/xmlwriter.rpgle
+++ b/os400/libxmlrpg/xmlwriter.rpgle
@@ -12,6 +12,7 @@
/if defined(LIBXML_WRITER_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlstdarg"
/include "libxmlrpg/xmlIO"
/include "libxmlrpg/list"
@@ -31,32 +32,32 @@
d pr extproc('xmlNewTextWriterFilename')
d like(xmlTextWriterPtr)
d uri * value options(*string) const char *
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterMemory...
d pr extproc('xmlNewTextWriterMemory')
d like(xmlTextWriterPtr)
d buf value like(xmlBufferPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterPushParser...
d pr extproc('xmlNewTextWriterPushParser')
d like(xmlTextWriterPtr)
d ctxt value like(xmlParserCtxtPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterDoc...
d pr extproc('xmlNewTextWriterDoc')
d like(xmlTextWriterPtr)
d doc like(xmlDocPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterTree...
d pr extproc('xmlNewTextWriterTree')
d like(xmlTextWriterPtr)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlFreeTextWriter...
d pr extproc('xmlFreeTextWriter')
@@ -67,29 +68,34 @@
* Document
d xmlTextWriterStartDocument...
- d pr 10i 0 extproc('xmlTextWriterStartDocument')
+ d pr extproc('xmlTextWriterStartDocument')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d version * value options(*string) const char *
d encoding * value options(*string) const char *
d standalone * value options(*string) const char *
d xmlTextWriterEndDocument...
- d pr 10i 0 extproc('xmlTextWriterEndDocument')
+ d pr extproc('xmlTextWriterEndDocument')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* Comments
d xmlTextWriterStartComment...
- d pr 10i 0 extproc('xmlTextWriterStartComment')
+ d pr extproc('xmlTextWriterStartComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterEndComment...
- d pr 10i 0 extproc('xmlTextWriterEndComment')
+ d pr extproc('xmlTextWriterEndComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterWriteFormatComment...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string: *nopass) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -102,46 +108,53 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatComment...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteComment...
- d pr 10i 0 extproc('xmlTextWriterWriteComment')
+ d pr extproc('xmlTextWriterWriteComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
* Elements
d xmlTextWriterStartElement...
- d pr 10i 0 extproc('xmlTextWriterStartElement')
+ d pr extproc('xmlTextWriterStartElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterStartElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
d namespaceURI * value options(*string) const xmlChar *
d xmlTextWriterEndElement...
- d pr 10i 0 extproc('xmlTextWriterEndElement')
+ d pr extproc('xmlTextWriterEndElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterFullEndElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterFullEndElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* Elements conveniency functions
d xmlTextWriterWriteFormatElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -155,22 +168,25 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteElement...
- d pr 10i 0 extproc('xmlTextWriterWriteElement')
+ d pr extproc('xmlTextWriterWriteElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteFormatElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -186,8 +202,9 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -196,8 +213,9 @@
d argptr likeds(xmlVaList)
d xmlTextWriterWriteElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -207,8 +225,9 @@
* Text
d xmlTextWriterWriteFormatRaw...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatRaw')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -221,26 +240,30 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatRaw...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatRaw')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteRawLen...
- d pr 10i 0 extproc('xmlTextWriterWriteRawLen')
+ d pr extproc('xmlTextWriterWriteRawLen')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlTextWriterWriteRaw...
- d pr 10i 0 extproc('xmlTextWriterWriteRaw')
+ d pr extproc('xmlTextWriterWriteRaw')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteFormatString...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -253,56 +276,64 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatString...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteString...
- d pr 10i 0 extproc('xmlTextWriterWriteString')
+ d pr extproc('xmlTextWriterWriteString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteBase64...
- d pr 10i 0 extproc('xmlTextWriterWriteBase64')
+ d pr extproc('xmlTextWriterWriteBase64')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d data * value options(*string) const char *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
d xmlTextWriterWriteBinHex...
- d pr 10i 0 extproc('xmlTextWriterWriteBinHex')
+ d pr extproc('xmlTextWriterWriteBinHex')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d data * value options(*string) const char *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
* Attributes
d xmlTextWriterStartAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterStartAttributeNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartAttributeNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
d namespaceURI * value options(*string) const xmlChar *
d xmlTextWriterEndAttribute...
- d pr 10i 0 extproc('xmlTextWriterEndAttribute')
+ d pr extproc('xmlTextWriterEndAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* Attributes conveniency functions
d xmlTextWriterWriteFormatAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -316,24 +347,27 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteFormatAttributeNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatAttributeNS'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -349,8 +383,9 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatAttributeNS...
- d pr 10i 0 extproc('xmlTextWriterWriteVFormatAt-
+ d pr extproc('xmlTextWriterWriteVFormatAt-
d tributeNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -359,8 +394,9 @@
d argptr likeds(xmlVaList)
d xmlTextWriterWriteAttributeNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteAttributeNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -370,18 +406,21 @@
* PI's
d xmlTextWriterStartPI...
- d pr 10i 0 extproc('xmlTextWriterStartPI')
+ d pr extproc('xmlTextWriterStartPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d xmlTextWriterEndPI...
- d pr 10i 0 extproc('xmlTextWriterEndPI')
+ d pr extproc('xmlTextWriterEndPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* PI conveniency functions
d xmlTextWriterWriteFormatPI...
- d pr 10i 0 extproc('xmlTextWriterWriteFormatPI')
+ d pr extproc('xmlTextWriterWriteFormatPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -395,15 +434,17 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatPI...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWritePI...
- d pr 10i 0 extproc('xmlTextWriterWritePI')
+ d pr extproc('xmlTextWriterWritePI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -413,7 +454,8 @@
* This macro maps to xmlTextWriterWritePI
d xmlTextWriterWriteProcessingInstruction...
- d pr 10i 0 extproc('xmlTextWriterWritePI')
+ d pr extproc('xmlTextWriterWritePI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -421,18 +463,21 @@
* CDATA
d xmlTextWriterStartCDATA...
- d pr 10i 0 extproc('xmlTextWriterStartCDATA')
+ d pr extproc('xmlTextWriterStartCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterEndCDATA...
- d pr 10i 0 extproc('xmlTextWriterEndCDATA')
+ d pr extproc('xmlTextWriterEndCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* CDATA conveniency functions
d xmlTextWriterWriteFormatCDATA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -445,35 +490,40 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatCDATA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteCDATA...
- d pr 10i 0 extproc('xmlTextWriterWriteCDATA')
+ d pr extproc('xmlTextWriterWriteCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
* DTD
d xmlTextWriterStartDTD...
- d pr 10i 0 extproc('xmlTextWriterStartDTD')
+ d pr extproc('xmlTextWriterStartDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
d xmlTextWriterEndDTD...
- d pr 10i 0 extproc('xmlTextWriterEndDTD')
+ d pr extproc('xmlTextWriterEndDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD conveniency functions
d xmlTextWriterWriteFormatDTD...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -489,8 +539,9 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTD...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -499,7 +550,8 @@
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTD...
- d pr 10i 0 extproc('xmlTextWriterWriteDTD')
+ d pr extproc('xmlTextWriterWriteDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -511,7 +563,8 @@
* this macro maps to xmlTextWriterWriteDTD
d xmlTextWriterWriteDocType...
- d pr 10i 0 extproc('xmlTextWriterWriteDTD')
+ d pr extproc('xmlTextWriterWriteDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -521,20 +574,23 @@
* DTD element definition
d xmlTextWriterStartDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterEndDTDElement...
- d pr 10i 0 extproc('xmlTextWriterEndDTDElement')
+ d pr extproc('xmlTextWriterEndDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD element definition conveniency functions
d xmlTextWriterWriteFormatDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -548,17 +604,19 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatDTDElement'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -566,20 +624,23 @@
* DTD attribute list definition
d xmlTextWriterStartDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterEndDTDAttlist...
- d pr 10i 0 extproc('xmlTextWriterEndDTDAttlist')
+ d pr extproc('xmlTextWriterEndDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD attribute list definition conveniency functions
d xmlTextWriterWriteFormatDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -593,17 +654,19 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatDTDAttlist'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -611,23 +674,26 @@
* DTD entity definition
d xmlTextWriterStartDTDEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartDTDEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d xmlTextWriterEndDTDEntity...
- d pr 10i 0 extproc('xmlTextWriterEndDTDEntity')
+ d pr extproc('xmlTextWriterEndDTDEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD entity definition conveniency functions
d xmlTextWriterWriteFormatDTDInternalEntity...
- d pr 10i 0 extproc('xmlTextWriterWriteFormatDTD-
+ d pr extproc('xmlTextWriterWriteFormatDTD-
d InternalEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -640,47 +706,52 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTDInternalEntity...
- d pr 10i 0 extproc('xmlTextWriterWriteVFormatDT-
+ d pr extproc('xmlTextWriterWriteVFormatDT-
d DInternalEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTDInternalEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDInternalEntity'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteDTDExternalEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDExternalEntity'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
d ndataid * value options(*string) const xmlChar *
d xmlTextWriterWriteDTDExternalEntityContents...
- d pr 10i 0 extproc('xmlTextWriterWriteDTDExtern-
+ d pr extproc('xmlTextWriterWriteDTDExtern-
d alEntityContents')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
d ndataid * value options(*string) const xmlChar *
d xmlTextWriterWriteDTDEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
@@ -690,8 +761,9 @@
* DTD notation definition
d xmlTextWriterWriteDTDNotation...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDNotation')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -700,25 +772,29 @@
* Indentation
d xmlTextWriterSetIndent...
- d pr 10i 0 extproc('xmlTextWriterSetIndent')
+ d pr extproc('xmlTextWriterSetIndent')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d indent 10i 0 value
+ d indent value like(xmlCint)
d xmlTextWriterSetIndentString...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterSetIndentString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d str * value options(*string) const xmlChar *
d xmlTextWriterSetQuoteChar...
- d pr 10i 0 extproc('xmlTextWriterSetQuoteChar')
+ d pr extproc('xmlTextWriterSetQuoteChar')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d quotechar value like(xmlChar)
* misc
d xmlTextWriterFlush...
- d pr 10i 0 extproc('xmlTextWriterFlush')
+ d pr extproc('xmlTextWriterFlush')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
/endif LIBXML_WRITER_ENABLD
diff --git a/os400/libxmlrpg/xpath.rpgle b/os400/libxmlrpg/xpath.rpgle
index 1784fada..6e591ee4 100644
--- a/os400/libxmlrpg/xpath.rpgle
+++ b/os400/libxmlrpg/xpath.rpgle
@@ -18,10 +18,10 @@
/define XML_XPATH_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xmlTypesC"
/if defined(LIBXML_XPATH_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlerror"
/include "libxmlrpg/tree"
/include "libxmlrpg/hash"
@@ -37,7 +37,8 @@
* The set of XPath error codes.
- d xmlXPathError s 10i 0 based(######typedef######) enum
+ d xmlXPathError s based(######typedef######)
+ d like(xmlCenum)
d XPATH_EXPRESSION_OK...
d c 0
d XPATH_NUMBER_ERROR...
@@ -95,8 +96,8 @@
d xmlNodeSet ds based(xmlNodeSetPtr)
d align qualified
- d nodeNr 10i 0 Set node count
- d nodeMax 10i 0 Max # nodes in set
+ d nodeNr like(xmlCint) Set node count
+ d nodeMax like(xmlCint) Max # nodes in set
d nodeTab * xmlNodePtr *
* An expression is evaluated to yield an object, which
@@ -109,7 +110,8 @@
* @@ XPointer will add more types !
d xmlXPathObjectType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XPATH_UNDEFINED...
d c 0
d XPATH_NODESET c 1
@@ -131,13 +133,13 @@
d align qualified
d type like(xmlXPathObjectType)
d nodesetval like(xmlNodeSetPtr)
- d boolval 10i 0
- d floatval 8f
+ d boolval like(xmlCint)
+ d floatval like(xmlCdouble)
d stringval * xmlChar *
d user * void *
- d index 10i 0
+ d index like(xmlCint)
d user2 * void *
- d index2 10i 0
+ d index2 like(xmlCint)
* xmlXPathConvertFunc:
* @obj: an XPath object
@@ -299,69 +301,69 @@
d node like(xmlNodePtr) Current node
*
d nb_variables_unused... Unused (hash table)
- d 10i 0
- d max_variables_unused... Unused (hash table)
- d 10i 0
- d varHash like(xmlHashTablePtr) Defined variables
+ d like(xmlCint)
+ d max_variables_unused... Unused (hash table)
+ d like(xmlCint)
+ d varHash like(xmlHashTablePtr) Defined variables
*
- d nb_types 10i 0 # of defined types
- d max_types 10i 0 Max number of types
- d types like(xmlXPathTypePtr) Defined types array
+ d nb_types like(xmlCint) # of defined types
+ d max_types like(xmlCint) Max number of types
+ d types like(xmlXPathTypePtr) Defined types array
*
d nb_funcs_unused... Unused (hash table)
- d 10i 0
- d max_funcs_unused... Unused (hash table)
- d 10i 0
- d funcHash like(xmlHashTablePtr) Defined functions
+ d like(xmlCint)
+ d max_funcs_unused... Unused (hash table)
+ d like(xmlCint)
+ d funcHash like(xmlHashTablePtr) Defined functions
*
- d nb_axis 10i 0 # of defined axis
- d max_axis 10i 0 Max number of axis
- d axis like(xmlXPathAxisPtr) Defined axis array
+ d nb_axis like(xmlCint) # of defined axis
+ d max_axis like(xmlCint) Max number of axis
+ d axis like(xmlXPathAxisPtr) Defined axis array
*
* the namespace nodes of the context node
*
- d namespaces * xmlNsPtr *
- d nsNr 10i 0 # scope namespaces
- d user * procptr Function to free
+ d namespaces * xmlNsPtr *
+ d nsNr like(xmlCint) # scope namespaces
+ d user * procptr Function to free
*
* extra variables
*
- d contextSize 10i 0 The context size
+ d contextSize like(xmlCint) The context size
d proximityPosition...
- d 10i 0
+ d like(xmlCint)
*
* extra stuff for XPointer
*
- d xptr 10i 0 XPointer context ?
- d here like(xmlNodePtr) For here()
- d origin like(xmlNodePtr) For origin()
+ d xptr like(xmlCint) XPointer context ?
+ d here like(xmlNodePtr) For here()
+ d origin like(xmlNodePtr) For origin()
*
* the set of namespace declarations in scope for the expression
*
- d nsHash like(xmlHashTablePtr) Namespace hashtable
- d varLookupFunc like(xmlXPathVariableLookupFunc) Var lookup function
- d varLookupData * void *
+ d nsHash like(xmlHashTablePtr) Namespace hashtable
+ d varLookupFunc like(xmlXPathVariableLookupFunc) Var lookup function
+ d varLookupData * void *
*
* Possibility to link in an extra item
*
- d extra * void *
+ d extra * void *
*
* The function name and URI when calling a function
*
- d function * const xmlChar *
- d functionURI * const xmlChar *
+ d function * const xmlChar *
+ d functionURI * const xmlChar *
*
* function lookup function and data
*
- d funcLookupFunc... Func lookup func
+ d funcLookupFunc... Func lookup func
d like(xmlXPathVariableLookupFunc)
- d funcLookupData... void *
+ d funcLookupData... void *
d *
*
* temporary namespace lists kept for walking the namespace axis
*
d tmpNsList * xmlNsPtr *
- d tmpNsNr 10i 0 # scope namespaces
+ d tmpNsNr like(xmlCint) # scope namespaces
*
* error reporting mechanism
*
@@ -374,7 +376,7 @@
*
d dict like(xmlDictPtr) Dictionary if any
*
- d flags 10i 0 Compilation control
+ d flags like(xmlCint) Compilation control
*
* Cache for reusal of XPath objects
*
@@ -396,19 +398,19 @@
d cur * const xmlChar *
d base * const xmlChar *
*
- d error 10i 0 Error code
+ d error like(xmlCint) Error code
*
d context like(xmlXPathContextPtr) Evaluation context
d value like(xmlXPathObjectPtr) The current value
- d valueNr 10i 0 Value stack depth
- d valueMax 10i 0 Max stack depth
+ d valueNr like(xmlCint) Value stack depth
+ d valueMax like(xmlCint) Max stack depth
d valueTab * xmlXPathObjectPtr *
*
d comp like(xmlXPathCompExprPtr) Precompiled expr.
- d xptr 10i 0 XPointer expression?
+ d xptr like(xmlCint) XPointer expression?
d ancestor like(xmlNodePtr) To walk prec. axis
*
- d valueFrame 10i 0 Limit stack pop
+ d valueFrame like(xmlCint) Limit stack pop
**************************************************************************
* *
@@ -418,9 +420,14 @@
* Objects and Nodesets handling
- d xmlXPathNAN s 8f import('xmlXPathNAN')
- d xmlXPathPINF s 8f import('xmlXPathPINF')
- d xmlXPathNINF s 8f import('xmlXPathNINF')
+ d xmlXPathNAN s import('xmlXPathNAN')
+ d like(xmlCdouble)
+
+ d xmlXPathPINF s import('xmlXPathPINF')
+ d like(xmlCdouble)
+
+ d xmlXPathNINF s import('xmlXPathNINF')
+ d like(xmlCdouble)
d xmlXPathFreeObject...
d pr extproc('xmlXPathFreeObject')
@@ -445,62 +452,71 @@
d val value like(xmlXPathObjectPtr)
d xmlXPathCmpNodes...
- d pr 10i 0 extproc('xmlXPathCmpNodes')
+ d pr extproc('xmlXPathCmpNodes')
+ d like(xmlCint)
d node1 value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
* Conversion functions to basic types.
d xmlXPathCastNumberToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCastNumberToBoolean')
- d val 8f value
+ d like(xmlCint)
+ d val value like(xmlCdouble)
d xmlXPathCastStringToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCastStringToBoolean')
+ d like(xmlCint)
d val * value options(*string) const xmlChar *
d xmlXPathCastNodeSetToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCastNodeSetToBoolean')
+ d like(xmlCint)
d ns value like(xmlNodeSetPtr)
d xmlXPathCastToBoolean...
- d pr 10i 0 extproc('xmlXPathCastToBoolean')
+ d pr extproc('xmlXPathCastToBoolean')
+ d like(xmlCint)
d val value like(xmlXPathObjectPtr)
d xmlXPathCastBooleanToNumber...
d pr extproc(
d 'xmlXPathCastBooleanToNumber')
- d 8f
- d val 10i 0 value
+ d like(xmlCdouble)
+ d val value like(xmlCint)
d xmlXPathCastStringToNumber...
- d pr 8f extproc('xmlXPathCastStringToNumber')
+ d pr extproc('xmlXPathCastStringToNumber')
+ d like(xmlCdouble)
d val * value options(*string) const xmlChar *
d xmlXPathCastNodeToNumber...
- d pr 8f extproc('xmlXPathCastNodeToNumber')
+ d pr extproc('xmlXPathCastNodeToNumber')
+ d like(xmlCdouble)
d node value like(xmlNodePtr)
d xmlXPathCastNodeSetToNumber...
- d pr 8f extproc(
+ d pr extproc(
d 'xmlXPathCastNodeSetToNumber')
+ d like(xmlCdouble)
d ns value like(xmlNodeSetPtr)
d xmlXPathCastToNumber...
- d pr 8f extproc('xmlXPathCastToNumber')
+ d pr extproc('xmlXPathCastToNumber')
+ d like(xmlCdouble)
d val value like(xmlXPathObjectPtr)
d xmlXPathCastBooleanToString...
d pr * extproc( xmlChar *
d 'xmlXPathCastBooleanToString')
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlXPathCastNumberToString...
d pr * extproc('xmlXPathCastNumberToString')xmlChar *
- d val 8f value
+ d val value like(xmlCdouble)
d xmlXPathCastNodeToString...
d pr * extproc('xmlXPathCastNodeToString') xmlChar *
@@ -542,11 +558,12 @@
d ctxt value like(xmlXPathContextPtr)
d xmlXPathContextSetCache...
- d pr 10i 0 extproc('xmlXPathContextSetCache')
+ d pr extproc('xmlXPathContextSetCache')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
- d active 10i 0 value
- d value 10i 0 value
- d options 10i 0 value
+ d active value like(xmlCint)
+ d value value like(xmlCint)
+ d options value like(xmlCint)
* Evaluation functions.
@@ -556,7 +573,8 @@
d doc value like(xmlDocPtr)
d xmlXPathSetContextNode...
- d pr 10i 0 extproc('xmlXPathSetContextNode')
+ d pr extproc('xmlXPathSetContextNode')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d ctx value like(xmlXPathContextPtr)
@@ -579,7 +597,8 @@
d ctxt value like(xmlXPathContextPtr)
d xmlXPathEvalPredicate...
- d pr 10i 0 extproc('xmlXPathEvalPredicate')
+ d pr extproc('xmlXPathEvalPredicate')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d res value like(xmlXPathObjectPtr)
@@ -603,8 +622,9 @@
d ctx value like(xmlXPathContextPtr)
d xmlXPathCompiledEvalToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCompiledEvalToBoolean')
+ d like(xmlCint)
d comp value like(xmlXPathCompExprPtr)
d ctxt value like(xmlXPathContextPtr)
@@ -622,11 +642,13 @@
/if defined(XML_TESTVAL)
d xmlXPathInit pr extproc('xmlXPathInit')
- d xmlXPathIsNaN pr 10i 0 extproc('xmlXPathIsNaN')
- d val 8f value
+ d xmlXPathIsNaN pr extproc('xmlXPathIsNaN')
+ d like(xmlCint)
+ d val value like(xmlCdouble)
- d xmlXPathIsInf pr 10i 0 extproc('xmlXPathIsInf')
- d val 8f value
+ d xmlXPathIsInf pr extproc('xmlXPathIsInf')
+ d like(xmlCint)
+ d val value like(xmlCdouble)
/undefine XML_TESTVAL
/endif
@@ -635,17 +657,19 @@
/if defined(LIBXML_XPATH_ENABLED)
d xmlXPathNodeSetGetLength...
- d pr 10i 0 extproc('__xmlXPathNodeSetGetLength')
+ d pr extproc('__xmlXPathNodeSetGetLength')
+ d like(xmlCint)
d ns value like(xmlNodeSetPtr)
d xmlXPathNodeSetItem...
d pr extproc('__xmlXPathNodeSetItem')
d like(xmlNodePtr)
d ns value like(xmlNodeSetPtr)
- d index 10i 0 value
+ d index value like(xmlCint)
d xmlXPathNodeSetIsEmpty...
- d pr 10i 0 extproc('__xmlXPathNodeSetIsEmpty')
+ d pr extproc('__xmlXPathNodeSetIsEmpty')
+ d like(xmlCint)
d ns value like(xmlNodeSetPtr)
/endif LIBXML_XPATH_ENABLED
/endif XML_XPATH_H__
diff --git a/os400/libxmlrpg/xpathInternals.rpgle b/os400/libxmlrpg/xpathInternals.rpgle
index 69f3ae0e..a6d12e15 100644
--- a/os400/libxmlrpg/xpathInternals.rpgle
+++ b/os400/libxmlrpg/xpathInternals.rpgle
@@ -11,10 +11,12 @@
/define XML_XPATH_INTERNALS_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xpath"
/if defined(LIBXML_XPATH_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xpath"
+
************************************************************************
* *
* Helpers *
@@ -25,11 +27,13 @@
* shouldn't be used in #ifdef's preprocessor instructions.
d xmlXPathPopBoolean...
- d pr 10i 0 extproc('xmlXPathPopBoolean')
+ d pr extproc('xmlXPathPopBoolean')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathPopNumber...
- d pr 8f extproc('xmlXPathPopNumber')
+ d pr extproc('xmlXPathPopNumber')
+ d like(xmlCdouble)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathPopString...
@@ -71,31 +75,32 @@
d pr extproc('xmlXPatherror')
d ctxt value like(xmlXPathParserContextPtr)
d file * value options(*string) const char *
- d line 10i 0 value
- d no 10i 0 value
+ d line value like(xmlCint)
+ d no value like(xmlCint)
d xmlXPathErr pr extproc('xmlXPathErr')
d ctxt value like(xmlXPathParserContextPtr)
- d error 10i 0 value
+ d error value like(xmlCint)
/if defined(LIBXML_DEBUG_ENABLED)
d xmlXPathDebugDumpObject...
d pr extproc('xmlXPathDebugDumpObject')
d output * value FILE *
d cur value like(xmlXPathObjectPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlXPathDebugDumpCompExpr...
d pr extproc('xmlXPathDebugDumpCompExpr')
d output * value FILE *
d comp value like(xmlXPathCompExprPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
/endif
* NodeSet handling.
d xmlXPathNodeSetContains...
- d pr 10i 0 extproc('xmlXPathNodeSetContains')
+ d pr extproc('xmlXPathNodeSetContains')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d val value like(xmlNodePtr)
@@ -122,7 +127,8 @@
d nodes value like(xmlNodeSetPtr)
d xmlXPathHasSameNodes...
- d pr 10i 0 extproc('xmlXPathHasSameNodes')
+ d pr extproc('xmlXPathHasSameNodes')
+ d like(xmlCint)
d nodes1 value like(xmlNodeSetPtr)
d nodes2 value like(xmlNodeSetPtr)
@@ -177,7 +183,8 @@
* Extending a context.
d xmlXPathRegisterNs...
- d pr 10i 0 extproc('xmlXPathRegisterNs')
+ d pr extproc('xmlXPathRegisterNs')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d prefix * value options(*string) const xmlChar *
d ns_uri * value options(*string) const xmlChar *
@@ -193,26 +200,30 @@
d ctxt value like(xmlXPathContextPtr)
d xmlXPathRegisterFunc...
- d pr 10i 0 extproc('xmlXPathRegisterFunc')
+ d pr extproc('xmlXPathRegisterFunc')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d f value like(xmlXPathFunction)
d xmlXPathRegisterFuncNS...
- d pr 10i 0 extproc('xmlXPathRegisterFuncNS')
+ d pr extproc('xmlXPathRegisterFuncNS')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d ns_uri * value options(*string) const xmlChar *
d f value like(xmlXPathFunction)
d xmlXPathRegisterVariable...
- d pr 10i 0 extproc('xmlXPathRegisterVariable')
+ d pr extproc('xmlXPathRegisterVariable')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d value value like(xmlXPathObjectPtr)
d xmlXPathRegisterVariableNS...
- d pr 10i 0 extproc('xmlXPathRegisterVariableNS')
+ d pr extproc('xmlXPathRegisterVariableNS')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d ns_uri * value options(*string) const xmlChar *
@@ -273,7 +284,8 @@
d like(xmlXPathObjectPtr)
d ctxt value like(xmlXPathParserContextPtr)
- d valuePush pr 10i 0 extproc('valuePush')
+ d valuePush pr extproc('valuePush')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d value value like(xmlXPathObjectPtr)
@@ -300,12 +312,12 @@
d xmlXPathNewFloat...
d pr extproc('xmlXPathNewFloat')
d like(xmlXPathObjectPtr)
- d val 8f value
+ d val value like(xmlCdouble)
d xmlXPathNewBoolean...
d pr extproc('xmlXPathNewBoolean')
d like(xmlXPathObjectPtr)
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlXPathNewNodeSet...
d pr extproc('xmlXPathNewNodeSet')
@@ -318,17 +330,20 @@
d val value like(xmlNodePtr)
d xmlXPathNodeSetAdd...
- d pr 10i 0 extproc('xmlXPathNodeSetAdd')
+ d pr extproc('xmlXPathNodeSetAdd')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d val value like(xmlNodePtr)
d xmlXPathNodeSetAddUnique...
- d pr 10i 0 extproc('xmlXPathNodeSetAddUnique')
+ d pr extproc('xmlXPathNodeSetAddUnique')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d val value like(xmlNodePtr)
d xmlXPathNodeSetAddNs...
- d pr 10i 0 extproc('xmlXPathNodeSetAddNs')
+ d pr extproc('xmlXPathNodeSetAddNs')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d node value like(xmlNodePtr)
d ns value like(xmlNsPtr)
@@ -355,12 +370,14 @@
* Existing functions.
d xmlXPathStringEvalNumber...
- d pr 8f extproc('xmlXPathStringEvalNumber')
+ d pr extproc('xmlXPathStringEvalNumber')
+ d like(xmlCdouble)
d str * value options(*string) const xmlChar *
d xmlXPathEvaluatePredicateResult...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathEvaluatePredicateResult')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d res value like(xmlXPathObjectPtr)
@@ -383,7 +400,7 @@
d xmlXPathNodeSetRemove...
d pr extproc('xmlXPathNodeSetRemove')
d cur value like(xmlNodeSetPtr)
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlXPathNewNodeSetList...
d pr extproc('xmlXPathNewNodeSetList')
@@ -401,18 +418,21 @@
d val * value void *
d xmlXPathEqualValues...
- d pr 10i 0 extproc('xmlXPathEqualValues')
+ d pr extproc('xmlXPathEqualValues')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathNotEqualValues...
- d pr 10i 0 extproc('xmlXPathNotEqualValues')
+ d pr extproc('xmlXPathNotEqualValues')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathCompareValues...
- d pr 10i 0 extproc('xmlXPathCompareValues')
+ d pr extproc('xmlXPathCompareValues')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
- d inf 10i 0 value
- d strict 10i 0 value
+ d inf value like(xmlCint)
+ d strict value like(xmlCint)
d xmlXPathValueFlipSign...
d pr extproc('xmlXPathValueFlipSign')
@@ -439,7 +459,8 @@
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathIsNodeType...
- d pr 10i 0 extproc('xmlXPathIsNodeType')
+ d pr extproc('xmlXPathIsNodeType')
+ d like(xmlCint)
d name * value options(*string) const xmlChar *
* Some of the axis navigation routines.
@@ -530,137 +551,137 @@
d xmlXPathLastFunction...
d pr extproc('xmlXPathLastFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathPositionFunction...
d pr extproc('xmlXPathPositionFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathCountFunction...
d pr extproc('xmlXPathCountFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathIdFunction...
d pr extproc('xmlXPathIdFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathLocalNameFunction...
d pr extproc('xmlXPathLocalNameFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNamespaceURIFunction...
d pr extproc(
d 'xmlXPathNamespaceURIFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathStringFunction...
d pr extproc('xmlXPathStringFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathStringLengthFunction...
d pr extproc(
d 'xmlXPathStringLengthFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathConcatFunction...
d pr extproc('xmlXPathConcatFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathContainsFunction...
d pr extproc('xmlXPathContainsFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathStartsWithFunction...
d pr extproc('xmlXPathStartsWithFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSubstringFunction...
d pr extproc('xmlXPathSubstringFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSubstringBeforeFunction...
d pr extproc(
d 'xmlXPathSubstringBeforeFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSubstringAfterFunction...
d pr extproc(
d 'xmlXPathSubstringAfterFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNormalizeFunction...
d pr extproc('xmlXPathNormalizeFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathTranslateFunction...
d pr extproc('xmlXPathTranslateFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNotFunction...
d pr extproc('xmlXPathNotFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathTrueFunction...
d pr extproc('xmlXPathTrueFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathFalseFunction...
d pr extproc('xmlXPathFalseFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathLangFunction...
d pr extproc('xmlXPathLangFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNumberFunction...
d pr extproc('xmlXPathNumberFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSumFunction...
d pr extproc('xmlXPathSumFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathFloorFunction...
d pr extproc('xmlXPathFloorFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathCeilingFunction...
d pr extproc('xmlXPathCeilingFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathRoundFunction...
d pr extproc('xmlXPathRoundFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathBooleanFunction...
d pr extproc('xmlXPathBooleanFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
* Really internal functions
diff --git a/os400/libxmlrpg/xpointer.rpgle b/os400/libxmlrpg/xpointer.rpgle
index 6f433147..29ef0f38 100644
--- a/os400/libxmlrpg/xpointer.rpgle
+++ b/os400/libxmlrpg/xpointer.rpgle
@@ -19,6 +19,7 @@
/if defined(LIBXML_XPTR_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/xpath"
@@ -29,8 +30,8 @@
d xmlLocationSet ds based(xmlLocationSetPtr)
d align qualified
- d locNr 10i 0 # locations in set
- d locMax 10i 0 Max locations in set
+ d locNr like(xmlCint) # locations in set
+ d locMax like(xmlCint) Max locations in set
d locTab * xmlXPathObjectPtr *
* Handling of location sets.
@@ -54,9 +55,9 @@
d pr extproc('xmlXPtrNewRange')
d like(xmlXPathObjectPtr)
d start value like(xmlNodePtr)
- d startindex 10i 0 value
+ d startindex value like(xmlCint)
d end value like(xmlNodePtr)
- d endindex 10i 0 value
+ d endindex value like(xmlCint)
d xmlXPtrNewRangePoints...
d pr extproc('xmlXPtrNewRangePoints')
@@ -123,7 +124,7 @@
d xmlXPtrLocationSetRemove...
d pr extproc('xmlXPtrLocationSetRemove')
d cur value like(xmlLocationSetPtr)
- d val 10i 0 value
+ d val value like(xmlCint)
* Functions.
@@ -142,7 +143,7 @@
d xmlXPtrRangeToFunction...
d pr extproc('xmlXPtrRangeToFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPtrBuildNodeList...
d pr extproc('xmlXPtrBuildNodeList')
diff --git a/os400/make-src.sh b/os400/make-src.sh
index f06cfafe..6094de8e 100644
--- a/os400/make-src.sh
+++ b/os400/make-src.sh
@@ -17,7 +17,7 @@ cd "${TOPDIR}"
echo '#pragma comment(user, "libxml2 version '"${LIBXML_VERSION}"'")' > os400.c
echo '#pragma comment(user, __DATE__)' >> os400.c
echo '#pragma comment(user, __TIME__)' >> os400.c
-echo '#pragma comment(copyright, "Copyright (C) 1998-2014 Daniel Veillard. OS/400 version by P. Monnerat.")' >> os400.c
+echo '#pragma comment(copyright, "Copyright (C) 1998-2015 Daniel Veillard. OS/400 version by P. Monnerat.")' >> os400.c
make_module OS400 os400.c
LINK= # No need to rebuild service program yet.
MODULES=
@@ -62,11 +62,11 @@ INCLUDES="'`pwd`'"
# OS/400 specific modules first.
-make_module DLFCN "${SCRIPTDIR}/dlfcn/dlfcn.c" '' ebcdic
-make_module ICONV "${SCRIPTDIR}/iconv/iconv.c" '' ebcdic
-make_module WRAPPERS "${SCRIPTDIR}/wrappers.c" '' ebcdic
-make_module TRANSCODE "${SCRIPTDIR}/transcode.c"
-make_module RPGSUPPORT "${SCRIPTDIR}/rpgsupport.c"
+make_module --ebcdic DLFCN "${SCRIPTDIR}/dlfcn/dlfcn.c"
+make_module --ebcdic ICONV "${SCRIPTDIR}/iconv/iconv.c"
+make_module --ebcdic WRAPPERS "${SCRIPTDIR}/wrappers.c"
+make_module TRANSCODE "${SCRIPTDIR}/transcode.c"
+make_module RPGSUPPORT "${SCRIPTDIR}/rpgsupport.c"
# Regular libxml2 modules.
@@ -239,3 +239,117 @@ then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
system "${CMD}"
fi
+
+
+# Compile the ASCII main() stub.
+
+make_module --ebcdic --sysiconv LIBXMLMAIN "${SCRIPTDIR}/libxmlmain.c"
+
+
+# Compile and link program xmllint.
+
+if action_needed "${LIBIFSNAME}/XMLLINT.PGM" "xmllint.c" ||
+ action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+ action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then make_module XMLLINT xmllint.c
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLLINT) MODULE(${TARGETLIB}/XMLLINT)"
+ CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+ CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+ if [ "${WITH_ZLIB}" -ne 0 ]
+ then CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+ fi
+ CMD="${CMD}) ACTGRP(*NEW) TEXT('XML tool')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLLINT.MODULE"
+fi
+
+# Install xmllint in IFS.
+
+if [ ! -d "${IFSDIR}/bin" ]
+then mkdir -p "${IFSDIR}/bin"
+fi
+rm -f "${IFSDIR}/bin/xmllint"
+ln -s "${LIBIFSNAME}/XMLLINT.PGM" "${IFSDIR}/bin/xmllint"
+
+# Prepare the XMLLINT command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLLINTCL.PGM" "${SCRIPTDIR}/xmllintcl.c"
+then make_module --ebcdic XMLLINTCL "${SCRIPTDIR}/xmllintcl.c"
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLLINTCL) MODULE(${TARGETLIB}/XMLLINTCL)"
+ CMD="${CMD} ACTGRP(*NEW) TEXT('XMLLINT command response')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLLINTCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR" \
+ "${SCRIPTDIR}/xmllint.cmd"
+then CMD="CPY OBJ('${SCRIPTDIR}/xmllint.cmd')"
+ CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLLINT.CMD" \
+ "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR"
+then CMD="CRTCMD CMD(${TARGETLIB}/XMLLINT) PGM(${TARGETLIB}/XMLLINTCL)"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLLINT) THDSAFE(*YES)"
+ CMD="${CMD} TEXT('XML tool') REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+
+# Compile and link program xmlcatalog.
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" "xmlcatalog.c" ||
+ action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" \
+ "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+ action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" \
+ "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then make_module XMLCATALOG xmlcatalog.c
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLCATALOG)"
+ CMD="${CMD} MODULE(${TARGETLIB}/XMLCATALOG)"
+ CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+ CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+ if [ "${WITH_ZLIB}" -ne 0 ]
+ then CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+ fi
+ CMD="${CMD}) ACTGRP(*NEW) TEXT('XML/SGML catalog tool')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLCATALOG.MODULE"
+fi
+
+# Install xmlcatalog in IFS.
+
+rm -f "${IFSDIR}/bin/xmlcatalog"
+ln -s "${LIBIFSNAME}/XMLCATALOG.PGM" "${IFSDIR}/bin/xmlcatalog"
+
+# Prepare the XMLCATALOG command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLCATLGCL.PGM" "${SCRIPTDIR}/xmlcatlgcl.c"
+then make_module --ebcdic XMLCATLGCL "${SCRIPTDIR}/xmlcatlgcl.c"
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} MODULE(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} ACTGRP(*NEW) TEXT('XMLCATALOG command response')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLCATLGCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR" \
+ "${SCRIPTDIR}/xmlcatalog.cmd"
+then CMD="CPY OBJ('${SCRIPTDIR}/xmlcatalog.cmd')"
+ CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.CMD" \
+ "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR"
+then CMD="CRTCMD CMD(${TARGETLIB}/XMLCATALOG) PGM(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLCATALOG)"
+ CMD="${CMD} THDSAFE(*YES) TEXT('XML/SGML catalog tool') REPLACE(*YES)"
+ system "${CMD}"
+fi
diff --git a/os400/rpgsupport.c b/os400/rpgsupport.c
index a3609c02..ad4cc5dd 100644
--- a/os400/rpgsupport.c
+++ b/os400/rpgsupport.c
@@ -219,7 +219,7 @@ int
__xmlXPathNodeSetGetLength(const xmlNodeSet * ns)
{
- return xmlXPathNodeSetGetLength(ns);
+ return xmlXPathNodeSetGetLength(ns);
}
@@ -227,7 +227,7 @@ xmlNodePtr
__xmlXPathNodeSetItem(const xmlNodeSet * ns, int index)
{
- return xmlXPathNodeSetItem(ns, index);
+ return xmlXPathNodeSetItem(ns, index);
}
@@ -235,7 +235,7 @@ int
__xmlXPathNodeSetIsEmpty(const xmlNodeSet * ns)
{
- return xmlXPathNodeSetIsEmpty(ns);
+ return xmlXPathNodeSetIsEmpty(ns);
}
#endif
@@ -247,16 +247,16 @@ const char *
__htmlDefaultSubelement(const htmlElemDesc * elt)
{
- return htmlDefaultSubelement(elt);
+ return htmlDefaultSubelement(elt);
}
int
__htmlElementAllowedHereDesc(const htmlElemDesc * parent,
- const htmlElemDesc * elt)
+ const htmlElemDesc * elt)
{
- return htmlElementAllowedHereDesc(parent, elt);
+ return htmlElementAllowedHereDesc(parent, elt);
}
@@ -264,7 +264,7 @@ const char * *
__htmlRequiredAttrs(const htmlElemDesc * elt)
{
- return htmlRequiredAttrs(elt);
+ return htmlRequiredAttrs(elt);
}
#endif
diff --git a/os400/rpgsupport.h b/os400/rpgsupport.h
index 6725b599..d8016d72 100644
--- a/os400/rpgsupport.h
+++ b/os400/rpgsupport.h
@@ -141,17 +141,17 @@ XMLPUBFUN void * __xmlVaArg(char * * list, void * dest, size_t argsize);
XMLPUBFUN void __xmlVaEnd(char * * list);
#ifdef LIBXML_XPATH_ENABLED
-XMLPUBFUN int __xmlXPathNodeSetGetLength(xmlNodeSetPtr ns);
-XMLPUBFUN xmlNodePtr __xmlXPathNodeSetItem(xmlNodeSetPtr ns, int index);
-XMLPUBFUN int __xmlXPathNodeSetIsEmpty(xmlNodeSetPtr ns);
+XMLPUBFUN int __xmlXPathNodeSetGetLength(xmlNodeSetPtr ns);
+XMLPUBFUN xmlNodePtr __xmlXPathNodeSetItem(xmlNodeSetPtr ns, int index);
+XMLPUBFUN int __xmlXPathNodeSetIsEmpty(xmlNodeSetPtr ns);
#endif
#ifdef LIBXML_HTML_ENABLED
-XMLPUBFUN const char * __htmlDefaultSubelement(const htmlElemDesc * elt);
-XMLPUBFUN int __htmlElementAllowedHereDesc(const htmlElemDesc * parent,
- const htmlElemDesc * elt);
+XMLPUBFUN const char * __htmlDefaultSubelement(const htmlElemDesc * elt);
+XMLPUBFUN int __htmlElementAllowedHereDesc(const htmlElemDesc * parent,
+ const htmlElemDesc * elt);
XMLPUBFUN const char * *
- __htmlRequiredAttrs(const htmlElemDesc * elt);
+ __htmlRequiredAttrs(const htmlElemDesc * elt);
#endif
#endif
diff --git a/os400/xmlcatalog.cmd b/os400/xmlcatalog.cmd
new file mode 100644
index 00000000..92f02701
--- /dev/null
+++ b/os400/xmlcatalog.cmd
@@ -0,0 +1,112 @@
+/* XMLCATALOG CL command. */
+/* */
+/* See Copyright for the status of this software. */
+/* */
+/* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. */
+
+/* Interface to program XMLCATLGCL */
+
+ CMD PROMPT('XML/SGML catalog tool')
+
+ /* Catalog file path. */
+
+ PARM KWD(INSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MIN(1) SPCVAL((*NEW '')) +
+ CHOICE('Stream file path') +
+ PROMPT('XML/SGML catalog file')
+
+ /* Catalog kind: XML/SGML. */
+
+ PARM KWD(KIND) TYPE(*CHAR) LEN(7) VARY(*YES *INT2) +
+ EXPR(*YES) RSTD(*YES) DFT(*XML) +
+ SPCVAL((*XML '') (*SGML '--sgml')) +
+ PROMPT('Catalog kind')
+
+ /* Output file. */
+
+ PARM KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) DFT(*STDOUT) +
+ SPCVAL((*STDOUT '') (*INSTMF X'00')) +
+ CHOICE('*STDOUT, *INSTMF or file path') +
+ PROMPT('Output stream file path')
+
+ /* Convert SGML to XML catalog. */
+
+ PARM KWD(CONVERT) TYPE(*CHAR) LEN(10) VARY(*YES *INT2) +
+ RSTD(*YES) SPCVAL((*YES '--convert') (*NO '')) +
+ EXPR(*YES) DFT(*NO) PMTCTL(TYPEXML) +
+ PROMPT('Convert SGML to XML catalog')
+
+ /* SGML super catalog update. */
+
+ PARM KWD(SUPERUPD) TYPE(*CHAR) LEN(17) VARY(*YES *INT2) +
+ SPCVAL((*YES '') (*NO '--no-super-update')) +
+ EXPR(*YES) DFT(*YES) RSTD(*YES) PMTCTL(TYPESGML) +
+ PROMPT('Update the SGML super catalog')
+
+ /* Verbose/debug output. */
+
+ PARM KWD(VERBOSE) TYPE(*CHAR) LEN(4) VARY(*YES *INT2) +
+ RSTD(*YES) SPCVAL((*YES '-v') (*NO '')) +
+ EXPR(*YES) DFT(*NO) +
+ PROMPT('Output debugging information')
+
+ /* Interactive shell not supported. */
+
+ /* Values to delete. */
+
+ PARM KWD(DELETE) TYPE(*PNAME) LEN(256) VARY(*YES *INT2) +
+ CASE(*MIXED) MAX(64) EXPR(*YES) +
+ CHOICE('Identifier value') +
+ PROMPT('Delete System/URI identifier')
+
+ /* Values to add. */
+
+ PARM KWD(ADD) TYPE(XMLELEM) MAX(10) PMTCTL(TYPEXML) +
+ PROMPT('Add definition')
+XMLELEM: ELEM TYPE(*CHAR) LEN(16) VARY(*YES *INT2) DFT(*PUBLIC) +
+ PROMPT('Entry type') +
+ EXPR(*YES) RSTD(*YES) SPCVAL( +
+ (*PUBLIC 'public') +
+ (*SYSTEM 'system') +
+ (*URI 'uri') +
+ (*REWRITESYSTEM 'rewriteSystem') +
+ (*REWRITEURI 'rewriteURI') +
+ (*DELEGATEPUBLIC 'delegatePublic') +
+ (*DELEGATESYSTEM 'delegateSystem') +
+ (*DELEGATEURI 'delegateURI') +
+ (*NEXTCATALOG 'nextCatalog') +
+ )
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('Original reference/file name')
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('Replacement entity URI')
+
+ PARM KWD(SGMLADD) TYPE(SGMLELEM) MAX(10) +
+ PMTCTL(TYPESGML) PROMPT('Add SGML definition')
+SGMLELEM: ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('SGML catalog file name')
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('SGML definition')
+
+ /* Entities to resolve. */
+
+ PARM KWD(ENTITY) TYPE(*PNAME) LEN(256) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(150) +
+ PROMPT('Resolve entity')
+
+ /* Additional catalog files. */
+
+ PARM KWD(CATALOG) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(150) DFT(*DEFAULT) +
+ CHOICE('Catalog stream file path') +
+ PROMPT('Additional catalog file') SPCVAL( +
+ (*DEFAULT '/etc/xml/catalog') +
+ (*NONE '') +
+ )
+
+
+ /* Conditional prompting. */
+
+TYPEXML: PMTCTL CTL(KIND) COND((*EQ ''))
+TYPESGML: PMTCTL CTL(KIND) COND((*NE ''))
diff --git a/os400/xmlcatlgcl.c b/os400/xmlcatlgcl.c
new file mode 100644
index 00000000..6f1e4ff4
--- /dev/null
+++ b/os400/xmlcatlgcl.c
@@ -0,0 +1,288 @@
+/**
+*** XMLCATALOG command response program.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+ short len;
+ char string[5000];
+} vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+ int len;
+ char string[5000];
+} vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype) \
+ _Packed struct { \
+ short len; \
+ _Packed union { \
+ char _pad[itemsize]; \
+ itemtype param; \
+ } item[1]; \
+ }
+
+/* Add element list structure. */
+typedef struct {
+ short elcount; /* Element count (=3). */
+ paramlist(16, char) type; /* vary2(16). */
+ paramlist(256, char) origin; /* vary2(256). */
+ paramlist(256, char) replace; /* vary2(256). */
+} addelement;
+
+/* SGML add element list structure. */
+typedef struct {
+ short elcount; /* Element count (=3). */
+ paramlist(256, char) catalog; /* vary2(256). */
+ paramlist(256, char) ident; /* vary2(256). */
+} sgmladdelement;
+
+
+/* Arguments from CL command. */
+typedef struct {
+ char * pgm; /* Program name. */
+ vary2 * instmf; /* Input catalog file name. */
+ vary2 * kind; /* Catalog kind. */
+ vary2 * outstmf; /* Output catalog file name. */
+ vary2 * convert; /* Convert SGML to XML. */
+ vary2 * superupd; /* --no-super-update. */
+ vary2 * verbose; /* Verbose output. */
+ paramlist(256 + 2, vary2) * delete; /* Identifiers to delete. */
+ paramlist(2, unsigned short) * add; /* Items to add. */
+ paramlist(2, unsigned short) * sgmladd; /* SGML items to add. */
+ paramlist(256 + 2, vary2) * resolve; /* Identifiers to resolve. */
+ paramlist(5000 + 2, vary2) * catalog; /* Additional catalog files. */
+} arguments;
+
+
+/* Definition of QSHELL program. */
+extern void qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+/* Macro to handle displacements. */
+#define OFFSETBY(t, p, n) ((t *) (((char *) (p)) + (n)))
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+ if (len > sizeof(dst->string) - dst->len)
+ len = sizeof(dst->string) - dst->len;
+
+ if (len) {
+ memcpy(dst->string + dst->len, src, len);
+ dst->len += len;
+ }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+ vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+ int i;
+
+ for (i = 0; i < arg->len; i++)
+ if (arg->string[i] == '\'')
+ vary4nappend(dst, "'\"'\"'", 5);
+ else
+ vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " '", 2);
+ vary4vescape(dst, arg);
+ vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+ vary4 cmd;
+ int i;
+ char c;
+ addelement * aelp;
+ sgmladdelement * saelp;
+
+ /* Specify additional catalogs. */
+ cmd.len = 0;
+ if (args->catalog->len) {
+ for (i = 0; i < args->catalog->len &&
+ !args->catalog->item[i].param.len; i++)
+ ;
+
+ vary4append(&cmd, "XML_CATALOG_FILES=");
+ if (i < args->catalog->len) {
+ c = '\'';
+ for (i = 0; i < args->catalog->len; i++) {
+ if (!args->catalog->item[i].param.len)
+ continue;
+ vary4nappend(&cmd, &c, 1);
+ c = ' ';
+ vary4vescape(&cmd,
+ &args->catalog->item[i].param);
+ }
+ vary4nappend(&cmd, "'", 1);
+ }
+ vary4nappend(&cmd, " ", 1);
+ }
+
+ /* find length of library name. */
+ for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+ ;
+
+ /* Store program name in command buffer. */
+ vary4append(&cmd, "/QSYS.LIB/");
+ vary4nappend(&cmd, args->pgm, i);
+ vary4append(&cmd, ".LIB/XMLCATALOG.PGM");
+
+ /* Map command arguments to standard xmlcatalog argument vector. */
+ if (args->kind && args->kind->len)
+ vary4varg(&cmd, args->kind);
+
+ if (args->verbose && args->verbose->len)
+ vary4varg(&cmd, args->verbose);
+
+ if (args->delete)
+ for (i = 0; i < args->delete->len; i++) {
+ vary4arg(&cmd, "--del");
+ vary4vargquote(&cmd, &args->delete->item[i].param);
+ }
+
+ if (args->kind && args->kind->len) {
+ /* Process SGML-specific parameters. */
+ if (args->superupd && args->superupd->len)
+ vary4varg(&cmd, args->superupd);
+
+ if (args->sgmladd)
+ for (i = 0; i < args->sgmladd->len; i++) {
+ saelp = OFFSETBY(sgmladdelement, args->sgmladd,
+ args->sgmladd->item[i].param);
+ if (!((vary2 *) &saelp->catalog)->len)
+ continue;
+ vary4arg(&cmd, "--add");
+ vary4vargquote(&cmd, (vary2 *) &saelp->catalog);
+ vary4vargquote(&cmd, (vary2 *) &saelp->ident);
+ }
+ }
+ else {
+ /* Process XML-specific parameters. */
+ if (args->convert && args->convert->len)
+ vary4varg(&cmd, args->convert);
+
+ if (args->add)
+ for (i = 0; i < args->add->len; i++) {
+ aelp = OFFSETBY(addelement, args->add,
+ args->add->item[i].param);
+ if (!((vary2 *) &aelp->origin)->len)
+ continue;
+ vary4arg(&cmd, "--add");
+ vary4varg(&cmd, (vary2 *) &aelp->type);
+ vary4vargquote(&cmd, (vary2 *) &aelp->origin);
+ vary4vargquote(&cmd, (vary2 *) &aelp->replace);
+ }
+ }
+
+ /* Avoid INSTMF(*NEW) and OUTSMTF(*INSTMF). */
+ if (args->outstmf && args->outstmf->len && !args->outstmf->string[0])
+ if (args->instmf && args->instmf->len)
+ args->outstmf = args->instmf;
+ else
+ args->outstmf = NULL;
+
+ /* If INSTMF(*NEW) and OUTSTMF(somepath), Use --create --noout and
+ somepath as (unexisting) input file. */
+ if (args->outstmf && args->outstmf->len)
+ if (!args->instmf || !args->instmf->len) {
+ vary4arg(&cmd, "--create");
+ vary4arg(&cmd, "--noout");
+ args->instmf = args->outstmf;
+ args->outstmf = NULL;
+ }
+
+ /* If output to input file, use --noout option. */
+ if (args->instmf && args->outstmf && args->instmf->len &&
+ args->instmf->len == args->outstmf->len &&
+ !strncmp(args->instmf->string, args->outstmf->string,
+ args->instmf->len)) {
+ vary4arg(&cmd, "--noout");
+ args->outstmf = NULL;
+ }
+
+ /* If no input file create catalog, else specify the input file name. */
+ /* Specify the input file name: my be a dummy one. */
+ if (!args->instmf || !args->instmf->len) {
+ vary4arg(&cmd, "--create -");
+ vary4arg(&cmd, ".dmyxmlcatalog");
+ }
+ else {
+ vary4arg(&cmd, "-");
+ vary4vargquote(&cmd, args->instmf);
+ }
+
+ /* Query entities. */
+
+ if (args->resolve)
+ for (i = 0; i < args->resolve->len; i++)
+ vary4vargquote(&cmd, &args->resolve->item[i].param);
+
+ /* Redirect output if requested. */
+ if (args->outstmf && args->outstmf->len) {
+ vary4arg(&cmd, ">");
+ vary4vargquote(&cmd, args->outstmf);
+ }
+
+ /* Execute the shell command. */
+ qshell(&cmd);
+
+ /* Terminate. */
+ exit(0);
+}
diff --git a/os400/xmllint.cmd b/os400/xmllint.cmd
new file mode 100644
index 00000000..1582837f
--- /dev/null
+++ b/os400/xmllint.cmd
@@ -0,0 +1,146 @@
+/* XMLLINT CL command. */
+/* */
+/* See Copyright for the status of this software. */
+/* */
+/* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. */
+
+/* Interface to program XMLLINTCL */
+
+ CMD PROMPT('XML tool')
+
+ /* XML input file location. */
+
+ PARM KWD(STMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MIN(1) +
+ CHOICE('Stream file path') +
+ PROMPT('XML Stream file')
+
+ /* DTD location. */
+
+ PARM KWD(DTD) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('ID, URL or stream file path') +
+ PROMPT('DTD id, URL or file path')
+
+ PARM KWD(DTDLOCATOR) TYPE(*CHAR) LEN(8) DFT(*DTDURL) +
+ SPCVAL(*DTDURL *DTDFPI) EXPR(*YES) RSTD(*YES) +
+ PROMPT('DTD locator is URL/FPI')
+
+ /* Schema location. */
+
+ PARM KWD(SCHEMA) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('URL or stream file path') +
+ PROMPT('Schema URL or stream file path')
+
+ PARM KWD(SCHEMAKIND) TYPE(*CHAR) LEN(12) VARY(*YES *INT2) +
+ RSTD(*YES) DFT(*XSD) +
+ PROMPT('Validating schema kind') +
+ CHOICE('Keyword') SPCVAL( +
+ (*XSD '--schema') +
+ (*RELAXNG '--relaxng') +
+ (*SCHEMATRON '--schematron') +
+ )
+
+ /* Output location. */
+
+ PARM KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('Stream file path') +
+ PROMPT('Output stream file path')
+
+ /* Other parameters with arguments. */
+
+ PARM KWD(XPATH) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('XPath expression') +
+ PROMPT('XPath filter')
+
+ PARM KWD(PATTERN) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('Reader pattern') +
+ PROMPT('Reader node filter')
+
+ /* Paths for resources. */
+
+ PARM KWD(PATH) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(64) +
+ CHOICE('IFS directory path') +
+ PROMPT('Path for resources')
+
+ PARM KWD(PRETTY) TYPE(*CHAR) LEN(11) VARY(*YES *INT2) +
+ RSTD(*YES) DFT(*NONE) +
+ PROMPT('Pretty-print style') +
+ CHOICE('Keyword') SPCVAL( +
+ (*NONE '0') +
+ (*FORMAT '1') +
+ (*WHITESPACE '2') +
+ )
+
+ PARM KWD(MAXMEM) TYPE(*UINT4) EXPR(*YES) DFT(0) +
+ CHOICE('Number of bytes') +
+ PROMPT('Maximum dynamic memory')
+
+ PARM KWD(ENCODING) TYPE(*CHAR) LEN(32) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ PMTCTL(ENCODING) CHOICE('Encoding name') +
+ PROMPT('Output character encoding')
+ENCODING: PMTCTL CTL(OUTSTMF) COND(*SPCFD)
+
+ /* Boolean options. */
+ /* --shell is not supported from command mode. */
+
+ PARM KWD(OPTIONS) TYPE(*CHAR) LEN(20) VARY(*YES *INT2) +
+ MAX(50) RSTD(*YES) PROMPT('Options') +
+ CHOICE('Keyword') SPCVAL( +
+ (*VERSION '--version') +
+ (*DEBUG '--debug') +
+ (*DEBUGENT '--debugent') +
+ (*COPY '--copy') +
+ (*RECOVER '--recover') +
+ (*HUGE '--huge') +
+ (*NOENT '--noent') +
+ (*NOENC '--noenc') +
+ (*NOOUT '--noout') +
+ (*LOADTRACE '--load-trace') +
+ (*NONET '--nonet') +
+ (*NOCOMPACT '--nocompact') +
+ (*HTMLOUT '--htmlout') +
+ (*NOWRAP '--nowrap') +
+ (*VALID '--valid') +
+ (*POSTVALID '--postvalid') +
+ (*TIMING '--timing') +
+ (*REPEAT '--repeat') +
+ (*INSERT '--insert') +
+ (*COMPRESS '--compress') +
+ (*HTML '--html') +
+ (*XMLOUT '--xmlout') +
+ (*NODEFDTD '--nodefdtd') +
+ (*PUSH '--push') +
+ (*PUSHSMALL '--pushsmall') +
+ (*MEMORY '--memory') +
+ (*NOWARNING '--nowarning') +
+ (*NOBLANKS '--noblanks') +
+ (*NOCDATA '--nocdata') +
+ (*FORMAT '--format') +
+ (*DROPDTD '--dropdtd') +
+ (*NSCLEAN '--nsclean') +
+ (*TESTIO '--testIO') +
+ (*CATALOGS '--catalogs') +
+ (*NOCATALOGS '--nocatalogs') +
+ (*AUTO '--auto') +
+ (*XINCLUDE '--xinclude') +
+ (*NOXINCLUDENODE '--noxincludenode') +
+ (*NOFIXUPBASEURIS '--nofixup-base-uris') +
+ (*LOADDTD '--loaddtd') +
+ (*DTDATTR '--dtdattr') +
+ (*STREAM '--stream') +
+ (*WALKER '--walker') +
+ (*CHKREGISTER '--chkregister') +
+ (*C14N '--c14n') +
+ (*C14N11 '--c14n11') +
+ (*EXCC14N '--exc-c14n') +
+ (*SAX1 '--sax1') +
+ (*SAX '--sax') +
+ (*OLDXML10 '--oldxml10') +
+ )
diff --git a/os400/xmllintcl.c b/os400/xmllintcl.c
new file mode 100644
index 00000000..12263853
--- /dev/null
+++ b/os400/xmllintcl.c
@@ -0,0 +1,216 @@
+/**
+*** XMLLINT command response program.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+ short len;
+ char string[5000];
+} vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+ int len;
+ char string[5000];
+} vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype) \
+ _Packed struct { \
+ short len; \
+ union { \
+ char _pad[itemsize]; \
+ itemtype param; \
+ } item[1]; \
+ }
+
+
+/* Arguments from CL command. */
+typedef struct {
+ char * pgm; /* Program name. */
+ vary2 * stmf; /* XML file name or URL. */
+ vary2 * dtd; /* DTD location or public identifier. */
+ char * dtdvalid; /* *DTDURL or *DTDFPI. */
+ vary2 * schema; /* Schema file name or URL. */
+ vary2 * schemakind; /* --schema/--relaxng/--schematron. */
+ vary2 * outstmf; /* Output stream file name. */
+ vary2 * xpath; /* XPath filter. */
+ vary2 * pattern; /* Reader filter pattern. */
+ paramlist(5000 + 2, vary2) * path; /* Path for resources. */
+ vary2 * pretty; /* Pretty-print style. */
+ unsigned long * maxmem; /* Maximum dynamic memory. */
+ vary2 * encoding; /* Output encoding. */
+ paramlist(20 + 2, vary2) * options; /* Other options. */
+} arguments;
+
+
+/* Definition of QSHELL program. */
+extern void qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+ if (len > sizeof(dst->string) - dst->len)
+ len = sizeof(dst->string) - dst->len;
+
+ if (len) {
+ memcpy(dst->string + dst->len, src, len);
+ dst->len += len;
+ }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+ vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+ int i;
+
+ for (i = 0; i < arg->len; i++)
+ if (arg->string[i] == '\'')
+ vary4nappend(dst, "'\"'\"'", 5);
+ else
+ vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " '", 2);
+ vary4vescape(dst, arg);
+ vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+ vary4 cmd;
+ int i;
+ char textbuf[20];
+ char * lang;
+
+ /* find length of library name. */
+ for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+ ;
+
+ /* Store program name in command buffer. */
+ cmd.len = 0;
+ vary4append(&cmd, "/QSYS.LIB/");
+ vary4nappend(&cmd, args->pgm, i);
+ vary4append(&cmd, ".LIB/XMLLINT.PGM");
+
+ /* Map command arguments to standard xmllint argument vector. */
+
+ if (args->dtd && args->dtd->len) {
+ if (args->dtdvalid && args->dtdvalid[4] == 'F')
+ vary4arg(&cmd, "--dtdvalidfpi");
+ else
+ vary4arg(&cmd, "--dtdvalid");
+
+ vary4vargquote(&cmd, args->dtd);
+ }
+
+ if (args->schema && args->schema->len) {
+ vary4varg(&cmd, args->schemakind);
+ vary4vargquote(&cmd, args->schema);
+ }
+
+ if (args->outstmf && args->outstmf->len) {
+ vary4arg(&cmd, "--output");
+ vary4vargquote(&cmd, args->outstmf);
+
+ if (args->encoding && args->encoding->len) {
+ vary4arg(&cmd, "--encoding");
+ vary4vargquote(&cmd, args->encoding);
+ }
+ }
+
+ if (args->xpath && args->xpath->len) {
+ vary4arg(&cmd, "--xpath");
+ vary4vargquote(&cmd, args->xpath);
+ }
+
+ if (args->pattern && args->pattern->len) {
+ vary4arg(&cmd, "--pattern");
+ vary4vargquote(&cmd, args->pattern);
+ }
+
+ if (args->path && args->path->len) {
+ vary4arg(&cmd, "--path '");
+ vary4vescape(&cmd, &args->path->item[0].param);
+ for (i = 1; i < args->path->len; i++) {
+ vary4nappend(&cmd, ":", 1);
+ vary4vescape(&cmd, &args->path->item[i].param);
+ }
+ vary4nappend(&cmd, "'", 1);
+ }
+
+ if (args->pretty && args->pretty->len &&
+ args->pretty->string[0] != '0') {
+ vary4arg(&cmd, "--pretty");
+ vary4varg(&cmd, args->pretty);
+ }
+
+ if (args->maxmem && *args->maxmem) {
+ snprintf(textbuf, sizeof textbuf, "%lu", *args->maxmem);
+ vary4arg(&cmd, "--maxmem");
+ vary4arg(&cmd, textbuf);
+ }
+
+ for (i = 0; i < args->options->len; i++)
+ vary4varg(&cmd, &args->options->item[i].param);
+
+ vary4vargquote(&cmd, args->stmf);
+
+ /* Execute the shell command. */
+ qshell(&cmd);
+
+ /* Terminate. */
+ exit(0);
+}
diff --git a/parser.c b/parser.c
index c5741e3b..53a6b7f0 100644
--- a/parser.c
+++ b/parser.c
@@ -138,14 +138,20 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size,
* entities problems
*/
if ((ent != NULL) && (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) &&
- (ent->content != NULL) && (ent->checked == 0)) {
+ (ent->content != NULL) && (ent->checked == 0) &&
+ (ctxt->errNo != XML_ERR_ENTITY_LOOP)) {
unsigned long oldnbent = ctxt->nbentities;
xmlChar *rep;
ent->checked = 1;
+ ++ctxt->depth;
rep = xmlStringDecodeEntities(ctxt, ent->content,
XML_SUBSTITUTE_REF, 0, 0, 0);
+ --ctxt->depth;
+ if (ctxt->errNo == XML_ERR_ENTITY_LOOP) {
+ ent->content[0] = 0;
+ }
ent->checked = (ctxt->nbentities - oldnbent + 1) * 2;
if (rep != NULL) {
@@ -344,7 +350,6 @@ static void
xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info)
{
const char *errmsg;
- char errstr[129] = "";
if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
(ctxt->instate == XML_PARSER_EOF))
@@ -531,15 +536,17 @@ xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info)
default:
errmsg = "Unregistered error message";
}
- if (info == NULL)
- snprintf(errstr, 128, "%s\n", errmsg);
- else
- snprintf(errstr, 128, "%s: %%s\n", errmsg);
if (ctxt != NULL)
ctxt->errNo = error;
- __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
- XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, &errstr[0],
- info);
+ if (info == NULL) {
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
+ XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, "%s\n",
+ errmsg);
+ } else {
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
+ XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, "%s: %s\n",
+ errmsg, info);
+ }
if (ctxt != NULL) {
ctxt->wellFormed = 0;
if (ctxt->recovery == 0)
@@ -555,7 +562,7 @@ xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info)
*
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg)
{
@@ -583,7 +590,7 @@ xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a warning.
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlWarningMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1, const xmlChar *str2)
{
@@ -621,7 +628,7 @@ xmlWarningMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a validity error.
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlValidityError(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1, const xmlChar *str2)
{
@@ -661,7 +668,7 @@ xmlValidityError(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, int val)
{
@@ -691,7 +698,7 @@ xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlFatalErrMsgStrIntStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1, int val,
const xmlChar *str2)
@@ -721,7 +728,7 @@ xmlFatalErrMsgStrIntStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlFatalErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar * val)
{
@@ -750,7 +757,7 @@ xmlFatalErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a non fatal parser error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar * val)
{
@@ -775,7 +782,7 @@ xmlErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlNsErr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg,
const xmlChar * info1, const xmlChar * info2,
@@ -804,7 +811,7 @@ xmlNsErr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a namespace warning error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlNsWarn(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg,
const xmlChar * info1, const xmlChar * info2,
@@ -2008,6 +2015,7 @@ static int spacePop(xmlParserCtxtPtr ctxt) {
#define CUR (*ctxt->input->cur)
#define NXT(val) ctxt->input->cur[(val)]
#define CUR_PTR ctxt->input->cur
+#define BASE_PTR ctxt->input->base
#define CMP4( s, c1, c2, c3, c4 ) \
( ((unsigned char *) s)[ 0 ] == c1 && ((unsigned char *) s)[ 1 ] == c2 && \
@@ -2858,7 +2866,21 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len,
ctxt->nbentities += ent->checked / 2;
if (ent != NULL) {
if (ent->content == NULL) {
- xmlLoadEntityContent(ctxt, ent);
+ /*
+ * Note: external parsed entities will not be loaded,
+ * it is not required for a non-validating parser to
+ * complete external PEreferences coming from the
+ * internal subset
+ */
+ if (((ctxt->options & XML_PARSE_NOENT) != 0) ||
+ ((ctxt->options & XML_PARSE_DTDVALID) != 0) ||
+ (ctxt->validate != 0)) {
+ xmlLoadEntityContent(ctxt, ent);
+ } else {
+ xmlWarningMsg(ctxt, XML_ERR_ENTITY_PROCESSING,
+ "not validating will not read content for PE entity %s\n",
+ ent->name, NULL);
+ }
}
ctxt->depth++;
rep = xmlStringDecodeEntities(ctxt, ent->content, what,
@@ -3470,7 +3492,7 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) {
int len = 0, l;
int c;
int count = 0;
- const xmlChar *end; /* needed because CUR_CHAR() can move cur on \r\n */
+ size_t startPosition = 0;
#ifdef DEBUG
nbParseNCNameComplex++;
@@ -3480,7 +3502,7 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) {
* Handler for more complex cases
*/
GROW;
- end = ctxt->input->cur;
+ startPosition = CUR_PTR - BASE_PTR;
c = CUR_CHAR(l);
if ((c == ' ') || (c == '>') || (c == '/') || /* accelerators */
(!xmlIsNameStartChar(ctxt, c) || (c == ':'))) {
@@ -3502,7 +3524,6 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) {
}
len += l;
NEXTL(l);
- end = ctxt->input->cur;
c = CUR_CHAR(l);
if (c == 0) {
count = 0;
@@ -3516,7 +3537,6 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) {
ctxt->input->cur += l;
if (ctxt->instate == XML_PARSER_EOF)
return(NULL);
- end = ctxt->input->cur;
c = CUR_CHAR(l);
}
}
@@ -3525,7 +3545,7 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) {
xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NCName");
return(NULL);
}
- return(xmlDictLookup(ctxt->dict, end - len, len));
+ return(xmlDictLookup(ctxt->dict, (BASE_PTR + startPosition), len));
}
/**
@@ -3625,7 +3645,7 @@ xmlParseNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *other) {
}
/* failure (or end of input buffer), check with full function */
ret = xmlParseName (ctxt);
- /* strings coming from the dictionnary direct compare possible */
+ /* strings coming from the dictionary direct compare possible */
if (ret == other) {
return (const xmlChar*) 1;
}
@@ -3966,8 +3986,10 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) {
* an entity declaration, it is bypassed and left as is.
* so XML_SUBSTITUTE_REF is not set here.
*/
+ ++ctxt->depth;
ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF,
0, 0, 0);
+ --ctxt->depth;
if (orig != NULL)
*orig = buf;
else
@@ -4092,9 +4114,11 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) {
} else if ((ent != NULL) &&
(ctxt->replaceEntities != 0)) {
if (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) {
+ ++ctxt->depth;
rep = xmlStringDecodeEntities(ctxt, ent->content,
XML_SUBSTITUTE_REF,
0, 0, 0);
+ --ctxt->depth;
if (rep != NULL) {
current = rep;
while (*current != 0) { /* non input consuming */
@@ -4130,8 +4154,10 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) {
(ent->content != NULL) && (ent->checked == 0)) {
unsigned long oldnbent = ctxt->nbentities;
+ ++ctxt->depth;
rep = xmlStringDecodeEntities(ctxt, ent->content,
XML_SUBSTITUTE_REF, 0, 0, 0);
+ --ctxt->depth;
ent->checked = (ctxt->nbentities - oldnbent + 1) * 2;
if (rep != NULL) {
@@ -5501,7 +5527,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
skipped = SKIP_BLANKS;
if (skipped == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
- "Space required after '%'\n");
+ "Space required after '%%'\n");
}
isParameter = 1;
}
@@ -6686,6 +6712,7 @@ xmlParseElementDecl(xmlParserCtxtPtr ctxt) {
if (!IS_BLANK_CH(CUR)) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after 'ELEMENT'\n");
+ return(-1);
}
SKIP_BLANKS;
name = xmlParseName(ctxt);
@@ -6837,6 +6864,7 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) {
if ((CUR_PTR == check) && (cons == ctxt->input->consumed)) {
xmlFatalErr(ctxt, XML_ERR_EXT_SUBSET_NOT_FINISHED, NULL);
+ xmlHaltParser(ctxt);
break;
}
}
@@ -8468,6 +8496,7 @@ xmlParseInternalSubset(xmlParserCtxtPtr ctxt) {
*/
if (RAW != '>') {
xmlFatalErr(ctxt, XML_ERR_DOCTYPE_NOT_FINISHED, NULL);
+ return;
}
NEXT;
}
@@ -8818,7 +8847,7 @@ xmlParseEndTag(xmlParserCtxtPtr ctxt) {
* @prefix: the prefix to lookup
*
* Lookup the namespace name for the @prefix (which ca be NULL)
- * The prefix must come from the @ctxt->dict dictionnary
+ * The prefix must come from the @ctxt->dict dictionary
*
* Returns the namespace name or NULL if not bound
*/
@@ -9465,7 +9494,10 @@ reparse:
else
if (nsPush(ctxt, NULL, URL) > 0) nbNs++;
skip_default_ns:
- if (alloc != 0) xmlFree(attvalue);
+ if ((attvalue != NULL) && (alloc != 0)) {
+ xmlFree(attvalue);
+ attvalue = NULL;
+ }
if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
break;
if (!IS_BLANK_CH(RAW)) {
@@ -9474,6 +9506,8 @@ skip_default_ns:
break;
}
SKIP_BLANKS;
+ if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
+ goto base_changed;
continue;
}
if (aprefix == ctxt->str_xmlns) {
@@ -9545,7 +9579,10 @@ skip_default_ns:
else
if (nsPush(ctxt, attname, URL) > 0) nbNs++;
skip_ns:
- if (alloc != 0) xmlFree(attvalue);
+ if ((attvalue != NULL) && (alloc != 0)) {
+ xmlFree(attvalue);
+ attvalue = NULL;
+ }
if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
break;
if (!IS_BLANK_CH(RAW)) {
@@ -9816,6 +9853,7 @@ static void
xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlChar *prefix,
const xmlChar *URI, int line, int nsNr, int tlen) {
const xmlChar *name;
+ size_t curLength;
GROW;
if ((RAW != '<') || (NXT(1) != '/')) {
@@ -9824,8 +9862,11 @@ xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlChar *prefix,
}
SKIP(2);
- if ((tlen > 0) && (xmlStrncmp(ctxt->input->cur, ctxt->name, tlen) == 0)) {
- if (ctxt->input->cur[tlen] == '>') {
+ curLength = ctxt->input->end - ctxt->input->cur;
+ if ((tlen > 0) && (curLength >= (size_t)tlen) &&
+ (xmlStrncmp(ctxt->input->cur, ctxt->name, tlen) == 0)) {
+ if ((curLength >= (size_t)(tlen + 1)) &&
+ (ctxt->input->cur[tlen] == '>')) {
ctxt->input->cur += tlen + 1;
ctxt->input->col += tlen + 1;
goto done;
@@ -11209,8 +11250,9 @@ xmlParseGetLasts(xmlParserCtxtPtr ctxt, const xmlChar **lastlt,
}
/**
* xmlCheckCdataPush:
- * @cur: pointer to the bock of characters
+ * @cur: pointer to the block of characters
* @len: length of the block in bytes
+ * @complete: 1 if complete CDATA block is passed in, 0 if partial block
*
* Check that the block of characters is okay as SCdata content [20]
*
@@ -11218,7 +11260,7 @@ xmlParseGetLasts(xmlParserCtxtPtr ctxt, const xmlChar **lastlt,
* UTF-8 error occured otherwise
*/
static int
-xmlCheckCdataPush(const xmlChar *utf, int len) {
+xmlCheckCdataPush(const xmlChar *utf, int len, int complete) {
int ix;
unsigned char c;
int codepoint;
@@ -11236,7 +11278,7 @@ xmlCheckCdataPush(const xmlChar *utf, int len) {
else
return(-ix);
} else if ((c & 0xe0) == 0xc0) {/* 2-byte code, starts with 110 */
- if (ix + 2 > len) return(-ix);
+ if (ix + 2 > len) return(complete ? -ix : ix);
if ((utf[ix+1] & 0xc0 ) != 0x80)
return(-ix);
codepoint = (utf[ix] & 0x1f) << 6;
@@ -11245,7 +11287,7 @@ xmlCheckCdataPush(const xmlChar *utf, int len) {
return(-ix);
ix += 2;
} else if ((c & 0xf0) == 0xe0) {/* 3-byte code, starts with 1110 */
- if (ix + 3 > len) return(-ix);
+ if (ix + 3 > len) return(complete ? -ix : ix);
if (((utf[ix+1] & 0xc0) != 0x80) ||
((utf[ix+2] & 0xc0) != 0x80))
return(-ix);
@@ -11256,7 +11298,7 @@ xmlCheckCdataPush(const xmlChar *utf, int len) {
return(-ix);
ix += 3;
} else if ((c & 0xf8) == 0xf0) {/* 4-byte code, starts with 11110 */
- if (ix + 4 > len) return(-ix);
+ if (ix + 4 > len) return(complete ? -ix : ix);
if (((utf[ix+1] & 0xc0) != 0x80) ||
((utf[ix+2] & 0xc0) != 0x80) ||
((utf[ix+3] & 0xc0) != 0x80))
@@ -11771,7 +11813,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
int tmp;
tmp = xmlCheckCdataPush(ctxt->input->cur,
- XML_PARSER_BIG_BUFFER_SIZE);
+ XML_PARSER_BIG_BUFFER_SIZE, 0);
if (tmp < 0) {
tmp = -tmp;
ctxt->input->cur += tmp;
@@ -11794,7 +11836,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
} else {
int tmp;
- tmp = xmlCheckCdataPush(ctxt->input->cur, base);
+ tmp = xmlCheckCdataPush(ctxt->input->cur, base, 1);
if ((tmp < 0) || (tmp != base)) {
tmp = -tmp;
ctxt->input->cur += tmp;
@@ -14989,7 +15031,7 @@ xmlCleanupParser(void) {
* DICT_FREE:
* @str: a string
*
- * Free a string if it is not owned by the "dict" dictionnary in the
+ * Free a string if it is not owned by the "dict" dictionary in the
* current scope
*/
#define DICT_FREE(str) \
diff --git a/parserInternals.c b/parserInternals.c
index 2b8646c2..bfc778ac 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -55,6 +55,10 @@
#include <libxml/globals.h>
#include <libxml/chvalid.h>
+#define CUR(ctxt) ctxt->input->cur
+#define END(ctxt) ctxt->input->end
+#define VALID_CTXT(ctxt) (CUR(ctxt) <= END(ctxt))
+
#include "buf.h"
#include "enc.h"
@@ -165,7 +169,7 @@ __xmlErrEncoding(xmlParserCtxtPtr ctxt, xmlParserErrors xmlerr,
*
* Handle an internal error
*/
-static void
+static void LIBXML_ATTR_FORMAT(2,0)
xmlErrInternal(xmlParserCtxtPtr ctxt, const char *msg, const xmlChar * str)
{
if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
@@ -193,7 +197,7 @@ xmlErrInternal(xmlParserCtxtPtr ctxt, const char *msg, const xmlChar * str)
*
* n encoding error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlErrEncodingInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, int val)
{
@@ -294,7 +298,7 @@ xmlParserInputRead(xmlParserInputPtr in ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUS
*/
int
xmlParserInputGrow(xmlParserInputPtr in, int len) {
- size_t ret;
+ int ret;
size_t indx;
const xmlChar *content;
@@ -422,103 +426,105 @@ xmlNextChar(xmlParserCtxtPtr ctxt)
(ctxt->input == NULL))
return;
- if (ctxt->charset == XML_CHAR_ENCODING_UTF8) {
- if ((*ctxt->input->cur == 0) &&
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0) &&
- (ctxt->instate != XML_PARSER_COMMENT)) {
- /*
- * If we are at the end of the current entity and
- * the context allows it, we pop consumed entities
- * automatically.
- * the auto closing should be blocked in other cases
- */
+ if (!(VALID_CTXT(ctxt))) {
+ xmlErrInternal(ctxt, "Parser input data memory error\n", NULL);
+ ctxt->errNo = XML_ERR_INTERNAL_ERROR;
+ xmlStopParser(ctxt);
+ return;
+ }
+
+ if ((*ctxt->input->cur == 0) &&
+ (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
+ if ((ctxt->instate != XML_PARSER_COMMENT))
xmlPopInput(ctxt);
- } else {
- const unsigned char *cur;
- unsigned char c;
+ return;
+ }
- /*
- * 2.11 End-of-Line Handling
- * the literal two-character sequence "#xD#xA" or a standalone
- * literal #xD, an XML processor must pass to the application
- * the single character #xA.
- */
- if (*(ctxt->input->cur) == '\n') {
- ctxt->input->line++; ctxt->input->col = 1;
- } else
- ctxt->input->col++;
+ if (ctxt->charset == XML_CHAR_ENCODING_UTF8) {
+ const unsigned char *cur;
+ unsigned char c;
- /*
- * We are supposed to handle UTF8, check it's valid
- * From rfc2044: encoding of the Unicode values on UTF-8:
- *
- * UCS-4 range (hex.) UTF-8 octet sequence (binary)
- * 0000 0000-0000 007F 0xxxxxxx
- * 0000 0080-0000 07FF 110xxxxx 10xxxxxx
- * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
- *
- * Check for the 0x110000 limit too
- */
- cur = ctxt->input->cur;
+ /*
+ * 2.11 End-of-Line Handling
+ * the literal two-character sequence "#xD#xA" or a standalone
+ * literal #xD, an XML processor must pass to the application
+ * the single character #xA.
+ */
+ if (*(ctxt->input->cur) == '\n') {
+ ctxt->input->line++; ctxt->input->col = 1;
+ } else
+ ctxt->input->col++;
- c = *cur;
- if (c & 0x80) {
- if (c == 0xC0)
- goto encoding_error;
- if (cur[1] == 0) {
+ /*
+ * We are supposed to handle UTF8, check it's valid
+ * From rfc2044: encoding of the Unicode values on UTF-8:
+ *
+ * UCS-4 range (hex.) UTF-8 octet sequence (binary)
+ * 0000 0000-0000 007F 0xxxxxxx
+ * 0000 0080-0000 07FF 110xxxxx 10xxxxxx
+ * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
+ *
+ * Check for the 0x110000 limit too
+ */
+ cur = ctxt->input->cur;
+
+ c = *cur;
+ if (c & 0x80) {
+ if (c == 0xC0)
+ goto encoding_error;
+ if (cur[1] == 0) {
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+ cur = ctxt->input->cur;
+ }
+ if ((cur[1] & 0xc0) != 0x80)
+ goto encoding_error;
+ if ((c & 0xe0) == 0xe0) {
+ unsigned int val;
+
+ if (cur[2] == 0) {
xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
cur = ctxt->input->cur;
}
- if ((cur[1] & 0xc0) != 0x80)
+ if ((cur[2] & 0xc0) != 0x80)
goto encoding_error;
- if ((c & 0xe0) == 0xe0) {
- unsigned int val;
-
- if (cur[2] == 0) {
+ if ((c & 0xf0) == 0xf0) {
+ if (cur[3] == 0) {
xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
cur = ctxt->input->cur;
}
- if ((cur[2] & 0xc0) != 0x80)
+ if (((c & 0xf8) != 0xf0) ||
+ ((cur[3] & 0xc0) != 0x80))
goto encoding_error;
- if ((c & 0xf0) == 0xf0) {
- if (cur[3] == 0) {
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
- cur = ctxt->input->cur;
- }
- if (((c & 0xf8) != 0xf0) ||
- ((cur[3] & 0xc0) != 0x80))
- goto encoding_error;
- /* 4-byte code */
- ctxt->input->cur += 4;
- val = (cur[0] & 0x7) << 18;
- val |= (cur[1] & 0x3f) << 12;
- val |= (cur[2] & 0x3f) << 6;
- val |= cur[3] & 0x3f;
- } else {
- /* 3-byte code */
- ctxt->input->cur += 3;
- val = (cur[0] & 0xf) << 12;
- val |= (cur[1] & 0x3f) << 6;
- val |= cur[2] & 0x3f;
- }
- if (((val > 0xd7ff) && (val < 0xe000)) ||
- ((val > 0xfffd) && (val < 0x10000)) ||
- (val >= 0x110000)) {
- xmlErrEncodingInt(ctxt, XML_ERR_INVALID_CHAR,
- "Char 0x%X out of allowed range\n",
- val);
- }
- } else
- /* 2-byte code */
- ctxt->input->cur += 2;
+ /* 4-byte code */
+ ctxt->input->cur += 4;
+ val = (cur[0] & 0x7) << 18;
+ val |= (cur[1] & 0x3f) << 12;
+ val |= (cur[2] & 0x3f) << 6;
+ val |= cur[3] & 0x3f;
+ } else {
+ /* 3-byte code */
+ ctxt->input->cur += 3;
+ val = (cur[0] & 0xf) << 12;
+ val |= (cur[1] & 0x3f) << 6;
+ val |= cur[2] & 0x3f;
+ }
+ if (((val > 0xd7ff) && (val < 0xe000)) ||
+ ((val > 0xfffd) && (val < 0x10000)) ||
+ (val >= 0x110000)) {
+ xmlErrEncodingInt(ctxt, XML_ERR_INVALID_CHAR,
+ "Char 0x%X out of allowed range\n",
+ val);
+ }
} else
- /* 1-byte code */
- ctxt->input->cur++;
+ /* 2-byte code */
+ ctxt->input->cur += 2;
+ } else
+ /* 1-byte code */
+ ctxt->input->cur++;
- ctxt->nbChars++;
- if (*ctxt->input->cur == 0)
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
- }
+ ctxt->nbChars++;
+ if (*ctxt->input->cur == 0)
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
} else {
/*
* Assume it's a fixed length encoding (1) with
diff --git a/python/drv_libxml2.py b/python/drv_libxml2.py
index c2ec3e27..71b1c67d 100644
--- a/python/drv_libxml2.py
+++ b/python/drv_libxml2.py
@@ -44,8 +44,18 @@ if sys.version_info[0] < 3:
__author__ = codecs.unicode_escape_decode(__author__)[0]
StringTypes = (str, unicode)
+ # libxml2 returns strings as UTF8
+ _decoder = codecs.lookup("utf8")[1]
+ def _d(s):
+ if s is None:
+ return s
+ else:
+ return _decoder(s)[0]
else:
StringTypes = str
+ # s is Unicode `str` already
+ def _d(s):
+ return s
from xml.sax._exceptions import *
from xml.sax import xmlreader, saxutils
@@ -61,14 +71,6 @@ from xml.sax.handler import \
property_dom_node, \
property_xml_string
-# libxml2 returns strings as UTF8
-_decoder = codecs.lookup("utf8")[1]
-def _d(s):
- if s is None:
- return s
- else:
- return _decoder(s)[0]
-
try:
import libxml2
except ImportError:
diff --git a/python/libxml.c b/python/libxml.c
index 30b71f36..5b1ff6e8 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -906,7 +906,7 @@ pythonStartElement(void *user_data, const xmlChar * name,
type = 2;
if (type != 0) {
/*
- * the xmllib interface always generate a dictionnary,
+ * the xmllib interface always generates a dictionary,
* possibly empty
*/
if ((attrs == NULL) && (type == 1)) {
diff --git a/python/setup.py b/python/setup.py
index f10b9c11..1ac4eaca 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -226,7 +226,7 @@ else:
setup (name = "libxml2-python",
# On *nix, the version number is created from setup.py.in
# On windows, it is set by configure.js
- version = "2.9.3",
+ version = "2.9.4",
description = descr,
author = "Daniel Veillard",
author_email = "veillard@redhat.com",
diff --git a/relaxng.c b/relaxng.c
index 5779e7fc..3d3e69c0 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -507,7 +507,7 @@ xmlRngVErrMemory(xmlRelaxNGValidCtxtPtr ctxt, const char *extra)
*
* Handle a Relax NG Parsing error
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlRngPErr(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, int error,
const char *msg, const xmlChar * str1, const xmlChar * str2)
{
@@ -541,7 +541,7 @@ xmlRngPErr(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, int error,
*
* Handle a Relax NG Validation error
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlRngVErr(xmlRelaxNGValidCtxtPtr ctxt, xmlNodePtr node, int error,
const char *msg, const xmlChar * str1, const xmlChar * str2)
{
@@ -2088,6 +2088,7 @@ xmlRelaxNGGetErrorString(xmlRelaxNGValidErr err, const xmlChar * arg1,
const xmlChar * arg2)
{
char msg[1000];
+ xmlChar *result;
if (arg1 == NULL)
arg1 = BAD_CAST "";
@@ -2215,7 +2216,8 @@ xmlRelaxNGGetErrorString(xmlRelaxNGValidErr err, const xmlChar * arg1,
snprintf(msg, 1000, "Unknown error code %d\n", err);
}
msg[1000 - 1] = 0;
- return (xmlStrdup((xmlChar *) msg));
+ result = xmlCharStrdup(msg);
+ return (xmlEscapeFormatString(&result));
}
/**
diff --git a/result/HTML/758605.html b/result/HTML/758605.html
new file mode 100644
index 00000000..60b01d37
--- /dev/null
+++ b/result/HTML/758605.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p>&amp;&ecirc;
+</p></body></html>
diff --git a/result/HTML/758605.html.err b/result/HTML/758605.html.err
new file mode 100644
index 00000000..2086f964
--- /dev/null
+++ b/result/HTML/758605.html.err
@@ -0,0 +1,3 @@
+./test/HTML/758605.html:1: HTML parser error : htmlParseEntityRef: expecting ';'
+ê
+ ^
diff --git a/result/HTML/758605.html.sax b/result/HTML/758605.html.sax
new file mode 100644
index 00000000..c6e0986a
--- /dev/null
+++ b/result/HTML/758605.html.sax
@@ -0,0 +1,14 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: htmlParseEntityRef: expecting ';'
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&amp;, 1)
+SAX.characters(&ecirc;, 2)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/758606.html b/result/HTML/758606.html
new file mode 100644
index 00000000..4f21f628
--- /dev/null
+++ b/result/HTML/758606.html
@@ -0,0 +1,2 @@
+<!DOCTYPE >
+
diff --git a/result/HTML/758606.html.err b/result/HTML/758606.html.err
new file mode 100644
index 00000000..060433a8
--- /dev/null
+++ b/result/HTML/758606.html.err
@@ -0,0 +1,16 @@
+./test/HTML/758606.html:1: HTML parser error : Comment not terminated
+<!--
+<!-- <!doctype
+ ^
+./test/HTML/758606.html:1: HTML parser error : Invalid char in CDATA 0xC
+<!-- <!doctype
+ ^
+./test/HTML/758606.html:1: HTML parser error : Misplaced DOCTYPE declaration
+<!-- <!doctype
+ ^
+./test/HTML/758606.html:2: HTML parser error : htmlParseDocTypeDecl : no DOCTYPE name !
+
+^
+./test/HTML/758606.html:2: HTML parser error : DOCTYPE improperly terminated
+
+^
diff --git a/result/HTML/758606.html.sax b/result/HTML/758606.html.sax
new file mode 100644
index 00000000..d44a5cf4
--- /dev/null
+++ b/result/HTML/758606.html.sax
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: Comment not terminated
+<!--
+SAX.error: Invalid char in CDATA 0xC
+SAX.error: Misplaced DOCTYPE declaration
+SAX.error: htmlParseDocTypeDecl : no DOCTYPE name !
+SAX.error: DOCTYPE improperly terminated
+SAX.internalSubset((null), , )
+SAX.endDocument()
diff --git a/result/HTML/758606_2.html b/result/HTML/758606_2.html
new file mode 100644
index 00000000..273816a0
--- /dev/null
+++ b/result/HTML/758606_2.html
@@ -0,0 +1,2 @@
+<!DOCTYPE >
+<html><body><p>&#145;</p></body></html>
diff --git a/result/HTML/758606_2.html.err b/result/HTML/758606_2.html.err
new file mode 100644
index 00000000..4be039f4
--- /dev/null
+++ b/result/HTML/758606_2.html.err
@@ -0,0 +1,16 @@
+./test/HTML/758606_2.html:1: HTML parser error : Comment not terminated
+<!--
+<!-- ‘<!dOctYPE
+ ^
+./test/HTML/758606_2.html:1: HTML parser error : Invalid char in CDATA 0xC
+<!-- ‘<!dOctYPE
+ ^
+./test/HTML/758606_2.html:1: HTML parser error : Misplaced DOCTYPE declaration
+‘<!dOctYPE
+ ^
+./test/HTML/758606_2.html:2: HTML parser error : htmlParseDocTypeDecl : no DOCTYPE name !
+
+^
+./test/HTML/758606_2.html:2: HTML parser error : DOCTYPE improperly terminated
+
+^
diff --git a/result/HTML/758606_2.html.sax b/result/HTML/758606_2.html.sax
new file mode 100644
index 00000000..80ff3d77
--- /dev/null
+++ b/result/HTML/758606_2.html.sax
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: Comment not terminated
+<!--
+SAX.error: Invalid char in CDATA 0xC
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&#145;, 2)
+SAX.error: Misplaced DOCTYPE declaration
+SAX.error: htmlParseDocTypeDecl : no DOCTYPE name !
+SAX.error: DOCTYPE improperly terminated
+SAX.internalSubset((null), , )
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/XPath/expr/base b/result/XPath/expr/base
index 35528669..e04346fa 100644
--- a/result/XPath/expr/base
+++ b/result/XPath/expr/base
@@ -18,3 +18,11 @@ Object is a number : 11
========================
Expression: (1+2)*(3+4)
Object is a number : 21
+
+========================
+Expression: 1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1
+Object is a number : 21
+
+========================
+Expression: self::-name
+Object is empty (NULL)
diff --git a/result/XPath/tests/nssimple b/result/XPath/tests/nssimple
new file mode 100644
index 00000000..8f0dd0e3
--- /dev/null
+++ b/result/XPath/tests/nssimple
@@ -0,0 +1,24 @@
+
+========================
+Expression: /doc/elem/namespace::node()/..
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT elem
+ namespace ns2 href=nsuri2
+
+========================
+Expression: /doc/elem/namespace::*/self::node()[true()]
+Object is a Node Set :
+Set contains 3 nodes:
+1 namespace xml href=http://www.w3.org/XML/1998/namespace
+2 namespace ns1 href=nsuri1
+3 namespace ns2 href=nsuri2
+
+========================
+Expression: //*[namespace::ns1]
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT doc
+ namespace ns1 href=nsuri1
+2 ELEMENT elem
+ namespace ns2 href=nsuri2
diff --git a/result/XPath/xptr/viderror b/result/XPath/xptr/viderror
new file mode 100644
index 00000000..d589882d
--- /dev/null
+++ b/result/XPath/xptr/viderror
@@ -0,0 +1,4 @@
+
+========================
+Expression: xpointer(non-existing-fn()/range-to(id('chapter2')))
+Object is empty (NULL)
diff --git a/result/cdata-2-byte-UTF-8.xml b/result/cdata-2-byte-UTF-8.xml
new file mode 100644
index 00000000..8552efc2
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/result/cdata-2-byte-UTF-8.xml.rde b/result/cdata-2-byte-UTF-8.xml.rde
new file mode 100644
index 00000000..2eb29403
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.rde
@@ -0,0 +1,15 @@
+0 8 #comment 0 1 This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-2-byte-UTF-8.xml.rdr b/result/cdata-2-byte-UTF-8.xml.rdr
new file mode 100644
index 00000000..2eb29403
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.rdr
@@ -0,0 +1,15 @@
+0 8 #comment 0 1 This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-2-byte-UTF-8.xml.sax b/result/cdata-2-byte-UTF-8.xml.sax
new file mode 100644
index 00000000..f397f6a7
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.sax
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ČČČČČČČČČÄ, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-2-byte-UTF-8.xml.sax2 b/result/cdata-2-byte-UTF-8.xml.sax2
new file mode 100644
index 00000000..2da2d500
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ČČČČČČČČČÄ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/cdata-3-byte-UTF-8.xml b/result/cdata-3-byte-UTF-8.xml
new file mode 100644
index 00000000..b959a127
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/result/cdata-3-byte-UTF-8.xml.rde b/result/cdata-3-byte-UTF-8.xml.rde
new file mode 100644
index 00000000..3f4d1c59
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.rde
@@ -0,0 +1,20 @@
+0 8 #comment 0 1 This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-3-byte-UTF-8.xml.rdr b/result/cdata-3-byte-UTF-8.xml.rdr
new file mode 100644
index 00000000..3f4d1c59
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.rdr
@@ -0,0 +1,20 @@
+0 8 #comment 0 1 This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-3-byte-UTF-8.xml.sax b/result/cdata-3-byte-UTF-8.xml.sax
new file mode 100644
index 00000000..2f73e7ca
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.sax
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(牛牛牛牛牛牛ç‰, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( 牛牛牛牛牛牛ç, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( 牛牛牛牛牛牛, 1202)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-3-byte-UTF-8.xml.sax2 b/result/cdata-3-byte-UTF-8.xml.sax2
new file mode 100644
index 00000000..3969579c
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(牛牛牛牛牛牛ç‰, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 牛牛牛牛牛牛ç, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 牛牛牛牛牛牛, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/cdata-4-byte-UTF-8.xml b/result/cdata-4-byte-UTF-8.xml
new file mode 100644
index 00000000..4d1d9a83
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+</doc>
diff --git a/result/cdata-4-byte-UTF-8.xml.rde b/result/cdata-4-byte-UTF-8.xml.rde
new file mode 100644
index 00000000..437b79e6
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.rde
@@ -0,0 +1,25 @@
+0 8 #comment 0 1 This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-4-byte-UTF-8.xml.rdr b/result/cdata-4-byte-UTF-8.xml.rdr
new file mode 100644
index 00000000..437b79e6
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.rdr
@@ -0,0 +1,25 @@
+0 8 #comment 0 1 This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-4-byte-UTF-8.xml.sax b/result/cdata-4-byte-UTF-8.xml.sax
new file mode 100644
index 00000000..d8abcfb5
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.sax
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ, 1202)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ðŸ¦ðŸ¦ðŸ¦ðŸ¦ð, 1203)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-4-byte-UTF-8.xml.sax2 b/result/cdata-4-byte-UTF-8.xml.sax2
new file mode 100644
index 00000000..5e07d83e
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.sax2
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ðŸ¦ðŸ¦ðŸ¦ðŸ¦ð, 1203)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/errors/754946.xml.err b/result/errors/754946.xml.err
index a75088b9..c03e35bf 100644
--- a/result/errors/754946.xml.err
+++ b/result/errors/754946.xml.err
@@ -11,9 +11,9 @@ Entity: line 1: parser error : DOCTYPE improperly terminated
Entity: line 1:
A<lbbbbbbbbbbbbbbbbbbb_
^
-./test/errors/754946.xml:1: parser error : Start tag doesn't start and stop in the same entity
->%SYSTEM;<![
- ^
-./test/errors/754946.xml:1: parser error : Extra content at the end of the document
->%SYSTEM;<![
+Entity: line 1: parser error : Start tag expected, '<' not found
+ %SYSTEM;
^
+Entity: line 1:
+A<lbbbbbbbbbbbbbbbbbbb_
+^
diff --git a/result/errors/758588.xml b/result/errors/758588.xml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/errors/758588.xml
diff --git a/result/errors/758588.xml.err b/result/errors/758588.xml.err
new file mode 100644
index 00000000..dfa59bcf
--- /dev/null
+++ b/result/errors/758588.xml.err
@@ -0,0 +1,9 @@
+./test/errors/758588.xml:1: namespace error : Namespace prefix a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d on a is not defined
+63472597946867209384634725979468672093846347259794686720938463472597946867261d:a
+ ^
+./test/errors/758588.xml:1: parser error : expected '>'
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
+./test/errors/758588.xml:1: parser error : Opening and ending tag mismatch: a line 1 and a
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
diff --git a/result/errors/758588.xml.str b/result/errors/758588.xml.str
new file mode 100644
index 00000000..303ee0ce
--- /dev/null
+++ b/result/errors/758588.xml.str
@@ -0,0 +1,10 @@
+./test/errors/758588.xml:1: namespace error : Namespace prefix a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d on a is not defined
+63472597946867209384634725979468672093846347259794686720938463472597946867261d:a
+ ^
+./test/errors/758588.xml:1: parser error : expected '>'
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
+./test/errors/758588.xml:1: parser error : Opening and ending tag mismatch: a line 1 and a
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
+./test/errors/758588.xml : failed to parse
diff --git a/result/errors/759020.xml b/result/errors/759020.xml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/errors/759020.xml
diff --git a/result/errors/759020.xml.err b/result/errors/759020.xml.err
new file mode 100644
index 00000000..a0d30517
--- /dev/null
+++ b/result/errors/759020.xml.err
@@ -0,0 +1,6 @@
+./test/errors/759020.xml:3: namespace warning : xmlns: URI 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 is not absolute
+0000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ ^
+./test/errors/759020.xml:46: parser error : Couldn't find end of Start Tag s00 line 2
+
+ ^
diff --git a/result/errors/759020.xml.str b/result/errors/759020.xml.str
new file mode 100644
index 00000000..998d6d2f
--- /dev/null
+++ b/result/errors/759020.xml.str
@@ -0,0 +1,7 @@
+./test/errors/759020.xml:3: namespace warning : xmlns: URI 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 is not absolute
+0000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ ^
+./test/errors/759020.xml:46: parser error : Couldn't find end of Start Tag s00
+
+ ^
+./test/errors/759020.xml : failed to parse
diff --git a/result/errors/759398.xml b/result/errors/759398.xml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/errors/759398.xml
diff --git a/result/errors/759398.xml.err b/result/errors/759398.xml.err
new file mode 100644
index 00000000..e08d9bf8
--- /dev/null
+++ b/result/errors/759398.xml.err
@@ -0,0 +1,9 @@
+./test/errors/759398.xml:210: parser error : StartTag: invalid element name
+need to worry about parsers whi<! don't expand PErefs finding
+ ^
+./test/errors/759398.xml:309: parser error : Opening and ending tag mismatch: spec line 50 and termdef
+and provide access to their content and structure.</termdef> <termdef
+ ^
+./test/errors/759398.xml:309: parser error : Extra content at the end of the document
+and provide access to their content and structure.</termdef> <termdef
+ ^
diff --git a/result/errors/759398.xml.str b/result/errors/759398.xml.str
new file mode 100644
index 00000000..de9a28c2
--- /dev/null
+++ b/result/errors/759398.xml.str
@@ -0,0 +1,5 @@
+./test/errors/759398.xml:210: parser error : internal error: detected an error in element content
+
+need to worry about parsers whi<! don't expand
+ ^
+./test/errors/759398.xml : failed to parse
diff --git a/result/errors/759573-2.xml b/result/errors/759573-2.xml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/errors/759573-2.xml
diff --git a/result/errors/759573-2.xml.err b/result/errors/759573-2.xml.err
new file mode 100644
index 00000000..d8773d8a
--- /dev/null
+++ b/result/errors/759573-2.xml.err
@@ -0,0 +1,58 @@
+Entity: line 1: parser error : Space required after '<!ENTITY'
+ %zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : xmlParseEntityDecl: no name
+ %zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : ParsePI: PI xDOCTYPEm space expected
+ %zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : Space required after '<!ENTITY'
+ %zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : xmlParseEntityDecl: no name
+ %zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : ParsePI: PI xDOCTYPEm space expected
+ %zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : Space required after 'ELEMENT'
+ %xx;
+ ^
+Entity: line 3:
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+ ^
+Entity: line 1: parser error : Content error in the external subset
+ %xx;
+ ^
+Entity: line 3:
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+ ^
+./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%xx;ÿggKENSMYNT&#35;MENTD&#372zz;'>
+ ^
+./test/errors/759573-2.xml:6: parser error : DOCTYPE improperly terminated
+%xx;ÿggKENSMYNT&#35;MENTD&#372zz;'>
+ ^
+./test/errors/759573-2.xml:6: parser error : Start tag expected, '<' not found
+%xx;ÿggKENSMYNT&#35;MENTD&#372zz;'>
+ ^
diff --git a/result/errors/759573-2.xml.str b/result/errors/759573-2.xml.str
new file mode 100644
index 00000000..baac1643
--- /dev/null
+++ b/result/errors/759573-2.xml.str
@@ -0,0 +1,4 @@
+./test/errors/759573-2.xml:2: parser error : Extra content at the end of the document
+<!DOCTYPE test [
+ ^
+./test/errors/759573-2.xml : failed to parse
diff --git a/result/errors/759573.xml b/result/errors/759573.xml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/errors/759573.xml
diff --git a/result/errors/759573.xml.err b/result/errors/759573.xml.err
new file mode 100644
index 00000000..2c21e9ac
--- /dev/null
+++ b/result/errors/759573.xml.err
@@ -0,0 +1,31 @@
+./test/errors/759573.xml:1: parser error : Space required after '<!ENTITY'
+ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITY
+ ^
+./test/errors/759573.xml:1: parser error : Space required after the entity name
+LEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz
+ ^
+./test/errors/759573.xml:1: parser error : Entity value required
+LEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz
+ ^
+Entity: line 1: parser error : PEReference: no name
+ %xx;
+ ^
+Entity: line 1:
+%<![INCLUDE[000%ஸ000%z;
+ ^
+Entity: line 1: parser error : Content error in the external subset
+ %xx;
+ ^
+Entity: line 1:
+%<![INCLUDE[000%ஸ000%z;
+ ^
+./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+ ^
+./test/errors/759573.xml:1: parser error : DOCTYPE improperly terminated
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+ ^
+./test/errors/759573.xml:1: parser error : Start tag expected, '<' not found
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+ ^
diff --git a/result/errors/759573.xml.str b/result/errors/759573.xml.str
new file mode 100644
index 00000000..1b6addb7
--- /dev/null
+++ b/result/errors/759573.xml.str
@@ -0,0 +1,4 @@
+./test/errors/759573.xml:1: parser error : Extra content at the end of the document
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;00
+ ^
+./test/errors/759573.xml : failed to parse
diff --git a/result/errors/content1.xml.err b/result/errors/content1.xml.err
index 425be393..9fcd6033 100644
--- a/result/errors/content1.xml.err
+++ b/result/errors/content1.xml.err
@@ -13,4 +13,4 @@
^
./test/errors/content1.xml:7: parser error : Start tag expected, '<' not found
<!ELEMENT aElement (a |b * >
- ^
+ ^
diff --git a/result/noent/cdata-2-byte-UTF-8.xml b/result/noent/cdata-2-byte-UTF-8.xml
new file mode 100644
index 00000000..8552efc2
--- /dev/null
+++ b/result/noent/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/result/noent/cdata-3-byte-UTF-8.xml b/result/noent/cdata-3-byte-UTF-8.xml
new file mode 100644
index 00000000..b959a127
--- /dev/null
+++ b/result/noent/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/result/noent/cdata-4-byte-UTF-8.xml b/result/noent/cdata-4-byte-UTF-8.xml
new file mode 100644
index 00000000..4d1d9a83
--- /dev/null
+++ b/result/noent/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+</doc>
diff --git a/result/relaxng/710744_err b/result/relaxng/710744_err
new file mode 100644
index 00000000..54f02261
--- /dev/null
+++ b/result/relaxng/710744_err
@@ -0,0 +1 @@
+./test/relaxng/710744.rng validates
diff --git a/result/relaxng/710744_valid b/result/relaxng/710744_valid
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/710744_valid
diff --git a/result/relaxng/pattern3_1 b/result/relaxng/pattern3_1
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/pattern3_1
diff --git a/result/relaxng/pattern3_1.err b/result/relaxng/pattern3_1.err
new file mode 100644
index 00000000..b1a98039
--- /dev/null
+++ b/result/relaxng/pattern3_1.err
@@ -0,0 +1 @@
+./test/relaxng/pattern3_1.xml validates
diff --git a/result/schemas/regexp-char-ref_0_0.err b/result/schemas/regexp-char-ref_0_0.err
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/schemas/regexp-char-ref_0_0.err
diff --git a/result/schemas/regexp-char-ref_1_0.err b/result/schemas/regexp-char-ref_1_0.err
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/schemas/regexp-char-ref_1_0.err
diff --git a/result/valid/t8.xml.err b/result/valid/t8.xml.err
index d795788c..1a3c006d 100644
--- a/result/valid/t8.xml.err
+++ b/result/valid/t8.xml.err
@@ -16,4 +16,4 @@ Entity: line 1: parser error : Start tag expected, '<' not found
^
Entity: line 1:
&lt;!ELEMENT root (middle) >
- ^
+^
diff --git a/result/valid/t8a.xml.err b/result/valid/t8a.xml.err
index d795788c..1a3c006d 100644
--- a/result/valid/t8a.xml.err
+++ b/result/valid/t8a.xml.err
@@ -16,4 +16,4 @@ Entity: line 1: parser error : Start tag expected, '<' not found
^
Entity: line 1:
&lt;!ELEMENT root (middle) >
- ^
+^
diff --git a/rngparser.c b/rngparser.c
index e681e0c2..7731d4dd 100644
--- a/rngparser.c
+++ b/rngparser.c
@@ -95,7 +95,7 @@ struct _xmlCRelaxNGParserCtxt {
xmlHashTablePtr datatypes;
/*
- * dictionnary and keywords
+ * dictionary and keywords
*/
xmlDictPtr dict;
const xmlChar *key_attribute;
diff --git a/runtest.c b/runtest.c
index 02fe09a6..18615773 100644
--- a/runtest.c
+++ b/runtest.c
@@ -81,8 +81,10 @@
*/
#ifdef O_BINARY
#define RD_FLAGS O_RDONLY | O_BINARY
+#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC | O_BINARY
#else
-#define RD_FLAGS O_RDONLY
+#define RD_FLAGS O_RDONLY
+#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC
#endif
typedef int (*functest) (const char *filename, const char *result,
@@ -100,6 +102,7 @@ struct testDesc {
int options; /* parser options for the test */
};
+static int update_results = 0;
static int checkTestFile(const char *filename);
#if defined(_WIN32) && !defined(__CYGWIN__)
@@ -604,12 +607,34 @@ static int checkTestFile(const char *filename) {
return(1);
}
-static int compareFiles(const char *r1, const char *r2) {
+static int compareFiles(const char *r1 /* temp */, const char *r2 /* result */) {
int res1, res2;
int fd1, fd2;
char bytes1[4096];
char bytes2[4096];
+ if (update_results) {
+ fd1 = open(r1, RD_FLAGS);
+ if (fd1 < 0)
+ return(-1);
+ fd2 = open(r2, WR_FLAGS, 0644);
+ if (fd2 < 0) {
+ close(fd1);
+ return(-1);
+ }
+ do {
+ res1 = read(fd1, bytes1, 4096);
+ if (res1 <= 0)
+ break;
+ res2 = write(fd2, bytes1, res1);
+ if (res2 <= 0 || res2 != res1)
+ break;
+ } while (1);
+ close(fd2);
+ close(fd1);
+ return(res1 != 0);
+ }
+
fd1 = open(r1, RD_FLAGS);
if (fd1 < 0)
return(-1);
@@ -646,13 +671,31 @@ static int compareFileMem(const char *filename, const char *mem, int size) {
int idx = 0;
struct stat info;
- if (stat(filename, &info) < 0)
+ if (update_results) {
+ fd = open(filename, WR_FLAGS, 0644);
+ if (fd < 0) {
+ fprintf(stderr, "failed to open %s for writing", filename);
+ return(-1);
+ }
+ res = write(fd, mem, size);
+ close(fd);
+ return(res != size);
+ }
+
+ if (stat(filename, &info) < 0) {
+ fprintf(stderr, "failed to stat %s\n", filename);
return(-1);
- if (info.st_size != size)
+ }
+ if (info.st_size != size) {
+ fprintf(stderr, "file %s is %ld bytes, result is %d bytes\n",
+ filename, info.st_size, size);
return(-1);
+ }
fd = open(filename, RD_FLAGS);
- if (fd < 0)
+ if (fd < 0) {
+ fprintf(stderr, "failed to open %s for reading", filename);
return(-1);
+ }
while (idx < size) {
res = read(fd, bytes, 4096);
if (res <= 0)
@@ -671,6 +714,9 @@ static int compareFileMem(const char *filename, const char *mem, int size) {
idx += res;
}
close(fd);
+ if (idx != size) {
+ fprintf(stderr,"Compare error index %d, size %d\n", idx, size);
+ }
return(idx != size);
}
@@ -1827,7 +1873,7 @@ pushParseTest(const char *filename, const char *result,
ctxt = xmlCreatePushParserCtxt(NULL, NULL, base + cur, 4, filename);
xmlCtxtUseOptions(ctxt, options);
cur += 4;
- while (cur < size) {
+ do {
if (cur + 1024 >= size) {
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
@@ -1845,7 +1891,7 @@ pushParseTest(const char *filename, const char *result,
xmlParseChunk(ctxt, base + cur, 1024, 0);
cur += 1024;
}
- }
+ } while (cur < size);
doc = ctxt->myDoc;
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
@@ -1871,7 +1917,7 @@ pushParseTest(const char *filename, const char *result,
if ((base == NULL) || (res != 0)) {
if (base != NULL)
xmlFree((char *)base);
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
return(-1);
}
xmlFree((char *)base);
@@ -1926,7 +1972,7 @@ memParseTest(const char *filename, const char *result,
if ((base == NULL) || (res != 0)) {
if (base != NULL)
xmlFree((char *)base);
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
return(-1);
}
xmlFree((char *)base);
@@ -2037,16 +2083,16 @@ errParseTest(const char *filename, const char *result, const char *err,
xmlDocDumpMemory(doc, (xmlChar **) &base, &size);
}
res = compareFileMem(result, base, size);
+ if (res != 0) {
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ return(-1);
+ }
}
if (doc != NULL) {
if (base != NULL)
xmlFree((char *)base);
xmlFreeDoc(doc);
}
- if (res != 0) {
- fprintf(stderr, "Result for %s failed\n", filename);
- return(-1);
- }
if (err != NULL) {
res = compareFileMem(err, testErrors, testErrorsSize);
if (res != 0) {
@@ -2159,7 +2205,7 @@ streamProcessTest(const char *filename, const char *result, const char *err,
free(temp);
}
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
return(-1);
}
}
@@ -2271,10 +2317,19 @@ static FILE *xpathOutput;
static xmlDocPtr xpathDocument;
static void
+ignoreGenericError(void *ctx ATTRIBUTE_UNUSED,
+ const char *msg ATTRIBUTE_UNUSED, ...) {
+}
+
+static void
testXPath(const char *str, int xptr, int expr) {
+ xmlGenericErrorFunc handler = ignoreGenericError;
xmlXPathObjectPtr res;
xmlXPathContextPtr ctxt;
+ /* Don't print generic errors to stderr. */
+ initGenericErrorDefaultFunc(&handler);
+
nb_tests++;
#if defined(LIBXML_XPTR_ENABLED)
if (xptr) {
@@ -2303,6 +2358,9 @@ testXPath(const char *str, int xptr, int expr) {
xmlXPathDebugDumpObject(xpathOutput, res, 0);
xmlXPathFreeObject(res);
xmlXPathFreeContext(ctxt);
+
+ /* Reset generic error handler. */
+ initGenericErrorDefaultFunc(NULL);
}
/**
@@ -2362,7 +2420,7 @@ xpathCommonTest(const char *filename, const char *result,
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
}
}
@@ -2533,7 +2591,7 @@ xmlidDocTest(const char *filename,
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
res = 1;
}
}
@@ -2661,7 +2719,7 @@ uriCommonTest(const char *filename,
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
res = 1;
}
}
@@ -3430,11 +3488,11 @@ patternTest(const char *filename,
result[499] = 0;
memcpy(xml + len, ".xml", 5);
- if (!checkTestFile(xml)) {
+ if (!checkTestFile(xml) && !update_results) {
fprintf(stderr, "Missing xml file %s\n", xml);
return(-1);
}
- if (!checkTestFile(result)) {
+ if (!checkTestFile(result) && !update_results) {
fprintf(stderr, "Missing result file %s\n", result);
return(-1);
}
@@ -3533,7 +3591,7 @@ patternTest(const char *filename,
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
ret = 1;
}
if (temp != NULL) {
@@ -3805,7 +3863,7 @@ c14nCommonTest(const char *filename, int with_comments, int mode,
prefix[len] = 0;
snprintf(buf, 499, "result/c14n/%s/%s", subdir,prefix);
- if (!checkTestFile(buf)) {
+ if (!checkTestFile(buf) && !update_results) {
fprintf(stderr, "Missing result file %s", buf);
return(-1);
}
@@ -4354,9 +4412,9 @@ launchTests(testDescPtr tst) {
} else {
error = NULL;
}
- if ((result) &&(!checkTestFile(result))) {
+ if ((result) &&(!checkTestFile(result)) && !update_results) {
fprintf(stderr, "Missing result file %s\n", result);
- } else if ((error) &&(!checkTestFile(error))) {
+ } else if ((error) &&(!checkTestFile(error)) && !update_results) {
fprintf(stderr, "Missing error file %s\n", error);
} else {
mem = xmlMemUsed();
@@ -4440,6 +4498,8 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
for (a = 1; a < argc;a++) {
if (!strcmp(argv[a], "-v"))
verbose = 1;
+ else if (!strcmp(argv[a], "-u"))
+ update_results = 1;
else if (!strcmp(argv[a], "-quiet"))
tests_quiet = 1;
else {
diff --git a/schematron.c b/schematron.c
index eb4befeb..6200f2d4 100644
--- a/schematron.c
+++ b/schematron.c
@@ -133,7 +133,7 @@ struct _xmlSchematron {
int flags; /* specific to this schematron */
void *_private; /* unused by the library */
- xmlDictPtr dict; /* the dictionnary used internally */
+ xmlDictPtr dict; /* the dictionary used internally */
const xmlChar *title; /* the title if any */
@@ -186,7 +186,7 @@ struct _xmlSchematronParserCtxt {
const char *buffer;
int size;
- xmlDictPtr dict; /* dictionnary for interned string names */
+ xmlDictPtr dict; /* dictionary for interned string names */
int nberrors;
int err;
@@ -245,7 +245,7 @@ xmlSchematronPErrMemory(xmlSchematronParserCtxtPtr ctxt,
*
* Handle a parser error
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlSchematronPErr(xmlSchematronParserCtxtPtr ctxt, xmlNodePtr node, int error,
const char *msg, const xmlChar * str1, const xmlChar * str2)
{
diff --git a/test/HTML/758605.html b/test/HTML/758605.html
new file mode 100644
index 00000000..9b1b3c24
--- /dev/null
+++ b/test/HTML/758605.html
@@ -0,0 +1 @@
+&:ê
diff --git a/test/HTML/758606.html b/test/HTML/758606.html
new file mode 100644
index 00000000..01a013c5
--- /dev/null
+++ b/test/HTML/758606.html
@@ -0,0 +1 @@
+<!-- <!doctype
diff --git a/test/HTML/758606_2.html b/test/HTML/758606_2.html
new file mode 100644
index 00000000..daa185b8
--- /dev/null
+++ b/test/HTML/758606_2.html
@@ -0,0 +1 @@
+<!-- ‘<!dOctYPE
diff --git a/test/XPath/docs/ns b/test/XPath/docs/ns
new file mode 100644
index 00000000..88f45756
--- /dev/null
+++ b/test/XPath/docs/ns
@@ -0,0 +1,3 @@
+<doc xmlns:ns1="nsuri1">
+ <elem xmlns:ns2="nsuri2"/>
+</doc>
diff --git a/test/XPath/expr/base b/test/XPath/expr/base
index 9aaed4fc..f57e4d0c 100644
--- a/test/XPath/expr/base
+++ b/test/XPath/expr/base
@@ -3,3 +3,5 @@
2*3
1+2*3+4
(1+2)*(3+4)
+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1
+self::-name
diff --git a/test/XPath/tests/nssimple b/test/XPath/tests/nssimple
new file mode 100644
index 00000000..d2a95281
--- /dev/null
+++ b/test/XPath/tests/nssimple
@@ -0,0 +1,3 @@
+/doc/elem/namespace::node()/..
+/doc/elem/namespace::*/self::node()[true()]
+//*[namespace::ns1]
diff --git a/test/XPath/xptr/viderror b/test/XPath/xptr/viderror
new file mode 100644
index 00000000..da8c53b2
--- /dev/null
+++ b/test/XPath/xptr/viderror
@@ -0,0 +1 @@
+xpointer(non-existing-fn()/range-to(id('chapter2')))
diff --git a/test/cdata-2-byte-UTF-8.xml b/test/cdata-2-byte-UTF-8.xml
new file mode 100644
index 00000000..8552efc2
--- /dev/null
+++ b/test/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/test/cdata-3-byte-UTF-8.xml b/test/cdata-3-byte-UTF-8.xml
new file mode 100644
index 00000000..b959a127
--- /dev/null
+++ b/test/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/test/cdata-4-byte-UTF-8.xml b/test/cdata-4-byte-UTF-8.xml
new file mode 100644
index 00000000..4d1d9a83
--- /dev/null
+++ b/test/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+<p><![CDATA[ ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦ðŸ¦]]></p>
+</doc>
diff --git a/test/errors/758588.xml b/test/errors/758588.xml
new file mode 100644
index 00000000..bec7e932
--- /dev/null
+++ b/test/errors/758588.xml
@@ -0,0 +1 @@
+<a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d:a></a \ No newline at end of file
diff --git a/test/errors/759020.xml b/test/errors/759020.xml
new file mode 100644
index 00000000..db232756
--- /dev/null
+++ b/test/errors/759020.xml
@@ -0,0 +1,46 @@
+<?l 00000000000000000000000000000?>
+<s00 w0000="000" h00000="000"
+ xmlns = '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file
diff --git a/test/errors/759398.xml b/test/errors/759398.xml
new file mode 100755
index 00000000..132e0297
--- /dev/null
+++ b/test/errors/759398.xml
@@ -0,0 +1,326 @@
+<?xml version='1.0' encoding='ISO-8859-5' standalone='no'?>
+<!DOCTYPE spec SYSTEM "dtds/spec.dtd" [
+
+<!-- LAST TOUCHED BY: Tim Bray, 8 February 1997 -->
+
+<!-- The words 'FINAL EDIT' in comments mark places where changes
+need to be made after approval of the document by the ERB, before
+publication. -->
+
+<!ENTITY XML.version "1.0">
+<!ENTITY doc.date "10 February 1998">
+<!ENTITY iso6.doc.date "19980210">
+<!ENTITY w3c.doc.date "02-Feb-1998">
+<!ENTITY draft.day '10'>
+<!ENTITY draft.month 'February'>
+<!ENTITY draft.year '1998'>
+
+<!ENTITY WebSGML
+ 'WebSGML Adaptations Annex to ISO 8879'>
+
+<!ENTITY lt "<">
+<!ENTITY gt ">">
+<!ENTITY xmlpio "'&lt;?xml'">
+<!ENTITY pic "'?>'">
+<!ENTITY br "\n">
+<!ENTITY cellback '#c0d9c0'>
+<!ENTITY mdash "--"> <!-- &#x2014, but nsgmls doesn't grok hex -->
+<!ENTITY com "--">
+<!ENTITY como "--">
+<!ENTITY comc "--">
+<!ENTITY hcro "&amp;#x">
+<!-- <!ENTITY nbsp " "> -->
+<!ENTITY nbsp "&#160;">
+<!ENTITY magicents "<code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>">
+
+<!-- audience and distribution status: for use at publication time -->
+<!ENTITY doc.audience "public review and discussion">
+<!ENTITY doc.distribution "may be dislributed freely, as long as
+all text and legal notices remain intact">
+
+]>
+
+<!-- for Panorama *-->
+<?VERBATIM "eg" ?>
+
+<spec>
+<header>
+<title>Extensible Markup Language (XML) 1.0</title>
+<version></version>
+<w3c-designation>REC-xml-&iso6.doc.date;</w3c-designation>
+<w3c-doctype>W3C Recommendation</w3c-doctype>
+<pubdate><day>&draft.day;</day><month>&draft.month;</month><year>&draft.year;</year></pubdate>
+
+<publoc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps</loc>
+</publoc>
+<latestloc>
+<loc href="http://www.w3.org/TR/REC-xml">
+httÿÿÿ€www.w3.org/TR/REC-xml</loc>
+</latestloc>
+<prevlocs>
+<loc href="http://www.w3.org/TR/PR-xml-971208">
+http://www.w3.org/TR/PR-xml-971208</loc>
+<!--
+<loc href='http://www.w3.org/TR/WD-xml-961114'>
+http://www.w3.org/TR/WD-xml-961114</loc>
+<loc href='http://www.w3.org/TR/WD-xml-lang-970331'>
+http://www.w3.org/TR/WD-xml-lang-970331</loc>
+<loc href='http://www.w3.org/TR/WD-xml-lang-970630'>
+http://www.w3.org/TR/WD-xml-lang-970630</loc>
+<loc href='http://www.w3.org/TR/WD-xml-970807'>
+http://www.w3.org/TR/WD-xml-970807</loc>
+<loc href='http://www.w3.org/TR/WD-xml-971117'>
+http://www.w3.org/TR/WD-xml-971117</loc>-->
+</prevlocs>
+<authlist>
+<author><name>Tim Bray</name>
+<affiliation>Textuality and Netscape</affiliation>
+<email
+href="mailto:tbray@textuality.com">tbray@textuality.com</email></author>
+<author><name>Jean Paoli</name>
+<affiliation>Microsoft</affiliation>
+<email href="mailto:jeanpa@microsoft.com">jeanpa@microsoft.com</email></author>
+<author><name>C. M. Sperberg-McQueen</name>
+<affiliation>University of Illinois at Chicago</affiliation>
+<email href="mailto:cmsmcq@uic.edu">cmsmcq@uic.edu</email></author>
+</authlist>
+<abstract>
+<p>The Extensible Markup Language (XML) is a subset of
+SGML that is completely described in this document. Its goal is to
+enable generic SGML to be served, received, and processed on the Web
+in the way that is now possible with HTML. XML has been designed for
+ease of implementation and for interoperability with both SGML and
+HTML.</p>
+</abstract>
+<status>
+<p>This document has been reviewed by W3C Members and
+other interested parties and has been endorsed by the
+Director as a W3C Recommendation. It is a stable
+document and may be used as reference material or cited
+as a normative reference from another document. W3C's
+role in making the Recommendation is to draw attention
+to the spPcification and to promote its widespread
+deployment. This enhances the functionality and
+interoperability of the Web.</p>
+<p>
+This document specifies a syntax created by subsetting an existing,
+widely used international text processing standard (Standard
+Generalized Markup Language, ISO 8879:1986(E) as amended and
+corrected) for use on the World Wide Web. It is a product of the W3C
+XML Activity, details of which can be found at <loc
+href='http://www.w3.org/XML'>http://www.w3.org/XML</loc>. A list of
+current W3C Recommendations and other technical documents can be found
+at <loc href='http://www.w3.org/TR'>http://www.w3.org/TR</loc>.
+</p>
+<p>This specification uses the term URI, which is defined by <bibref
+ref="Berners-Lee"/>, a work in progress expected to update <bibref
+ref="RFC1738"/> and <bibref ref="RFC1808"/>.
+</p>
+<p>The list of known errors in this specification is
+available at
+<loc href='http://www.w3.org/XML/xml-19980210-errata'>http://www.w3.org/XML/xml-19980210-errata</loc>.</p>
+<p>Please report errors in this document to
+<loc href='mailto:xml-editor@w3.org'>xml-editor@w3.org</loc>.
+</p>
+</status>
+
+
+<pubstmt>
+<p>Chicago, Vancouver, Mountain View, et al.:
+World-Wide Web Consortium, XML Working Group, 1996, 1997.</p>
+</pubstmt>
+<sourcedesc>
+<p>Created in electronic form.</p>
+</sourcedesc>
+<langusage>
+<language id='EN'>English</language>
+<language id='ebnf'>Extended Backus-Naur Form (formal grammar)</language>
+</langusage>
+<revisiondesc>
+<slist>
+<sitem>1997-12-03 : CMSMcQ : yet further changes</sitem>
+<sitem>1997-12-02 : TB : further changes (see TB to XML WG,
+2 December 1997)</sitem>
+<sitem>1997-12-02 : CMSMcQ : deal with as many corrections and
+comments from the proofreaders as possible:
+entify hard-coded document date in pubdate element,
+change expansion of entity WebSGML,
+update status description as per Dan Connolly (am not sure
+about refernece to Berners-Lee et al.),
+add 'The' to abstract as per WG decision,
+move Relationship to Existing Standards to back matter and
+combine with References,
+re-order back matter so normative appendices come first,
+re-tag back matter so informative appendices are tagged informdiv1,
+remove XXX XXX from list of 'normative' specs in prose,
+move some references from Other References to Normative References,
+add RFC 1738, 1808, and 2141 to Other References (they are not
+normative since we do not require the processor to enforce any
+rules based on them),
+add reference to 'Fielding draft' (Berners-Lee et al.),
+move notation section to end of body,
+drop URIchar non-terminal and use SkipLit instead,
+lose stray reference to defunct nonterminal 'markupdecls',
+move reference to Aho et al. into appendix (Tim's right),
+add prose note saying that hash marks and fragment identifiers are
+NOT part of the URI formally speaking, and are NOT legal in
+system identifiers (processor 'may' signal an error).
+Work through:
+Tim Bray reacting to James Clark,
+Tim Bray on his own,
+Eve Maler,
+
+NOT DONE YET:
+change binary / text to unparsed / parsed.
+handle James's suggestion about &lt; in attriubte values
+uppercase hex characters,
+namechar list,
+</sitem>
+<sitem>1997-12-01 : JB : add some column-width parameters</sitem>
+<sitem>1997-12-01 : CMSMcQ : begin round of changes to incorporate
+recent WG decisions and other corrections:
+binding sources of character encoding info (27 Aug / 3 Sept),
+correct wording of Faust quotation (restore dropped line),
+drop SDD from EncodingDecl,
+change text at version number 1.0,
+drop misleading (wrong!) sentence about ignorables and extenders,
+modify definÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙxamples with Byte Order Mark.
+Add content model as a term and clarify that it applies to both
+mixed and element content.
+</sitem>
+<sitem>1997-06-30 : CMSMcQ : change date, some cosmetic changes,
+changes to productions for choice, seq, Mixed, NotationType,
+Enumeration. Follow James Clark's suggestion and prohibit
+conditional sections in internal subset. TO DO: simplify
+production for ignored sections as a result, since we don't
+need to worry about parsers whi<! don't expand PErefs finding
+a conditional section.</sitem>
+<sitem>1997-06-29 : TB : various edits</sitem>
+<sitem>1997-06-29 : CMSMcQ : further changes:
+Suppress old FINAL EDIT comments and some dead material.
+Revise occurrences of % in grammar to exploit Henry Thompson's pun,
+especially markupdecl and attdef.
+Remove RMD requirement relating to element content (?).
+</sitem>
+<sitem>1997-06-28 : CMSMcQ : Various changes for 1 July draft:
+Add text for draconian error handling (introduce
+the term Fatal Error).
+RE deleta est (changing wording from
+original announcement to restrict the requirement to validating
+parsers).
+Tag definition of validawwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww it meant 'may or may not'.</sitem>
+<sitem>1997-03-21 : TB : massive changes on plane flight from Chicago
+to Vancouver</sitem>
+<sitem>1997-03-21 : CMSMcQ : correct as many reported errors as possible.
+</sitem>
+<sitem>1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.</sitem>
+<sitem>1997 James Clark:
+Define the set of characters from which [^abc] subtracts.
+Charref should use just [0-9] not Digit.
+Location info needs cleaner treatment: remove? (ERB
+question).
+One example of a PI has wrong pic.
+Clarify discussion of encoding names.
+Encoding failure should lead to unspecified results; don't
+prescribe error recovery.
+Don't require exposure of entity boundaries.
+Ignore white space in element content.
+Reserve entity names of the form u-NNNN.
+Clarify relative URLs.
+And some of my own:
+Correct productions for content model: model cannot
+consist of a name, so "elements ::= cp" is no good.
+</sitem>
+<sitem>1996-11-11 : CMSMcQ : revise for style.
+Add new rhs to entity declaration, for parameter entities.</sitem>
+<sitem>1996-11-10 : CMSMcQ : revise for style.
+Fix / complete section on names, characters.
+Add sections on parameter entities, conditional sections.
+Still to do: Add compatibility note on deterministic content models.
+Finish stylistic revision.</sitem>
+<sitem>1996-10-31 : TB : Add Entity Handling section</sitem>
+<sitem>1996-10-30 : TB : Clean up term &amp; termdef. Slip in
+ERB decision re EMPTY.</sitem>
+<sitem>1996-10-28 : TB : Change DTD. Implement some of Michael's
+suggestions. Change comments back to //. Introduce language for
+XML namespace reservation. Add section on white-space handling.
+Lots more cleanup.</sitem>
+<sitem>1996-10-24 : CMSMcQ : quick tweaks, implement some ERB
+decisions. Characters are not integers. Comments are /* */ not //.
+Add bibliographic refs to 10646, HyTime, Unicode.
+Rename old Cdata as MsData since it's <emph>only</emph> seen
+in marked sections. Call them attribute-value pairs not
+name-value pairs, except once. Internal subset is optional, needs
+'?'. Implied attributes should be signaled to the app, not
+have values supplied by processor.</sitem>
+<sitem>1996-10-16 : TB : track down &amp; excise all DSD references;
+introduce some EBNF for entity declarations.</sitem>
+<sitem>1996-10-?? nsistency check, fix up scraps so
+they all parse, get formatter working, correct a few productions.</sitem>
+<sitem>1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and
+organizational changes:
+Replace a few literals with xmlpio and
+pi""entities, to make them consistent and ensure we can change pic
+reliably when the ERB votes.
+Drop paragraph on recognizers from notation section.
+Add match, exact match to terminology.
+Move old 2.2 XML Processors and Apps into intro.
+Mention comments, PIs, and marked sections in discussion of
+delimiter escaping.
+Streamline discussion of doctype decl syntax.
+Drop old section of 'PI syntax' for doctype decl, and add
+section on partial-DTD summary PIs to end of Logical Structures
+section.
+Revise DSD syntax section to use Tim's subset-in-a-PI
+mechanism.</sitem>
+<sitem>1996-10-10 : TB : eliminate name recognizers (and more?)</sitem>
+<sitem>1996-10-09 : CMSMcQ : revise for style, consistency through 2.3
+(Characters)</sitem>
+<sitem>1996-10-09 : CMSMcQ : re-unite everything for convenience,
+at least temporarily, and revise quickly</sitem>
+<sitem>1996-10-08 : TB : first major homogenization pass</sitem>
+<sitem>1996-10-08 : TB : turn "current" attribute on div type into
+CDATA</sitem>
+<sitem>1996-10-02 : TB : remould into skeleton + entities</sitem>
+<sitem>1996-09-30 : CMSMcQ : add a few more sections prior to exchange
+ with Tim.</sitem>
+<sitem>1996-09-20 : CMSMcQ : finish transcribing notes.</sitem>
+<sitem>1996-09-19 : CMSMcQ : begin transcribing notes for draft.</sitem>
+<sitem>1996-09-13 : CMSMcQ : made outline from notes of 09-06,
+do some housekeeping</sitem>
+</slist>
+</revisiondesc>
+</header>
+<ðððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððm> is used to read XML documents
+and provide access to their content and structure.</termdef> <termdef
+id="dt-app" term="Application">It is @ssumed that an XML processor is
+doing its work on behalf of another module, called the
+<term>application</term>.</termdef> This specification describes the
+required beh\vior of an XML processor in terms of how it must read XML
+data and the information it must provide to the application.</p>
+
+<div2 id='sec-origin-goals'>
+<head>Origin and Goals</head>
+<p>XML was developed by an XML Working Group (orisable over the
+Internet.</p></item>
+<item><p>XML shall support a wide variey of applications.</p></item>
+<item><p>XML shall be compatible with SGML.</p></item>
+<item><p>It shall be easy to write programs which process XML
+documents.</p></item>
+<item><p>The number of optional features in XML is to be kept to the
+absolute minimum, ideally zero.</p></item>
+<item><p>XML documents shou \ No newline at end of file
diff --git a/test/errors/759573-2.xml b/test/errors/759573-2.xml
new file mode 100644
index 00000000..5ad655f8
--- /dev/null
+++ b/test/errors/759573-2.xml
@@ -0,0 +1,9 @@
+<?xmh ven="1.0"?>
+<!DOCTYPE test [
+<!ELEMENT test (#PCDATA) >
+<!ENTITY % xx '&#37;zz; <![INCLUDE[ &#37;zz;<!ELEMENTD(&#37;MENT&#37;MENTD&#377;MENTD&#37;zNMT9KENSMYSYSTEM;MENT9&#37;zz;'>
+<!ENTITY % zz '&#60;!ENTITY<?xDOCTYPEm~?>' >
+%xx;ÿggKENSMYNT&#35;MENTD&#372zz;'>
+<!ENBITY % zz '&#60;!EN#3&##37;z ';!EY'#x;g
+<!ENTent ref="bè:b>r.B"/>
+e </ \ No newline at end of file
diff --git a/test/errors/759573.xml b/test/errors/759573.xml
new file mode 100644
index 00000000..69ebb57c
--- /dev/null
+++ b/test/errors/759573.xml
@@ -0,0 +1 @@
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx; \ No newline at end of file
diff --git a/test/relaxng/pattern3.rng b/test/relaxng/pattern3.rng
new file mode 100644
index 00000000..fa4434f2
--- /dev/null
+++ b/test/relaxng/pattern3.rng
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <start>
+ <element name="test">
+ <data type="token">
+ <param name="pattern">[a-z]+</param>
+ </data>
+ </element>
+ </start>
+</grammar>
diff --git a/test/relaxng/pattern3_1.xml b/test/relaxng/pattern3_1.xml
new file mode 100644
index 00000000..f559cd30
--- /dev/null
+++ b/test/relaxng/pattern3_1.xml
@@ -0,0 +1 @@
+<test> ooo </test>
diff --git a/testModule.c b/testModule.c
index e399f5c0..77b7ba10 100644
--- a/testModule.c
+++ b/testModule.c
@@ -47,7 +47,7 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
/* build the module filename, and confirm the module exists */
xmlStrPrintf(filename, sizeof(filename),
- (const xmlChar*) "%s/testdso%s",
+ "%s/testdso%s",
(const xmlChar*)MODULE_PATH,
(const xmlChar*)LIBXML_MODULE_EXTENSION);
diff --git a/testapi.c b/testapi.c
index 9205e643..60f4bddb 100644
--- a/testapi.c
+++ b/testapi.c
@@ -8175,7 +8175,7 @@ test_xmlDictCreateSub(void) {
int mem_base;
xmlDictPtr ret_val;
- xmlDictPtr sub; /* an existing dictionnary */
+ xmlDictPtr sub; /* an existing dictionary */
int n_sub;
for (n_sub = 0;n_sub < gen_nb_xmlDictPtr;n_sub++) {
@@ -8207,7 +8207,7 @@ test_xmlDictExists(void) {
int mem_base;
const xmlChar * ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * name; /* the name of the userdata */
int n_name;
@@ -8263,7 +8263,7 @@ test_xmlDictLookup(void) {
int mem_base;
const xmlChar * ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * name; /* the name of the userdata */
int n_name;
@@ -8309,7 +8309,7 @@ test_xmlDictOwns(void) {
int mem_base;
int ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * str; /* the string */
int n_str;
@@ -8348,7 +8348,7 @@ test_xmlDictQLookup(void) {
int mem_base;
const xmlChar * ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * prefix; /* the prefix */
int n_prefix;
@@ -8394,7 +8394,7 @@ test_xmlDictReference(void) {
int mem_base;
int ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
for (n_dict = 0;n_dict < gen_nb_xmlDictPtr;n_dict++) {
@@ -8437,7 +8437,7 @@ test_xmlDictSize(void) {
int mem_base;
int ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
for (n_dict = 0;n_dict < gen_nb_xmlDictPtr;n_dict++) {
diff --git a/tree.c b/tree.c
index 6a158cec..9d330b85 100644
--- a/tree.c
+++ b/tree.c
@@ -1044,7 +1044,7 @@ xmlCreateIntSubset(xmlDocPtr doc, const xmlChar *name,
* DICT_FREE:
* @str: a string
*
- * Free a string if it is not owned by the "dict" dictionnary in the
+ * Free a string if it is not owned by the "dict" dictionary in the
* current scope
*/
#define DICT_FREE(str) \
@@ -1057,7 +1057,7 @@ xmlCreateIntSubset(xmlDocPtr doc, const xmlChar *name,
* DICT_COPY:
* @str: a string
*
- * Copy a string using a "dict" dictionnary in the current scope,
+ * Copy a string using a "dict" dictionary in the current scope,
* if availabe.
*/
#define DICT_COPY(str, cpy) \
@@ -1074,7 +1074,7 @@ xmlCreateIntSubset(xmlDocPtr doc, const xmlChar *name,
* DICT_CONST_COPY:
* @str: a string
*
- * Copy a string using a "dict" dictionnary in the current scope,
+ * Copy a string using a "dict" dictionary in the current scope,
* if availabe.
*/
#define DICT_CONST_COPY(str, cpy) \
@@ -1593,6 +1593,7 @@ xmlStringGetNodeList(const xmlDoc *doc, const xmlChar *value) {
else if ((ent != NULL) && (ent->children == NULL)) {
xmlNodePtr temp;
+ ent->children = (xmlNodePtr) -1;
ent->children = xmlStringGetNodeList(doc,
(const xmlChar*)node->content);
ent->owner = 1;
@@ -2270,7 +2271,7 @@ xmlNewNodeEatName(xmlNsPtr ns, xmlChar *name) {
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
xmlTreeErrMemory("building node");
- /* we can't check here that name comes from the doc dictionnary */
+ /* we can't check here that name comes from the doc dictionary */
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -2350,7 +2351,7 @@ xmlNewDocNodeEatName(xmlDocPtr doc, xmlNsPtr ns,
UPDATE_LAST_CHILD_AND_PARENT(cur)
}
} else {
- /* if name don't come from the doc dictionnary free it here */
+ /* if name don't come from the doc dictionary free it here */
if ((name != NULL) && (doc != NULL) &&
(!(xmlDictOwns(doc->dict, name))))
xmlFree(name);
@@ -3701,7 +3702,7 @@ xmlFreeNodeList(xmlNodePtr cur) {
* When a node is a text node or a comment, it uses a global static
* variable for the name of the node.
* Otherwise the node name might come from the document's
- * dictionnary
+ * dictionary
*/
if ((cur->name != NULL) &&
(cur->type != XML_TEXT_NODE) &&
@@ -3770,7 +3771,7 @@ xmlFreeNode(xmlNodePtr cur) {
/*
* When a node is a text node or a comment, it uses a global static
* variable for the name of the node.
- * Otherwise the node name might come from the document's dictionnary
+ * Otherwise the node name might come from the document's dictionary
*/
if ((cur->name != NULL) &&
(cur->type != XML_TEXT_NODE) &&
diff --git a/uri.c b/uri.c
index ff47abbe..2bd5720d 100644
--- a/uri.c
+++ b/uri.c
@@ -314,7 +314,7 @@ xmlParse3986Query(xmlURIPtr uri, const char **str)
* @uri: pointer to an URI structure
* @str: the string to analyze
*
- * Parse a port part and fills in the appropriate fields
+ * Parse a port part and fills in the appropriate fields
* of the @uri structure
*
* port = *DIGIT
@@ -325,15 +325,16 @@ static int
xmlParse3986Port(xmlURIPtr uri, const char **str)
{
const char *cur = *str;
+ unsigned port = 0; /* unsigned for defined overflow behavior */
if (ISA_DIGIT(cur)) {
- if (uri != NULL)
- uri->port = 0;
while (ISA_DIGIT(cur)) {
- if (uri != NULL)
- uri->port = uri->port * 10 + (*cur - '0');
+ port = port * 10 + (*cur - '0');
+
cur++;
}
+ if (uri != NULL)
+ uri->port = port & INT_MAX; /* port value modulo INT_MAX+1 */
*str = cur;
return(0);
}
diff --git a/valid.c b/valid.c
index 45a3f703..19f84b82 100644
--- a/valid.c
+++ b/valid.c
@@ -93,7 +93,7 @@ xmlVErrMemory(xmlValidCtxtPtr ctxt, const char *extra)
*
* Handle a validation error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlErrValid(xmlValidCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const char *extra)
{
@@ -137,7 +137,7 @@ xmlErrValid(xmlValidCtxtPtr ctxt, xmlParserErrors error,
*
* Handle a validation error, provide contextual informations
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlErrValidNode(xmlValidCtxtPtr ctxt,
xmlNodePtr node, xmlParserErrors error,
const char *msg, const xmlChar * str1,
@@ -180,7 +180,7 @@ xmlErrValidNode(xmlValidCtxtPtr ctxt,
*
* Handle a validation error, provide contextual informations
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlErrValidNodeNr(xmlValidCtxtPtr ctxt,
xmlNodePtr node, xmlParserErrors error,
const char *msg, const xmlChar * str1,
@@ -221,7 +221,7 @@ xmlErrValidNodeNr(xmlValidCtxtPtr ctxt,
*
* Handle a validation error, provide contextual information
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlErrValidWarning(xmlValidCtxtPtr ctxt,
xmlNodePtr node, xmlParserErrors error,
const char *msg, const xmlChar * str1,
@@ -2532,7 +2532,7 @@ xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) {
* DICT_FREE:
* @str: a string
*
- * Free a string if it is not owned by the "dict" dictionnary in the
+ * Free a string if it is not owned by the "dict" dictionary in the
* current scope
*/
#define DICT_FREE(str) \
diff --git a/win32/VC10/config.h b/win32/VC10/config.h
index 8629944e..891b57e4 100644
--- a/win32/VC10/config.h
+++ b/win32/VC10/config.h
@@ -96,7 +96,9 @@ static int isnan (double d) {
#if defined(_MSC_VER)
#define mkdir(p,m) _mkdir(p)
+#if _MSC_VER < 1900 // Cannot define this in VS 2015 and above!
#define snprintf _snprintf
+#endif
#if _MSC_VER < 1500
#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
#endif
diff --git a/xinclude.c b/xinclude.c
index ff3dafbb..e3bb43ec 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -125,7 +125,7 @@ xmlXIncludeErrMemory(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node,
*
* Handle an XInclude error
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlXIncludeErr(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error,
const char *msg, const xmlChar *extra)
{
@@ -147,7 +147,7 @@ xmlXIncludeErr(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error,
*
* Emit an XInclude warning.
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlXIncludeWarn(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error,
const char *msg, const xmlChar *extra)
{
diff --git a/xmlIO.c b/xmlIO.c
index 8b13184a..1a79c096 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -1604,7 +1604,7 @@ xmlCreateZMemBuff( int compression ) {
xmlFreeZMemBuff( buff );
buff = NULL;
xmlStrPrintf(msg, 500,
- (const xmlChar *) "xmlCreateZMemBuff: %s %d\n",
+ "xmlCreateZMemBuff: %s %d\n",
"Error initializing compression context. ZLIB error:",
z_err );
xmlIOErr(XML_IO_WRITE, (const char *) msg);
@@ -1672,7 +1672,7 @@ xmlZMemBuffExtend( xmlZMemBuffPtr buff, size_t ext_amt ) {
else {
xmlChar msg[500];
xmlStrPrintf(msg, 500,
- (const xmlChar *) "xmlZMemBuffExtend: %s %lu bytes.\n",
+ "xmlZMemBuffExtend: %s %lu bytes.\n",
"Allocation failure extending output buffer to",
new_size );
xmlIOErr(XML_IO_WRITE, (const char *) msg);
@@ -1718,7 +1718,7 @@ xmlZMemBuffAppend( xmlZMemBuffPtr buff, const char * src, int len ) {
if ( z_err != Z_OK ) {
xmlChar msg[500];
xmlStrPrintf(msg, 500,
- (const xmlChar *) "xmlZMemBuffAppend: %s %d %s - %d",
+ "xmlZMemBuffAppend: %s %d %s - %d",
"Compression error while appending",
len, "bytes to buffer. ZLIB error", z_err );
xmlIOErr(XML_IO_WRITE, (const char *) msg);
@@ -1791,7 +1791,7 @@ xmlZMemBuffGetContent( xmlZMemBuffPtr buff, char ** data_ref ) {
else {
xmlChar msg[500];
xmlStrPrintf(msg, 500,
- (const xmlChar *) "xmlZMemBuffGetContent: %s - %d\n",
+ "xmlZMemBuffGetContent: %s - %d\n",
"Error flushing zlib buffers. Error code", z_err );
xmlIOErr(XML_IO_WRITE, (const char *) msg);
}
@@ -1996,7 +1996,7 @@ xmlIOHTTPWrite( void * context, const char * buffer, int len ) {
if ( len < 0 ) {
xmlChar msg[500];
xmlStrPrintf(msg, 500,
- (const xmlChar *) "xmlIOHTTPWrite: %s\n%s '%s'.\n",
+ "xmlIOHTTPWrite: %s\n%s '%s'.\n",
"Error appending to internal buffer.",
"Error sending document to URI",
ctxt->uri );
@@ -2068,7 +2068,7 @@ xmlIOHTTPCloseWrite( void * context, const char * http_mthd ) {
if ( http_content == NULL ) {
xmlChar msg[500];
xmlStrPrintf(msg, 500,
- (const xmlChar *) "xmlIOHTTPCloseWrite: %s '%s' %s '%s'.\n",
+ "xmlIOHTTPCloseWrite: %s '%s' %s '%s'.\n",
"Error retrieving content.\nUnable to",
http_mthd, "data to URI", ctxt->uri );
xmlIOErr(XML_IO_WRITE, (const char *) msg);
@@ -2140,7 +2140,7 @@ xmlIOHTTPCloseWrite( void * context, const char * http_mthd ) {
else {
xmlChar msg[500];
xmlStrPrintf(msg, 500,
- (const xmlChar *) "xmlIOHTTPCloseWrite: HTTP '%s' of %d %s\n'%s' %s %d\n",
+ "xmlIOHTTPCloseWrite: HTTP '%s' of %d %s\n'%s' %s %d\n",
http_mthd, content_lgth,
"bytes to URI", ctxt->uri,
"failed. HTTP return code:", http_rtn );
diff --git a/xmlcatalog.c b/xmlcatalog.c
index b9ed6a48..006f0cc9 100644
--- a/xmlcatalog.c
+++ b/xmlcatalog.c
@@ -80,6 +80,7 @@ xmlShellReadline(const char *prompt) {
if (prompt != NULL)
fprintf(stdout, "%s", prompt);
+ fflush(stdout);
if (!fgets(line_read, 500, stdin))
return(NULL);
line_read[500] = 0;
diff --git a/xmllint.c b/xmllint.c
index 1e2eb4ab..67f7adb2 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -449,7 +449,7 @@ startTimer(void)
* message about the timing performed; format is a printf
* type argument
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(1,2)
endTimer(const char *fmt, ...)
{
long msec;
@@ -485,7 +485,7 @@ startTimer(void)
{
begin = clock();
}
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(1,2)
endTimer(const char *fmt, ...)
{
long msec;
@@ -514,7 +514,7 @@ startTimer(void)
* Do nothing
*/
}
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(1,2)
endTimer(char *format, ...)
{
/*
@@ -634,7 +634,7 @@ xmlHTMLPrintFileContext(xmlParserInputPtr input) {
* Display and format an error messages, gives file, line, position and
* extra parameters.
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
xmlHTMLError(void *ctx, const char *msg, ...)
{
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -671,7 +671,7 @@ xmlHTMLError(void *ctx, const char *msg, ...)
* Display and format a warning messages, gives file, line, position and
* extra parameters.
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
xmlHTMLWarning(void *ctx, const char *msg, ...)
{
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -709,7 +709,7 @@ xmlHTMLWarning(void *ctx, const char *msg, ...)
* Display and format an validity error messages, gives file,
* line, position and extra parameters.
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
xmlHTMLValidityError(void *ctx, const char *msg, ...)
{
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -746,7 +746,7 @@ xmlHTMLValidityError(void *ctx, const char *msg, ...)
* Display and format a validity warning messages, gives file, line,
* position and extra parameters.
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
xmlHTMLValidityWarning(void *ctx, const char *msg, ...)
{
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -809,6 +809,7 @@ xmlShellReadline(char *prompt) {
if (prompt != NULL)
fprintf(stdout, "%s", prompt);
+ fflush(stdout);
if (!fgets(line_read, 500, stdin))
return(NULL);
line_read[500] = 0;
@@ -1410,7 +1411,7 @@ commentDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *value)
* Display and format a warning messages, gives file, line, position and
* extra parameters.
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
{
va_list args;
@@ -1433,7 +1434,7 @@ warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
* Display and format a error messages, gives file, line, position and
* extra parameters.
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
{
va_list args;
@@ -1456,7 +1457,7 @@ errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
* Display and format a fatalError messages, gives file, line, position and
* extra parameters.
*/
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
fatalErrorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
{
va_list args;
@@ -2001,6 +2002,12 @@ static void walkDoc(xmlDocPtr doc) {
xmlNsPtr ns;
root = xmlDocGetRootElement(doc);
+ if (root == NULL ) {
+ xmlGenericError(xmlGenericErrorContext,
+ "Document does not have a root element");
+ progresult = XMLLINT_ERR_UNCLASS;
+ return;
+ }
for (ns = root->nsDef, i = 0;ns != NULL && i < 20;ns=ns->next) {
namespaces[i++] = ns->href;
namespaces[i++] = ns->prefix;
@@ -2967,6 +2974,7 @@ static void showVersion(const char *name) {
if (xmlHasFeature(XML_WITH_XPTR)) fprintf(stderr, "XPointer ");
if (xmlHasFeature(XML_WITH_XINCLUDE)) fprintf(stderr, "XInclude ");
if (xmlHasFeature(XML_WITH_ICONV)) fprintf(stderr, "Iconv ");
+ if (xmlHasFeature(XML_WITH_ICU)) fprintf(stderr, "ICU ");
if (xmlHasFeature(XML_WITH_ISO8859X)) fprintf(stderr, "ISO8859X ");
if (xmlHasFeature(XML_WITH_UNICODE)) fprintf(stderr, "Unicode ");
if (xmlHasFeature(XML_WITH_REGEXP)) fprintf(stderr, "Regexps ");
diff --git a/xmlmemory.c b/xmlmemory.c
index f24fd6d4..f08c8c3d 100644
--- a/xmlmemory.c
+++ b/xmlmemory.c
@@ -109,6 +109,7 @@ typedef struct memnod {
#define RESERVE_SIZE (((HDR_SIZE + (ALIGN_SIZE-1)) \
/ ALIGN_SIZE ) * ALIGN_SIZE)
+#define MAX_SIZE_T ((size_t)-1)
#define CLIENT_2_HDR(a) ((MEMHDR *) (((char *) (a)) - RESERVE_SIZE))
#define HDR_2_CLIENT(a) ((void *) (((char *) (a)) + RESERVE_SIZE))
@@ -217,7 +218,7 @@ xmlMallocLoc(size_t size, const char * file, int line)
/**
* xmlMallocAtomicLoc:
- * @size: an int specifying the size in byte to allocate.
+ * @size: an unsigned int specifying the size in byte to allocate.
* @file: the file name or NULL
* @line: the line number
*
@@ -240,11 +241,18 @@ xmlMallocAtomicLoc(size_t size, const char * file, int line)
TEST_POINT
+ if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlMallocAtomicLoc : Unsigned overflow prevented\n");
+ xmlMemoryDump();
+ return(NULL);
+ }
+
p = (MEMHDR *) malloc(RESERVE_SIZE+size);
if (!p) {
xmlGenericError(xmlGenericErrorContext,
- "xmlMallocLoc : Out of free space\n");
+ "xmlMallocAtomicLoc : Out of free space\n");
xmlMemoryDump();
return(NULL);
}
diff --git a/xmlreader.c b/xmlreader.c
index 471e7e2a..f285790b 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -142,7 +142,7 @@ struct _xmlTextReader {
xmlNodePtr faketext;/* fake xmlNs chld */
int preserve;/* preserve the resulting document */
xmlBufPtr buffer; /* used to return const xmlChar * */
- xmlDictPtr dict; /* the context dictionnary */
+ xmlDictPtr dict; /* the context dictionary */
/* entity stack when traversing entities content */
xmlNodePtr ent; /* Current Entity Ref Node */
@@ -210,7 +210,7 @@ static int xmlTextReaderNextTree(xmlTextReaderPtr reader);
* DICT_FREE:
* @str: a string
*
- * Free a string if it is not owned by the "dict" dictionnary in the
+ * Free a string if it is not owned by the "dict" dictionary in the
* current scope
*/
#define DICT_FREE(str) \
@@ -2158,7 +2158,7 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) {
ret->ctxt->dictNames = 1;
ret->allocs = XML_TEXTREADER_CTXT;
/*
- * use the parser dictionnary to allocate all elements and attributes names
+ * use the parser dictionary to allocate all elements and attributes names
*/
ret->ctxt->docdict = 1;
ret->dict = ret->ctxt->dict;
@@ -4050,13 +4050,19 @@ xmlTextReaderCurrentDoc(xmlTextReaderPtr reader) {
}
#ifdef LIBXML_SCHEMAS_ENABLED
-static char *xmlTextReaderBuildMessage(const char *msg, va_list ap);
+static char *xmlTextReaderBuildMessage(const char *msg, va_list ap) LIBXML_ATTR_FORMAT(1,0);
static void XMLCDECL
-xmlTextReaderValidityError(void *ctxt, const char *msg, ...);
+xmlTextReaderValidityError(void *ctxt, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
static void XMLCDECL
-xmlTextReaderValidityWarning(void *ctxt, const char *msg, ...);
+xmlTextReaderValidityWarning(void *ctxt, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+
+static void XMLCDECL
+xmlTextReaderValidityErrorRelay(void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+
+static void XMLCDECL
+xmlTextReaderValidityWarningRelay(void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
static void XMLCDECL
xmlTextReaderValidityErrorRelay(void *ctx, const char *msg, ...)
@@ -4850,7 +4856,7 @@ xmlTextReaderStructuredError(void *ctxt, xmlErrorPtr error)
}
}
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
xmlTextReaderError(void *ctxt, const char *msg, ...)
{
va_list ap;
@@ -4863,7 +4869,7 @@ xmlTextReaderError(void *ctxt, const char *msg, ...)
}
-static void XMLCDECL
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3)
xmlTextReaderWarning(void *ctxt, const char *msg, ...)
{
va_list ap;
@@ -5249,7 +5255,7 @@ xmlTextReaderSetup(xmlTextReaderPtr reader,
reader->ctxt->linenumbers = 1;
reader->ctxt->dictNames = 1;
/*
- * use the parser dictionnary to allocate all elements and attributes names
+ * use the parser dictionary to allocate all elements and attributes names
*/
reader->ctxt->docdict = 1;
reader->ctxt->parseMode = XML_PARSE_READER;
diff --git a/xmlregexp.c b/xmlregexp.c
index 3e912ab9..ca3b4f46 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -1544,6 +1544,7 @@ static int
xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from,
xmlRegStatePtr to, xmlRegAtomPtr atom) {
xmlRegStatePtr end;
+ int nullable = 0;
if (atom == NULL) {
ERROR("genrate transition: atom == NULL");
@@ -1730,6 +1731,13 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from,
if (xmlRegAtomPush(ctxt, atom) < 0) {
return(-1);
}
+ if ((atom->quant == XML_REGEXP_QUANT_RANGE) &&
+ (atom->min == 0) && (atom->max > 0)) {
+ nullable = 1;
+ atom->min = 1;
+ if (atom->max == 1)
+ atom->quant = XML_REGEXP_QUANT_OPT;
+ }
xmlRegStateAddTrans(ctxt, from, atom, to, -1, -1);
ctxt->state = end;
switch (atom->quant) {
@@ -1747,11 +1755,8 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from,
xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1);
break;
case XML_REGEXP_QUANT_RANGE:
-#if DV_test
- if (atom->min == 0) {
+ if (nullable)
xmlFAGenerateEpsilonTransition(ctxt, from, to);
- }
-#endif
break;
default:
break;
@@ -5052,11 +5057,12 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
ERROR("Expecting the end of a char range");
return;
}
- NEXTL(len);
+
/* TODO check that the values are acceptable character ranges for XML */
if (end < start) {
ERROR("End of range is before start of range");
} else {
+ NEXTL(len);
xmlRegAtomAddRange(ctxt, ctxt->atom, ctxt->neg,
XML_REGEXP_CHARVAL, start, end, NULL);
}
@@ -6345,7 +6351,7 @@ struct _xmlExpCtxt {
/**
* xmlExpNewCtxt:
* @maxNodes: the maximum number of nodes
- * @dict: optional dictionnary to use internally
+ * @dict: optional dictionary to use internally
*
* Creates a new context for manipulating expressions
*
@@ -7204,7 +7210,7 @@ xmlExpStringDerive(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp,
return(NULL);
}
/*
- * check the string is in the dictionnary, if yes use an interned
+ * check the string is in the dictionary, if yes use an interned
* copy, otherwise we know it's not an acceptable input
*/
input = xmlDictExists(ctxt->dict, str, len);
diff --git a/xmlsave.c b/xmlsave.c
index 774404b8..4a8e3f39 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -2097,8 +2097,8 @@ xmlBufAttrSerializeTxtContent(xmlBufPtr buf, xmlDocPtr doc,
xmlBufAdd(buf, BAD_CAST "&amp;", 5);
cur++;
base = cur;
- } else if ((*cur >= 0x80) && ((doc == NULL) ||
- (doc->encoding == NULL))) {
+ } else if ((*cur >= 0x80) && (cur[1] != 0) &&
+ ((doc == NULL) || (doc->encoding == NULL))) {
/*
* We assume we have UTF-8 content.
*/
@@ -2121,14 +2121,14 @@ xmlBufAttrSerializeTxtContent(xmlBufPtr buf, xmlDocPtr doc,
val <<= 6;
val |= (cur[1]) & 0x3F;
l = 2;
- } else if (*cur < 0xF0) {
+ } else if ((*cur < 0xF0) && (cur [2] != 0)) {
val = (cur[0]) & 0x0F;
val <<= 6;
val |= (cur[1]) & 0x3F;
val <<= 6;
val |= (cur[2]) & 0x3F;
l = 3;
- } else if (*cur < 0xF8) {
+ } else if ((*cur < 0xF8) && (cur [2] != 0) && (cur[3] != 0)) {
val = (cur[0]) & 0x07;
val <<= 6;
val |= (cur[1]) & 0x3F;
diff --git a/xmlschemas.c b/xmlschemas.c
index fe533e6f..7afe2ebf 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -617,7 +617,7 @@ struct _xmlSchemaParserCtxt {
xmlAutomataStatePtr end;
xmlAutomataStatePtr state;
- xmlDictPtr dict; /* dictionnary for interned string names */
+ xmlDictPtr dict; /* dictionary for interned string names */
xmlSchemaTypePtr ctxtType; /* The current context simple/complex type */
int options;
xmlSchemaValidCtxtPtr vctxt;
@@ -1085,7 +1085,7 @@ xmlSchemaGetUnionSimpleTypeMemberTypes(xmlSchemaTypePtr type);
static void
xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt,
const char *funcName,
- const char *message);
+ const char *message) LIBXML_ATTR_FORMAT(3,0);
static int
xmlSchemaCheckCOSSTDerivedOK(xmlSchemaAbstractCtxtPtr ctxt,
xmlSchemaTypePtr type,
@@ -1769,7 +1769,7 @@ xmlSchemaFormatItemForReport(xmlChar **buf,
}
FREE_AND_NULL(str)
- return (*buf);
+ return (xmlEscapeFormatString(buf));
}
/**
@@ -1889,7 +1889,7 @@ xmlSchemaPErrMemory(xmlSchemaParserCtxtPtr ctxt,
*
* Handle a parser error
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlSchemaPErr(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error,
const char *msg, const xmlChar * str1, const xmlChar * str2)
{
@@ -1922,7 +1922,7 @@ xmlSchemaPErr(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error,
*
* Handle a parser error
*/
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaPErr2(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node,
xmlNodePtr child, int error,
const char *msg, const xmlChar * str1, const xmlChar * str2)
@@ -1951,7 +1951,7 @@ xmlSchemaPErr2(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node,
*
* Handle a parser error
*/
-static void
+static void LIBXML_ATTR_FORMAT(7,0)
xmlSchemaPErrExt(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error,
const xmlChar * strData1, const xmlChar * strData2,
const xmlChar * strData3, const char *msg, const xmlChar * str1,
@@ -2002,7 +2002,7 @@ xmlSchemaVErrMemory(xmlSchemaValidCtxtPtr ctxt,
extra);
}
-static void
+static void LIBXML_ATTR_FORMAT(2,0)
xmlSchemaPSimpleInternalErr(xmlNodePtr node,
const char *msg, const xmlChar *str)
{
@@ -2013,18 +2013,21 @@ xmlSchemaPSimpleInternalErr(xmlNodePtr node,
#define WXS_ERROR_TYPE_ERROR 1
#define WXS_ERROR_TYPE_WARNING 2
/**
- * xmlSchemaErr3:
+ * xmlSchemaErr4Line:
* @ctxt: the validation context
- * @node: the context node
+ * @errorLevel: the error level
* @error: the error code
+ * @node: the context node
+ * @line: the line number
* @msg: the error message
* @str1: extra data
* @str2: extra data
* @str3: extra data
+ * @str4: extra data
*
* Handle a validation error
*/
-static void
+static void LIBXML_ATTR_FORMAT(6,0)
xmlSchemaErr4Line(xmlSchemaAbstractCtxtPtr ctxt,
xmlErrorLevel errorLevel,
int error, xmlNodePtr node, int line, const char *msg,
@@ -2139,7 +2142,7 @@ xmlSchemaErr4Line(xmlSchemaAbstractCtxtPtr ctxt,
*
* Handle a validation error
*/
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlSchemaErr3(xmlSchemaAbstractCtxtPtr actxt,
int error, xmlNodePtr node, const char *msg,
const xmlChar *str1, const xmlChar *str2, const xmlChar *str3)
@@ -2148,7 +2151,7 @@ xmlSchemaErr3(xmlSchemaAbstractCtxtPtr actxt,
msg, str1, str2, str3, NULL);
}
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlSchemaErr4(xmlSchemaAbstractCtxtPtr actxt,
int error, xmlNodePtr node, const char *msg,
const xmlChar *str1, const xmlChar *str2,
@@ -2158,7 +2161,7 @@ xmlSchemaErr4(xmlSchemaAbstractCtxtPtr actxt,
msg, str1, str2, str3, str4);
}
-static void
+static void LIBXML_ATTR_FORMAT(4,0)
xmlSchemaErr(xmlSchemaAbstractCtxtPtr actxt,
int error, xmlNodePtr node, const char *msg,
const xmlChar *str1, const xmlChar *str2)
@@ -2181,7 +2184,7 @@ xmlSchemaFormatNodeForError(xmlChar ** msg,
/*
* Don't try to format other nodes than element and
* attribute nodes.
- * Play save and return an empty string.
+ * Play safe and return an empty string.
*/
*msg = xmlStrdup(BAD_CAST "");
return(*msg);
@@ -2246,6 +2249,13 @@ xmlSchemaFormatNodeForError(xmlChar ** msg,
TODO
return (NULL);
}
+
+ /*
+ * xmlSchemaFormatItemForReport() also returns an escaped format
+ * string, so do this before calling it below (in the future).
+ */
+ xmlEscapeFormatString(msg);
+
/*
* VAL TODO: The output of the given schema component is currently
* disabled.
@@ -2262,7 +2272,7 @@ xmlSchemaFormatNodeForError(xmlChar ** msg,
return (*msg);
}
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlSchemaInternalErr2(xmlSchemaAbstractCtxtPtr actxt,
const char *funcName,
const char *message,
@@ -2273,24 +2283,21 @@ xmlSchemaInternalErr2(xmlSchemaAbstractCtxtPtr actxt,
if (actxt == NULL)
return;
- msg = xmlStrdup(BAD_CAST "Internal error: ");
- msg = xmlStrcat(msg, BAD_CAST funcName);
- msg = xmlStrcat(msg, BAD_CAST ", ");
+ msg = xmlStrdup(BAD_CAST "Internal error: %s, ");
msg = xmlStrcat(msg, BAD_CAST message);
msg = xmlStrcat(msg, BAD_CAST ".\n");
if (actxt->type == XML_SCHEMA_CTXT_VALIDATOR)
- xmlSchemaErr(actxt, XML_SCHEMAV_INTERNAL, NULL,
- (const char *) msg, str1, str2);
-
+ xmlSchemaErr3(actxt, XML_SCHEMAV_INTERNAL, NULL,
+ (const char *) msg, (const xmlChar *) funcName, str1, str2);
else if (actxt->type == XML_SCHEMA_CTXT_PARSER)
- xmlSchemaErr(actxt, XML_SCHEMAP_INTERNAL, NULL,
- (const char *) msg, str1, str2);
+ xmlSchemaErr3(actxt, XML_SCHEMAP_INTERNAL, NULL,
+ (const char *) msg, (const xmlChar *) funcName, str1, str2);
FREE_AND_NULL(msg)
}
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt,
const char *funcName,
const char *message)
@@ -2299,7 +2306,7 @@ xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt,
}
#if 0
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlSchemaPInternalErr(xmlSchemaParserCtxtPtr pctxt,
const char *funcName,
const char *message,
@@ -2311,7 +2318,7 @@ xmlSchemaPInternalErr(xmlSchemaParserCtxtPtr pctxt,
}
#endif
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaCustomErr4(xmlSchemaAbstractCtxtPtr actxt,
xmlParserErrors error,
xmlNodePtr node,
@@ -2336,7 +2343,7 @@ xmlSchemaCustomErr4(xmlSchemaAbstractCtxtPtr actxt,
FREE_AND_NULL(msg)
}
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaCustomErr(xmlSchemaAbstractCtxtPtr actxt,
xmlParserErrors error,
xmlNodePtr node,
@@ -2351,7 +2358,7 @@ xmlSchemaCustomErr(xmlSchemaAbstractCtxtPtr actxt,
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaCustomWarning(xmlSchemaAbstractCtxtPtr actxt,
xmlParserErrors error,
xmlNodePtr node,
@@ -2376,7 +2383,7 @@ xmlSchemaCustomWarning(xmlSchemaAbstractCtxtPtr actxt,
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaKeyrefErr(xmlSchemaValidCtxtPtr vctxt,
xmlParserErrors error,
xmlSchemaPSVIIDCNodePtr idcNode,
@@ -2476,11 +2483,13 @@ xmlSchemaSimpleTypeErr(xmlSchemaAbstractCtxtPtr actxt,
msg = xmlStrcat(msg, BAD_CAST " '");
if (type->builtInType != 0) {
msg = xmlStrcat(msg, BAD_CAST "xs:");
- msg = xmlStrcat(msg, type->name);
- } else
- msg = xmlStrcat(msg,
- xmlSchemaFormatQName(&str,
- type->targetNamespace, type->name));
+ str = xmlStrdup(type->name);
+ } else {
+ const xmlChar *qName = xmlSchemaFormatQName(&str, type->targetNamespace, type->name);
+ if (!str)
+ str = xmlStrdup(qName);
+ }
+ msg = xmlStrcat(msg, xmlEscapeFormatString(&str));
msg = xmlStrcat(msg, BAD_CAST "'");
FREE_AND_NULL(str);
}
@@ -2525,7 +2534,7 @@ xmlSchemaIllegalAttrErr(xmlSchemaAbstractCtxtPtr actxt,
FREE_AND_NULL(msg)
}
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaComplexTypeErr(xmlSchemaAbstractCtxtPtr actxt,
xmlParserErrors error,
xmlNodePtr node,
@@ -2617,7 +2626,7 @@ xmlSchemaComplexTypeErr(xmlSchemaAbstractCtxtPtr actxt,
str = xmlStrcat(str, BAD_CAST ", ");
}
str = xmlStrcat(str, BAD_CAST " ).\n");
- msg = xmlStrcat(msg, BAD_CAST str);
+ msg = xmlStrcat(msg, xmlEscapeFormatString(&str));
FREE_AND_NULL(str)
} else
msg = xmlStrcat(msg, BAD_CAST "\n");
@@ -2625,7 +2634,7 @@ xmlSchemaComplexTypeErr(xmlSchemaAbstractCtxtPtr actxt,
xmlFree(msg);
}
-static void
+static void LIBXML_ATTR_FORMAT(8,0)
xmlSchemaFacetErr(xmlSchemaAbstractCtxtPtr actxt,
xmlParserErrors error,
xmlNodePtr node,
@@ -2916,7 +2925,7 @@ xmlSchemaPIllegalAttrErr(xmlSchemaParserCtxtPtr ctxt,
*
* Reports an error during parsing.
*/
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaPCustomErrExt(xmlSchemaParserCtxtPtr ctxt,
xmlParserErrors error,
xmlSchemaBasicItemPtr item,
@@ -2952,7 +2961,7 @@ xmlSchemaPCustomErrExt(xmlSchemaParserCtxtPtr ctxt,
*
* Reports an error during parsing.
*/
-static void
+static void LIBXML_ATTR_FORMAT(5,0)
xmlSchemaPCustomErr(xmlSchemaParserCtxtPtr ctxt,
xmlParserErrors error,
xmlSchemaBasicItemPtr item,
@@ -2977,7 +2986,7 @@ xmlSchemaPCustomErr(xmlSchemaParserCtxtPtr ctxt,
*
* Reports an attribute use error during parsing.
*/
-static void
+static void LIBXML_ATTR_FORMAT(6,0)
xmlSchemaPAttrUseErr4(xmlSchemaParserCtxtPtr ctxt,
xmlParserErrors error,
xmlNodePtr node,
@@ -3099,7 +3108,7 @@ xmlSchemaPMutualExclAttrErr(xmlSchemaParserCtxtPtr ctxt,
* Reports a simple type validation error.
* TODO: Should this report the value of an element as well?
*/
-static void
+static void LIBXML_ATTR_FORMAT(8,0)
xmlSchemaPSimpleTypeErr(xmlSchemaParserCtxtPtr ctxt,
xmlParserErrors error,
xmlSchemaBasicItemPtr ownerItem ATTRIBUTE_UNUSED,
@@ -3141,11 +3150,13 @@ xmlSchemaPSimpleTypeErr(xmlSchemaParserCtxtPtr ctxt,
msg = xmlStrcat(msg, BAD_CAST " '");
if (type->builtInType != 0) {
msg = xmlStrcat(msg, BAD_CAST "xs:");
- msg = xmlStrcat(msg, type->name);
- } else
- msg = xmlStrcat(msg,
- xmlSchemaFormatQName(&str,
- type->targetNamespace, type->name));
+ str = xmlStrdup(type->name);
+ } else {
+ const xmlChar *qName = xmlSchemaFormatQName(&str, type->targetNamespace, type->name);
+ if (!str)
+ str = xmlStrdup(qName);
+ }
+ msg = xmlStrcat(msg, xmlEscapeFormatString(&str));
msg = xmlStrcat(msg, BAD_CAST "'.");
FREE_AND_NULL(str);
}
@@ -3157,8 +3168,10 @@ xmlSchemaPSimpleTypeErr(xmlSchemaParserCtxtPtr ctxt,
"valid.");
}
if (expected) {
+ xmlChar *expectedEscaped = xmlCharStrdup(expected);
msg = xmlStrcat(msg, BAD_CAST " Expected is '");
- msg = xmlStrcat(msg, BAD_CAST expected);
+ msg = xmlStrcat(msg, xmlEscapeFormatString(&expectedEscaped));
+ FREE_AND_NULL(expectedEscaped);
msg = xmlStrcat(msg, BAD_CAST "'.\n");
} else
msg = xmlStrcat(msg, BAD_CAST "\n");
@@ -27382,10 +27395,17 @@ xmlSchemaSAXHandleStartElementNs(void *ctx,
for (j = 0, i = 0; i < nb_attributes; i++, j += 5) {
/*
- * Duplicate the value.
+ * Duplicate the value, changing any &#38; to a literal ampersand.
+ *
+ * libxml2 differs from normal SAX here in that it escapes all ampersands
+ * as &#38; instead of delivering the raw converted string. Changing the
+ * behavior at this point would break applications that use this API, so
+ * we are forced to work around it. There is no danger of accidentally
+ * decoding some entity other than &#38; in this step because without
+ * unescaped ampersands there can be no other entities in the string.
*/
- value = xmlStrndup(attributes[j+3],
- attributes[j+4] - attributes[j+3]);
+ value = xmlStringLenDecodeEntities(vctxt->parserCtxt, attributes[j+3],
+ attributes[j+4] - attributes[j+3], XML_SUBSTITUTE_REF, 0, 0, 0);
/*
* TODO: Set the node line.
*/
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index ff64f50a..5f385990 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -62,7 +62,7 @@ struct _xmlSchemaValDate {
long year;
unsigned int mon :4; /* 1 <= mon <= 12 */
unsigned int day :5; /* 1 <= day <= 31 */
- unsigned int hour :5; /* 0 <= hour <= 23 */
+ unsigned int hour :5; /* 0 <= hour <= 24 */
unsigned int min :6; /* 0 <= min <= 59 */
double sec;
unsigned int tz_flag :1; /* is tzo explicitely set? */
@@ -1139,9 +1139,13 @@ static const unsigned int daysInMonthLeap[12] =
#define VALID_DATE(dt) \
(VALID_YEAR(dt->year) && VALID_MONTH(dt->mon) && VALID_MDAY(dt))
+#define VALID_END_OF_DAY(dt) \
+ ((dt)->hour == 24 && (dt)->min == 0 && (dt)->sec == 0)
+
#define VALID_TIME(dt) \
- (VALID_HOUR(dt->hour) && VALID_MIN(dt->min) && \
- VALID_SEC(dt->sec) && VALID_TZO(dt->tzo))
+ (((VALID_HOUR(dt->hour) && VALID_MIN(dt->min) && \
+ VALID_SEC(dt->sec)) || VALID_END_OF_DAY(dt)) && \
+ VALID_TZO(dt->tzo))
#define VALID_DATETIME(dt) \
(VALID_DATE(dt) && VALID_TIME(dt))
@@ -1355,7 +1359,7 @@ _xmlSchemaParseTime (xmlSchemaValDatePtr dt, const xmlChar **str) {
return ret;
if (*cur != ':')
return 1;
- if (!VALID_HOUR(value))
+ if (!VALID_HOUR(value) && value != 24 /* Allow end-of-day hour */)
return 2;
cur++;
@@ -1377,7 +1381,7 @@ _xmlSchemaParseTime (xmlSchemaValDatePtr dt, const xmlChar **str) {
if (ret != 0)
return ret;
- if ((!VALID_SEC(dt->sec)) || (!VALID_TZO(dt->tzo)))
+ if (!VALID_TIME(dt))
return 2;
*str = cur;
@@ -5303,6 +5307,7 @@ xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet,
xmlSchemaWhitespaceValueType ws)
{
int ret;
+ int stringType;
if (facet == NULL)
return(-1);
@@ -5315,7 +5320,15 @@ xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet,
*/
if (value == NULL)
return(-1);
- ret = xmlRegexpExec(facet->regexp, value);
+ /*
+ * If string-derived type, regexp must be tested on the value space of
+ * the datatype.
+ * See https://www.w3.org/TR/xmlschema-2/#rf-pattern
+ */
+ stringType = val && ((val->type >= XML_SCHEMAS_STRING && val->type <= XML_SCHEMAS_NORMSTRING)
+ || (val->type >= XML_SCHEMAS_TOKEN && val->type <= XML_SCHEMAS_NCNAME));
+ ret = xmlRegexpExec(facet->regexp,
+ (stringType && val->value.str) ? val->value.str : value);
if (ret == 1)
return(0);
if (ret == 0)
diff --git a/xmlstring.c b/xmlstring.c
index a37220d7..cc85777e 100644
--- a/xmlstring.c
+++ b/xmlstring.c
@@ -457,6 +457,8 @@ xmlStrncat(xmlChar *cur, const xmlChar *add, int len) {
return(xmlStrndup(add, len));
size = xmlStrlen(cur);
+ if (size < 0)
+ return(NULL);
ret = (xmlChar *) xmlRealloc(cur, (size + len + 1) * sizeof(xmlChar));
if (ret == NULL) {
xmlErrMemory(NULL, NULL);
@@ -484,14 +486,19 @@ xmlStrncatNew(const xmlChar *str1, const xmlChar *str2, int len) {
int size;
xmlChar *ret;
- if (len < 0)
+ if (len < 0) {
len = xmlStrlen(str2);
+ if (len < 0)
+ return(NULL);
+ }
if ((str2 == NULL) || (len == 0))
return(xmlStrdup(str1));
if (str1 == NULL)
return(xmlStrndup(str2, len));
size = xmlStrlen(str1);
+ if (size < 0)
+ return(NULL);
ret = (xmlChar *) xmlMalloc((size + len + 1) * sizeof(xmlChar));
if (ret == NULL) {
xmlErrMemory(NULL, NULL);
@@ -538,7 +545,7 @@ xmlStrcat(xmlChar *cur, const xmlChar *add) {
* Returns the number of characters written to @buf or -1 if an error occurs.
*/
int XMLCDECL
-xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) {
+xmlStrPrintf(xmlChar *buf, int len, const char *msg, ...) {
va_list args;
int ret;
@@ -566,7 +573,7 @@ xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) {
* Returns the number of characters written to @buf or -1 if an error occurs.
*/
int
-xmlStrVPrintf(xmlChar *buf, int len, const xmlChar *msg, va_list ap) {
+xmlStrVPrintf(xmlChar *buf, int len, const char *msg, va_list ap) {
int ret;
if((buf == NULL) || (msg == NULL)) {
@@ -837,8 +844,8 @@ xmlUTF8Strsize(const xmlChar *utf, int len) {
break;
if ( (ch = *ptr++) & 0x80)
while ((ch<<=1) & 0x80 ) {
- ptr++;
if (*ptr == 0) break;
+ ptr++;
}
}
return (ptr - utf);
@@ -980,5 +987,60 @@ xmlUTF8Strsub(const xmlChar *utf, int start, int len) {
return(xmlUTF8Strndup(utf, len));
}
+/**
+ * xmlEscapeFormatString:
+ * @msg: a pointer to the string in which to escape '%' characters.
+ * Must be a heap-allocated buffer created by libxml2 that may be
+ * returned, or that may be freed and replaced.
+ *
+ * Replaces the string pointed to by 'msg' with an escaped string.
+ * Returns the same string with all '%' characters escaped.
+ */
+xmlChar *
+xmlEscapeFormatString(xmlChar **msg)
+{
+ xmlChar *msgPtr = NULL;
+ xmlChar *result = NULL;
+ xmlChar *resultPtr = NULL;
+ size_t count = 0;
+ size_t msgLen = 0;
+ size_t resultLen = 0;
+
+ if (!msg || !*msg)
+ return(NULL);
+
+ for (msgPtr = *msg; *msgPtr != '\0'; ++msgPtr) {
+ ++msgLen;
+ if (*msgPtr == '%')
+ ++count;
+ }
+
+ if (count == 0)
+ return(*msg);
+
+ resultLen = msgLen + count + 1;
+ result = (xmlChar *) xmlMallocAtomic(resultLen * sizeof(xmlChar));
+ if (result == NULL) {
+ /* Clear *msg to prevent format string vulnerabilities in
+ out-of-memory situations. */
+ xmlFree(*msg);
+ *msg = NULL;
+ xmlErrMemory(NULL, NULL);
+ return(NULL);
+ }
+
+ for (msgPtr = *msg, resultPtr = result; *msgPtr != '\0'; ++msgPtr, ++resultPtr) {
+ *resultPtr = *msgPtr;
+ if (*msgPtr == '%')
+ *(++resultPtr) = '%';
+ }
+ result[resultLen - 1] = '\0';
+
+ xmlFree(*msg);
+ *msg = result;
+
+ return *msg;
+}
+
#define bottom_xmlstring
#include "elfgcchack.h"
diff --git a/xmlwriter.c b/xmlwriter.c
index fac20ac0..69541b89 100644
--- a/xmlwriter.c
+++ b/xmlwriter.c
@@ -113,7 +113,7 @@ static int xmlTextWriterWriteDocCallback(void *context,
const xmlChar * str, int len);
static int xmlTextWriterCloseDocCallback(void *context);
-static xmlChar *xmlTextWriterVSprintf(const char *format, va_list argptr);
+static xmlChar *xmlTextWriterVSprintf(const char *format, va_list argptr) LIBXML_ATTR_FORMAT(1,0);
static int xmlOutputBufferWriteBase64(xmlOutputBufferPtr out, int len,
const unsigned char *data);
static void xmlTextWriterStartDocumentCallback(void *ctx);
@@ -153,7 +153,7 @@ xmlWriterErrMsg(xmlTextWriterPtr ctxt, xmlParserErrors error,
*
* Handle a writer error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlWriterErrMsgInt(xmlTextWriterPtr ctxt, xmlParserErrors error,
const char *msg, int val)
{
diff --git a/xpath.c b/xpath.c
index 935fcff0..751665b8 100644
--- a/xpath.c
+++ b/xpath.c
@@ -639,7 +639,7 @@ xmlXPathErrMemory(xmlXPathContextPtr ctxt, const char *extra)
xmlChar buf[200];
xmlStrPrintf(buf, 200,
- BAD_CAST "Memory allocation failed : %s\n",
+ "Memory allocation failed : %s\n",
extra);
ctxt->lastError.message = (char *) xmlStrdup(buf);
} else {
@@ -945,7 +945,7 @@ struct _xmlXPathCompExpr {
xmlXPathStepOp *steps; /* ops for computation of this expression */
int last; /* index of last step in expression */
xmlChar *expr; /* the expression being computed */
- xmlDictPtr dict; /* the dictionnary to use if any */
+ xmlDictPtr dict; /* the dictionary to use if any */
#ifdef DEBUG_EVAL_COUNTS
int nb;
xmlChar *string;
@@ -3706,7 +3706,7 @@ xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) {
/* @@ with_ns to check whether namespace nodes should be looked at @@ */
/*
- * prevent duplcates
+ * prevent duplicates
*/
for (i = 0;i < cur->nodeNr;i++)
if (cur->nodeTab[i] == val) return(0);
@@ -8390,7 +8390,7 @@ xmlNodePtr
xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
if (ctxt->context->node->type != XML_ELEMENT_NODE) return(NULL);
- if (ctxt->context->tmpNsList == NULL && cur != (xmlNodePtr) xmlXPathXMLNamespace) {
+ if (cur == NULL) {
if (ctxt->context->tmpNsList != NULL)
xmlFree(ctxt->context->tmpNsList);
ctxt->context->tmpNsList =
@@ -9996,7 +9996,7 @@ xmlXPathParseNameComplex(xmlXPathParserContextPtr ctxt, int qualified) {
(c == '[') || (c == ']') || (c == '@') || /* accelerators */
(c == '*') || /* accelerators */
(!IS_LETTER(c) && (c != '_') &&
- ((qualified) && (c != ':')))) {
+ ((!qualified) || (c != ':')))) {
return(NULL);
}
@@ -12379,11 +12379,6 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt,
STRANGE
goto error;
case NODE_TEST_TYPE:
- /*
- * TODO: Don't we need to use
- * xmlXPathNodeSetAddNs() for namespace nodes here?
- * Surprisingly, some c14n tests fail, if we do this.
- */
if (type == NODE_TYPE_NODE) {
switch (cur->type) {
case XML_DOCUMENT_NODE:
@@ -12397,9 +12392,17 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt,
case XML_COMMENT_NODE:
case XML_CDATA_SECTION_NODE:
case XML_TEXT_NODE:
- case XML_NAMESPACE_DECL:
XP_TEST_HIT
break;
+ case XML_NAMESPACE_DECL: {
+ if (axis == AXIS_NAMESPACE) {
+ XP_TEST_HIT_NS
+ } else {
+ hasNsNodes = 1;
+ XP_TEST_HIT
+ }
+ break;
+ }
default:
break;
}
@@ -12691,6 +12694,14 @@ error:
* Reset the context node.
*/
xpctxt->node = oldContextNode;
+ /*
+ * When traversing the namespace axis in "toBool" mode, it's
+ * possible that tmpNsList wasn't freed.
+ */
+ if (xpctxt->tmpNsList != NULL) {
+ xmlFree(xpctxt->tmpNsList);
+ xpctxt->tmpNsList = NULL;
+ }
#ifdef DEBUG_STEP
xmlGenericError(xmlGenericErrorContext,
@@ -13994,9 +14005,14 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op)
xmlNodeSetPtr oldset;
int i, j;
- if (op->ch1 != -1)
+ if (op->ch1 != -1) {
total +=
xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]);
+ CHECK_ERROR0;
+ }
+ if (ctxt->value == NULL) {
+ XP_ERROR0(XPATH_INVALID_OPERAND);
+ }
if (op->ch2 == -1)
return (total);
@@ -14784,6 +14800,10 @@ xmlXPathOptimizeExpression(xmlXPathCompExprPtr comp, xmlXPathStepOpPtr op)
}
}
+ /* OP_VALUE has invalid ch1. */
+ if (op->op == XPATH_OP_VALUE)
+ return;
+
/* Recurse */
if (op->ch1 != -1)
xmlXPathOptimizeExpression(comp, &comp->steps[op->ch1]);
diff --git a/xpointer.c b/xpointer.c
index 4b4ac2ee..676c5105 100644
--- a/xpointer.c
+++ b/xpointer.c
@@ -85,7 +85,7 @@ xmlXPtrErrMemory(const char *extra)
*
* Handle a redefinition of attribute error
*/
-static void
+static void LIBXML_ATTR_FORMAT(3,0)
xmlXPtrErr(xmlXPathParserContextPtr ctxt, int error,
const char * msg, const xmlChar *extra)
{