diff options
author | mspector <mspector@google.com> | 2018-05-16 14:14:09 -0700 |
---|---|---|
committer | mspector <mspector@google.com> | 2018-05-16 14:58:03 -0700 |
commit | 9db46331873560e405ffc1ec79d32972bb0334c5 (patch) | |
tree | aff2f6e3e6a058639cbbbbc40a1c32fb86f16024 | |
parent | 4c141ad4f224526a833e13167cd2b42c8d099a74 (diff) | |
parent | 18890f471c420411aa3c989e104d090966ec9dbf (diff) | |
download | platform_external_libxml2-pie-dev.tar.gz platform_external_libxml2-pie-dev.tar.bz2 platform_external_libxml2-pie-dev.zip |
Merge commit '18890f471c420411aa3c989e104d090966ec9dbf' into libxml2pie-dev
Bug: 79662501
Test: manual - phone boots, xml parsing works
Change-Id: I7fd671deb249ea42de674f6c6b9c967f8b6556bf
74 files changed, 623 insertions, 625 deletions
diff --git a/.travis.yml b/.travis.yml index 67202897..da481433 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,12 +10,12 @@ matrix: # Try to emulate a C89 compiler on a POSIX system by disabling as many # GNU extensions as possible. - compiler: gcc - env: CFLAGS="-O2 -std=c89 -D_POSIX_C_SOURCE=200809L" + env: CFLAGS="-O2 -std=c89 -D_XOPEN_SOURCE=700 -Werror -Wno-error=unused-function" # clang with AddressSanitizer and UndefinedBehaviorSanitizer. - compiler: clang dist: trusty env: CONFIG="--without-python" - CFLAGS="-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=all" + CFLAGS="-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero,pointer-overflow -fno-sanitize-recover=all -Werror -Wno-error=unused-function -Wno-error=cast-align" UBSAN_OPTIONS=print_stacktrace=1 script: sh autogen.sh $CONFIG && make -j2 V=1 && make check git: diff --git a/CONTRIBUTING b/CONTRIBUTING new file mode 100644 index 00000000..6f7a9885 --- /dev/null +++ b/CONTRIBUTING @@ -0,0 +1,24 @@ +The current version of the code can be found in the GNOME Git Repository: + + https://git.gnome.org/browse/libxml2/ + +There's mirror on GitHub: + + https://github.com/GNOME/libxml2 + +Start discussions and send patches to the mailing list, or file a bug and +add a patch as attachment. + + https://mail.gnome.org/mailman/listinfo/xml + https://bugzilla.gnome.org/enter_bug.cgi?product=libxml2 + +Format patches with git-format-patch and use plain text attachments +if possible. + +All code must conform to C89 and pass the "make check" tests. Avoid +compiler warnings and add regression tests if possible. + +The .travis.yml file can be used to thoroughly check the build with strict +compiler flags, ASan and UBSan. Fork the libxml2 mirror on GitHub and set +up Travis to test the commits you make on your fork. + diff --git a/HACKING b/HACKING deleted file mode 100644 index 5d282947..00000000 --- a/HACKING +++ /dev/null @@ -1,37 +0,0 @@ -NOTE: - - the head of this module is package libxml-2 . There is incompatibilities - with the old libxml-1 headers. I posted on gnome-hackers a recipe to - change your code to compile with both, check it out ! Also read - http://xmlsoft.org/upgrade.html - - in the meantime the old 1.x code has been tagged with LIB_XML_1_BRANCH - extract this version and drop me a mail if you want me to take care of - the update of your module to libxml-2 <daniel@veillard.com> - - the 1.x branch has a separate commit policy, please check the HACKING - file for this branch - - Rules for commits on the gnome-xml module - ========================================= - - BEFORE READING FURTHER: DO NOT COMMIT DIRECTLY ! - - In the exceptional case where a serious breakage in this module -prevents other core projects from making progress, then feel free -to patch first and send mail afterward as long as the changes are limited. -Please keep in mind that a large part of my user base is on Windows, so -be careful with potential portability problems there. - -Otherwise, send me (veillard@redhat.com) a mail and if it's a bug -issue, register it at bugzilla.gnome.org (module libxml). I check both -my mail and the bug database on a regular basis. If you don't get an -answer within a week (which is highly unprobable) then commit your changes. -This simply mean that I'm on holliday or on the road. - - thanks in advance for following the rule, - -Daniel - -P.S.: Bjorn Reese, William Brack, Thomas Broyer, Igor Zlatkovic and - Aleksey Sanin get an exception for the send before commit rule - as well as John Fleck for the doc maintenance Send them mail if - I don't answer to request in a timely fashion - diff --git a/Makefile.am b/Makefile.am index 15f78e1b..9c630be4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,7 +8,7 @@ DIST_SUBDIRS = include . doc example python xstc AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include -AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS) +AM_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS) check_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \ testThreads testC14N testAutomata testRegexp \ @@ -191,7 +191,6 @@ testapi_SOURCES=testapi.c testapi_LDFLAGS = testapi_DEPENDENCIES = $(DEPS) testapi_LDADD= $(LDADDS) -testapi_CFLAGS = -Wno-unused-function runxmlconf_SOURCES=runxmlconf.c runxmlconf_LDFLAGS = diff --git a/README.cvs-commits b/README.cvs-commits index a4bd8416..9c7bdd0f 100644 --- a/README.cvs-commits +++ b/README.cvs-commits @@ -1,4 +1,4 @@ - Please read the HACKING file for instructions + Please read the CONTRIBUTING file for instructions Daniel diff --git a/bakefile/libxml2.bkl b/bakefile/libxml2.bkl index f314465e..dd6ce2c2 100644 --- a/bakefile/libxml2.bkl +++ b/bakefile/libxml2.bkl @@ -406,7 +406,6 @@ <!-- some other conditional defines -->
- <set var="ZLIB_DEF"><if cond="WITH_ZLIB=='1'">HAVE_ZLIB_H</if></set>
<set var="DEBUG_DEF"><if cond="BUILD=='debug'">_DEBUG</if></set>
<set var="DEBUG_DEF"><if cond="BUILD=='release'">NDEBUG</if></set>
@@ -2089,7 +2089,7 @@ xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes, xmlC14NErrParam("saving doc"); return (-1); } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if (compression < 0) compression = xmlGetCompressMode(); #endif diff --git a/configure.ac b/configure.ac index 8dbc56c0..370e2dee 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ AC_CANONICAL_HOST LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=9 -LIBXML_MICRO_VERSION=7 +LIBXML_MICRO_VERSION=8 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 @@ -389,18 +389,20 @@ dnl Checks for zlib library. WITH_ZLIB=0 if test "$with_zlib" = "no"; then - echo "Disabling compression support" + echo "Disabling zlib compression support" else - # 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]) + # Don't run pkg-config if with_zlib contains a path. + if test "x$Z_DIR" = "x"; then + # Try pkg-config first so that static linking works. + PKG_CHECK_MODULES([Z],[zlib], + [WITH_ZLIB=1], + [ ]) + fi - if test "x$have_libz" = "xno"; then + if test "$WITH_ZLIB" = "0"; then AC_CHECK_HEADERS(zlib.h, AC_CHECK_LIB(z, gzread,[ - have_libz=yes + WITH_ZLIB=1 if test "x${Z_DIR}" != "x"; then Z_CFLAGS="-I${Z_DIR}/include" Z_LIBS="-L${Z_DIR}/lib -lz" @@ -411,18 +413,8 @@ else 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 fi @@ -436,38 +428,30 @@ dnl Checks for lzma library. WITH_LZMA=0 if test "$with_lzma" = "no"; then - echo "Disabling compression support" + echo "Disabling lzma compression support" else - # Try pkg-config first so that static linking works. - # If this succeeeds, we ignore the WITH_LZMA directory. - PKG_CHECK_MODULES([LZMA],[liblzma], - [have_liblzma=yes], - [have_liblzma=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_liblzma" = "xno"; then - AC_CHECK_HEADERS(lzma.h, + # Don't run pkg-config if with_lzma contains a path. + if test "x$LZMA_DIR" = "x"; then + # Try pkg-config first so that static linking works. + PKG_CHECK_MODULES([LZMA],[liblzma], + [WITH_LZMA=1], + [ ]) + fi + + # 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 "$WITH_LZMA" = "0"; then + AC_CHECK_HEADERS(lzma.h, AC_CHECK_LIB(lzma, lzma_code,[ - have_liblzma=yes + WITH_LZMA=1 if test "x${LZMA_DIR}" != "x"; then LZMA_CFLAGS="-I${LZMA_DIR}/include" LZMA_LIBS="-L${LZMA_DIR}/lib -llzma" else LZMA_LIBS="-llzma" - fi], - [have_liblzma=no]) - ) - else - # we still need to check for lzma,h header - AC_CHECK_HEADERS([lzma.h]) - fi - - # Found the library via either method? - if test "x$have_liblzma" = "xyes"; then - AC_DEFINE([HAVE_LIBLZMA], [1], [Have compression library]) - WITH_LZMA=1 + fi]) + ) fi fi @@ -495,12 +479,8 @@ AC_CHECK_HEADERS([sys/types.h]) AC_CHECK_HEADERS([stdint.h]) AC_CHECK_HEADERS([inttypes.h]) AC_CHECK_HEADERS([time.h]) -AC_CHECK_HEADERS([ansidecl.h]) -AC_CHECK_HEADERS([ieeefp.h]) -AC_CHECK_HEADERS([nan.h]) AC_CHECK_HEADERS([math.h]) AC_CHECK_HEADERS([limits.h]) -AC_CHECK_HEADERS([fp_class.h]) AC_CHECK_HEADERS([float.h]) AC_CHECK_HEADERS([stdlib.h]) AC_CHECK_HEADERS([sys/socket.h], [], [], @@ -557,10 +537,8 @@ echo Checking libraries dnl Checks for library functions. AC_FUNC_STRFTIME -AC_CHECK_FUNCS(strdup strndup strerror) -AC_CHECK_FUNCS(finite isnand fp_class class fpclass) AC_CHECK_FUNCS(strftime localtime gettimeofday ftime) -AC_CHECK_FUNCS(stat _stat signal) +AC_CHECK_FUNCS(stat signal) AC_CHECK_FUNCS(rand rand_r srand time) AC_CHECK_FUNCS(isascii mmap munmap putenv) @@ -771,13 +749,13 @@ dnl if test "${GCC}" != "yes" ; then case "${host}" in hppa*-*-hpux* ) - CFLAGS="${CFLAGS} -Wp,-H30000" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000" ;; *-dec-osf* ) - CFLAGS="${CFLAGS} -ieee" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee" ;; alpha*-*-linux* ) - CFLAGS="${CFLAGS} -ieee" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee" ;; esac else @@ -787,19 +765,19 @@ else # Not activated by default because this inflates the code size # Used to allow propagation of C++ exceptions through the library # - CFLAGS="${CFLAGS} -fexceptions" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions" fi # warnings we'd like to see - 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" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -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" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args -Wno-array-bounds" case "${host}" in alpha*-*-linux* ) - CFLAGS="${CFLAGS} -mieee" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee" ;; alpha*-*-osf* ) - CFLAGS="${CFLAGS} -mieee" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee" ;; esac fi @@ -812,13 +790,13 @@ case ${host} in ;; *-*-mingw* | *-*-cygwin* | *-*-msvc* ) # If the host is Windows, and shared libraries are disabled, we - # need to add -DLIBXML_STATIC to CFLAGS in order for linking to + # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to # work properly (without it, xmlexports.h would force the use of # DLL imports, which obviously aren't present in a static # library). if test "x$enable_shared" = "xno"; then XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC" - CFLAGS="$CFLAGS -DLIBXML_STATIC" + EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC" fi ;; esac @@ -1010,7 +988,7 @@ if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \ fi fi if test "${GCC}" = "yes" ; then - 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" + EXTRA_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 @@ -1680,14 +1658,14 @@ AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscan if test "$with_coverage" = "yes" -a "${GCC}" = "yes" then echo Enabling code coverage for GCC - CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" + EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage" LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage" else echo Disabling code coverage for GCC fi AC_SUBST(CPPFLAGS) -AC_SUBST(CFLAGS) +AC_SUBST(EXTRA_CFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(XML_CFLAGS) diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html index 75378fce..f7783272 100644 --- a/doc/APIchunk0.html +++ b/doc/APIchunk0.html @@ -223,8 +223,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br /> <a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br /> </dd><dt>Based</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>BasicLatin</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a><br /> </dd><dt>Basically</dt><dd><a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br /> </dd><dt>Before</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br /> diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html index de376f70..d7404f8f 100644 --- a/doc/APIchunk12.html +++ b/doc/APIchunk12.html @@ -865,8 +865,6 @@ A:link, A:visited, A:active { text-decoration: underline } </dd><dt>crossed</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br /> <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br /> </dd><dt>cshema</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br /> -</dd><dt>ctrio</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>ctxt</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br /> <a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br /> <a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br /> diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html index a87a2b43..5889ebf7 100644 --- a/doc/APIchunk13.html +++ b/doc/APIchunk13.html @@ -341,8 +341,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br /> <a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br /> <a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>detected</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ERROR">CHECK_ERROR</a><br /> <a href="html/libxml-xpathInternals.html#CHECK_ERROR0">CHECK_ERROR0</a><br /> <a href="html/libxml-SAX.html#endDocument">endDocument</a><br /> diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html index 90b82492..835465aa 100644 --- a/doc/APIchunk14.html +++ b/doc/APIchunk14.html @@ -210,6 +210,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br /> <a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br /> <a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br /> +<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br /> <a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br /> <a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br /> <a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br /> diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html index df2307d6..e7e236d5 100644 --- a/doc/APIchunk16.html +++ b/doc/APIchunk16.html @@ -340,8 +340,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br /> <a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br /> <a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>human-readable</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br /> </dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a> <a href="APIchunk1.html">C-C</a> diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html index 99783308..e6647e2e 100644 --- a/doc/APIchunk17.html +++ b/doc/APIchunk17.html @@ -513,9 +513,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br /> <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br /> </dd><dt>invited</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br /> -</dd><dt>isinf</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> </dd><dt>isn</dt><dd><a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br /> -</dd><dt>isnan</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>issue</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br /> </dd><dt>issued</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br /> </dd><dt>issues</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br /> diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html index fea13d2b..91566f7c 100644 --- a/doc/APIchunk18.html +++ b/doc/APIchunk18.html @@ -76,6 +76,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br /> <a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br /> <a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br /> +<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br /> <a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br /> </dd><dt>keyword</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br /> </dd><dt>kill</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br /> diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html index 8a7d8f7f..bb6c1415 100644 --- a/doc/APIchunk2.html +++ b/doc/APIchunk2.html @@ -163,6 +163,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br /> <a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br /> <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br /> +<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br /> </dd><dt>Douglas</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br /> </dd><dt>Draft</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br /> </dd><dt>DtD</dt><dd><a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br /> diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html index d16bfcf9..3559b08b 100644 --- a/doc/APIchunk20.html +++ b/doc/APIchunk20.html @@ -146,8 +146,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br /> </dd><dt>nested</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br /> <a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br /> -</dd><dt>net</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>network</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br /> <a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br /> <a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br /> @@ -254,6 +252,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br /> </dd><dt>note</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br /> <a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br /> +</dd><dt>nothing</dt><dd><a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br /> </dd><dt>notice</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br /> <a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br /> </dd><dt>now</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br /> diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html index 2f200185..ec9547bb 100644 --- a/doc/APIchunk22.html +++ b/doc/APIchunk22.html @@ -210,8 +210,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br /> <a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br /> <a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br /> -</dd><dt>portable</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>pos</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br /> </dd><dt>position:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br /> </dd><dt>positioned</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br /> @@ -471,8 +469,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br /> <a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br /> </dd><dt>prohibited</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br /> -</dd><dt>projects</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>prolog</dt><dd><a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br /> </dd><dt>prompt</dt><dd><a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br /> </dd><dt>proper</dt><dd><a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br /> diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html index 5b179551..64aac67f 100644 --- a/doc/APIchunk24.html +++ b/doc/APIchunk24.html @@ -493,8 +493,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br /> </dd><dt>sourceDoc</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br /> <a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br /> -</dd><dt>sourceforge</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>spaces</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br /> <a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br /> <a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br /> diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html index dec65ba5..71ba3bdb 100644 --- a/doc/APIchunk25.html +++ b/doc/APIchunk25.html @@ -343,8 +343,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br /> </dd><dt>trio</dt><dd><a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br /> <a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>troubles</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br /> <a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br /> </dd><dt>try</dt><dd><a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br /> diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html index 30184565..c3f49b20 100644 --- a/doc/APIchunk28.html +++ b/doc/APIchunk28.html @@ -198,6 +198,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br /> <a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br /> <a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br /> +<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br /> <a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br /> <a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br /> <a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br /> diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html index d26883bb..6fe8261a 100644 --- a/doc/APIchunk4.html +++ b/doc/APIchunk4.html @@ -295,7 +295,6 @@ A:link, A:visited, A:active { text-decoration: underline } </dd><dt>Normalization</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br /> </dd><dt>Normalization:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br /> </dd><dt>Not</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br /> -</dd><dt>NotaNumber</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>Notation</dt><dd><a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br /> <a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br /> <a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br /> diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html index 44f5d02a..98da499d 100644 --- a/doc/APIchunk5.html +++ b/doc/APIchunk5.html @@ -225,8 +225,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br /> <a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br /> <a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br /> -<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br /> </dd><dt>Proxy</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br /> <a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br /> </dd><dt>Proxy-Authenticate</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br /> diff --git a/doc/APIfiles.html b/doc/APIfiles.html index 2252a6b0..8c29c067 100644 --- a/doc/APIfiles.html +++ b/doc/APIfiles.html @@ -340,7 +340,8 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br /> <a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br /> <a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br /> -</p><h2><a name="encoding" id="encoding">Module encoding</a>:</h2><p><a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br /> +</p><h2><a name="encoding" id="encoding">Module encoding</a>:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br /> +<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br /> <a href="html/libxml-encoding.html#XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a><br /> <a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a><br /> <a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a><br /> @@ -493,6 +494,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br /> <a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br /> <a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br /> +<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br /> <a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br /> <a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br /> <a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br /> diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html index caa0a870..c1d172dc 100644 --- a/doc/APIfunctions.html +++ b/doc/APIfunctions.html @@ -97,8 +97,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br /> <a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br /> </p><h2>Type const void *:</h2><p><a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br /> -<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br /> -<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br /> <a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br /> </p><h2>Type const xlinkHRef:</h2><p><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br /> </p><h2>Type const xlinkHRef *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br /> @@ -249,6 +247,9 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br /> <a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br /> <a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br /> +<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br /> +<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br /> +<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br /> <a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br /> <a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br /> <a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br /> @@ -260,6 +261,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br /> <a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br /> <a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br /> +<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br /> <a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br /> <a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br /> <a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br /> @@ -772,6 +774,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br /> <a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br /> <a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br /> +<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br /> <a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br /> <a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br /> <a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br /> @@ -795,7 +798,10 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br /> <a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br /> <a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br /> +<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br /> <a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br /> +<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br /> +<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br /> <a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br /> <a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br /> <a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br /> @@ -1044,9 +1050,6 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br /> <a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br /> <a href="html/libxml-parserInternals.html#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a><br /> -<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br /> -<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br /> -<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br /> <a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br /> <a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br /> <a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br /> diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html index cdde358d..a77be6d4 100644 --- a/doc/APIsymbols.html +++ b/doc/APIsymbols.html @@ -40,7 +40,8 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-HTMLparser.html#HTML_REQUIRED">HTML_REQUIRED</a><br /> <a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br /> <a href="html/libxml-HTMLparser.html#HTML_VALID">HTML_VALID</a><br /> -</p><h2>Letter I:</h2><p><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br /> +</p><h2>Letter I:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br /> +<a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br /> <a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br /> <a href="html/libxml-parserInternals.html#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a><br /> <a href="html/libxml-parserInternals.html#IS_ASCII_LETTER">IS_ASCII_LETTER</a><br /> @@ -2130,6 +2131,7 @@ A:link, A:visited, A:active { text-decoration: underline } <a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br /> <a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br /> <a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br /> +<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br /> <a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br /> <a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br /> <a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br /> diff --git a/doc/devhelp/libxml2-encoding.html b/doc/devhelp/libxml2-encoding.html index 261e50a6..b11fbfbb 100644 --- a/doc/devhelp/libxml2-encoding.html +++ b/doc/devhelp/libxml2-encoding.html @@ -43,7 +43,8 @@ <p>Author(s): Daniel Veillard </p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> - <pre class="synopsis">typedef struct _uconv_t <a href="#uconv_t">uconv_t</a>; + <pre class="synopsis">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>; +typedef struct _uconv_t <a href="#uconv_t">uconv_t</a>; typedef enum <a href="#xmlCharEncoding">xmlCharEncoding</a>; typedef struct _xmlCharEncodingHandler <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a>; typedef <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a href="#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>; @@ -76,9 +77,16 @@ const char * <a href="#xmlGetCharEncodingName">xmlGetCharEncodingName</a> (<a hr <div class="refsect1" lang="en"> <h2>Details</h2> <div class="refsect2" lang="en"> + <div class="refsect2" lang="en"><h3><a name="ICU_PIVOT_BUF_SIZE">Macro </a>ICU_PIVOT_BUF_SIZE</h3><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>; +</pre><p/> +</div> + <hr/> <div class="refsect2" lang="en"><h3><a name="uconv_t">Structure </a>uconv_t</h3><pre class="programlisting">struct _uconv_t { UConverter * uconv : for conversion between an encoding and UTF-16 UConverter * utf8 : for conversion between UTF-8 and UTF-16 + UCharpivot_buf[ICU_PIVOT_BUF_SIZE] pivot_buf + UChar * pivot_source + UChar * pivot_target } uconv_t; </pre><p/> </div> diff --git a/doc/devhelp/libxml2-hash.html b/doc/devhelp/libxml2-hash.html index b0de53db..e2dd7abd 100644 --- a/doc/devhelp/libxml2-hash.html +++ b/doc/devhelp/libxml2-hash.html @@ -55,8 +55,8 @@ int <a href="#xmlHashUpdateEntry">xmlHashUpdateEntry</a> (<a href="libxml2-hash void * <a href="#xmlHashQLookup3">xmlHashQLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3); void * <a href="#xmlHashQLookup2">xmlHashQLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2); void <a href="#xmlHashScan3">xmlHashScan3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br/> void * data); -typedef void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br/> void * data, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); -typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); +typedef void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); +typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreate">xmlHashCreate</a> (int size); void <a href="#xmlHashFree">xmlHashFree</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f); void * <a href="#xmlHashLookup">xmlHashLookup</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); @@ -67,10 +67,11 @@ int <a href="#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a> (<a href="libxml2-ha <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopy">xmlHashCopy</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> f); void <a href="#xmlHashScanFull3">xmlHashScanFull3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br/> void * data); int <a href="#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f); +void <a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a> (void * entry, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); void * <a href="#xmlHashLookup3">xmlHashLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3); void * <a href="#xmlHashLookup2">xmlHashLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2); int <a href="#xmlHashRemoveEntry">xmlHashRemoveEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f); -typedef void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); +typedef void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); int <a href="#xmlHashAddEntry2">xmlHashAddEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> void * userdata); int <a href="#xmlHashAddEntry3">xmlHashAddEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata); int <a href="#xmlHashSize">xmlHashSize</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table); @@ -96,15 +97,15 @@ The content of this structure is not made public by the API. </pre><p/> </div> <hr/> - <div class="refsect2" lang="en"><h3><a name="xmlHashCopier"/>Function type xmlHashCopier</h3><pre class="programlisting">void * xmlHashCopier (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/> + <div class="refsect2" lang="en"><h3><a name="xmlHashCopier"/>Function type xmlHashCopier</h3><pre class="programlisting">void * xmlHashCopier (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/> </pre><p>Callback to copy data from a hash.</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div></div> <hr/> - <div class="refsect2" lang="en"><h3><a name="xmlHashDeallocator"/>Function type xmlHashDeallocator</h3><pre class="programlisting">void xmlHashDeallocator (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/> + <div class="refsect2" lang="en"><h3><a name="xmlHashDeallocator"/>Function type xmlHashDeallocator</h3><pre class="programlisting">void xmlHashDeallocator (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/> </pre><p>Callback to free data from a hash.</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div> <hr/> - <div class="refsect2" lang="en"><h3><a name="xmlHashScanner"/>Function type xmlHashScanner</h3><pre class="programlisting">void xmlHashScanner (void * payload, <br/> void * data, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/> + <div class="refsect2" lang="en"><h3><a name="xmlHashScanner"/>Function type xmlHashScanner</h3><pre class="programlisting">void xmlHashScanner (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/> </pre><p>Callback when scanning data in a hash with the simple scanner.</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scannner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div> <hr/> @@ -136,6 +137,10 @@ The content of this structure is not made public by the API. </pre><p>Create a new <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</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 of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div></div> <hr/> + <div class="refsect2" lang="en"><h3><a name="xmlHashDefaultDeallocator"/>xmlHashDefaultDeallocator ()</h3><pre class="programlisting">void xmlHashDefaultDeallocator (void * entry, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/> +</pre><p>Free a hash table entry with xmlFree.</p> +<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div></div> + <hr/> <div class="refsect2" lang="en"><h3><a name="xmlHashFree"/>xmlHashFree ()</h3><pre class="programlisting">void xmlHashFree (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/> </pre><p>Free the hash @table 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>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for items in the hash</td></tr></tbody></table></div></div> diff --git a/doc/devhelp/libxml2-list.html b/doc/devhelp/libxml2-list.html index 8019c23e..0ae2f11b 100644 --- a/doc/devhelp/libxml2-list.html +++ b/doc/devhelp/libxml2-list.html @@ -55,14 +55,14 @@ void <a href="#xmlListMerge">xmlListMerge</a> (<a href="libxml2-list.html#xmlL <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListCreate">xmlListCreate</a> (<a href="libxml2-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br/> <a href="libxml2-list.html#xmlListDataCompare">xmlListDataCompare</a> compare); <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListDup">xmlListDup</a> (const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old); int <a href="#xmlListRemoveLast">xmlListRemoveLast</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data); -void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user); +void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user); int <a href="#xmlListRemoveAll">xmlListRemoveAll</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data); int <a href="#xmlListCopy">xmlListCopy</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> cur, <br/> const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old); void <a href="#xmlListPopFront">xmlListPopFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); void * <a href="#xmlListSearch">xmlListSearch</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data); -typedef int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br/> const void * user); +typedef int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br/> void * user); int <a href="#xmlListRemoveFirst">xmlListRemoveFirst</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data); -void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user); +void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user); void * <a href="#xmlLinkGetData">xmlLinkGetData</a> (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk); void <a href="#xmlListClear">xmlListClear</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); int <a href="#xmlListAppend">xmlListAppend</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data); @@ -112,7 +112,7 @@ The content of this structure is not made public by the API. </pre><p>Callback function used to free data from a list.</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>lk</tt></i>:</span></td><td>the data to deallocate</td></tr></tbody></table></div></div> <hr/> - <div class="refsect2" lang="en"><h3><a name="xmlListWalker"/>Function type xmlListWalker</h3><pre class="programlisting">int xmlListWalker (const void * data, <br/> const void * user)<br/> + <div class="refsect2" lang="en"><h3><a name="xmlListWalker"/>Function type xmlListWalker</h3><pre class="programlisting">int xmlListWalker (const void * data, <br/> void * user)<br/> </pre><p>Callback function used when walking a list with xmlListWalk().</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div></div> <hr/> @@ -200,7 +200,7 @@ The content of this structure is not made public by the API. </pre><p>Search the list in reverse order for an existing value of @data</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div></div> <hr/> - <div class="refsect2" lang="en"><h3><a name="xmlListReverseWalk"/>xmlListReverseWalk ()</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user)<br/> + <div class="refsect2" lang="en"><h3><a name="xmlListReverseWalk"/>xmlListReverseWalk ()</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user)<br/> </pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div> <hr/> @@ -216,7 +216,7 @@ The content of this structure is not made public by the API. </pre><p>Sort all the elements in the list</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div> <hr/> - <div class="refsect2" lang="en"><h3><a name="xmlListWalk"/>xmlListWalk ()</h3><pre class="programlisting">void xmlListWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user)<br/> + <div class="refsect2" lang="en"><h3><a name="xmlListWalk"/>xmlListWalk ()</h3><pre class="programlisting">void xmlListWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user)<br/> </pre><p>Walk all the element of the first from first to last and apply the walker function to it</p> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div> <hr/> diff --git a/doc/devhelp/libxml2-xpath.html b/doc/devhelp/libxml2-xpath.html index 6a40682e..edf76439 100644 --- a/doc/devhelp/libxml2-xpath.html +++ b/doc/devhelp/libxml2-xpath.html @@ -501,15 +501,15 @@ The content of this structure is not made public by the API. <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the object to free</td></tr></tbody></table></div></div> <hr/> <div class="refsect2" lang="en"><h3><a name="xmlXPathInit"/>xmlXPathInit ()</h3><pre class="programlisting">void xmlXPathInit (void)<br/> -</pre><p>Initialize the XPath environment</p> +</pre><p>Initialize the XPath environment Does nothing but must be kept as public function.</p> </div> <hr/> <div class="refsect2" lang="en"><h3><a name="xmlXPathIsInf"/>xmlXPathIsInf ()</h3><pre class="programlisting">int xmlXPathIsInf (double val)<br/> -</pre><p>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</p> -<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div></div> +</pre><p/> +<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div></div> <hr/> <div class="refsect2" lang="en"><h3><a name="xmlXPathIsNaN"/>xmlXPathIsNaN ()</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br/> -</pre><p>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</p> +</pre><p/> <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div></div> <hr/> <div class="refsect2" lang="en"><h3><a name="xmlXPathNewContext"/>xmlXPathNewContext ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPathNewContext (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/> diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp index fbd3ad4a..575b222a 100644 --- a/doc/devhelp/libxml2.devhelp +++ b/doc/devhelp/libxml2.devhelp @@ -70,6 +70,7 @@ <function name="HTML_PI_NODE" link="libxml2-HTMLtree.html#HTML_PI_NODE"/> <function name="HTML_PRESERVE_NODE" link="libxml2-HTMLtree.html#HTML_PRESERVE_NODE"/> <function name="HTML_TEXT_NODE" link="libxml2-HTMLtree.html#HTML_TEXT_NODE"/> + <function name="ICU_PIVOT_BUF_SIZE" link="libxml2-encoding.html#ICU_PIVOT_BUF_SIZE"/> <function name="INPUT_CHUNK" link="libxml2-parserInternals.html#INPUT_CHUNK"/> <function name="INVALID_SOCKET" link="libxml2-nanoftp.html#INVALID_SOCKET"/> <function name="IS_ASCII_DIGIT" link="libxml2-parserInternals.html#IS_ASCII_DIGIT"/> @@ -2389,6 +2390,7 @@ <function name="xmlHashCopy ()" link="libxml2-hash.html#xmlHashCopy"/> <function name="xmlHashCreate ()" link="libxml2-hash.html#xmlHashCreate"/> <function name="xmlHashCreateDict ()" link="libxml2-hash.html#xmlHashCreateDict"/> + <function name="xmlHashDefaultDeallocator ()" link="libxml2-hash.html#xmlHashDefaultDeallocator"/> <function name="xmlHashFree ()" link="libxml2-hash.html#xmlHashFree"/> <function name="xmlHashLookup ()" link="libxml2-hash.html#xmlHashLookup"/> <function name="xmlHashLookup2 ()" link="libxml2-hash.html#xmlHashLookup2"/> diff --git a/doc/html/libxml-encoding.html b/doc/html/libxml-encoding.html index 70f56f81..0ebfb149 100644 --- a/doc/html/libxml-encoding.html +++ b/doc/html/libxml-encoding.html @@ -10,7 +10,7 @@ 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>Module encoding from 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>Module encoding from 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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-dict.html">dict</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-entities.html">entities</a></th><td><a accesskey="n" href="libxml-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#uconv_t">uconv_t</a><br />struct _uconv_t + </style><title>Module encoding from 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>Module encoding from 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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-dict.html">dict</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-entities.html">entities</a></th><td><a accesskey="n" href="libxml-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a></pre><pre class="programlisting">Structure <a href="#uconv_t">uconv_t</a><br />struct _uconv_t </pre><pre class="programlisting">Enum <a href="#xmlCharEncoding">xmlCharEncoding</a> </pre><pre class="programlisting">Structure <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a><br />struct _xmlCharEncodingHandler </pre><pre class="programlisting">Typedef <a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a name="xmlCharEncodingHandlerPtr" id="xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> @@ -40,9 +40,13 @@ int <a href="#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> (unsigned <pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> <a href="#xmlParseCharEncoding">xmlParseCharEncoding</a> (const char * name)</pre> <pre class="programlisting">void <a href="#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a> (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)</pre> <h2>Description</h2> +<h3><a name="ICU_PIVOT_BUF_SIZE" id="ICU_PIVOT_BUF_SIZE"></a>Macro: ICU_PIVOT_BUF_SIZE</h3><pre>#define ICU_PIVOT_BUF_SIZE</pre><p></p> <h3><a name="uconv_t" id="uconv_t">Structure uconv_t</a></h3><pre class="programlisting">Structure uconv_t<br />struct _uconv_t { UConverter * uconv : for conversion between an encoding and UConverter * utf8 : for conversion between UTF-8 and UTF-16 + UCharpivot_buf[ICU_PIVOT_BUF_SIZE] pivot_buf + UChar * pivot_source + UChar * pivot_target }</pre><h3>Enum <a name="xmlCharEncoding" id="xmlCharEncoding">xmlCharEncoding</a></h3><pre class="programlisting">Enum xmlCharEncoding { <a name="XML_CHAR_ENCODING_ERROR" id="XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a> = -1 : No char encoding detected <a name="XML_CHAR_ENCODING_NONE" id="XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> = 0 : No char encoding detected diff --git a/doc/html/libxml-hash.html b/doc/html/libxml-hash.html index f3e4a4a6..021adb8f 100644 --- a/doc/html/libxml-hash.html +++ b/doc/html/libxml-hash.html @@ -17,14 +17,15 @@ The content of this structure is not made public by the API. <pre class="programlisting">int <a href="#xmlHashAddEntry2">xmlHashAddEntry2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> void * userdata)</pre> <pre class="programlisting">int <a href="#xmlHashAddEntry3">xmlHashAddEntry3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata)</pre> <pre class="programlisting">Function type: <a href="#xmlHashCopier">xmlHashCopier</a> -void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) +void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) </pre> <pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopy">xmlHashCopy</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)</pre> <pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreate">xmlHashCreate</a> (int size)</pre> <pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreateDict">xmlHashCreateDict</a> (int size, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre> <pre class="programlisting">Function type: <a href="#xmlHashDeallocator">xmlHashDeallocator</a> -void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) +void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) </pre> +<pre class="programlisting">void <a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a> (void * entry, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre> <pre class="programlisting">void <a href="#xmlHashFree">xmlHashFree</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre> <pre class="programlisting">void * <a href="#xmlHashLookup">xmlHashLookup</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre> <pre class="programlisting">void * <a href="#xmlHashLookup2">xmlHashLookup2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2)</pre> @@ -40,7 +41,7 @@ void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br <pre class="programlisting">void <a href="#xmlHashScanFull">xmlHashScanFull</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)</pre> <pre class="programlisting">void <a href="#xmlHashScanFull3">xmlHashScanFull3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)</pre> <pre class="programlisting">Function type: <a href="#xmlHashScanner">xmlHashScanner</a> -void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br /> void * data, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) +void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) </pre> <pre class="programlisting">Function type: <a href="#xmlHashScannerFull">xmlHashScannerFull</a> void <a href="#xmlHashScannerFull">xmlHashScannerFull</a> (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3) @@ -60,7 +61,7 @@ The content of this structure is not made public by the API. <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</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>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashAddEntry3" id="xmlHashAddEntry3"></a>Function: xmlHashAddEntry3</h3><pre class="programlisting">int xmlHashAddEntry3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata)<br /> </pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</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>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashCopier" id="xmlHashCopier"></a>Function type: xmlHashCopier</h3><pre class="programlisting">Function type: xmlHashCopier -void * xmlHashCopier (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) +void * xmlHashCopier (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) </pre><p>Callback to copy data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div><br /> <h3><a name="xmlHashCopy" id="xmlHashCopy"></a>Function: xmlHashCopy</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCopy (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)<br /> </pre><p>Scan the hash @table and applied @f to each value.</p> @@ -69,9 +70,11 @@ void * xmlHashCopier (void * payload, <br /> <a href="libxml-xmlstring.ht <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 of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashCreateDict" id="xmlHashCreateDict"></a>Function: xmlHashCreateDict</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreateDict (int size, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br /> </pre><p>Create a new <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</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 of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashDeallocator" id="xmlHashDeallocator"></a>Function type: xmlHashDeallocator</h3><pre class="programlisting">Function type: xmlHashDeallocator -void xmlHashDeallocator (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) +void xmlHashDeallocator (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) </pre><p>Callback to free data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br /> -<h3><a name="xmlHashFree" id="xmlHashFree"></a>Function: xmlHashFree</h3><pre class="programlisting">void xmlHashFree (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br /> +<h3><a name="xmlHashDefaultDeallocator" id="xmlHashDefaultDeallocator"></a>Function: xmlHashDefaultDeallocator</h3><pre class="programlisting">void xmlHashDefaultDeallocator (void * entry, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br /> +</pre><p>Free a hash table entry with xmlFree.</p> +<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div><h3><a name="xmlHashFree" id="xmlHashFree"></a>Function: xmlHashFree</h3><pre class="programlisting">void xmlHashFree (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br /> </pre><p>Free the hash @table 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>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for items in the hash</td></tr></tbody></table></div><h3><a name="xmlHashLookup" id="xmlHashLookup"></a>Function: xmlHashLookup</h3><pre class="programlisting">void * xmlHashLookup (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br /> </pre><p>Find the userdata specified by the @name.</p> @@ -100,7 +103,7 @@ void xmlHashDeallocator (void * payload, <br /> <a href="libxml-xmlstring. <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanFull3" id="xmlHashScanFull3"></a>Function: xmlHashScanFull3</h3><pre class="programlisting">void xmlHashScanFull3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)<br /> </pre><p>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanner" id="xmlHashScanner"></a>Function type: xmlHashScanner</h3><pre class="programlisting">Function type: xmlHashScanner -void xmlHashScanner (void * payload, <br /> void * data, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) +void xmlHashScanner (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name) </pre><p>Callback when scanning data in a hash with the simple scanner.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scannner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br /> <h3><a name="xmlHashScannerFull" id="xmlHashScannerFull"></a>Function type: xmlHashScannerFull</h3><pre class="programlisting">Function type: xmlHashScannerFull void xmlHashScannerFull (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3) diff --git a/doc/html/libxml-list.html b/doc/html/libxml-list.html index f6b6c5b5..1738afc7 100644 --- a/doc/html/libxml-list.html +++ b/doc/html/libxml-list.html @@ -43,13 +43,13 @@ void <a href="#xmlListDeallocator">xmlListDeallocator</a> (<a href="libxml-list <pre class="programlisting">int <a href="#xmlListRemoveLast">xmlListRemoveLast</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre> <pre class="programlisting">void <a href="#xmlListReverse">xmlListReverse</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre> <pre class="programlisting">void * <a href="#xmlListReverseSearch">xmlListReverseSearch</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre> -<pre class="programlisting">void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)</pre> +<pre class="programlisting">void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)</pre> <pre class="programlisting">void * <a href="#xmlListSearch">xmlListSearch</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre> <pre class="programlisting">int <a href="#xmlListSize">xmlListSize</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre> <pre class="programlisting">void <a href="#xmlListSort">xmlListSort</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre> -<pre class="programlisting">void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)</pre> +<pre class="programlisting">void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)</pre> <pre class="programlisting">Function type: <a href="#xmlListWalker">xmlListWalker</a> -int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br /> const void * user) +int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br /> void * user) </pre> <h2>Description</h2> <h3><a name="xmlLink" id="xmlLink">Structure xmlLink</a></h3><pre class="programlisting">Structure xmlLink<br />struct _xmlLink { @@ -104,7 +104,7 @@ void xmlListDeallocator (<a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> l </pre><p>Reverse the order of the elements in the list</p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListReverseSearch" id="xmlListReverseSearch"></a>Function: xmlListReverseSearch</h3><pre class="programlisting">void * xmlListReverseSearch (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br /> </pre><p>Search the list in reverse order for an existing value of @data</p> -<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListReverseWalk" id="xmlListReverseWalk"></a>Function: xmlListReverseWalk</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)<br /> +<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListReverseWalk" id="xmlListReverseWalk"></a>Function: xmlListReverseWalk</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)<br /> </pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListSearch" id="xmlListSearch"></a>Function: xmlListSearch</h3><pre class="programlisting">void * xmlListSearch (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br /> </pre><p>Search the list for an existing value of @data</p> @@ -112,9 +112,9 @@ void xmlListDeallocator (<a href="libxml-list.html#xmlLinkPtr">xmlLinkPtr</a> l </pre><p>Get the number of elements in the list</p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the list or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlListSort" id="xmlListSort"></a>Function: xmlListSort</h3><pre class="programlisting">void xmlListSort (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br /> </pre><p>Sort all the elements in the list</p> -<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListWalk" id="xmlListWalk"></a>Function: xmlListWalk</h3><pre class="programlisting">void xmlListWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)<br /> +<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListWalk" id="xmlListWalk"></a>Function: xmlListWalk</h3><pre class="programlisting">void xmlListWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)<br /> </pre><p>Walk all the element of the first from first to last and apply the walker function to it</p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListWalker" id="xmlListWalker"></a>Function type: xmlListWalker</h3><pre class="programlisting">Function type: xmlListWalker -int xmlListWalker (const void * data, <br /> const void * user) +int xmlListWalker (const void * data, <br /> void * user) </pre><p>Callback function used when walking a list with xmlListWalk().</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div><br /> <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-xpath.html b/doc/html/libxml-xpath.html index d22ab9f0..482a983f 100644 --- a/doc/html/libxml-xpath.html +++ b/doc/html/libxml-xpath.html @@ -293,11 +293,11 @@ void xmlXPathEvalFunc (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xml void xmlXPathFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs) </pre><p>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</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 XPath interprestation context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><br /> <h3><a name="xmlXPathInit" id="xmlXPathInit"></a>Function: xmlXPathInit</h3><pre class="programlisting">void xmlXPathInit (void)<br /> -</pre><p>Initialize the XPath environment</p> +</pre><p>Initialize the XPath environment Does nothing but must be kept as public function.</p> <h3><a name="xmlXPathIsInf" id="xmlXPathIsInf"></a>Function: xmlXPathIsInf</h3><pre class="programlisting">int xmlXPathIsInf (double val)<br /> -</pre><p>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</p> -<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIsNaN" id="xmlXPathIsNaN"></a>Function: xmlXPathIsNaN</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br /> -</pre><p>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</p> +</pre><p></p> +<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIsNaN" id="xmlXPathIsNaN"></a>Function: xmlXPathIsNaN</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br /> +</pre><p></p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathNewContext" id="xmlXPathNewContext"></a>Function: xmlXPathNewContext</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPathNewContext (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br /> </pre><p>Create a new <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a></p> <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a> just allocated. The caller will need to free it.</td></tr></tbody></table></div><h3><a name="xmlXPathNodeEval" id="xmlXPathNodeEval"></a>Function: xmlXPathNodeEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNodeEval (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br /> diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml index ab74ee07..9cf6c72e 100644 --- a/doc/libxml2-api.xml +++ b/doc/libxml2-api.xml @@ -390,6 +390,7 @@ <summary>interface for the encoding conversion functions</summary> <description>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </description> <author>Daniel Veillard </author> + <exports symbol='ICU_PIVOT_BUF_SIZE' type='macro'/> <exports symbol='XML_CHAR_ENCODING_UCS4LE' type='enum'/> <exports symbol='XML_CHAR_ENCODING_ERROR' type='enum'/> <exports symbol='XML_CHAR_ENCODING_8859_5' type='enum'/> @@ -573,6 +574,7 @@ <exports symbol='xmlHashCopy' type='function'/> <exports symbol='xmlHashScanFull3' type='function'/> <exports symbol='xmlHashUpdateEntry3' type='function'/> + <exports symbol='xmlHashDefaultDeallocator' type='function'/> <exports symbol='xmlHashLookup3' type='function'/> <exports symbol='xmlHashLookup2' type='function'/> <exports symbol='xmlHashRemoveEntry' type='function'/> @@ -3878,6 +3880,8 @@ <macro name='HTML_TEXT_NODE' file='HTMLtree'> <info>Macro. A text node in a HTML document is really implemented the same way as a text node in an XML document.</info> </macro> + <macro name='ICU_PIVOT_BUF_SIZE' file='encoding'> + </macro> <macro name='INPUT_CHUNK' file='parserInternals'> <info>The parser tries to always have that amount of input ready. One of the point is providing context when reporting errors.</info> </macro> @@ -5961,6 +5965,9 @@ if necessary or NULL'/> <struct name='uconv_t' file='encoding' type='struct _uconv_t'> <field name='uconv' type='UConverter *' info=' for conversion between an encoding and UTF-16'/> <field name='utf8' type='UConverter *' info=' for conversion between UTF-8 and UTF-16'/> + <field name='pivot_buf' type='UCharpivot_buf[ICU_PIVOT_BUF_SIZE]' info=''/> + <field name='pivot_source' type='UChar *' info=''/> + <field name='pivot_target' type='UChar *' info=''/> </struct> <typedef name='xlinkActuate' file='xlink' type='enum'/> <typedef name='xlinkHRef' file='xlink' type='xmlChar *'/> @@ -10352,7 +10359,7 @@ Could we use @subtypes for this?'/> <info>Callback to copy data from a hash.</info> <return type='void *' info='a copy of the data or NULL in case of error.'/> <arg name='payload' type='void *' info='the data in the hash'/> - <arg name='name' type='xmlChar *' info='the name associated'/> + <arg name='name' type='const xmlChar *' info='the name associated'/> </functype> <function name='xmlHashCopy' file='hash' module='hash'> <info>Scan the hash @table and applied @f to each value.</info> @@ -10375,8 +10382,14 @@ Could we use @subtypes for this?'/> <info>Callback to free data from a hash.</info> <return type='void'/> <arg name='payload' type='void *' info='the data in the hash'/> - <arg name='name' type='xmlChar *' info='the name associated'/> + <arg name='name' type='const xmlChar *' info='the name associated'/> </functype> + <function name='xmlHashDefaultDeallocator' file='hash' module='hash'> + <info>Free a hash table entry with xmlFree.</info> + <return type='void'/> + <arg name='entry' type='void *' info='the hash table entry'/> + <arg name='name' type='const xmlChar *' info='the entry's name'/> + </function> <function name='xmlHashFree' file='hash' module='hash'> <info>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</info> <return type='void'/> @@ -10494,7 +10507,7 @@ Could we use @subtypes for this?'/> <return type='void'/> <arg name='payload' type='void *' info='the data in the hash'/> <arg name='data' type='void *' info='extra scannner data'/> - <arg name='name' type='xmlChar *' info='the name associated'/> + <arg name='name' type='const xmlChar *' info='the name associated'/> </functype> <functype name='xmlHashScannerFull' file='hash' module='hash'> <info>Callback when scanning data in a hash with the full scanner.</info> @@ -10903,7 +10916,7 @@ Could we use @subtypes for this?'/> <return type='void'/> <arg name='l' type='xmlListPtr' info='a list'/> <arg name='walker' type='xmlListWalker' info='a processing function'/> - <arg name='user' type='const void *' info='a user parameter passed to the walker function'/> + <arg name='user' type='void *' info='a user parameter passed to the walker function'/> </function> <function name='xmlListSearch' file='list' module='list'> <info>Search the list for an existing value of @data</info> @@ -10926,13 +10939,13 @@ Could we use @subtypes for this?'/> <return type='void'/> <arg name='l' type='xmlListPtr' info='a list'/> <arg name='walker' type='xmlListWalker' info='a processing function'/> - <arg name='user' type='const void *' info='a user parameter passed to the walker function'/> + <arg name='user' type='void *' info='a user parameter passed to the walker function'/> </function> <functype name='xmlListWalker' file='list' module='list'> <info>Callback function used when walking a list with xmlListWalk().</info> <return type='int' info='0 to stop walking the list, 1 otherwise.'/> <arg name='data' type='const void *' info='the data found in the list'/> - <arg name='user' type='const void *' info='extra user provided data to the walker'/> + <arg name='user' type='void *' info='extra user provided data to the walker'/> </functype> <function name='xmlLoadACatalog' file='catalog' module='catalog'> <cond>defined(LIBXML_CATALOG_ENABLED)</cond> @@ -17683,7 +17696,7 @@ Could we use @subtypes for this?'/> </function> <function name='xmlXPathInit' file='xpath' module='xpath'> <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond> - <info>Initialize the XPath environment</info> + <info>Initialize the XPath environment Does nothing but must be kept as public function.</info> <return type='void'/> </function> <function name='xmlXPathIntersection' file='xpathInternals' module='xpath'> @@ -17695,13 +17708,13 @@ Could we use @subtypes for this?'/> </function> <function name='xmlXPathIsInf' file='xpath' module='xpath'> <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond> - <info>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</info> - <return type='int' info='1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise'/> + <info></info> + <return type='int' info='1 if the value is +Infinite, -1 if -Infinite, 0 otherwise'/> <arg name='val' type='double' info='a double value'/> </function> <function name='xmlXPathIsNaN' file='xpath' module='xpath'> <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond> - <info>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</info> + <info></info> <return type='int' info='1 if the value is a NaN, 0 otherwise'/> <arg name='val' type='double' info='a double value'/> </function> diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml index 935d4f71..3fe0876f 100644 --- a/doc/libxml2-refs.xml +++ b/doc/libxml2-refs.xml @@ -34,6 +34,7 @@ <reference name='HTML_REQUIRED' href='html/libxml-HTMLparser.html#HTML_REQUIRED'/> <reference name='HTML_TEXT_NODE' href='html/libxml-HTMLtree.html#HTML_TEXT_NODE'/> <reference name='HTML_VALID' href='html/libxml-HTMLparser.html#HTML_VALID'/> + <reference name='ICU_PIVOT_BUF_SIZE' href='html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE'/> <reference name='INPUT_CHUNK' href='html/libxml-parserInternals.html#INPUT_CHUNK'/> <reference name='INVALID_SOCKET' href='html/libxml-nanoftp.html#INVALID_SOCKET'/> <reference name='IS_ASCII_DIGIT' href='html/libxml-parserInternals.html#IS_ASCII_DIGIT'/> @@ -2124,6 +2125,7 @@ <reference name='xmlHashCreate' href='html/libxml-hash.html#xmlHashCreate'/> <reference name='xmlHashCreateDict' href='html/libxml-hash.html#xmlHashCreateDict'/> <reference name='xmlHashDeallocator' href='html/libxml-hash.html#xmlHashDeallocator'/> + <reference name='xmlHashDefaultDeallocator' href='html/libxml-hash.html#xmlHashDefaultDeallocator'/> <reference name='xmlHashFree' href='html/libxml-hash.html#xmlHashFree'/> <reference name='xmlHashLookup' href='html/libxml-hash.html#xmlHashLookup'/> <reference name='xmlHashLookup2' href='html/libxml-hash.html#xmlHashLookup2'/> @@ -3624,6 +3626,7 @@ <ref name='HTML_VALID'/> </letter> <letter name='I'> + <ref name='ICU_PIVOT_BUF_SIZE'/> <ref name='INPUT_CHUNK'/> <ref name='INVALID_SOCKET'/> <ref name='IS_ASCII_DIGIT'/> @@ -5762,6 +5765,7 @@ <ref name='xmlHashCreate'/> <ref name='xmlHashCreateDict'/> <ref name='xmlHashDeallocator'/> + <ref name='xmlHashDefaultDeallocator'/> <ref name='xmlHashFree'/> <ref name='xmlHashLookup'/> <ref name='xmlHashLookup2'/> @@ -8113,8 +8117,6 @@ </type> <type name='const void *'> <ref name='xmlListDataCompare'/> - <ref name='xmlListReverseWalk'/> - <ref name='xmlListWalk'/> <ref name='xmlListWalker'/> </type> <type name='const xlinkHRef'> @@ -8287,6 +8289,9 @@ <ref name='xmlHashAddEntry'/> <ref name='xmlHashAddEntry2'/> <ref name='xmlHashAddEntry3'/> + <ref name='xmlHashCopier'/> + <ref name='xmlHashDeallocator'/> + <ref name='xmlHashDefaultDeallocator'/> <ref name='xmlHashLookup'/> <ref name='xmlHashLookup2'/> <ref name='xmlHashLookup3'/> @@ -8298,6 +8303,7 @@ <ref name='xmlHashRemoveEntry3'/> <ref name='xmlHashScan3'/> <ref name='xmlHashScanFull3'/> + <ref name='xmlHashScanner'/> <ref name='xmlHashScannerFull'/> <ref name='xmlHashUpdateEntry'/> <ref name='xmlHashUpdateEntry2'/> @@ -8862,6 +8868,7 @@ <ref name='xmlHashAddEntry3'/> <ref name='xmlHashCopier'/> <ref name='xmlHashDeallocator'/> + <ref name='xmlHashDefaultDeallocator'/> <ref name='xmlHashScan'/> <ref name='xmlHashScan3'/> <ref name='xmlHashScanFull'/> @@ -8885,7 +8892,10 @@ <ref name='xmlListRemoveFirst'/> <ref name='xmlListRemoveLast'/> <ref name='xmlListReverseSearch'/> + <ref name='xmlListReverseWalk'/> <ref name='xmlListSearch'/> + <ref name='xmlListWalk'/> + <ref name='xmlListWalker'/> <ref name='xmlMemFree'/> <ref name='xmlMemRealloc'/> <ref name='xmlNanoFTPCheckResponse'/> @@ -9176,9 +9186,6 @@ <ref name='xmlBuildQName'/> <ref name='xmlCopyChar'/> <ref name='xmlCopyCharMultiByte'/> - <ref name='xmlHashCopier'/> - <ref name='xmlHashDeallocator'/> - <ref name='xmlHashScanner'/> <ref name='xmlNewDocNodeEatName'/> <ref name='xmlNewNodeEatName'/> <ref name='xmlNewNsPropEatName'/> @@ -11103,6 +11110,7 @@ <ref name='xmlInitializeDict'/> </file> <file name='encoding'> + <ref name='ICU_PIVOT_BUF_SIZE'/> <ref name='UTF8Toisolat1'/> <ref name='XML_CHAR_ENCODING_2022_JP'/> <ref name='XML_CHAR_ENCODING_8859_1'/> @@ -11262,6 +11270,7 @@ <ref name='xmlHashCreate'/> <ref name='xmlHashCreateDict'/> <ref name='xmlHashDeallocator'/> + <ref name='xmlHashDefaultDeallocator'/> <ref name='xmlHashFree'/> <ref name='xmlHashLookup'/> <ref name='xmlHashLookup2'/> @@ -14729,8 +14738,6 @@ </word> <word name='Based'> <ref name='xmlExpExpDerive'/> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> </word> <word name='BasicLatin'> <ref name='xmlUCSIsBasicLatin'/> @@ -15506,6 +15513,7 @@ <ref name='xmlValidNormalizeAttributeValue'/> <ref name='xmlValidateDocumentFinal'/> <ref name='xmlValidateDtdFinal'/> + <ref name='xmlXPathInit'/> </word> <word name='Douglas'> <ref name='xmlURIEscape'/> @@ -16868,9 +16876,6 @@ <word name='Not'> <ref name='_xmlSchemaElement'/> </word> - <word name='NotaNumber'> - <ref name='xmlXPathIsNaN'/> - </word> <word name='Notation'> <ref name='_xmlNotation'/> <ref name='xmlParseEntityDecl'/> @@ -17234,8 +17239,6 @@ <ref name='xmlTextReaderGetAttributeNo'/> <ref name='xmlTextReaderGetAttributeNs'/> <ref name='xmlTextReaderValue'/> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> </word> <word name='Proxy'> <ref name='xmlNanoFTPScanProxy'/> @@ -21304,10 +21307,6 @@ <word name='cshema'> <ref name='XML_SCHEMAS_FINAL_DEFAULT_LIST'/> </word> - <word name='ctrio'> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> - </word> <word name='ctxt'> <ref name='xmlExpNewOr'/> <ref name='xmlExpNewRange'/> @@ -21768,8 +21767,6 @@ <ref name='xmlInputMatchCallback'/> <ref name='xmlKeepBlanksDefault'/> <ref name='xmlOutputMatchCallback'/> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> </word> <word name='detected'> <ref name='CHECK_ERROR'/> @@ -22461,6 +22458,7 @@ <ref name='xmlCatalogAdd'/> <ref name='xmlCatalogAddLocal'/> <ref name='xmlCatalogRemove'/> + <ref name='xmlHashDefaultDeallocator'/> <ref name='xmlHashUpdateEntry'/> <ref name='xmlHashUpdateEntry2'/> <ref name='xmlHashUpdateEntry3'/> @@ -23848,8 +23846,6 @@ <ref name='xmlSAX2GetSystemId'/> <ref name='xmlSchemaGetPredefinedType'/> <ref name='xmlTextReaderNodeType'/> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> </word> <word name='human-readable'> <ref name='_xmlError'/> @@ -24542,15 +24538,9 @@ <word name='invited'> <ref name='xmlValidGetValidElements'/> </word> - <word name='isinf'> - <ref name='xmlXPathIsInf'/> - </word> <word name='isn'> <ref name='xmlRegisterCharEncodingHandler'/> </word> - <word name='isnan'> - <ref name='xmlXPathIsNaN'/> - </word> <word name='issue'> <ref name='xmlEncodeEntities'/> </word> @@ -24647,6 +24637,7 @@ <ref name='htmlIsAutoClosed'/> <ref name='htmlParseElement'/> <ref name='xmlKeepBlanksDefault'/> + <ref name='xmlXPathInit'/> <ref name='xmlXPathOrderDocElems'/> </word> <word name='keyword'> @@ -25795,10 +25786,6 @@ <ref name='xmlParseElementChildrenContentDecl'/> <ref name='xmlParseMarkupDecl'/> </word> - <word name='net'> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> - </word> <word name='network'> <ref name='htmlCtxtReadFile'/> <ref name='htmlReadFile'/> @@ -25985,6 +25972,9 @@ <ref name='xmlCheckUTF8'/> <ref name='xmlLoadExternalEntity'/> </word> + <word name='nothing'> + <ref name='xmlXPathInit'/> + </word> <word name='notice'> <ref name='xmlCleanupParser'/> <ref name='xmlCleanupThreads'/> @@ -26786,10 +26776,6 @@ <ref name='xmlModuleOpen'/> <ref name='xmlModuleSymbol'/> </word> - <word name='portable'> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> - </word> <word name='pos'> <ref name='xmlUTF8Strsub'/> </word> @@ -27173,10 +27159,6 @@ <word name='prohibited'> <ref name='XML_SCHEMAS_ATTR_USE_PROHIBITED'/> </word> - <word name='projects'> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> - </word> <word name='prolog'> <ref name='xmlParseDocument'/> </word> @@ -28910,10 +28892,6 @@ <ref name='xmlDOMWrapAdoptNode'/> <ref name='xmlDOMWrapCloneNode'/> </word> - <word name='sourceforge'> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> - </word> <word name='spaces'> <ref name='_xmlParserCtxt'/> <ref name='htmlDocContentDumpFormatOutput'/> @@ -30080,8 +30058,6 @@ <word name='trio'> <ref name='WITHOUT_TRIO'/> <ref name='WITH_TRIO'/> - <ref name='xmlXPathIsInf'/> - <ref name='xmlXPathIsNaN'/> </word> <word name='troubles'> <ref name='_xmlParserInput'/> @@ -31320,6 +31296,7 @@ <ref name='xmlGetNoNsProp'/> <ref name='xmlGetNsProp'/> <ref name='xmlGetProp'/> + <ref name='xmlHashDefaultDeallocator'/> <ref name='xmlNodeGetBase'/> <ref name='xmlNodeGetContent'/> <ref name='xmlNodeGetLang'/> diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa index f575ff07..33f38487 100644 --- a/doc/libxml2.xsa +++ b/doc/libxml2.xsa @@ -8,24 +8,45 @@ </vendor> <product id="libxml2"> <name>libxml2</name> - <version>v2.9.6</version> - <last-release> Oct 06 2017</last-release> + <version>2.9.7</version> + <last-release> Nov 02 2017</last-release> <info-url>http://xmlsoft.org/</info-url> - <changes> - Portability: - Change preprocessor OS tests to __linux__ (Nick Wellnhofer) + <changes> - Documentation: + xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný) + + - Portability: + Fix deprecated Travis compiler flag (Nick Wellnhofer), + Add declaration for DllMain (J. Peter Mugaas), + Fix preprocessor conditional in threads.h (J. Peter Mugaas), + Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas), + Fix macro redefinition warning (J. Peter Mugaas), + Default to native threads on MinGW-w64 (Nick Wellnhofer), + Simplify Windows IO functions (Nick Wellnhofer), + Fix runtest on Windows (Nick Wellnhofer), + socklen_t is always int on Windows (Nick Wellnhofer), + Don't redefine socket error codes on Windows (Nick Wellnhofer), + Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer), + Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer) - Bug Fixes: - Fix XPath stack frame logic (Nick Wellnhofer), - Report undefined XPath variable error message (Nick Wellnhofer), - Fix regression with librsvg (Nick Wellnhofer), - Handle more invalid entity values in recovery mode (Nick Wellnhofer), - Fix structured validation errors (Nick Wellnhofer), - Fix memory leak in LZMA decompressor (Nick Wellnhofer), - Set memory limit for LZMA decompression (Nick Wellnhofer), - Handle illegal entity values in recovery mode (Nick Wellnhofer), - Fix debug dump of streaming XPath expressions (Nick Wellnhofer), - Fix memory leak in nanoftp (Nick Wellnhofer), - Fix memory leaks in SAX1 parser (Nick Wellnhofer) + xmlcatalog: restore ability to query system catalog easily (Jan Pokorný), + Fix comparison of nodesets to strings (Nick Wellnhofer) + + - Improvements: + Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer), + Fix mixed decls and code in timsort.h (Nick Wellnhofer), + Rework handling of return values in thread tests (Nick Wellnhofer), + Fix unused variable warnings in testrecurse (Nick Wellnhofer), + Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas), + Upgrade timsort.h to latest revision (Nick Wellnhofer), + Increase warning level to /W3 under MSVC (Nick Wellnhofer), + Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer), + Update .gitignore for Windows (Nick Wellnhofer), + Fix unused variable warnings in nanohttp.c (Nick Wellnhofer), + Fix the Windows header mess (Nick Wellnhofer), + Don't include winsock2.h in xmllint.c (Nick Wellnhofer), + Remove generated file python/setup.py from version control (Nick Wellnhofer), + Use __linux__ macro in generated code (Nick Wellnhofer) </changes> diff --git a/doc/news.html b/doc/news.html index 5346d324..65839ad4 100644 --- a/doc/news.html +++ b/doc/news.html @@ -8,7 +8,53 @@ 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 & 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>2.9.7: Nov 02 2017</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>v2.9.8: Mar 05 2018</h3><ul> + <li>Portability:<br /> + python: remove single use of _PyVerify_fd (Patrick Welche),<br /> + Build more test executables on Windows/MSVC (Nick Wellnhofer),<br /> + Stop including ansidecl.h (Nick Wellnhofer),<br /> + Fix libz and liblzma detection (Nick Wellnhofer),<br /> + Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br /> + </li> + + <li>Bug Fixes:<br /> + Fix xmlParserEntityCheck (Nick Wellnhofer),<br /> + Halt parser in case of encoding error (Nick Wellnhofer),<br /> + Clear entity content in case of errors (Nick Wellnhofer),<br /> + Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br /> + Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br /> + Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br /> + Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br /> + Fix -Wenum-compare warnings (Nick Wellnhofer),<br /> + Fix callback signature in testapi.c (Nick Wellnhofer),<br /> + Fix unused parameter warning without ICU (Nick Wellnhofer),<br /> + Fix IO callback signatures (Nick Wellnhofer),<br /> + Fix misc callback signatures (Nick Wellnhofer),<br /> + Fix list callback signatures (Nick Wellnhofer),<br /> + Fix hash callback signatures (Nick Wellnhofer),<br /> + Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br /> + Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br /> + Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br /> + </li> + + <li>Improvements:<br /> + Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br /> + Improve handling of context input_id (Daniel Veillard),<br /> + Add resource file to Windows DLL (ccpaging),<br /> + Run Travis tests with -Werror (Nick Wellnhofer),<br /> + Build with "-Wall -Wextra" (Nick Wellnhofer),<br /> + Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br /> + Remove unused AC_CHECKs (Nick Wellnhofer),<br /> + Update information about contributing (Nick Wellnhofer),<br /> + Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br /> + Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br /> + Ignore function pointer cast warnings (Nick Wellnhofer),<br /> + Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br /> + Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br /> + Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br /> + Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br /> + </li> +</ul><h3>2.9.7: Nov 02 2017</h3><ul> <li>Documentation:<br /> xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)<br /> </li> diff --git a/doc/xml.html b/doc/xml.html index b902869b..4059fb76 100644 --- a/doc/xml.html +++ b/doc/xml.html @@ -709,6 +709,54 @@ 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.8: Mar 05 2018</h3> +<ul> + <li>Portability:<br/> + python: remove single use of _PyVerify_fd (Patrick Welche),<br/> + Build more test executables on Windows/MSVC (Nick Wellnhofer),<br/> + Stop including ansidecl.h (Nick Wellnhofer),<br/> + Fix libz and liblzma detection (Nick Wellnhofer),<br/> + Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br/> + </li> + + <li>Bug Fixes:<br/> + Fix xmlParserEntityCheck (Nick Wellnhofer),<br/> + Halt parser in case of encoding error (Nick Wellnhofer),<br/> + Clear entity content in case of errors (Nick Wellnhofer),<br/> + Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br/> + Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br/> + Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br/> + Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br/> + Fix -Wenum-compare warnings (Nick Wellnhofer),<br/> + Fix callback signature in testapi.c (Nick Wellnhofer),<br/> + Fix unused parameter warning without ICU (Nick Wellnhofer),<br/> + Fix IO callback signatures (Nick Wellnhofer),<br/> + Fix misc callback signatures (Nick Wellnhofer),<br/> + Fix list callback signatures (Nick Wellnhofer),<br/> + Fix hash callback signatures (Nick Wellnhofer),<br/> + Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br/> + Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br/> + Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br/> + </li> + + <li>Improvements:<br/> + Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br/> + Improve handling of context input_id (Daniel Veillard),<br/> + Add resource file to Windows DLL (ccpaging),<br/> + Run Travis tests with -Werror (Nick Wellnhofer),<br/> + Build with "-Wall -Wextra" (Nick Wellnhofer),<br/> + Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br/> + Remove unused AC_CHECKs (Nick Wellnhofer),<br/> + Update information about contributing (Nick Wellnhofer),<br/> + Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br/> + Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br/> + Ignore function pointer cast warnings (Nick Wellnhofer),<br/> + Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br/> + Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br/> + Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br/> + Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br/> + </li> +</ul> <h3>2.9.7: Nov 02 2017</h3> <ul> <li>Documentation:<br/> diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in index b173be9e..d10f9754 100644 --- a/include/libxml/xmlversion.h.in +++ b/include/libxml/xmlversion.h.in @@ -410,9 +410,6 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); #endif #ifdef __GNUC__ -#ifdef HAVE_ANSIDECL_H -#include <ansidecl.h> -#endif /** * ATTRIBUTE_UNUSED: diff --git a/include/libxml/xmlwin32version.h b/include/libxml/xmlwin32version.h index 96412411..e0f2b389 100644 --- a/include/libxml/xmlwin32version.h +++ b/include/libxml/xmlwin32version.h @@ -214,9 +214,6 @@ extern void xmlCheckVersion(int version); * Macro used to signal to GCC unused function parameters */ #ifdef __GNUC__ -#ifdef HAVE_ANSIDECL_H -#include <ansidecl.h> -#endif #ifndef ATTRIBUTE_UNUSED #define ATTRIBUTE_UNUSED #endif diff --git a/include/libxml/xmlwin32version.h.in b/include/libxml/xmlwin32version.h.in index 375f3a4e..2176ad11 100644 --- a/include/libxml/xmlwin32version.h.in +++ b/include/libxml/xmlwin32version.h.in @@ -243,9 +243,6 @@ extern void xmlCheckVersion(int version); #endif #ifdef __GNUC__ -#ifdef HAVE_ANSIDECL_H -#include <ansidecl.h> -#endif /** * ATTRIBUTE_UNUSED: diff --git a/include/win32config.h b/include/win32config.h index 85967551..7fc74031 100644 --- a/include/win32config.h +++ b/include/win32config.h @@ -13,7 +13,6 @@ #include "wincecompat.h" #else #define HAVE_SYS_STAT_H -#define HAVE__STAT #define HAVE_STAT #define HAVE_STDLIB_H #define HAVE_TIME_H @@ -60,6 +60,18 @@ int vfprintf(FILE *, const char *, va_list); #include "trio.h" #endif +#if defined(__clang__) || \ + (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406)) +#define XML_IGNORE_PEDANTIC_WARNINGS \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wpedantic\"") +#define XML_POP_WARNINGS \ + _Pragma("GCC diagnostic pop") +#else +#define XML_IGNORE_PEDANTIC_WARNINGS +#define XML_POP_WARNINGS +#endif + /* * Internal variable indicating if a callback has been registered for * node creation/destruction. It avoids spending a lot of time in locking diff --git a/libxml2.syms b/libxml2.syms index 370dcf17..9889cb20 100644 --- a/libxml2.syms +++ b/libxml2.syms @@ -2279,3 +2279,10 @@ LIBXML2_2.9.1 { xmlXPathSetContextNode; } LIBXML2_2.9.0; +LIBXML2_2.9.8 { + global: + +# hash + xmlHashDefaultDeallocator; +} LIBXML2_2.9.1; + diff --git a/macos/src/config-mac.h b/macos/src/config-mac.h index e9a8f9d9..ca6f9939 100644 --- a/macos/src/config-mac.h +++ b/macos/src/config-mac.h @@ -21,27 +21,9 @@ #define HAVE_PTHREAD_H #define LIBXML_THREAD_ENABLED -/* Define if you have the _stat function. */ -#define HAVE__STAT - -/* Define if you have the class function. */ -#undef HAVE_CLASS - -/* Define if you have the finite function. */ -#undef HAVE_FINITE - -/* Define if you have the fp_class function. */ -#undef HAVE_FP_CLASS - -/* Define if you have the fpclass function. */ -#undef HAVE_FPCLASS - /* Define if you have the fprintf function. */ #define HAVE_FPRINTF -/* Define if you have the isnand function. */ -#undef HAVE_ISNAND - /* Define if you have the localtime function. */ #define HAVE_LOCALTIME @@ -63,18 +45,9 @@ /* Define if you have the stat function. */ #define HAVE_STAT -/* Define if you have the strdup function. */ -#define HAVE_STRDUP - -/* Define if you have the strerror function. */ -#define HAVE_STRERROR - /* Define if you have the strftime function. */ #define HAVE_STRFTIME -/* Define if you have the strndup function. */ -#define HAVE_STRNDUP - /* Define if you have the vfprintf function. */ #define HAVE_VFPRINTF @@ -84,9 +57,6 @@ /* Define if you have the vsprintf function. */ #define HAVE_VSPRINTF -/* Define if you have the <ansidecl.h> header file. */ -#define HAVE_ANSIDECL_H - /* Define if you have the <arpa/inet.h> header file. */ #define HAVE_ARPA_INET_H @@ -108,21 +78,12 @@ /* Define if you have the <float.h> header file. */ #define HAVE_FLOAT_H -/* Define if you have the <fp_class.h> header file. */ -#define HAVE_FP_CLASS_H - -/* Define if you have the <ieeefp.h> header file. */ -#define HAVE_IEEEFP_H - /* Define if you have the <malloc.h> header file. */ #undef HAVE_MALLOC_H /* Define if you have the <math.h> header file. */ #define HAVE_MATH_H -/* Define if you have the <nan.h> header file. */ -#define HAVE_NAN_H - /* Define if you have the <ndir.h> header file. */ #define HAVE_NDIR_H @@ -174,9 +135,6 @@ /* Define if you have the <unistd.h> header file. */ #define HAVE_UNISTD_H -/* Define if you have the <zlib.h> header file. */ -#undef HAVE_ZLIB_H - /* Name of package */ #define PACKAGE @@ -63,7 +63,7 @@ #ifdef HAVE_STRINGS_H #include <strings.h> #endif -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> #endif @@ -145,7 +145,7 @@ typedef struct xmlNanoHTTPCtxt { char *authHeader; /* contents of {WWW,Proxy}-Authenticate header */ char *encoding; /* encoding extracted from the contentType */ char *mimeType; /* Mime-Type extracted from the contentType */ -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED z_stream *strm; /* Zlib stream object */ int usesGzip; /* "Content-Encoding: gzip" was detected */ #endif @@ -434,7 +434,7 @@ xmlNanoHTTPFreeCtxt(xmlNanoHTTPCtxtPtr ctxt) { if (ctxt->mimeType != NULL) xmlFree(ctxt->mimeType); if (ctxt->location != NULL) xmlFree(ctxt->location); if (ctxt->authHeader != NULL) xmlFree(ctxt->authHeader); -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if (ctxt->strm != NULL) { inflateEnd(ctxt->strm); xmlFree(ctxt->strm); @@ -817,7 +817,7 @@ xmlNanoHTTPScanAnswer(xmlNanoHTTPCtxtPtr ctxt, const char *line) { if (ctxt->authHeader != NULL) xmlFree(ctxt->authHeader); ctxt->authHeader = xmlMemStrdup(cur); -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED } else if ( !xmlStrncasecmp( BAD_CAST line, BAD_CAST"Content-Encoding:", 17) ) { cur += 17; while ((*cur == ' ') || (*cur == '\t')) cur++; @@ -1273,7 +1273,7 @@ xmlNanoHTTPOpenRedir(const char *URL, char **contentType, char **redir) { int xmlNanoHTTPRead(void *ctx, void *dest, int len) { xmlNanoHTTPCtxtPtr ctxt = (xmlNanoHTTPCtxtPtr) ctx; -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED int bytes_read = 0; int orig_avail_in; int z_ret; @@ -1283,7 +1283,7 @@ xmlNanoHTTPRead(void *ctx, void *dest, int len) { if (dest == NULL) return(-1); if (len <= 0) return(0); -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if (ctxt->usesGzip == 1) { if (ctxt->strm == NULL) return(0); @@ -1424,7 +1424,7 @@ retry: /* 1 for '?' */ blen += strlen(ctxt->query) + 1; blen += strlen(method) + strlen(ctxt->path) + 24; -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED /* reserve for possible 'Accept-Encoding: gzip' string */ blen += 23; #endif @@ -1468,7 +1468,7 @@ retry: ctxt->hostname, ctxt->port); } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED p += snprintf(p, blen - (p - bp), "Accept-Encoding: gzip\r\n"); #endif diff --git a/os400/make.sh b/os400/make.sh index 95a35a28..860365eb 100644 --- a/os400/make.sh +++ b/os400/make.sh @@ -34,7 +34,7 @@ fi # Copy some documentation files if needed. for TEXT in "${TOPDIR}/AUTHORS" "${TOPDIR}/ChangeLog" \ - "${TOPDIR}/Copyright" "${TOPDIR}/HACKING" "${TOPDIR}/README" \ + "${TOPDIR}/Copyright" "${TOPDIR}/CONTRIBUTING" "${TOPDIR}/README" \ "${TOPDIR}/MAINTAINERS" "${TOPDIR}/NEWS" "${TOPDIR}/TODO" \ "${TOPDIR}/TODO_SCHEMAS" "${TOPDIR}/os400/README400" do if [ -f "${TEXT}" ] diff --git a/os400/os400config.h.in b/os400/os400config.h.in index ad5abb70..1840c17c 100644 --- a/os400/os400config.h.in +++ b/os400/os400config.h.in @@ -6,9 +6,6 @@ *** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. **/ -/* Define to 1 if you have the <ansidecl.h> header file. */ -#undef HAVE_ANSIDECL_H - /* Define to 1 if you have the <arpa/inet.h> header file. */ #define HAVE_ARPA_INET_H 1 @@ -18,9 +15,6 @@ /* Whether struct sockaddr::__ss_family exists */ #undef HAVE_BROKEN_SS_FAMILY -/* Define to 1 if you have the `class' function. */ -#undef HAVE_CLASS - /* Define to 1 if you have the <ctype.h> header file. */ #define HAVE_CTYPE_H 1 @@ -42,24 +36,12 @@ /* Define to 1 if you have the <fcntl.h> header file. */ #define HAVE_FCNTL_H 1 -/* Define to 1 if you have the `finite' function. */ -#undef HAVE_FINITE - /* Define to 1 if you have the <float.h> header file. */ #define HAVE_FLOAT_H 1 -/* Define to 1 if you have the `fpclass' function. */ -#undef HAVE_FPCLASS - /* Define to 1 if you have the `fprintf' function. */ #undef HAVE_FPRINTF /* Use trio. */ -/* Define to 1 if you have the `fp_class' function. */ -#undef HAVE_FP_CLASS - -/* Define to 1 if you have the <fp_class.h> header file. */ -#undef HAVE_FP_CLASS_H - /* Define to 1 if you have the `ftime' function. */ #undef HAVE_FTIME @@ -69,9 +51,6 @@ /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY -/* Define to 1 if you have the <ieeefp.h> header file. */ -#undef HAVE_IEEEFP_H - /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 @@ -84,15 +63,9 @@ /* Define if isnan is there */ #undef HAVE_ISNAN -/* Define to 1 if you have the `isnand' function. */ -#undef HAVE_ISNAND - /* Define if history library is there (-lhistory) */ #undef HAVE_LIBHISTORY -/* Have compression library */ -#undef HAVE_LIBLZMA - /* Define if pthread library is there (-lpthread) */ #undef HAVE_LIBPTHREAD @@ -108,9 +81,6 @@ /* Define to 1 if you have the `localtime' function. */ #define HAVE_LOCALTIME 1 -/* Define to 1 if you have the <lzma.h> header file. */ -#undef HAVE_LZMA_H - /* Define to 1 if you have the <malloc.h> header file. */ #undef HAVE_MALLOC_H @@ -131,9 +101,6 @@ # undef /**/ HAVE_MMAP #endif -/* Define to 1 if you have the <nan.h> header file. */ -#undef HAVE_NAN_H - /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ #undef HAVE_NDIR_H @@ -206,12 +173,6 @@ /* Define to 1 if you have the <stdlib.h> header file. */ #define HAVE_STDLIB_H 1 -/* Define to 1 if you have the `strdup' function. */ -#define HAVE_STRDUP 1 - -/* Define to 1 if you have the `strerror' function. */ -#define HAVE_STRERROR 1 - /* Define to 1 if you have the `strftime' function. */ #define HAVE_STRFTIME 1 @@ -221,9 +182,6 @@ /* Define to 1 if you have the <string.h> header file. */ #define HAVE_STRING_H 1 -/* Define to 1 if you have the `strndup' function. */ -#undef HAVE_STRNDUP - /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H @@ -274,17 +232,6 @@ /* Define to 1 if you have the `vsprintf' function. */ #undef HAVE_VSPRINTF /* Use trio. */ -/* Define to 1 if you have the <zlib.h> header file. */ -/* Actually dependent on the compilation script. */ -#if @WITH_ZLIB@ -#define HAVE_ZLIB_H 1 -#else -#undef HAVE_ZLIB_H -#endif - -/* Define to 1 if you have the `_stat' function. */ -#undef HAVE__STAT - /* Whether __va_copy() is available */ #undef HAVE___VA_COPY diff --git a/os400/wrappers.c b/os400/wrappers.c index 9f592b79..06f6c269 100644 --- a/os400/wrappers.c +++ b/os400/wrappers.c @@ -110,7 +110,7 @@ _lx_dlerror(void) } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> gzFile diff --git a/os400/wrappers.h b/os400/wrappers.h index 388ec8c2..6f3e6c9d 100644 --- a/os400/wrappers.h +++ b/os400/wrappers.h @@ -43,7 +43,7 @@ extern void * _lx_dlsym(void * handle, const char * symbol); extern char * _lx_dlerror(void); -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> @@ -83,12 +83,6 @@ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif -#ifdef HAVE_ZLIB_H -#include <zlib.h> -#endif -#ifdef HAVE_LZMA_H -#include <lzma.h> -#endif #include "buf.h" #include "enc.h" @@ -155,7 +149,7 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size, rep = xmlStringDecodeEntities(ctxt, ent->content, XML_SUBSTITUTE_REF, 0, 0, 0); --ctxt->depth; - if (ctxt->errNo == XML_ERR_ENTITY_LOOP) { + if ((rep == NULL) || (ctxt->errNo == XML_ERR_ENTITY_LOOP)) { ent->content[0] = 0; } @@ -3376,9 +3370,9 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) { */ ctxt->input->cur -= l; GROW; - ctxt->input->cur += l; if (ctxt->instate == XML_PARSER_EOF) return(NULL); + ctxt->input->cur += l; c = CUR_CHAR(l); } } @@ -7195,6 +7189,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { (ret != XML_WAR_UNDECLARED_ENTITY)) { xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY, "Entity '%s' failed to parse\n", ent->name); + if (ent->content != NULL) + ent->content[0] = 0; xmlParserEntityCheck(ctxt, 0, ent, 0); } else if (list != NULL) { xmlFreeNodeList(list); @@ -12222,6 +12218,7 @@ xmldecl_done: /* TODO 2.6.0 */ xmlGenericError(xmlGenericErrorContext, "xmlParseChunk: encoder error\n"); + xmlHaltParser(ctxt); return(XML_ERR_INVALID_ENCODING); } xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current); @@ -13370,6 +13367,7 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt, ctxt->userData = ctxt; if (ctxt->dict != NULL) xmlDictFree(ctxt->dict); ctxt->dict = oldctxt->dict; + ctxt->input_id = oldctxt->input_id + 1; ctxt->str_xml = xmlDictLookup(ctxt->dict, BAD_CAST "xml", 3); ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5); ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36); @@ -13623,6 +13621,7 @@ xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen, xmlDetectSAX2(ctxt); ctxt->myDoc = doc; /* parsing in context, i.e. as within existing content */ + ctxt->input_id = 2; ctxt->instate = XML_PARSER_CONTENT; fake = xmlNewComment(NULL); @@ -13835,6 +13834,7 @@ xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc, xmlSAXHandlerPtr sax, newDoc->oldNs = doc->oldNs; } ctxt->instate = XML_PARSER_CONTENT; + ctxt->input_id = 2; ctxt->depth = depth; /* @@ -13995,6 +13995,11 @@ xmlCreateEntityParserCtxtInternal(const xmlChar *URL, const xmlChar *ID, if (pctx != NULL) { ctxt->options = pctx->options; ctxt->_private = pctx->_private; + /* + * this is a subparser of pctx, so the input_id should be + * incremented to distinguish from main entity + */ + ctxt->input_id = pctx->input_id + 1; } uri = xmlBuildURI(URL, base); diff --git a/parserInternals.c b/parserInternals.c index e75e5473..8c0cd57a 100644 --- a/parserInternals.c +++ b/parserInternals.c @@ -32,7 +32,7 @@ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> #endif @@ -1214,7 +1214,7 @@ xmlSwitchInputEncodingInt(xmlParserCtxtPtr ctxt, xmlParserInputPtr input, /* * convert as much as possible of the buffer */ - nbchars = xmlCharEncInput(input->buf, 1); + nbchars = xmlCharEncInput(input->buf, 0); } else { /* * convert just enough to get diff --git a/python/types.c b/python/types.c index f2376776..124af565 100644 --- a/python/types.c +++ b/python/types.c @@ -31,8 +31,6 @@ libxml_PyFileGet(PyObject *f) { const char *mode; fd = PyObject_AsFileDescriptor(f); - if (!_PyVerify_fd(fd)) - return(NULL); /* * Get the flags on the fd to understand how it was opened */ @@ -737,7 +737,8 @@ static void des_xmlSchemaValidCtxtPtr(int no ATTRIBUTE_UNUSED, xmlSchemaValidCtx #define gen_nb_xmlHashDeallocator 2 static void -test_xmlHashDeallocator(void *payload ATTRIBUTE_UNUSED, xmlChar *name ATTRIBUTE_UNUSED) { +test_xmlHashDeallocator(void *payload ATTRIBUTE_UNUSED, + const xmlChar *name ATTRIBUTE_UNUSED) { } static xmlHashDeallocator gen_xmlHashDeallocator(int no, int nr ATTRIBUTE_UNUSED) { @@ -9988,6 +9989,43 @@ test_xmlHashCreateDict(void) { static int +test_xmlHashDefaultDeallocator(void) { + int test_ret = 0; + + int mem_base; + void * entry; /* the hash table entry */ + int n_entry; + xmlChar * name; /* the entry's name */ + int n_name; + + for (n_entry = 0;n_entry < gen_nb_void_ptr;n_entry++) { + for (n_name = 0;n_name < gen_nb_const_xmlChar_ptr;n_name++) { + mem_base = xmlMemBlocks(); + entry = gen_void_ptr(n_entry, 0); + name = gen_const_xmlChar_ptr(n_name, 1); + + xmlHashDefaultDeallocator(entry, (const xmlChar *)name); + call_tests++; + des_void_ptr(n_entry, entry, 0); + des_const_xmlChar_ptr(n_name, (const xmlChar *)name, 1); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlHashDefaultDeallocator", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_entry); + printf(" %d", n_name); + printf("\n"); + } + } + } + function_tests++; + + return(test_ret); +} + + +static int test_xmlHashLookup(void) { int test_ret = 0; @@ -10719,13 +10757,14 @@ static int test_hash(void) { int test_ret = 0; - if (quiet == 0) printf("Testing hash : 16 of 24 functions ...\n"); + if (quiet == 0) printf("Testing hash : 17 of 25 functions ...\n"); test_ret += test_xmlHashAddEntry(); test_ret += test_xmlHashAddEntry2(); test_ret += test_xmlHashAddEntry3(); test_ret += test_xmlHashCopy(); test_ret += test_xmlHashCreate(); test_ret += test_xmlHashCreateDict(); + test_ret += test_xmlHashDefaultDeallocator(); test_ret += test_xmlHashLookup(); test_ret += test_xmlHashLookup2(); test_ret += test_xmlHashLookup3(); @@ -47,10 +47,13 @@ #ifdef HAVE_PTHREAD_H +#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 303) && \ + defined(__GLIBC__) && defined(__linux__) + static int libxml_is_threaded = -1; -#if defined(__GNUC__) && defined(__GLIBC__) -#ifdef __linux__ -#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3) + +#define XML_PTHREAD_WEAK + #pragma weak pthread_once #pragma weak pthread_getspecific #pragma weak pthread_setspecific @@ -68,9 +71,13 @@ static int libxml_is_threaded = -1; #pragma weak pthread_key_create #pragma weak pthread_key_delete #pragma weak pthread_cond_signal -#endif -#endif /* __linux__ */ -#endif /* defined(__GNUC__) && defined(__GLIBC__) */ + +#else /* __GNUC__, __GLIBC__, __linux__ */ + +static int libxml_is_threaded = 1; + +#endif /* __GNUC__, __GLIBC__, __linux__ */ + #endif /* HAVE_PTHREAD_H */ /* @@ -422,8 +429,11 @@ __xmlGlobalInitMutexLock(void) /* Make sure the global init lock is initialized and then lock it. */ #ifdef HAVE_PTHREAD_H /* The mutex is statically initialized, so we just lock it. */ - if (pthread_mutex_lock != NULL) - pthread_mutex_lock(&global_init_lock); +#ifdef XML_PTHREAD_WEAK + if (pthread_mutex_lock == NULL) + return; +#endif /* XML_PTHREAD_WEAK */ + pthread_mutex_lock(&global_init_lock); #elif defined HAVE_WIN32_THREADS LPCRITICAL_SECTION cs; @@ -492,8 +502,11 @@ void __xmlGlobalInitMutexUnlock(void) { #ifdef HAVE_PTHREAD_H - if (pthread_mutex_unlock != NULL) - pthread_mutex_unlock(&global_init_lock); +#ifdef XML_PTHREAD_WEAK + if (pthread_mutex_unlock == NULL) + return; +#endif /* XML_PTHREAD_WEAK */ + pthread_mutex_unlock(&global_init_lock); #elif defined HAVE_WIN32_THREADS if (global_init_lock != NULL) { LeaveCriticalSection(global_init_lock); @@ -845,6 +858,7 @@ void xmlInitThreads(void) { #ifdef HAVE_PTHREAD_H +#ifdef XML_PTHREAD_WEAK if (libxml_is_threaded == -1) { if ((pthread_once != NULL) && (pthread_getspecific != NULL) && @@ -870,6 +884,7 @@ xmlInitThreads(void) libxml_is_threaded = 0; } } +#endif /* XML_PTHREAD_WEAK */ #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) InitializeCriticalSection(&cleanup_helpers_cs); #endif @@ -896,7 +911,7 @@ xmlCleanupThreads(void) xmlGenericError(xmlGenericErrorContext, "xmlCleanupThreads()\n"); #endif #ifdef HAVE_PTHREAD_H - if ((libxml_is_threaded) && (pthread_key_delete != NULL)) + if (libxml_is_threaded != 0) pthread_key_delete(globalkey); once_control = once_control_init; #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) @@ -27,7 +27,7 @@ #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> #endif diff --git a/vms/config.vms b/vms/config.vms index d1cd7f33..375406b0 100755 --- a/vms/config.vms +++ b/vms/config.vms @@ -21,39 +21,15 @@ #define ICONV_CONST -/* Define if you have the class function. */ -#undef HAVE_CLASS - -/* Define if you have the finite function. */ -#undef HAVE_FINITE - -/* Define if you have the fp_class function. */ -#define HAVE_FP_CLASS 1 - -/* Define if you have the fpclass function. */ -#undef HAVE_FPCLASS - -/* Define if you have the isnand function. */ -#undef HAVE_ISNAND - /* Define if you have the localtime function. */ #define HAVE_LOCALTIME 1 /* Define if you have the snprintf function. */ #undef HAVE_SNPRINTF -/* Define if you have the strdup function. */ -#define HAVE_STRDUP 1 - -/* Define if you have the strerror function. */ -#define HAVE_STRERROR 1 - /* Define if you have the strftime function. */ #define HAVE_STRFTIME 1 -/* Define if you have the strndup function. */ -#undef HAVE_STRNDUP - /* Define if you have the <arpa/inet.h> header file. */ #undef HAVE_ARPA_INET_H @@ -72,21 +48,12 @@ /* Define if you have the <float.h> header file. */ #define HAVE_FLOAT_H 1 -/* Define if you have the <fp_class.h> header file. */ -#define HAVE_FP_CLASS_H 1 - -/* Define if you have the <ieeefp.h> header file. */ -#undef HAVE_IEEEFP_H - /* Define if you have the <malloc.h> header file. */ #undef HAVE_MALLOC_H /* Define if you have the <math.h> header file. */ #define HAVE_MATH_H 1 -/* Define if you have the <nan.h> header file. */ -#undef HAVE_NAN_H - /* Define if you have the <ndir.h> header file. */ #undef HAVE_NDIR_H @@ -102,12 +69,6 @@ /* Define if you have the <stdlib.h> header file. */ #define HAVE_STDLIB_H 1 -/* Define to 1 if you have the `strdup' function. */ -#define HAVE_STRDUP 1 - -/* Define to 1 if you have the `strerror' function. */ -#define HAVE_STRERROR 1 - /* Define to 1 if you have the `strftime' function. */ #define HAVE_STRFTIME 1 @@ -117,9 +78,6 @@ /* Define to 1 if you have the <string.h> header file. */ #define HAVE_STRING_H 1 -/* Define to 1 if you have the `strndup' function. */ -#undef HAVE_STRNDUP - /* Define if you have the <sys/dir.h> header file. */ #undef HAVE_SYS_DIR_H @@ -150,9 +108,6 @@ /* Define if you have the <unistd.h> header file. */ #define HAVE_UNISTD_H 1 -/* Define if you have the <zlib.h> header file. */ -#undef HAVE_ZLIB_H - /* Name of package */ #undef PACKAGE diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb index 7129c617..41002da5 100644 --- a/win32/Makefile.bcb +++ b/win32/Makefile.bcb @@ -65,12 +65,6 @@ CFLAGS = $(CFLAGS) -DHAVE_WIN32_THREADS !else if "$(WITH_THREADS)" == "posix" CFLAGS = $(CFLAGS) -DHAVE_PTHREAD_H !endif -!if "$(WITH_ZLIB)" == "1" -CFLAGS = $(CFLAGS) -DHAVE_ZLIB_H -!endif -!if "$(WITH_LZMA)" == "1" -CFLAGS = $(CFLAGS) -DHAVE_LZMA_H -!endif # The linker and its options. LD = ilink32.exe diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw index f579923a..3d4cb888 100644 --- a/win32/Makefile.mingw +++ b/win32/Makefile.mingw @@ -57,12 +57,6 @@ endif ifeq ($(WITH_THREADS),posix) CFLAGS += -DHAVE_PTHREAD_H endif -ifeq ($(WITH_ZLIB),1) -CFLAGS += -DHAVE_ZLIB_H -endif -ifeq ($(WITH_LZMA),1) -CFLAGS += -DHAVE_LZMA_H -endif # The linker and its options. LD = gcc.exe diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc index 115a4517..491dc880 100644 --- a/win32/Makefile.msvc +++ b/win32/Makefile.msvc @@ -22,6 +22,7 @@ AUTOCONF = .\config.msvc XML_NAME = xml2 XML_BASENAME = lib$(XML_NAME) XML_SO = $(XML_BASENAME).dll +XML_RES = $(XML_BASENAME).res XML_IMP = $(XML_BASENAME).lib XML_DEF = $(XML_BASENAME).def XML_A = $(XML_BASENAME)_a.lib @@ -55,12 +56,6 @@ CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" !else if "$(WITH_THREADS)" == "posix" CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H" !endif -!if "$(WITH_ZLIB)" == "1" -CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H" -!endif -!if "$(WITH_LZMA)" == "1" -CFLAGS = $(CFLAGS) /D "HAVE_LZMA_H" -!endif CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE # The linker and its options. @@ -75,7 +70,11 @@ LIBS = $(LIBS) wsock32.lib ws2_32.lib LIBS = $(LIBS) iconv.lib !endif !if "$(WITH_ICU)" == "1" -LIBS = $(LIBS) icu.lib +!if "$(STATIC)" == "1" +LIBS = $(LIBS) advapi32.lib sicuuc.lib sicuin.lib sicudt.lib +!else +LIBS = $(LIBS) icuuc.lib icuin.lib icudt.lib +!endif !endif !if "$(WITH_ZLIB)" == "1" # could be named differently zdll or zlib @@ -262,7 +261,10 @@ UTILS = $(BINDIR)\xmllint.exe\ $(BINDIR)\testXPath.exe\ $(BINDIR)\runtest.exe\ $(BINDIR)\runsuite.exe\ + $(BINDIR)\runxmlconf.exe\ $(BINDIR)\testapi.exe\ + $(BINDIR)\testchar.exe\ + $(BINDIR)\testdict.exe\ $(BINDIR)\testlimits.exe\ $(BINDIR)\testrecurse.exe @@ -373,11 +375,13 @@ $(XML_OBJS_A_DLL) : $(XML_INTDIR_A_DLL) # Creates the export definition file (DEF) for libxml. $(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src $(CPP) $(CPPFLAGS) $(XML_DEF).src > $(XML_INTDIR)\$(XML_DEF) +$(XML_INTDIR)\$(XML_RES) : $(XML_INTDIR) libxml2.rc + rc -Fo $(XML_INTDIR)\$(XML_RES) libxml2.rc # Creates the libxml shared object. -$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF) +$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF) $(XML_INTDIR)\$(XML_RES) $(LD) $(LDFLAGS) /DLL \ - /IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS) + /IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(XML_INTDIR)\$(XML_RES) $(LIBS) @$(_VC_MANIFEST_EMBED_DLL) #$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF) diff --git a/win32/VC10/config.h b/win32/VC10/config.h index 4e184a3d..c1e16f14 100644 --- a/win32/VC10/config.h +++ b/win32/VC10/config.h @@ -12,7 +12,6 @@ #include "wincecompat.h" #else #define HAVE_SYS_STAT_H -#define HAVE__STAT #define HAVE_STAT #define HAVE_STDLIB_H #define HAVE_TIME_H diff --git a/win32/configure.js b/win32/configure.js index 92b9ba05..dbf238c7 100644 --- a/win32/configure.js +++ b/win32/configure.js @@ -280,6 +280,18 @@ function discoverVersion() vf.WriteLine("DYNRUNTIME=" + (dynruntime? "1" : "0")); } vf.Close(); + versionFile = "rcVersion.h" + vf = fso.CreateTextFile(versionFile, true); + vf.WriteLine("/*"); + vf.WriteLine(" " + versionFile); + vf.WriteLine(" This file is generated automatically by " + WScript.ScriptName + "."); + vf.WriteLine("*/"); + vf.WriteBlankLines(1); + vf.WriteLine("#define LIBXML_MAJOR_VERSION " + verMajor); + vf.WriteLine("#define LIBXML_MINOR_VERSION " + verMinor); + vf.WriteLine("#define LIBXML_MICRO_VERSION " + verMicro); + vf.WriteLine("#define LIBXML_DOTTED_VERSION " + "\"" + verMajor + "." + verMinor + "." + verMicro + "\""); + vf.Close() } /* Configures libxml. This one will generate xmlversion.h from xmlversion.h.in diff --git a/win32/libxml2.rc b/win32/libxml2.rc new file mode 100644 index 00000000..c774a5ee --- /dev/null +++ b/win32/libxml2.rc @@ -0,0 +1,36 @@ +#include <winver.h> +#include "rcVersion.h" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION LIBXML_MAJOR_VERSION,LIBXML_MINOR_VERSION,LIBXML_MICRO_VERSION,0 + PRODUCTVERSION LIBXML_MAJOR_VERSION,LIBXML_MINOR_VERSION,LIBXML_MICRO_VERSION,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0 +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "04090000" /* Lang = US English, Charset = ASCII */ + BEGIN + VALUE "FileDescription", "libxml2 library\0" + VALUE "FileVersion", LIBXML_DOTTED_VERSION "\0" + VALUE "InternalName", "libxml2.dll\0" + VALUE "LegalCopyright", "Copyright (C) Daniel Veillard\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "libxml2.dll\0" + VALUE "ProductName", "libxml2\0" + VALUE "ProductVersion", LIBXML_DOTTED_VERSION "\0" + VALUE "Comments", "For more information visit http://xmlsoft.org/\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0 /* US English, ASCII */ + END +END @@ -28,7 +28,7 @@ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> #endif @@ -33,10 +33,10 @@ #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> #endif -#ifdef HAVE_LZMA_H +#ifdef LIBXML_LZMA_ENABLED #include <lzma.h> #endif @@ -597,7 +597,7 @@ xmlWrapOpenUtf8(const char *path,int mode) return fd; } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED static gzFile xmlWrapGzOpenUtf8(const char *path, const char *mode) { @@ -1038,7 +1038,7 @@ xmlBufferWrite (void * context, const char * buffer, int len) { } #endif -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED /************************************************************************ * * * I/O for compressed file accesses * @@ -1241,7 +1241,7 @@ xmlGzfileClose (void * context) { if (ret < 0) xmlIOErr(0, "gzclose()"); return(ret); } -#endif /* HAVE_ZLIB_H */ +#endif /* LIBXML_ZLIB_ENABLED */ #ifdef LIBXML_LZMA_ENABLED /************************************************************************ @@ -1380,7 +1380,7 @@ typedef struct xmlIOHTTPWriteCtxt_ } xmlIOHTTPWriteCtxt, *xmlIOHTTPWriteCtxtPtr; -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #define DFLT_WBITS ( -15 ) #define DFLT_MEM_LVL ( 8 ) @@ -1708,7 +1708,7 @@ xmlZMemBuffGetContent( xmlZMemBuffPtr buff, char ** data_ref ) { return ( zlgth ); } #endif /* LIBXML_OUTPUT_ENABLED */ -#endif /* HAVE_ZLIB_H */ +#endif /* LIBXML_ZLIB_ENABLED */ #ifdef LIBXML_OUTPUT_ENABLED /** @@ -1727,7 +1727,7 @@ xmlFreeHTTPWriteCtxt( xmlIOHTTPWriteCtxtPtr ctxt ) if ( ctxt->doc_buff != NULL ) { -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ( ctxt->compression > 0 ) { xmlFreeZMemBuff( ctxt->doc_buff ); } @@ -1814,7 +1814,7 @@ xmlIOHTTPOpenW(const char *post_uri, int compression ATTRIBUTE_UNUSED) * ** is being used to avoid pushing the data to disk and back. */ -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ((compression > 0) && (compression <= 9)) { ctxt->compression = compression; @@ -1894,7 +1894,7 @@ xmlIOHTTPWrite( void * context, const char * buffer, int len ) { /* Use gzwrite or fwrite as previously setup in the open call */ -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ( ctxt->compression > 0 ) len = xmlZMemBuffAppend( ctxt->doc_buff, buffer, len ); @@ -1958,7 +1958,7 @@ xmlIOHTTPCloseWrite( void * context, const char * http_mthd ) { /* Retrieve the content from the appropriate buffer */ -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ( ctxt->compression > 0 ) { content_lgth = xmlZMemBuffGetContent( ctxt->doc_buff, &http_content ); @@ -2229,10 +2229,10 @@ xmlRegisterDefaultInputCallbacks(void) { xmlRegisterInputCallbacks(xmlFileMatch, xmlFileOpen, xmlFileRead, xmlFileClose); -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED xmlRegisterInputCallbacks(xmlGzfileMatch, xmlGzfileOpen, xmlGzfileRead, xmlGzfileClose); -#endif /* HAVE_ZLIB_H */ +#endif /* LIBXML_ZLIB_ENABLED */ #ifdef LIBXML_LZMA_ENABLED xmlRegisterInputCallbacks(xmlXzfileMatch, xmlXzfileOpen, xmlXzfileRead, xmlXzfileClose); @@ -2274,7 +2274,7 @@ xmlRegisterDefaultOutputCallbacks (void) { uncompressed ones except opening if existing then closing and saving with same compression ratio ... a pain. -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED xmlRegisterOutputCallbacks(xmlGzfileMatch, xmlGzfileOpen, xmlGzfileWrite, xmlGzfileClose); #endif @@ -2564,7 +2564,7 @@ __xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc) { ret->context = context; ret->readcallback = xmlInputCallbackTable[i].readcallback; ret->closecallback = xmlInputCallbackTable[i].closecallback; -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ((xmlInputCallbackTable[i].opencallback == xmlGzfileOpen) && (strcmp(URI, "-") != 0)) { #if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1230 @@ -2628,7 +2628,7 @@ __xmlOutputBufferCreateFilename(const char *URI, int i = 0; void *context = NULL; char *unescaped = NULL; -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED int is_file_uri = 1; #endif @@ -2639,7 +2639,7 @@ __xmlOutputBufferCreateFilename(const char *URI, puri = xmlParseURI(URI); if (puri != NULL) { -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ((puri->scheme != NULL) && (!xmlStrEqual(BAD_CAST puri->scheme, BAD_CAST "file"))) is_file_uri = 0; @@ -2659,7 +2659,7 @@ __xmlOutputBufferCreateFilename(const char *URI, * try with an unescaped version of the URI */ if (unescaped != NULL) { -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ((compression > 0) && (compression <= 9) && (is_file_uri == 1)) { context = xmlGzfileOpenW(unescaped, compression); if (context != NULL) { @@ -2677,7 +2677,7 @@ __xmlOutputBufferCreateFilename(const char *URI, for (i = xmlOutputCallbackNr - 1;i >= 0;i--) { if ((xmlOutputCallbackTable[i].matchcallback != NULL) && (xmlOutputCallbackTable[i].matchcallback(unescaped) != 0)) { -#if defined(LIBXML_HTTP_ENABLED) && defined(HAVE_ZLIB_H) +#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_ZLIB_ENABLED) /* Need to pass compression parameter into HTTP open calls */ if (xmlOutputCallbackTable[i].matchcallback == xmlIOHTTPMatch) context = xmlIOHTTPOpenW(unescaped, compression); @@ -2696,7 +2696,7 @@ __xmlOutputBufferCreateFilename(const char *URI, * filename */ if (context == NULL) { -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if ((compression > 0) && (compression <= 9) && (is_file_uri == 1)) { context = xmlGzfileOpenW(URI, compression); if (context != NULL) { @@ -2713,7 +2713,7 @@ __xmlOutputBufferCreateFilename(const char *URI, for (i = xmlOutputCallbackNr - 1;i >= 0;i--) { if ((xmlOutputCallbackTable[i].matchcallback != NULL) && (xmlOutputCallbackTable[i].matchcallback(URI) != 0)) { -#if defined(LIBXML_HTTP_ENABLED) && defined(HAVE_ZLIB_H) +#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_ZLIB_ENABLED) /* Need to pass compression parameter into HTTP open calls */ if (xmlOutputCallbackTable[i].matchcallback == xmlIOHTTPMatch) context = xmlIOHTTPOpenW(URI, compression); @@ -3157,7 +3157,7 @@ xmlParserInputBufferPush(xmlParserInputBufferPtr in, * convert as much as possible to the parser reading buffer. */ use = xmlBufUse(in->raw); - nbchars = xmlCharEncInput(in, 1); + nbchars = xmlCharEncInput(in, 0); if (nbchars < 0) { xmlIOErr(XML_IO_ENCODER, NULL); in->error = XML_IO_ENCODER; @@ -3273,7 +3273,7 @@ xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len) { * convert as much as possible to the parser reading buffer. */ use = xmlBufUse(in->raw); - nbchars = xmlCharEncInput(in, 1); + nbchars = xmlCharEncInput(in, 0); if (nbchars < 0) { xmlIOErr(XML_IO_ENCODER, NULL); in->error = XML_IO_ENCODER; @@ -3015,7 +3015,7 @@ static void usage(FILE *f, const char *name) { fprintf(f, "\t--repeat : repeat 100 times, for timing or profiling\n"); fprintf(f, "\t--insert : ad-hoc test for valid insertions\n"); #ifdef LIBXML_OUTPUT_ENABLED -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED fprintf(f, "\t--compress : turn on gzip compression of output\n"); #endif #endif /* LIBXML_OUTPUT_ENABLED */ @@ -3295,7 +3295,7 @@ main(int argc, char **argv) { } #endif #ifdef LIBXML_OUTPUT_ENABLED -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED else if ((!strcmp(argv[i], "-compress")) || (!strcmp(argv[i], "--compress"))) { compress++; diff --git a/xmlmodule.c b/xmlmodule.c index e3a8bd64..a95ab66a 100644 --- a/xmlmodule.c +++ b/xmlmodule.c @@ -340,6 +340,7 @@ xmlModulePlatformClose(void *handle) static int xmlModulePlatformSymbol(void *handle, const char *name, void **symbol) { +XML_IGNORE_PEDANTIC_WARNINGS #ifdef _WIN32_WCE /* * GetProcAddressA seems only available on WinCE @@ -349,6 +350,7 @@ xmlModulePlatformSymbol(void *handle, const char *name, void **symbol) *symbol = GetProcAddress(handle, name); #endif return (NULL == *symbol) ? -1 : 0; +XML_POP_WARNINGS } #endif /* _WIN32 */ @@ -1595,31 +1595,31 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { if (cur->properties != NULL) xhtmlAttrListDumpOutput(ctxt, cur->properties); - if ((cur->type == XML_ELEMENT_NODE) && - (cur->parent != NULL) && - (cur->parent->parent == (xmlNodePtr) cur->doc) && - xmlStrEqual(cur->name, BAD_CAST"head") && - xmlStrEqual(cur->parent->name, BAD_CAST"html")) { - - tmp = cur->children; - while (tmp != NULL) { - if (xmlStrEqual(tmp->name, BAD_CAST"meta")) { - xmlChar *httpequiv; - - httpequiv = xmlGetProp(tmp, BAD_CAST"http-equiv"); - if (httpequiv != NULL) { - if (xmlStrcasecmp(httpequiv, BAD_CAST"Content-Type") == 0) { - xmlFree(httpequiv); - break; - } - xmlFree(httpequiv); - } - } - tmp = tmp->next; - } - if (tmp == NULL) - addmeta = 1; - } + if ((cur->type == XML_ELEMENT_NODE) && + (cur->parent != NULL) && + (cur->parent->parent == (xmlNodePtr) cur->doc) && + xmlStrEqual(cur->name, BAD_CAST"head") && + xmlStrEqual(cur->parent->name, BAD_CAST"html")) { + + tmp = cur->children; + while (tmp != NULL) { + if (xmlStrEqual(tmp->name, BAD_CAST"meta")) { + xmlChar *httpequiv; + + httpequiv = xmlGetProp(tmp, BAD_CAST"http-equiv"); + if (httpequiv != NULL) { + if (xmlStrcasecmp(httpequiv, BAD_CAST"Content-Type") == 0) { + xmlFree(httpequiv); + break; + } + xmlFree(httpequiv); + } + } + tmp = tmp->next; + } + if (tmp == NULL) + addmeta = 1; + } if ((cur->type == XML_ELEMENT_NODE) && (cur->children == NULL)) { if (((cur->ns == NULL) || (cur->ns->prefix == NULL)) && @@ -2704,7 +2704,7 @@ xmlSaveFormatFileEnc( const char * filename, xmlDocPtr cur, return(-1); } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if (cur->compression < 0) cur->compression = xmlGetCompressMode(); #endif /* diff --git a/xmlschemas.c b/xmlschemas.c index 97a4db74..405f72ae 100644 --- a/xmlschemas.c +++ b/xmlschemas.c @@ -2842,7 +2842,7 @@ xmlSchemaPResCompAttrErr(xmlSchemaParserCtxtPtr ctxt, xmlSchemaFormatItemForReport(&des, NULL, ownerItem, ownerElem); if (refTypeStr == NULL) refTypeStr = (const char *) xmlSchemaItemTypeToStr(refType); - xmlSchemaPErrExt(ctxt, ownerElem, error, + xmlSchemaPErrExt(ctxt, ownerElem, error, NULL, NULL, NULL, "%s, attribute '%s': The QName value '%s' does not resolve to a(n) " "%s.\n", BAD_CAST des, BAD_CAST name, @@ -7391,8 +7391,8 @@ attr_next: */ if (defValue != NULL) use->defValue = defValue; - if (defValueType == WXS_ATTR_DEF_VAL_FIXED) - use->flags |= XML_SCHEMA_ATTR_USE_FIXED; + if (defValueType == WXS_ATTR_DEF_VAL_FIXED) + use->flags |= XML_SCHEMA_ATTR_USE_FIXED; } check_children: @@ -27837,7 +27837,7 @@ xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt, { if (ctxt == NULL) return; - ctxt->serror = serror; + ctxt->serror = serror; ctxt->error = NULL; ctxt->warning = NULL; ctxt->errCtxt = ctx; @@ -477,84 +477,66 @@ int wrap_cmp( xmlNodePtr x, xmlNodePtr y ); * * ************************************************************************/ -#ifndef TRIO_REPLACE_STDIO -#define TRIO_PUBLIC static +#ifndef NAN +#define NAN (0.0 / 0.0) #endif -#include "trionan.c" -/* - * The lack of portability of this section of the libc is annoying ! - */ -double xmlXPathNAN = 0; -double xmlXPathPINF = 1; -double xmlXPathNINF = -1; -static double xmlXPathNZERO = 0; /* not exported from headers */ -static int xmlXPathInitialized = 0; +#ifndef INFINITY +#define INFINITY HUGE_VAL +#endif + +double xmlXPathNAN = NAN; +double xmlXPathPINF = INFINITY; +double xmlXPathNINF = -INFINITY; /** * xmlXPathInit: * * Initialize the XPath environment + * + * Does nothing but must be kept as public function. */ void xmlXPathInit(void) { - if (xmlXPathInitialized) return; - - xmlXPathPINF = trio_pinf(); - xmlXPathNINF = trio_ninf(); - xmlXPathNAN = trio_nan(); - xmlXPathNZERO = trio_nzero(); - - xmlXPathInitialized = 1; } /** * xmlXPathIsNaN: * @val: a double value * - * Provides a portable isnan() function to detect whether a double - * is a NotaNumber. Based on trio code - * http://sourceforge.net/projects/ctrio/ - * * Returns 1 if the value is a NaN, 0 otherwise */ int xmlXPathIsNaN(double val) { - return(trio_isnan(val)); +#ifdef isnan + return isnan(val); +#else + return !(val == val); +#endif } /** * xmlXPathIsInf: * @val: a double value * - * Provides a portable isinf() function to detect whether a double - * is a +Infinite or -Infinite. Based on trio code - * http://sourceforge.net/projects/ctrio/ - * - * Returns 1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise + * Returns 1 if the value is +Infinite, -1 if -Infinite, 0 otherwise */ int xmlXPathIsInf(double val) { - return(trio_isinf(val)); +#ifdef isinf + return isinf(val) ? (val > 0 ? 1 : -1) : 0; +#else + if (val >= HUGE_VAL) + return 1; + if (val <= -HUGE_VAL) + return -1; + return 0; +#endif } #endif /* SCHEMAS or XPATH */ -#ifdef LIBXML_XPATH_ENABLED -/** - * xmlXPathGetSign: - * @val: a double value - * - * Provides a portable function to detect the sign of a double - * Modified from trio code - * http://sourceforge.net/projects/ctrio/ - * - * Returns 1 if the value is Negative, 0 if positive - */ -static int -xmlXPathGetSign(double val) { - return(trio_signbit(val)); -} +#ifdef LIBXML_XPATH_ENABLED /* * TODO: when compatibility allows remove all "fake node libxslt" strings @@ -1423,7 +1405,8 @@ xmlXPathDebugDumpObject(FILE *output, xmlXPathObjectPtr cur, int depth) { default: if (xmlXPathIsNaN(cur->floatval)) { fprintf(output, "Object is a number : NaN\n"); - } else if (cur->floatval == 0 && xmlXPathGetSign(cur->floatval) != 0) { + } else if (cur->floatval == 0) { + /* Omit sign for negative zero. */ fprintf(output, "Object is a number : 0\n"); } else { fprintf(output, "Object is a number : %0g\n", cur->floatval); @@ -3119,7 +3102,8 @@ xmlXPathFormatNumber(double number, char buffer[], int buffersize) if (xmlXPathIsNaN(number)) { if (buffersize > (int)sizeof("NaN")) snprintf(buffer, buffersize, "NaN"); - } else if (number == 0 && xmlXPathGetSign(number) != 0) { + } else if (number == 0) { + /* Omit sign for negative zero. */ snprintf(buffer, buffersize, "0"); } else if ((number > INT_MIN) && (number < INT_MAX) && (number == (int) number)) { @@ -4896,7 +4880,9 @@ xmlXPathRegisterFuncNS(xmlXPathContextPtr ctxt, const xmlChar *name, return(-1); if (f == NULL) return(xmlHashRemoveEntry2(ctxt->funcHash, name, ns_uri, NULL)); - return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, XML_CAST_FPTR(f))); +XML_IGNORE_PEDANTIC_WARNINGS + return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, (void *) f)); +XML_POP_WARNINGS } /** @@ -4977,7 +4963,9 @@ xmlXPathFunctionLookupNS(xmlXPathContextPtr ctxt, const xmlChar *name, if (ctxt->funcHash == NULL) return(NULL); - XML_CAST_FPTR(ret) = xmlHashLookup2(ctxt->funcHash, name, ns_uri); +XML_IGNORE_PEDANTIC_WARNINGS + ret = (xmlXPathFunction) xmlHashLookup2(ctxt->funcHash, name, ns_uri); +XML_POP_WARNINGS return(ret); } @@ -5728,7 +5716,8 @@ xmlXPathCastNumberToString (double val) { default: if (xmlXPathIsNaN(val)) { ret = xmlStrdup((const xmlChar *) "NaN"); - } else if (val == 0 && xmlXPathGetSign(val) != 0) { + } else if (val == 0) { + /* Omit sign for negative zero. */ ret = xmlStrdup((const xmlChar *) "0"); } else { /* could be improved */ @@ -5910,10 +5899,10 @@ xmlXPathCastNodeToNumber (xmlNodePtr node) { double ret; if (node == NULL) - return(xmlXPathNAN); + return(NAN); strval = xmlXPathCastNodeToString(node); if (strval == NULL) - return(xmlXPathNAN); + return(NAN); ret = xmlXPathCastStringToNumber(strval); xmlFree(strval); @@ -5934,7 +5923,7 @@ xmlXPathCastNodeSetToNumber (xmlNodeSetPtr ns) { double ret; if (ns == NULL) - return(xmlXPathNAN); + return(NAN); str = xmlXPathCastNodeSetToString(ns); ret = xmlXPathCastStringToNumber(str); xmlFree(str); @@ -5954,13 +5943,13 @@ xmlXPathCastToNumber(xmlXPathObjectPtr val) { double ret = 0.0; if (val == NULL) - return(xmlXPathNAN); + return(NAN); switch (val->type) { case XPATH_UNDEFINED: #ifdef DEGUB_EXPR xmlGenericError(xmlGenericErrorContext, "NUMBER: undefined\n"); #endif - ret = xmlXPathNAN; + ret = NAN; break; case XPATH_NODESET: case XPATH_XSLT_TREE: @@ -5980,7 +5969,7 @@ xmlXPathCastToNumber(xmlXPathObjectPtr val) { case XPATH_RANGE: case XPATH_LOCATIONSET: TODO; - ret = xmlXPathNAN; + ret = NAN; break; } return(ret); @@ -7484,20 +7473,7 @@ xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt) { if ((ctxt == NULL) || (ctxt->context == NULL)) return; CAST_TO_NUMBER; CHECK_TYPE(XPATH_NUMBER); - if (xmlXPathIsNaN(ctxt->value->floatval)) - ctxt->value->floatval=xmlXPathNAN; - else if (xmlXPathIsInf(ctxt->value->floatval) == 1) - ctxt->value->floatval=xmlXPathNINF; - else if (xmlXPathIsInf(ctxt->value->floatval) == -1) - ctxt->value->floatval=xmlXPathPINF; - else if (ctxt->value->floatval == 0) { - if (xmlXPathGetSign(ctxt->value->floatval) == 0) - ctxt->value->floatval = xmlXPathNZERO; - else - ctxt->value->floatval = 0; - } - else - ctxt->value->floatval = - ctxt->value->floatval; + ctxt->value->floatval = -ctxt->value->floatval; } /** @@ -7589,25 +7565,7 @@ xmlXPathDivValues(xmlXPathParserContextPtr ctxt) { xmlXPathReleaseObject(ctxt->context, arg); CAST_TO_NUMBER; CHECK_TYPE(XPATH_NUMBER); - if (xmlXPathIsNaN(val) || xmlXPathIsNaN(ctxt->value->floatval)) - ctxt->value->floatval = xmlXPathNAN; - else if (val == 0 && xmlXPathGetSign(val) != 0) { - if (ctxt->value->floatval == 0) - ctxt->value->floatval = xmlXPathNAN; - else if (ctxt->value->floatval > 0) - ctxt->value->floatval = xmlXPathNINF; - else if (ctxt->value->floatval < 0) - ctxt->value->floatval = xmlXPathPINF; - } - else if (val == 0) { - if (ctxt->value->floatval == 0) - ctxt->value->floatval = xmlXPathNAN; - else if (ctxt->value->floatval > 0) - ctxt->value->floatval = xmlXPathPINF; - else if (ctxt->value->floatval < 0) - ctxt->value->floatval = xmlXPathNINF; - } else - ctxt->value->floatval /= val; + ctxt->value->floatval /= val; } /** @@ -7632,7 +7590,7 @@ xmlXPathModValues(xmlXPathParserContextPtr ctxt) { CHECK_TYPE(XPATH_NUMBER); arg1 = ctxt->value->floatval; if (arg2 == 0) - ctxt->value->floatval = xmlXPathNAN; + ctxt->value->floatval = NAN; else { ctxt->value->floatval = fmod(arg1, arg2); } @@ -9751,13 +9709,9 @@ xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs) { f = ctxt->value->floatval; - /* Test for zero to keep negative zero unchanged. */ - if ((xmlXPathIsNaN(f)) || (f == 0.0)) - return; - - if ((f >= -0.5) && (f < 0.0)) { - /* Negative zero. */ - ctxt->value->floatval = xmlXPathNZERO; + if ((f >= -0.5) && (f < 0.5)) { + /* Handles negative zero. */ + ctxt->value->floatval *= 0.0; } else { double rounded = floor(f); @@ -10104,7 +10058,7 @@ xmlXPathStringEvalNumber(const xmlChar *str) { if (cur == NULL) return(0); while (IS_BLANK_CH(*cur)) cur++; if ((*cur != '.') && ((*cur < '0') || (*cur > '9')) && (*cur != '-')) { - return(xmlXPathNAN); + return(NAN); } if (*cur == '-') { isneg = 1; @@ -10140,7 +10094,7 @@ xmlXPathStringEvalNumber(const xmlChar *str) { cur++; if (((*cur < '0') || (*cur > '9')) && (!ok)) { - return(xmlXPathNAN); + return(NAN); } while (*cur == '0') { frac = frac + 1; @@ -10173,7 +10127,7 @@ xmlXPathStringEvalNumber(const xmlChar *str) { } } while (IS_BLANK_CH(*cur)) cur++; - if (*cur != 0) return(xmlXPathNAN); + if (*cur != 0) return(NAN); if (isneg) ret = -ret; if (is_exponent_negative) exponent = -exponent; ret *= pow(10.0, (double)exponent); @@ -12432,7 +12386,7 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, default: break; } - } else if (cur->type == type) { + } else if (cur->type == (xmlElementType) type) { if (cur->type == XML_NAMESPACE_DECL) XP_TEST_HIT_NS else @@ -467,8 +467,6 @@ xmlXPtrNewRangeNodePoint(xmlNodePtr start, xmlXPathObjectPtr end) { return(NULL); if (end == NULL) return(NULL); - if (start->type != XPATH_POINT) - return(NULL); if (end->type != XPATH_POINT) return(NULL); @@ -31,10 +31,10 @@ #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED #include <zlib.h> #endif -#ifdef HAVE_LZMA_H +#ifdef LIBXML_LZMA_ENABLED #include <lzma.h> #endif @@ -76,7 +76,7 @@ typedef struct { char padding1[32]; /* padding allowing to cope with possible extensions of above structure without too much side effect */ -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED /* zlib inflate or deflate stream */ z_stream zstrm; /* stream structure in-place (not a pointer) */ #endif @@ -130,7 +130,7 @@ xz_reset(xz_statep state) xz_error(state, LZMA_OK, NULL); /* clear error */ state->pos = 0; /* no uncompressed data yet */ state->strm.avail_in = 0; /* no input data yet */ -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED state->zstrm.avail_in = 0; /* no input data yet */ #endif } @@ -272,7 +272,7 @@ xz_avail(xz_statep state) return 0; } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED static int xz_avail_zstrm(xz_statep state) { @@ -349,7 +349,7 @@ is_format_lzma(xz_statep state) return 1; } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED /* Get next byte from input, or -1 if end or error. */ #define NEXT() ((strm->avail_in == 0 && xz_avail(state) == -1) ? -1 : \ @@ -415,7 +415,7 @@ xz_head(xz_statep state) xz_error(state, LZMA_MEM_ERROR, "out of memory"); return -1; } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED /* allocate inflate memory */ state->zstrm.zalloc = Z_NULL; state->zstrm.zfree = Z_NULL; @@ -449,7 +449,7 @@ xz_head(xz_statep state) state->direct = 0; return 0; } -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED /* look for the gzip magic header bytes 31 and 139 */ if (strm->next_in[0] == 31) { strm->avail_in--; @@ -550,7 +550,7 @@ xz_decomp(xz_statep state) action = LZMA_FINISH; /* decompress and handle errors */ -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if (state->how == GZIP) { state->zstrm.avail_in = (uInt) state->strm.avail_in; state->zstrm.next_in = (Bytef *) state->strm.next_in; @@ -592,13 +592,13 @@ xz_decomp(xz_statep state) /* update available output and crc check value */ state->have = had - strm->avail_out; state->next = strm->next_out - state->have; -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED state->zstrm.adler = crc32(state->zstrm.adler, state->next, state->have); #endif if (ret == LZMA_STREAM_END) { -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if (state->how == GZIP) { if (gz_next4(state, &crc) == -1 || gz_next4(state, &len) == -1) { xz_error(state, LZMA_DATA_ERROR, "unexpected end of file"); @@ -788,7 +788,7 @@ __libxml2_xzclose(xzFile file) /* free memory and close file */ if (state->size) { lzma_end(&(state->strm)); -#ifdef HAVE_ZLIB_H +#ifdef LIBXML_ZLIB_ENABLED if (state->init == 1) inflateEnd(&(state->zstrm)); state->init = 0; |