summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2018-01-05 10:19:05 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2018-01-05 10:19:20 +0900
commitf4ef47c4cf343faf4464001aa73ba0fe4878000b (patch)
tree0a6fecfbbfce53d96cb3e9ca33e12d17391e3050
parent8737843a4d457b79d3c6abbc17fbf97b81a8861e (diff)
parent28153c89adaff8d83720eb1c37d940cca6506c9c (diff)
downloadlibxslt-f4ef47c4cf343faf4464001aa73ba0fe4878000b.tar.gz
libxslt-f4ef47c4cf343faf4464001aa73ba0fe4878000b.tar.bz2
libxslt-f4ef47c4cf343faf4464001aa73ba0fe4878000b.zip
Merge branch 'tizen_base' into tizen
Change-Id: I8832282d1456721bfd7565a90f89065c90b24b6f Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
-rw-r--r--Makefile.am6
-rw-r--r--Makefile.in32
-rw-r--r--aclocal.m4350
-rwxr-xr-xconfig.guess165
-rw-r--r--config.h.in11
-rwxr-xr-xconfig.sub52
-rwxr-xr-xconfigure427
-rw-r--r--configure.ac (renamed from configure.in)134
-rw-r--r--doc/APIchunk0.html9
-rw-r--r--doc/APIchunk1.html69
-rw-r--r--doc/APIchunk10.html36
-rw-r--r--doc/APIchunk11.html17
-rw-r--r--doc/APIchunk12.html17
-rw-r--r--doc/APIchunk13.html8
-rw-r--r--doc/APIchunk2.html72
-rw-r--r--doc/APIchunk3.html9
-rw-r--r--doc/APIchunk4.html21
-rw-r--r--doc/APIchunk5.html16
-rw-r--r--doc/APIchunk6.html17
-rw-r--r--doc/APIchunk7.html17
-rw-r--r--doc/APIchunk8.html19
-rw-r--r--doc/APIchunk9.html13
-rw-r--r--doc/APIconstructors.html1
-rw-r--r--doc/APIfiles.html9
-rw-r--r--doc/APIfunctions.html5
-rw-r--r--doc/APIsymbols.html9
-rw-r--r--doc/Makefile.am1
-rw-r--r--doc/Makefile.in15
-rwxr-xr-xdoc/apibuild.py1
-rw-r--r--doc/html/libxslt-extra.html3
-rw-r--r--doc/html/libxslt-transform.html6
-rw-r--r--doc/html/libxslt-variables.html6
-rw-r--r--doc/html/libxslt-xsltInternals.html22
-rw-r--r--doc/html/libxslt-xsltlocale.html6
-rw-r--r--doc/html/libxslt-xsltutils.html2
-rw-r--r--doc/libxslt-api.xml68
-rw-r--r--doc/libxslt-refs.xml191
-rw-r--r--doc/libxslt.xsa102
-rw-r--r--doc/newapi.xsl2
-rw-r--r--doc/news.html103
-rw-r--r--doc/symbols.xml27
-rw-r--r--doc/syms.xsl15
-rw-r--r--doc/xslt.html105
-rw-r--r--libexslt/Makefile.am2
-rw-r--r--libexslt/Makefile.in19
-rw-r--r--libexslt/common.c8
-rw-r--r--libexslt/crypto.c24
-rw-r--r--libexslt/date.c1047
-rw-r--r--libexslt/dynamic.c28
-rw-r--r--libexslt/functions.c59
-rw-r--r--libexslt/libexslt.h2
-rw-r--r--libexslt/math.c2
-rw-r--r--libexslt/saxon.c2
-rw-r--r--libexslt/sets.c32
-rw-r--r--libexslt/strings.c96
-rw-r--r--libxslt.spec6
-rw-r--r--libxslt/Makefile.am2
-rw-r--r--libxslt/Makefile.in19
-rw-r--r--libxslt/attributes.c744
-rw-r--r--libxslt/extensions.c3
-rw-r--r--libxslt/extra.c141
-rw-r--r--libxslt/extra.h8
-rw-r--r--libxslt/functions.c29
-rw-r--r--libxslt/keys.c3
-rw-r--r--libxslt/libxslt.h2
-rw-r--r--libxslt/libxslt.syms33
-rw-r--r--libxslt/numbers.c123
-rw-r--r--libxslt/pattern.c32
-rw-r--r--libxslt/preproc.c5
-rw-r--r--libxslt/security.c6
-rw-r--r--libxslt/templates.c17
-rw-r--r--libxslt/transform.c259
-rw-r--r--libxslt/variables.c176
-rw-r--r--libxslt/variables.h35
-rw-r--r--libxslt/xslt.c128
-rw-r--r--libxslt/xsltInternals.h18
-rw-r--r--libxslt/xsltconfig.h.in13
-rw-r--r--libxslt/xsltlocale.c25
-rw-r--r--libxslt/xsltlocale.h29
-rw-r--r--libxslt/xsltutils.c25
-rw-r--r--packaging/libxslt.spec13
-rw-r--r--python/Makefile.in10
-rw-r--r--python/libxslt.c10
-rw-r--r--python/tests/Makefile.in14
-rw-r--r--tests/Makefile.in14
-rw-r--r--tests/REC/Makefile.in14
-rw-r--r--tests/REC/test-2.5-1.err4
-rw-r--r--tests/REC1/Makefile.in14
-rw-r--r--tests/REC2/Makefile.in14
-rw-r--r--tests/XSLTMark/Makefile.in14
-rw-r--r--tests/docbook/Makefile.am17
-rw-r--r--tests/docbook/Makefile.in31
-rw-r--r--tests/docs/Makefile.in14
-rw-r--r--tests/documents/Makefile.in14
-rw-r--r--tests/documents/message.result1
-rw-r--r--tests/exslt/Makefile.in14
-rw-r--r--tests/exslt/common/Makefile.in14
-rw-r--r--tests/exslt/crypto/Makefile.in14
-rw-r--r--tests/exslt/date/Makefile.am29
-rw-r--r--tests/exslt/date/Makefile.in45
-rw-r--r--tests/exslt/date/add.1.out2
-rw-r--r--tests/exslt/date/add.1.xml1
-rw-r--r--tests/exslt/date/date.1.out10
-rw-r--r--tests/exslt/date/date.1.xml2
-rw-r--r--tests/exslt/date/datetime.1.out14
-rw-r--r--tests/exslt/date/difference.1.out10
-rw-r--r--tests/exslt/date/difference.1.xml3
-rw-r--r--tests/exslt/date/gyear.1.out4
-rw-r--r--tests/exslt/date/gyear.1.xml2
-rw-r--r--tests/exslt/date/gyearmonth.1.out4
-rw-r--r--tests/exslt/date/gyearmonth.1.xml2
-rw-r--r--tests/exslt/date/seconds.1.out6
-rw-r--r--tests/exslt/date/seconds.1.xml2
-rw-r--r--tests/exslt/date/seconds.2.out2
-rw-r--r--tests/exslt/date/seconds.2.xml1
-rw-r--r--tests/exslt/dynamic/Makefile.in14
-rw-r--r--tests/exslt/functions/Makefile.am3
-rw-r--r--tests/exslt/functions/Makefile.in17
-rw-r--r--tests/exslt/functions/function.11.out2
-rw-r--r--tests/exslt/functions/function.11.xml2
-rw-r--r--tests/exslt/functions/function.11.xsl32
-rw-r--r--tests/exslt/math/Makefile.in14
-rw-r--r--tests/exslt/saxon/Makefile.am14
-rw-r--r--tests/exslt/saxon/Makefile.in28
-rw-r--r--tests/exslt/saxon/eval.2.err2
-rw-r--r--tests/exslt/saxon/eval.2.out2
-rw-r--r--tests/exslt/saxon/eval.3.err3
-rw-r--r--tests/exslt/saxon/eval.3.out2
-rw-r--r--tests/exslt/sets/Makefile.in14
-rw-r--r--tests/exslt/strings/Makefile.in14
-rw-r--r--tests/extensions/Makefile.in14
-rw-r--r--tests/general/Makefile.am4
-rw-r--r--tests/general/Makefile.in18
-rw-r--r--tests/general/bug-165.err2
-rw-r--r--tests/general/bug-165.out8
-rw-r--r--tests/general/bug-175.err6
-rw-r--r--tests/general/bug-175.xsl5
-rw-r--r--tests/general/bug-180.err2
-rw-r--r--tests/general/bug-184.err3
-rw-r--r--tests/general/bug-184.out2
-rw-r--r--tests/keys/Makefile.in14
-rw-r--r--tests/multiple/Makefile.in14
-rw-r--r--tests/namespaces/Makefile.in14
-rw-r--r--tests/numbers/Makefile.in14
-rw-r--r--tests/plugins/Makefile.am2
-rw-r--r--tests/plugins/Makefile.in16
-rw-r--r--tests/reports/Makefile.in14
-rw-r--r--tests/xinclude/Makefile.in14
-rw-r--r--tests/xmlspec/Makefile.in14
-rw-r--r--win32/Makefile.mingw58
-rw-r--r--win32/Makefile.msvc2
-rw-r--r--win32/configure.js31
-rw-r--r--win32/libxslt.def.src2
-rw-r--r--win32/libxslt/libxslt_so.dsp8
-rw-r--r--win32/libxslt/xsltproc.dsp8
-rw-r--r--win32/runtests.py2
-rw-r--r--xsltproc/Makefile.am2
-rw-r--r--xsltproc/Makefile.in16
-rw-r--r--xsltproc/testThreads.c2
-rw-r--r--xsltproc/xsltproc.c18
160 files changed, 3661 insertions, 2628 deletions
diff --git a/Makefile.am b/Makefile.am
index 50af9b5d..ff10f574 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -49,9 +49,9 @@ dummy:
tests: dummy
@echo '## Running the regression test suite'
- @(cd tests ; $(MAKE) tests)
- @(cd xsltproc ; $(MAKE) tests)
- @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) tests ; fi)
+ @(cd tests ; $(MAKE) -s tests)
+ @(cd xsltproc ; $(MAKE) -s tests)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) -s tests ; fi)
valgrind:
@echo '## Running the regression tests under Valgrind'
diff --git a/Makefile.in b/Makefile.in
index d9d025b1..dc09261c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -91,7 +91,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -309,7 +309,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -326,6 +325,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -335,12 +337,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -359,8 +359,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -448,15 +446,15 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu Makefile
+ $(AUTOMAKE) --foreign Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -780,7 +778,7 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
@@ -806,7 +804,7 @@ dist-shar: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
$(am__post_remove_distdir)
dist-zip: distdir
@@ -824,7 +822,7 @@ dist dist-all:
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
@@ -834,7 +832,7 @@ distcheck: dist
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
@@ -1059,9 +1057,9 @@ dummy:
tests: dummy
@echo '## Running the regression test suite'
- @(cd tests ; $(MAKE) tests)
- @(cd xsltproc ; $(MAKE) tests)
- @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) tests ; fi)
+ @(cd tests ; $(MAKE) -s tests)
+ @(cd xsltproc ; $(MAKE) -s tests)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) -s tests ; fi)
valgrind:
@echo '## Running the regression tests under Valgrind'
diff --git a/aclocal.m4 b/aclocal.m4
index f5ac3957..76b0ba3e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -9052,6 +9052,350 @@ m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 11 (pkg-config-0.29.1)
+
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+ [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+ [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+ [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+ [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+ AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+ [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+ [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+ [auto],[PKG_CHECK_MODULES([$1],[$2],
+ [m4_n([def_action_if_found]) $3],
+ [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+ [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+ [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@@ -9064,10 +9408,10 @@ m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
+[am__api_version='1.14'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15], [],
+m4_if([$1], [1.14], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -9083,7 +9427,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15])dnl
+[AM_AUTOMAKE_VERSION([1.14])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/config.guess b/config.guess
index dbfb9786..2e9ad7fe 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2015 Free Software Foundation, Inc.
+# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2015-01-01'
+timestamp='2016-10-02'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@ timestamp='2015-01-01'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ /sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || \
+ echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
+ earmv*)
+ arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine=${arch}${endian}-unknown
+ ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
+ # to ELF recently (or will in the future) and ABI.
case "${UNAME_MACHINE_ARCH}" in
+ earm*)
+ os=netbsdelf
+ ;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
os=netbsd
;;
esac
+ # Determine ABI tags.
+ case "${UNAME_MACHINE_ARCH}" in
+ earm*)
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ ;;
+ esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
@@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
+ echo "${machine}-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
exit ;;
+ *:LibertyBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+ exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
@@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
+ *:Sortix:*:*)
+ echo ${UNAME_MACHINE}-unknown-sortix
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
+ UNAME_MACHINE=alphaev5 ;;
"EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
+ UNAME_MACHINE=alphaev56 ;;
"EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
+ UNAME_MACHINE=alphapca56 ;;
"EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
+ UNAME_MACHINE=alphapca57 ;;
"EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
+ UNAME_MACHINE=alphaev6 ;;
"EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
+ UNAME_MACHINE=alphaev67 ;;
"EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
+ UNAME_MACHINE=alphaev69 ;;
"EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
+ UNAME_MACHINE=alphaev7 ;;
"EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
+ UNAME_MACHINE=alphaev79 ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
@@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
- SUN_ARCH="i386"
+ SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
- SUN_ARCH="x86_64"
+ SUN_ARCH=x86_64
fi
fi
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
@@ -618,13 +642,13 @@ EOF
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ 32) HP_ARCH=hppa2.0n ;;
+ 64) HP_ARCH=hppa2.0w ;;
+ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
@@ -663,11 +687,11 @@ EOF
exit (0);
}
EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
+ if [ ${HP_ARCH} = hppa2.0w ]
then
eval $set_cc_for_build
@@ -680,12 +704,12 @@ EOF
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
- HP_ARCH="hppa2.0w"
+ HP_ARCH=hppa2.0w
else
- HP_ARCH="hppa64"
+ HP_ARCH=hppa64
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -790,14 +814,14 @@ EOF
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
@@ -879,7 +903,7 @@ EOF
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
@@ -902,7 +926,7 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
@@ -933,6 +957,9 @@ EOF
crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
+ e2k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
@@ -945,6 +972,9 @@ EOF
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
+ k1om:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
@@ -970,6 +1000,9 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
+ mips64el:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
openrisc*:Linux:*:*)
echo or1k-unknown-linux-${LIBC}
exit ;;
@@ -1002,6 +1035,9 @@ EOF
ppcle:Linux:*:*)
echo powerpcle-unknown-linux-${LIBC}
exit ;;
+ riscv32:Linux:*:* | riscv64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
@@ -1021,7 +1057,7 @@ EOF
echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
@@ -1100,7 +1136,7 @@ EOF
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configury will decide that
+ # prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
@@ -1249,6 +1285,9 @@ EOF
SX-8R:SUPER-UX:*:*)
echo sx8r-nec-superux${UNAME_RELEASE}
exit ;;
+ SX-ACE:SUPER-UX:*:*)
+ echo sxace-nec-superux${UNAME_RELEASE}
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
@@ -1262,9 +1301,9 @@ EOF
UNAME_PROCESSOR=powerpc
fi
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
@@ -1286,7 +1325,7 @@ EOF
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
+ if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
@@ -1317,7 +1356,7 @@ EOF
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- if test "$cputype" = "386"; then
+ if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
@@ -1359,7 +1398,7 @@ EOF
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
exit ;;
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
@@ -1370,23 +1409,25 @@ EOF
x86_64:VMkernel:*:*)
echo ${UNAME_MACHINE}-unknown-esx
exit ;;
+ amd64:Isilon\ OneFS:*:*)
+ echo x86_64-unknown-onefs
+ exit ;;
esac
cat >&2 <<EOF
$0: unable to guess system type
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite
+config.guess and config.sub with the latest versions from:
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
config.guess timestamp = $timestamp
diff --git a/config.h.in b/config.h.in
index 8f7d8c0f..8aa285b0 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,11 +1,8 @@
-/* config.h.in. Generated from configure.in by autoheader. */
+/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if you have the <ansidecl.h> header file. */
#undef HAVE_ANSIDECL_H
-/* Define to 1 if you have the `asctime' function. */
-#undef HAVE_ASCTIME
-
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
@@ -69,9 +66,6 @@
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
-/* Define to 1 if you have the `mktime' function. */
-#undef HAVE_MKTIME
-
/* Define to 1 if you have the <nan.h> header file. */
#undef HAVE_NAN_H
@@ -111,6 +105,9 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define to 1 if you have the `strxfrm_l' function. */
+#undef HAVE_STRXFRM_L
+
/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
diff --git a/config.sub b/config.sub
index 6467c95a..7b334f99 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2015 Free Software Foundation, Inc.
+# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2015-01-01'
+timestamp='2016-09-05'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ timestamp='2015-01-01'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -53,8 +53,7 @@ timestamp='2015-01-01'
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
@@ -68,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -117,8 +116,8 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
+ kopensolaris*-gnu* | cloudabi*-eabi* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -255,11 +254,12 @@ case $basic_machine in
| arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
+ | ba \
| be32 | be64 \
| bfin \
| c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
- | epiphany \
+ | e2k | epiphany \
| fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
@@ -305,7 +305,7 @@ case $basic_machine in
| riscv32 | riscv64 \
| rl78 | rx \
| score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -376,12 +376,13 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | ba-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
- | elxsi-* \
+ | e2k-* | elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
@@ -428,12 +429,13 @@ case $basic_machine in
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
+ | riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
@@ -518,6 +520,9 @@ case $basic_machine in
basic_machine=i386-pc
os=-aros
;;
+ asmjs)
+ basic_machine=asmjs-unknown
+ ;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -638,6 +643,14 @@ case $basic_machine in
basic_machine=m68k-bull
os=-sysv3
;;
+ e500v[12])
+ basic_machine=powerpc-unknown
+ os=$os"spe"
+ ;;
+ e500v[12]-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=$os"spe"
+ ;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
@@ -1017,7 +1030,7 @@ case $basic_machine in
ppc-* | ppcbe-*)
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
+ ppcle | powerpclittle)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
@@ -1027,7 +1040,7 @@ case $basic_machine in
;;
ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ ppc64le | powerpc64little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
@@ -1373,18 +1386,18 @@ case $os in
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* \
+ | -aos* | -aros* | -cloudabi* | -sortix* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
@@ -1393,7 +1406,8 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+ | -onefs* | -tirtos* | -phoenix*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1525,6 +1539,8 @@ case $os in
;;
-nacl*)
;;
+ -ios)
+ ;;
-none)
;;
*)
diff --git a/configure b/configure
index c190661c..1b473513 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.69 for libxslt 1.1.32.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -585,12 +585,12 @@ MFLAGS=
MAKEFLAGS=
# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-PACKAGE_URL=
+PACKAGE_NAME='libxslt'
+PACKAGE_TARNAME='libxslt'
+PACKAGE_VERSION='1.1.32'
+PACKAGE_STRING='libxslt 1.1.32'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
ac_unique_file="libxslt/xslt.c"
# Factoring default headers for most tests.
@@ -645,8 +645,6 @@ XSLT_LIBDIR
PYTHON_SITE_PACKAGES
PYTHON_INCLUDES
PYTHON_VERSION
-LIBXML_CFLAGS
-LIBXML_LIBS
PYTHONSODV
XSLTPROCDV
WIN32_EXTRA_LDFLAGS
@@ -655,6 +653,8 @@ LIBXSLT_DEFAULT_PLUGINS_PATH
WITH_MODULES_FALSE
WITH_MODULES_TRUE
WITH_MODULES
+LIBXML_LIBS
+LIBXML_CFLAGS
XML_CONFIG
LIBXML_REQUIRED_VERSION
LIBXML_SRC
@@ -676,8 +676,6 @@ WITH_PERL_FALSE
WITH_PERL_TRUE
PERL
WITH_TRIO
-XSLT_LOCALE_WINAPI
-XSLT_LOCALE_XLOCALE
THREAD_LIBS
USE_VERSION_SCRIPT_FALSE
USE_VERSION_SCRIPT_TRUE
@@ -703,11 +701,11 @@ LIBTOOL
OBJDUMP
DLLTOOL
AS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
XSLTPROC
XMLLINT
-TAR
-MV
-RM
HTML_DIR
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
@@ -852,7 +850,12 @@ LDFLAGS
LIBS
CPPFLAGS
CPP
-LT_SYS_LIBRARY_PATH'
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+LT_SYS_LIBRARY_PATH
+LIBXML_CFLAGS
+LIBXML_LIBS'
# Initialize some variables set by options.
@@ -893,7 +896,7 @@ sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
@@ -1393,7 +1396,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
+\`configure' configures libxslt 1.1.32 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1441,7 +1444,7 @@ Fine tuning of the installation directories:
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/libxslt]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
@@ -1462,7 +1465,9 @@ _ACEOF
fi
if test -n "$ac_init_help"; then
-
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of libxslt 1.1.32:";;
+ esac
cat <<\_ACEOF
Optional Features:
@@ -1516,8 +1521,16 @@ Some influential environment variables:
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
+ LIBXML_CFLAGS
+ C compiler flags for LIBXML, overriding pkg-config
+ LIBXML_LIBS linker flags for LIBXML, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -1585,7 +1598,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-configure
+libxslt configure 1.1.32
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1950,7 +1963,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by $as_me, which was
+It was created by libxslt $as_me 1.1.32, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2298,6 +2311,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
ac_config_headers="$ac_config_headers config.h"
ac_aux_dir=
@@ -3713,11 +3727,10 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
LIBXSLT_MAJOR_VERSION=1
LIBXSLT_MINOR_VERSION=1
-LIBXSLT_MICRO_VERSION=29
-PACKAGE=libxslt
+LIBXSLT_MICRO_VERSION=32
LIBEXSLT_MAJOR_VERSION=0
LIBEXSLT_MINOR_VERSION=8
-LIBEXSLT_MICRO_VERSION=17
+LIBEXSLT_MICRO_VERSION=20
LIBXML_REQUIRED_VERSION=2.6.27
@@ -3779,9 +3792,7 @@ fi
-VERSION=${LIBXSLT_VERSION}
-
-am__api_version='1.15'
+am__api_version='1.14'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
@@ -4326,9 +4337,8 @@ fi
# Define the identity of the package.
-
- PACKAGE=$PACKAGE
- VERSION=$VERSION
+ PACKAGE='libxslt'
+ VERSION='1.1.32'
cat >>confdefs.h <<_ACEOF
@@ -5353,16 +5363,16 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-# Extract the first word of "rm", so it can be a program name with args.
-set dummy rm; ac_word=$2
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_RM+:} false; then :
+if ${ac_cv_path_XMLLINT+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $RM in
+ case $XMLLINT in
[\\/]* | ?:[\\/]*)
- ac_cv_path_RM="$RM" # Let the user override the test with a path.
+ ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5372,7 +5382,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -5380,30 +5390,30 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_RM" && ac_cv_path_RM="/bin/rm"
+ test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="/usr/bin/xmllint"
;;
esac
fi
-RM=$ac_cv_path_RM
-if test -n "$RM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
-$as_echo "$RM" >&6; }
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-# Extract the first word of "mv", so it can be a program name with args.
-set dummy mv; ac_word=$2
+# Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MV+:} false; then :
+if ${ac_cv_path_XSLTPROC+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $MV in
+ case $XSLTPROC in
[\\/]* | ?:[\\/]*)
- ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5413,7 +5423,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -5421,30 +5431,39 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_MV" && ac_cv_path_MV="/bin/mv"
+ test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="/usr/bin/xsltproc"
;;
esac
fi
-MV=$ac_cv_path_MV
-if test -n "$MV"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
-$as_echo "$MV" >&6; }
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-# Extract the first word of "tar", so it can be a program name with args.
-set dummy tar; ac_word=$2
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TAR+:} false; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $TAR in
+ case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
- ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5454,7 +5473,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -5462,30 +5481,32 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_TAR" && ac_cv_path_TAR="/bin/tar"
;;
esac
fi
-TAR=$ac_cv_path_TAR
-if test -n "$TAR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
-$as_echo "$TAR" >&6; }
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-# Extract the first word of "xmllint", so it can be a program name with args.
-set dummy xmllint; ac_word=$2
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XMLLINT+:} false; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $XMLLINT in
+ case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
- ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5495,7 +5516,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -5503,62 +5524,48 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="/usr/bin/xmllint"
;;
esac
fi
-XMLLINT=$ac_cv_path_XMLLINT
-if test -n "$XMLLINT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
-$as_echo "$XMLLINT" >&6; }
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-
-# Extract the first word of "xsltproc", so it can be a program name with args.
-set dummy xsltproc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XSLTPROC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $XSLTPROC in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
-done
- done
-IFS=$as_save_IFS
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
- test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="/usr/bin/xsltproc"
- ;;
-esac
fi
-XSLTPROC=$ac_cv_path_XSLTPROC
-if test -n "$XSLTPROC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
-$as_echo "$XSLTPROC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
fi
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
@@ -13661,9 +13668,6 @@ esac
-XSLT_LOCALE_XLOCALE=0
-XSLT_LOCALE_WINAPI=0
-
for ac_header in locale.h xlocale.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -13677,85 +13681,16 @@ fi
done
-if test $ac_cv_header_xlocale_h = yes; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if xlocale program link" >&5
-$as_echo_n "checking if xlocale program link... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_LOCALE_H
-#include <locale.h>
-#endif
-#ifdef HAVE_XLOCALE_H
-#include <xlocale.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#ifdef __GLIBC__
-typedef __locale_t xsltLocale;
-#else
-typedef locale_t xsltLocale;
-#endif
-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ <= 2
-#define newlocale __newlocale
-#define freelocale __freelocale
-#define strxfrm_l __strxfrm_l
-#define LC_COLLATE_MASK (1 << LC_COLLATE)
-#endif
-
-int
-main ()
-{
-
- xsltLocale locale;
- const char *src[2] = { "\xc3\x84rger", "Zeppelin" };
- char *dst[2];
- size_t len, r;
- int i;
-
- locale = newlocale(LC_COLLATE_MASK, "en_US.utf8", NULL);
- if (locale == NULL) exit(1);
- for (i=0; i<2; ++i) {
- len = strxfrm_l(NULL, src[i], 0, locale) + 1;
- dst[i] = malloc(len);
- if(dst[i] == NULL) exit(1);
- r = strxfrm_l(dst[i], src[i], len, locale);
- if(r >= len) exit(1);
- }
- if (strcmp(dst[0], dst[1]) >= 0) exit(1);
-
- exit(0);
- return(0);
-
- ;
- return 0;
-}
+for ac_func in strxfrm_l
+do :
+ ac_fn_c_check_func "$LINENO" "strxfrm_l" "ac_cv_func_strxfrm_l"
+if test "x$ac_cv_func_strxfrm_l" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRXFRM_L 1
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }; XSLT_LOCALE_XLOCALE=1
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-else
- case "$host" in
- *-*-mingw*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: using winapi locale" >&5
-$as_echo "$as_me: using winapi locale" >&6;}
- XSLT_LOCALE_WINAPI=1;;
- esac
-fi
-
-
+done
@@ -13968,7 +13903,7 @@ _ACEOF
fi
done
-for ac_func in mktime localtime localtime_r asctime time gmtime gmtime_r ftime
+for ac_func in localtime localtime_r time gmtime gmtime_r ftime
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -14492,8 +14427,6 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml libraries >= $LIBXML_REQUIRED_VERSION" >&5
-$as_echo_n "checking for libxml libraries >= $LIBXML_REQUIRED_VERSION... " >&6; }
if test "x$LIBXML_CONFIG_PREFIX" != "x"
then
if test -n "$ac_tool_prefix"; then
@@ -14722,10 +14655,11 @@ then
CWD=`pwd`
if cd $LIBXML_SRC
then
- SRC_DIR=`pwd`
- XML_CONFIG=${SRC_DIR}/xml2-config
- LIBXML_CFLAGS="-I${SRC_DIR}/include"
- LIBXML_LIBS="-L${SRC_DIR}"
+ LIBXML_SRC=`pwd`
+ XML_CONFIG="${LIBXML_SRC}/xml2-config"
+ LIBXML_CFLAGS="-I${LIBXML_SRC}/include"
+ LIBXML_LIBS="-L${LIBXML_SRC} `$XML_CONFIG --libs`"
+ WITH_MODULES="`$XML_CONFIG --modules`"
cd $CWD
else
as_fn_error $? "libxml source dir not found (${LIBXML_SRC}), typo?" "$LINENO" 5
@@ -14733,8 +14667,88 @@ then
fi
-if ${XML_CONFIG} --libs print > /dev/null 2>&1
+if test "x$LIBXML_CONFIG_PREFIX" = "x" -a "x$LIBXML_LIBS" = "x"
+then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML" >&5
+$as_echo_n "checking for LIBXML... " >&6; }
+
+if test -n "$LIBXML_CFLAGS"; then
+ pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= \$LIBXML_REQUIRED_VERSION\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= $LIBXML_REQUIRED_VERSION") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= $LIBXML_REQUIRED_VERSION" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LIBXML_LIBS"; then
+ pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= \$LIBXML_REQUIRED_VERSION\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= $LIBXML_REQUIRED_VERSION") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= $LIBXML_REQUIRED_VERSION" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LIBXML_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0 >= $LIBXML_REQUIRED_VERSION" 2>&1`
+ else
+ LIBXML_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0 >= $LIBXML_REQUIRED_VERSION" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LIBXML_PKG_ERRORS" >&5
+
+
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+else
+ LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
+ LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+ WITH_MODULES="`$PKG_CONFIG --variable=modules libxml-2.0`"
+
+fi
+fi
+
+
+if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs print > /dev/null 2>&1
then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml libraries >= $LIBXML_REQUIRED_VERSION" >&5
+$as_echo_n "checking for libxml libraries >= $LIBXML_REQUIRED_VERSION... " >&6; }
XMLVERS=`$XML_CONFIG --version`
if test `echo $XMLVERS | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` -ge `echo $LIBXML_REQUIRED_VERSION | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
then
@@ -14743,11 +14757,13 @@ $as_echo "$XMLVERS found" >&6; }
else
as_fn_error $? "Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of libxslt" "$LINENO" 5
fi
- LIBXML_LIBS="$LIBXML_LIBS `$XML_CONFIG --libs`"
- if test "x$LIBXML_SRC" = "x"; then
- LIBXML_CFLAGS="$LIBXML_CFLAGS `$XML_CONFIG --cflags`"
- fi
-else
+ LIBXML_LIBS="`$XML_CONFIG --libs`"
+ LIBXML_CFLAGS="`$XML_CONFIG --cflags`"
+ WITH_MODULES="`$XML_CONFIG --modules`"
+fi
+
+if test "x$LIBXML_LIBS" = "x"
+then
as_fn_error $? "Could not find libxml2 anywhere, check ftp://xmlsoft.org/." "$LINENO" 5
fi
@@ -14785,7 +14801,6 @@ fi
if test "$with_plugins" = "yes" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking libxml2 module support" >&5
$as_echo_n "checking libxml2 module support... " >&6; }
- WITH_MODULES="`$XML_CONFIG --modules`"
if test "${WITH_MODULES}" = "1"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -15427,7 +15442,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by $as_me, which was
+This file was extended by libxslt $as_me 1.1.32, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15493,7 +15508,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-config.status
+libxslt config.status 1.1.32
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.in b/configure.ac
index 8bdf45a1..9f40d9aa 100644
--- a/configure.in
+++ b/configure.ac
@@ -1,6 +1,12 @@
dnl Process this file with autoconf to produce a configuration script.
-AC_PREREQ(2.59)
-AC_INIT(libxslt/xslt.c)
+AC_PREREQ(2.63)
+
+m4_define([MAJOR_VERSION], [1])
+m4_define([MINOR_VERSION], [1])
+m4_define([MICRO_VERSION], [32])
+
+AC_INIT([libxslt], [MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION])
+AC_CONFIG_SRCDIR([libxslt/xslt.c])
AC_CONFIG_HEADERS(config.h)
AC_CANONICAL_HOST
AC_USE_SYSTEM_EXTENSIONS
@@ -9,13 +15,12 @@ dnl
dnl libxslt is the main part of the package
dnl libexslt is an extension
dnl
-LIBXSLT_MAJOR_VERSION=1
-LIBXSLT_MINOR_VERSION=1
-LIBXSLT_MICRO_VERSION=29
-PACKAGE=libxslt
+LIBXSLT_MAJOR_VERSION=MAJOR_VERSION
+LIBXSLT_MINOR_VERSION=MINOR_VERSION
+LIBXSLT_MICRO_VERSION=MICRO_VERSION
LIBEXSLT_MAJOR_VERSION=0
LIBEXSLT_MINOR_VERSION=8
-LIBEXSLT_MICRO_VERSION=17
+LIBEXSLT_MICRO_VERSION=20
LIBXML_REQUIRED_VERSION=2.6.27
@@ -80,9 +85,7 @@ AC_SUBST(LIBEXSLT_VERSION_INFO)
AC_SUBST(LIBEXSLT_VERSION_NUMBER)
AC_SUBST(LIBEXSLT_VERSION_EXTRA)
-VERSION=${LIBXSLT_VERSION}
-
-AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+AM_INIT_AUTOMAKE([foreign])
# AM_MAINTAINER_MODE
@@ -113,11 +116,9 @@ dnl
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_CPP
-AC_PATH_PROG(RM, rm, /bin/rm)
-AC_PATH_PROG(MV, mv, /bin/mv)
-AC_PATH_PROG(TAR, tar, /bin/tar)
AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint)
AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
+PKG_PROG_PKG_CONFIG
AC_HEADER_STDC
@@ -160,74 +161,8 @@ dnl
dnl Detect supported locale
dnl
-XSLT_LOCALE_XLOCALE=0
-XSLT_LOCALE_WINAPI=0
-
AC_CHECK_HEADERS([locale.h xlocale.h])
-if test $ac_cv_header_xlocale_h = yes; then
-dnl
-dnl Check for generic locale_t declaration
-dnl
-AC_MSG_CHECKING([if xlocale program link])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#ifdef HAVE_LOCALE_H
-#include <locale.h>
-#endif
-#ifdef HAVE_XLOCALE_H
-#include <xlocale.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#ifdef __GLIBC__
-typedef __locale_t xsltLocale;
-#else
-typedef locale_t xsltLocale;
-#endif
-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ <= 2
-#define newlocale __newlocale
-#define freelocale __freelocale
-#define strxfrm_l __strxfrm_l
-#define LC_COLLATE_MASK (1 << LC_COLLATE)
-#endif
-]],[[
- xsltLocale locale;
- const char *src[2] = { "\xc3\x84rger", "Zeppelin" };
- char *dst[2];
- size_t len, r;
- int i;
-
- locale = newlocale(LC_COLLATE_MASK, "en_US.utf8", NULL);
- if (locale == NULL) exit(1);
- for (i=0; i<2; ++i) {
- len = strxfrm_l(NULL, src[i], 0, locale) + 1;
- dst[i] = malloc(len);
- if(dst[i] == NULL) exit(1);
- r = strxfrm_l(dst[i], src[i], len, locale);
- if(r >= len) exit(1);
- }
- if (strcmp(dst[0], dst[1]) >= 0) exit(1);
-
- exit(0);
- return(0);
-]])],
- [AC_MSG_RESULT(yes); XSLT_LOCALE_XLOCALE=1],
- [AC_MSG_RESULT(no)]
-)
-else
- case "$host" in
- *-*-mingw*)
- AC_MSG_NOTICE([using winapi locale])
- XSLT_LOCALE_WINAPI=1;;
- esac
-fi
-
-AC_SUBST(XSLT_LOCALE_XLOCALE)
-AC_SUBST(XSLT_LOCALE_WINAPI)
+AC_CHECK_FUNCS([strxfrm_l])
dnl
dnl Math detection
@@ -248,7 +183,7 @@ AC_CHECK_FUNC(fabs, , AC_CHECK_LIB(m, fabs,
AC_CHECK_FUNCS(gettimeofday)
-AC_CHECK_FUNCS(mktime localtime localtime_r asctime time gmtime gmtime_r ftime)
+AC_CHECK_FUNCS(localtime localtime_r time gmtime gmtime_r ftime)
dnl Checking the standard string functions availability
AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,,
@@ -505,7 +440,6 @@ dnl where is xml2-config
dnl
AC_SUBST(LIBXML_REQUIRED_VERSION)
-AC_MSG_CHECKING(for libxml libraries >= $LIBXML_REQUIRED_VERSION)
if test "x$LIBXML_CONFIG_PREFIX" != "x"
then
AC_PATH_TOOL([XML_CONFIG], [xml2-config], [false], [${LIBXML_CONFIG_PREFIX}/bin])
@@ -546,10 +480,11 @@ then
CWD=`pwd`
if cd $LIBXML_SRC
then
- SRC_DIR=`pwd`
- XML_CONFIG=${SRC_DIR}/xml2-config
- LIBXML_CFLAGS="-I${SRC_DIR}/include"
- LIBXML_LIBS="-L${SRC_DIR}"
+ LIBXML_SRC=`pwd`
+ XML_CONFIG="${LIBXML_SRC}/xml2-config"
+ LIBXML_CFLAGS="-I${LIBXML_SRC}/include"
+ LIBXML_LIBS="-L${LIBXML_SRC} `$XML_CONFIG --libs`"
+ WITH_MODULES="`$XML_CONFIG --modules`"
cd $CWD
else
AC_MSG_ERROR([libxml source dir not found (${LIBXML_SRC}), typo?])
@@ -557,12 +492,24 @@ then
fi
dnl
+dnl Try pkg-config first if nothing is set
+dnl
+
+if test "x$LIBXML_CONFIG_PREFIX" = "x" -a "x$LIBXML_LIBS" = "x"
+then
+ PKG_CHECK_MODULES([LIBXML], [libxml-2.0 >= $LIBXML_REQUIRED_VERSION], [
+ WITH_MODULES="`$PKG_CONFIG --variable=modules libxml-2.0`"
+ ], [ ])
+fi
+
+dnl
dnl make sure xml2-config is executable,
dnl test version and init our variables
dnl
-if ${XML_CONFIG} --libs print > /dev/null 2>&1
+if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs print > /dev/null 2>&1
then
+ AC_MSG_CHECKING(for libxml libraries >= $LIBXML_REQUIRED_VERSION)
XMLVERS=`$XML_CONFIG --version`
if test VERSION_TO_NUMBER(echo $XMLVERS) -ge VERSION_TO_NUMBER(echo $LIBXML_REQUIRED_VERSION)
then
@@ -570,11 +517,13 @@ then
else
AC_MSG_ERROR(Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of libxslt)
fi
- LIBXML_LIBS="$LIBXML_LIBS `$XML_CONFIG --libs`"
- if test "x$LIBXML_SRC" = "x"; then
- LIBXML_CFLAGS="$LIBXML_CFLAGS `$XML_CONFIG --cflags`"
- fi
-else
+ LIBXML_LIBS="`$XML_CONFIG --libs`"
+ LIBXML_CFLAGS="`$XML_CONFIG --cflags`"
+ WITH_MODULES="`$XML_CONFIG --modules`"
+fi
+
+if test "x$LIBXML_LIBS" = "x"
+then
AC_MSG_ERROR([Could not find libxml2 anywhere, check ftp://xmlsoft.org/.])
fi
@@ -602,7 +551,6 @@ fi
if test "$with_plugins" = "yes" ; then
AC_MSG_CHECKING([libxml2 module support])
- WITH_MODULES="`$XML_CONFIG --modules`"
if test "${WITH_MODULES}" = "1"; then
AC_MSG_RESULT(yes)
else
diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html
index 7d21d79c..99ded6ce 100644
--- a/doc/APIchunk0.html
+++ b/doc/APIchunk0.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index A-I for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index A-I for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -155,6 +155,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>Fields</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a><br />
</dd><dt>Finalizes</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
</dd><dt>Find</dt><dd><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
@@ -235,8 +236,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#XSLT_REFACTORED_XPATHCOMP">XSLT_REFACTORED_XPATHCOMP</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html
index cbe31384..d6e975a4 100644
--- a/doc/APIchunk1.html
+++ b/doc/APIchunk1.html
@@ -7,10 +7,10 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
- </style><title>API Alphabetic Index J-S for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index J-S for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+ </style><title>API Alphabetic Index J-R for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index J-R for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -52,6 +52,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
<a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
@@ -80,7 +82,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
</dd><dt>Namespaces</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
</dd><dt>Needed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
-</dd><dt>Norm</dt><dd><a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
</dd><dt>Not</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
@@ -92,14 +93,16 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>Number</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
</dd></dl><h2>Letter O:</h2><dl><dt>ONLY</dt><dd><a href="html/libxslt-xsltInternals.html#xsltInitAllDocKeys">xsltInitAllDocKeys</a><br />
-</dd><dt>Obsolete</dt><dd><a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+</dd><dt>Obsolete</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
</dd><dt>One</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
</dd><dt>Otherwise</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
</dd><dt>Output</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
-</dd></dl><h2>Letter P:</h2><dl><dt>Parser</dt><dd><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+</dd></dl><h2>Letter P:</h2><dl><dt>POSIX</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
+</dd><dt>Parser</dt><dd><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
@@ -157,6 +160,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>Push</dt><dd><a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
</dd></dl><h2>Letter Q:</h2><dl><dt>QName</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
@@ -169,10 +173,15 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>RFC</dt><dd><a href="html/libxslt-xsltlocale.html#xsltNewLocale">xsltNewLocale</a><br />
</dd><dt>ROUTINE</dt><dd><a href="html/libxslt-xsltInternals.html#xsltInitAllDocKeys">xsltInitAllDocKeys</a><br />
</dd><dt>RTF</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
-</dd><dt>RVT</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>RVT</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
<a href="html/libxslt-xsltInternals.html#xsltRegisterLocalRVT">xsltRegisterLocalRVT</a><br />
<a href="html/libxslt-xsltInternals.html#xsltReleaseRVT">xsltReleaseRVT</a><br />
</dd><dt>RVTs</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>Read</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
</dd><dt>Register</dt><dd><a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
@@ -217,51 +226,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
<a href="html/libxslt-extensions.html#xsltStyleStylesheetLevelGetExtData">xsltStyleStylesheetLevelGetExtData</a><br />
</dd><dt>Rule</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
-</dd></dl><h2>Letter S:</h2><dl><dt>SAX</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
-<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
-</dd><dt>SAXON</dt><dd><a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
-</dd><dt>Sampling</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a><br />
-</dd><dt>Save</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
-<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
-<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
-<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
-<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
-<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
-</dd><dt>Saxon</dt><dd><a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
-</dd><dt>Scaling</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
-</dd><dt>Search</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
-<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
-<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
-</dd><dt>Set</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerNodeInfo">_xsltCompilerNodeInfo</a><br />
-<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
-<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
-<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
-<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
-<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
-</dd><dt>Should</dt><dd><a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
-</dd><dt>Shutdown</dt><dd><a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
-<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
-</dd><dt>Signature</dt><dd><a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
-<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
-</dd><dt>Similar</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
-<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
-<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
-</dd><dt>Size</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
-<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
-</dd><dt>Special</dt><dd><a href="html/libxslt-namespaces.html#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a><br />
-<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
-</dd><dt>Specific</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
-</dd><dt>Speed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
-</dd><dt>Split</dt><dd><a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
-</dd><dt>Storage</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
-</dd><dt>Strip</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
-</dd><dt>Structure:</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
-</dd><dt>Stylesheet</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
-<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
-</dd><dt>Symbol</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html
index 5bae01f8..8cc1850a 100644
--- a/doc/APIchunk10.html
+++ b/doc/APIchunk10.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index q-s for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index q-s for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -36,9 +36,11 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>real</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
</dd><dt>really</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltEffectiveNs">_xsltEffectiveNs</a><br />
+</dd><dt>receives</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
</dd><dt>record</dt><dd><a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
</dd><dt>recorded</dt><dd><a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+</dd><dt>recursions</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
</dd><dt>recursive</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
</dd><dt>refactored</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_REFACTORED_VARS">XSLT_REFACTORED_VARS</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
@@ -63,6 +65,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
</dd><dt>related</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+</dd><dt>releases</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
</dd><dt>remain</dt><dd><a href="html/libxslt-transform.html#xsltLocalVariablePop">xsltLocalVariablePop</a><br />
</dd><dt>remove</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseSequenceConstructor">xsltParseSequenceConstructor</a><br />
</dd><dt>reorder</dt><dd><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
@@ -84,7 +88,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
</dd><dt>requires</dt><dd><a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
-</dd><dt>reset</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+</dd><dt>reset</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
@@ -105,20 +111,25 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
<a href="html/libxslt-xsltutils.html#xsltXPathCompileFlags">xsltXPathCompileFlags</a><br />
-</dd><dt>results</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>results</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
</dd><dt>retrieve</dt><dd><a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
</dd><dt>return</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
-</dd><dt>returned</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+</dd><dt>returned</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+</dd><dt>returning</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>reuse</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
<a href="html/libxslt-xsltInternals.html#xsltReleaseRVT">xsltReleaseRVT</a><br />
</dd><dt>rid</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltPrincipalStylesheetData">_xsltPrincipalStylesheetData</a><br />
@@ -149,11 +160,13 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>saving</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
</dd><dt>saxon</dt><dd><a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
</dd><dt>scanner</dt><dd><a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
-</dd><dt>scope</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltKeyDef">_xsltKeyDef</a><br />
+</dd><dt>scope</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltKeyDef">_xsltKeyDef</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
</dd><dt>seaches</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
@@ -324,6 +337,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>state</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
<a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
</dd><dt>states</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
</dd><dt>static</dt><dd><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
@@ -413,6 +427,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-xsltInternals.html#xsltInitAllDocKeys">xsltInitAllDocKeys</a><br />
<a href="html/libxslt-xsltInternals.html#xsltInitCtxtKey">xsltInitCtxtKey</a><br />
<a href="html/libxslt-transform.html#xsltLocalVariablePush">xsltLocalVariablePush</a><br />
@@ -445,15 +460,16 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>suggested</dt><dd><a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
</dd><dt>suitable</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
</dd><dt>sun</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
-</dd><dt>support</dt><dd><a href="html/libxslt-xsltlocale.html#xsltFreeLocales">xsltFreeLocales</a><br />
+</dd><dt>support</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
+<a href="html/libxslt-xsltlocale.html#xsltFreeLocales">xsltFreeLocales</a><br />
</dd><dt>supported</dt><dd><a href="html/libxslt-xslt.html#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a><br />
-<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
</dd><dt>sure</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
</dd><dt>system</dt><dd><a href="html/libxslt-xsltlocale.html#xsltNewLocale">xsltNewLocale</a><br />
</dd><dt>system-property</dt><dd><a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk11.html b/doc/APIchunk11.html
index eea7cc8d..71210eca 100644
--- a/doc/APIchunk11.html
+++ b/doc/APIchunk11.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index t-u for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index t-u for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -84,6 +84,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a><br />
<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
<a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
@@ -112,7 +113,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
<a href="html/libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a><br />
-</dd><dt>there</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
+</dd><dt>there</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
@@ -192,6 +194,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
</dd><dt>unparsed-entity-uri</dt><dd><a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
</dd><dt>unstructured</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
+</dd><dt>unsupported</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
</dd><dt>unused</dt><dd><a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
@@ -201,7 +204,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
</dd><dt>usage</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_FAST_IF">XSLT_FAST_IF</a><br />
-</dd><dt>use</dt><dd><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+</dd><dt>use</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
+<a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
@@ -246,8 +251,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html
index 0bc524b8..ea2386b5 100644
--- a/doc/APIchunk12.html
+++ b/doc/APIchunk12.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index v-x for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index v-x for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -49,6 +49,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
<a href="html/libxslt-extensions.html#xsltInitGlobals">xsltInitGlobals</a><br />
<a href="html/libxslt-transform.html#xsltLocalVariablePop">xsltLocalVariablePop</a><br />
@@ -79,6 +80,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-xsltlocale.html#xsltNewLocale">xsltNewLocale</a><br />
<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
@@ -135,6 +137,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
</dd><dt>with</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
@@ -162,8 +165,10 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>without</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
-</dd><dt>won</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>won</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>work</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
</dd><dt>wrapped</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
</dd><dt>wrapper</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
@@ -206,6 +211,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>xsl</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
</dd><dt>xsl:</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltPrincipalStylesheetData">_xsltPrincipalStylesheetData</a><br />
</dd><dt>xsl:apply-templates</dt><dd><a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>xsl:attribute</dt><dd><a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
</dd><dt>xsl:choose</dt><dd><a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
</dd><dt>xsl:comment</dt><dd><a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
</dd><dt>xsl:for-each</dt><dd><a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
@@ -265,6 +271,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
</dd><dt>xsltCreateRVT</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
</dd><dt>xsltDecimalFormatPtr</dt><dd><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
</dd><dt>xsltDocLoaderFunc</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
</dd><dt>xsltDocument</dt><dd><a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
</dd><dt>xsltDocumentComp</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStyleItemDocument">_xsltStyleItemDocument</a><br />
@@ -321,8 +328,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>xsltTimestamp</dt><dd><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
</dd><dt>xsltTransformContextPtr</dt><dd><a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html
index 5388c24e..11bbc2f8 100644
--- a/doc/APIchunk13.html
+++ b/doc/APIchunk13.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index y-z for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index y-z for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -31,8 +31,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>your</dt><dd><a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
</dd></dl><h2>Letter z:</h2><dl><dt>zero</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html
index 00a8a0c5..7fd0d2a1 100644
--- a/doc/APIchunk2.html
+++ b/doc/APIchunk2.html
@@ -7,10 +7,10 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
- </style><title>API Alphabetic Index T-a for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index T-a for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+ </style><title>API Alphabetic Index S-a for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index S-a for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -22,7 +22,48 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk11.html">t-u</a>
<a href="APIchunk12.html">v-x</a>
<a href="APIchunk13.html">y-z</a>
-</h2><h2>Letter T:</h2><dl><dt>TEMP</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
+</h2><h2>Letter S:</h2><dl><dt>SAX</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>Sampling</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a><br />
+</dd><dt>Save</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>Saxon</dt><dd><a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+</dd><dt>Scaling</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>Search</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+</dd><dt>Set</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerNodeInfo">_xsltCompilerNodeInfo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+</dd><dt>Should</dt><dd><a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</dd><dt>Shutdown</dt><dd><a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+</dd><dt>Signature</dt><dd><a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>Similar</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>Size</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Special</dt><dd><a href="html/libxslt-namespaces.html#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Specific</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+</dd><dt>Speed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Split</dt><dd><a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>Storage</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
+</dd><dt>Strip</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+</dd><dt>Structure:</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Stylesheet</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+</dd><dt>Symbol</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd></dl><h2>Letter T:</h2><dl><dt>TEMP</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
</dd><dt>TODO:</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_ITEM_NAVIGATION_FIELDS">XSLT_ITEM_NAVIGATION_FIELDS</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
@@ -74,6 +115,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a><br />
<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
</dd><dt>Update</dt><dd><a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>Updates</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>Use</dt><dd><a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
</dd><dt>Used</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
<a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
@@ -89,6 +131,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>Will</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+</dd><dt>WinAPI</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
</dd></dl><h2>Letter X:</h2><dl><dt>XALAN</dt><dd><a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
</dd><dt>XInclude</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
@@ -118,10 +161,16 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>XSLT_ERROR_SEVERITY_WARNING</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
</dd><dt>XSLT_GET_IMPORT_PTR</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>XSLT_RVT_FUNC_RESULT</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
+</dd><dt>XSLT_RVT_GLOBAL</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
+</dd><dt>XSLT_RVT_LOCAL</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
+</dd><dt>XSLT_RVT_VARIABLE</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
</dd></dl><h2>Letter a:</h2><dl><dt>absent</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
</dd><dt>accelerators</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltNumberData">_xsltNumberData</a><br />
</dd><dt>access</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
-</dd><dt>according</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+</dd><dt>according</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
<a href="html/libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a><br />
</dd><dt>accordingly</dt><dd><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
@@ -143,7 +192,11 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>additionally</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
<a href="html/libxslt-xsltInternals.html#xsltParseSequenceConstructor">xsltParseSequenceConstructor</a><br />
</dd><dt>address</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
-</dd><dt>after</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+</dd><dt>after</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
<a href="html/libxslt-xsltlocale.html#xsltLocaleStrcmp">xsltLocaleStrcmp</a><br />
<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
@@ -252,8 +305,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
-</dd><dt>are</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
-<a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+</dd><dt>are</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
@@ -343,8 +395,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>average=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
</dd><dt>avoid</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk3.html b/doc/APIchunk3.html
index 98b7586e..06eedeee 100644
--- a/doc/APIchunk3.html
+++ b/doc/APIchunk3.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index b-c for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index b-c for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -123,6 +123,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>call</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
<a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
</dd><dt>call-template</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStyleItemCallTemplate">_xsltStyleItemCallTemplate</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
@@ -371,8 +372,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
</dd><dt>currently</dt><dd><a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html
index e9143420..ffd923bf 100644
--- a/doc/APIchunk4.html
+++ b/doc/APIchunk4.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index d-e for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index d-e for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -64,6 +64,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>decimal</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
</dd><dt>decimal-format</dt><dd><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
</dd><dt>declaration</dt><dd><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
@@ -118,6 +119,10 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>descriptor</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
</dd><dt>desired</dt><dd><a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+</dd><dt>destroyed</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>details</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
</dd><dt>detected</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
</dd><dt>dict</dt><dd><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
@@ -212,6 +217,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
</dd><dt>encountering</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
</dd><dt>end</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+</dd><dt>ends</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a><br />
</dd><dt>engine</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
</dd><dt>entity</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
@@ -265,7 +271,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>existing</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
</dd><dt>exists</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
</dd><dt>exit</dt><dd><a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
-</dd><dt>exiting</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd><dt>exiting</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
</dd><dt>exits</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
@@ -297,10 +304,12 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>exsltFuncFunctionFunction</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
</dd><dt>extInfos</dt><dd><a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+</dd><dt>extended</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
</dd><dt>extending</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
</dd><dt>extension-element-prefixes</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltPrincipalStylesheetData">_xsltPrincipalStylesheetData</a><br />
</dd><dt>extensions</dt><dd><a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
-<a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
<a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
<a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
<a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
@@ -326,8 +335,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
</dd><dt>extras</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html
index 414ae5cc..4b19860e 100644
--- a/doc/APIchunk5.html
+++ b/doc/APIchunk5.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index f-g for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index f-g for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -68,6 +68,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
</dd><dt>flag</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
<a href="html/libxslt-xsltutils.html#XSLT_TODO">XSLT_TODO</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>flags</dt><dd><a href="html/libxslt-xsltutils.html#xsltXPathCompileFlags">xsltXPathCompileFlags</a><br />
</dd><dt>following</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
@@ -125,6 +126,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>free</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
<a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
@@ -150,6 +152,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a><br />
</dd><dt>frees</dt><dd><a href="html/libxslt-xsltInternals.html#xsltReleaseRVT">xsltReleaseRVT</a><br />
</dd><dt>full</dt><dd><a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>func:result</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
</dd><dt>function-available</dt><dd><a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
</dd><dt>function-calling</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
</dd><dt>functions</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a><br />
@@ -214,13 +217,15 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>gives</dt><dd><a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
</dd><dt>giving</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
-</dd><dt>global</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+</dd><dt>global</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
<a href="html/libxslt-extensions.html#xsltInitGlobals">xsltInitGlobals</a><br />
@@ -228,14 +233,15 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+</dd><dt>goes</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
</dd><dt>goto</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
</dd><dt>grafted</dt><dd><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
</dd><dt>group</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
</dd><dt>grouping</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk6.html b/doc/APIchunk6.html
index 3903db11..af3dffc8 100644
--- a/doc/APIchunk6.html
+++ b/doc/APIchunk6.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index h-i for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index h-i for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -110,6 +110,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>indented</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
</dd><dt>index</dt><dd><a href="">nr</a><br />
</dd><dt>indicating</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
</dd><dt>indicator</dt><dd><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
</dd><dt>info</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerNodeInfo">_xsltCompilerNodeInfo</a><br />
@@ -131,6 +133,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
<a href="html/libxslt-xsltInternals.html#xsltInitCtxtKey">xsltInitCtxtKey</a><br />
@@ -175,11 +178,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
</dd><dt>insertion</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
</dd><dt>inspected</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>instances</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
</dd><dt>instantiated</dt><dd><a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
</dd><dt>instead</dt><dd><a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
-</dd><dt>instructions</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>instructions</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
<a href="html/libxslt-xsltInternals.html#xsltParseAnyXSLTElem">xsltParseAnyXSLTElem</a><br />
</dd><dt>integer</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
@@ -218,6 +223,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>into</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
</dd><dt>invoking</dt><dd><a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+</dd><dt>isn</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
</dd><dt>issues</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
</dd><dt>item</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltEffectiveNs">_xsltEffectiveNs</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
@@ -231,6 +237,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>its</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
<a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
@@ -238,8 +245,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
</dd><dt>itself</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk7.html b/doc/APIchunk7.html
index 311581f4..eb08c29d 100644
--- a/doc/APIchunk7.html
+++ b/doc/APIchunk7.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index j-m for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index j-m for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -57,6 +57,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
</dd><dt>leaks</dt><dd><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+</dd><dt>leaving</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>left</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
</dd><dt>len</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
</dd><dt>level</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
@@ -74,6 +75,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#xsltXPathCompileFlags">xsltXPathCompileFlags</a><br />
</dd><dt>libxslt</dt><dd><a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_REFACTORED_VARS">XSLT_REFACTORED_VARS</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
</dd><dt>lifespan</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
</dd><dt>lifetime</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
@@ -104,15 +107,19 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
-</dd><dt>local</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
+</dd><dt>local</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltCompilerCtxt">_xsltCompilerCtxt</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-transform.html#xsltLocalVariablePush">xsltLocalVariablePush</a><br />
<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
</dd><dt>locale</dt><dd><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
<a href="html/libxslt-xsltlocale.html#xsltFreeLocale">xsltFreeLocale</a><br />
<a href="html/libxslt-xsltlocale.html#xsltFreeLocales">xsltFreeLocales</a><br />
<a href="html/libxslt-xsltlocale.html#xsltLocaleStrcmp">xsltLocaleStrcmp</a><br />
@@ -239,8 +246,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
<a href="html/libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk8.html b/doc/APIchunk8.html
index 741f7ea5..bf65f62d 100644
--- a/doc/APIchunk8.html
+++ b/doc/APIchunk8.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index n-o for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index n-o for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -24,7 +24,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk13.html">y-z</a>
</h2><h2>Letter n:</h2><dl><dt>name=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
</dd><dt>nameURI</dt><dd><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
-</dd><dt>named</dt><dd><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+</dd><dt>named</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
</dd><dt>names</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltPrincipalStylesheetData">_xsltPrincipalStylesheetData</a><br />
<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
@@ -48,6 +49,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#xsltRestoreDocumentNamespaces">xsltRestoreDocumentNamespaces</a><br />
</dd><dt>navigational</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_ITEM_NAVIGATION_FIELDS">XSLT_ITEM_NAVIGATION_FIELDS</a><br />
</dd><dt>necessary</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
</dd><dt>need</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStyleItemDocument">_xsltStyleItemDocument</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
@@ -71,6 +73,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>negative</dt><dd><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
</dd><dt>nested</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>newer</dt><dd><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
</dd><dt>newly</dt><dd><a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
@@ -135,6 +139,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd></dl><h2>Letter o:</h2><dl><dt>object</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
<a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
@@ -225,7 +230,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
</dd><dt>ouput</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
-</dd><dt>out</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+</dd><dt>out</dt><dd><a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
</dd><dt>output</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
@@ -244,10 +250,11 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
</dd><dt>overhead</dt><dd><a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
</dd><dt>own</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+</dd><dt>ownership</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>owning</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltCompilerNodeInfo">_xsltCompilerNodeInfo</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIchunk9.html b/doc/APIchunk9.html
index ca838231..d6396265 100644
--- a/doc/APIchunk9.html
+++ b/doc/APIchunk9.html
@@ -9,8 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>API Alphabetic Index p-p for libxslt</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>API Alphabetic Index p-p for libxslt</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
@@ -81,11 +81,16 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
</dd><dt>part</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_REFACTORED_VARS">XSLT_REFACTORED_VARS</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
<a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>parts</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</dd><dt>pass</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
@@ -259,8 +264,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>pushed</dt><dd><a href="html/libxslt-transform.html#xsltLocalVariablePush">xsltLocalVariablePush</a><br />
</dd><dt>pushes</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-I</a>
-<a href="APIchunk1.html">J-S</a>
-<a href="APIchunk2.html">T-a</a>
+<a href="APIchunk1.html">J-R</a>
+<a href="APIchunk2.html">S-a</a>
<a href="APIchunk3.html">b-c</a>
<a href="APIchunk4.html">d-e</a>
<a href="APIchunk5.html">f-g</a>
diff --git a/doc/APIconstructors.html b/doc/APIconstructors.html
index af1d285c..57db086c 100644
--- a/doc/APIconstructors.html
+++ b/doc/APIconstructors.html
@@ -55,6 +55,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</p><h2>Type xsltCompMatchPtr:</h2><p><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
</p><h2>Type xsltDebugTraceCodes:</h2><p><a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
</p><h2>Type xsltDecimalFormatPtr:</h2><p><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
</p><h2>Type xsltDocumentPtr:</h2><p><a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index 9510623c..fb98dc28 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -68,7 +68,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
</p><h2><a name="extra" id="extra">Module extra</a>:</h2><p><a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
-<a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
<a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
<a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
<a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
@@ -197,6 +196,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
</p><h2><a name="variables" id="variables">Module variables</a>:</h2><p><a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
@@ -341,6 +344,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#xsltCreateRVT">xsltCreateRVT</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDocument">xsltDocument</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a><br />
@@ -353,6 +357,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a><br />
<a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
@@ -488,6 +493,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltexports.html#XSLTPUBVAR">XSLTPUBVAR</a><br />
<a href="html/libxslt-xsltexports.html#_REENTRANT">_REENTRANT</a><br />
</p><h2><a name="xsltlocale" id="xsltlocale">Module xsltlocale</a>:</h2><p><a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
<a href="html/libxslt-xsltlocale.html#xsltFreeLocale">xsltFreeLocale</a><br />
<a href="html/libxslt-xsltlocale.html#xsltFreeLocales">xsltFreeLocales</a><br />
<a href="html/libxslt-xsltlocale.html#xsltLocale">xsltLocale</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index f2eba6c3..b29b3f93 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -34,6 +34,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
@@ -93,6 +94,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</p><h2>Type void *:</h2><p><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
<a href="html/libxslt-xsltInternals.html#xsltPointerListAddSize">xsltPointerListAddSize</a><br />
@@ -240,6 +242,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</p><h2>Type xmlXPathFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
</p><h2>Type xmlXPathObjectPtr:</h2><p><a href="html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
</p><h2>Type xmlXPathParserContextPtr:</h2><p><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
@@ -330,6 +333,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
<a href="html/libxslt-attributes.html#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a><br />
@@ -439,6 +443,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
<a href="html/libxslt-extensions.html#xsltFreeCtxtExts">xsltFreeCtxtExts</a><br />
<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index f5500a16..bfc1e1cd 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -84,10 +84,11 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-documents.html#XSLT_LOAD_START">XSLT_LOAD_START</a><br />
<a href="html/libxslt-documents.html#XSLT_LOAD_STYLESHEET">XSLT_LOAD_STYLESHEET</a><br />
<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a><br />
+<a href="html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_MARK_RES_TREE_FRAG">XSLT_MARK_RES_TREE_FRAG</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_MAX_SORT">XSLT_MAX_SORT</a><br />
<a href="html/libxslt-xslt.html#XSLT_NAMESPACE">XSLT_NAMESPACE</a><br />
-<a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_HTML">XSLT_OUTPUT_HTML</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_TEXT">XSLT_OUTPUT_TEXT</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_XML">XSLT_OUTPUT_XML</a><br />
@@ -101,6 +102,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a><br />
+<a href="html/libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a><br />
<a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
<a href="html/libxslt-security.html#XSLT_SECPREF_CREATE_DIRECTORY">XSLT_SECPREF_CREATE_DIRECTORY</a><br />
<a href="html/libxslt-security.html#XSLT_SECPREF_READ_FILE">XSLT_SECPREF_READ_FILE</a><br />
@@ -240,6 +245,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a><br />
<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a><br />
<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
@@ -284,6 +290,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFlagRVTs">xsltFlagRVTs</a><br />
<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
diff --git a/doc/Makefile.am b/doc/Makefile.am
index a69995a5..ce657b6b 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -314,7 +314,6 @@ install-data-local:
$(MKDIR_P) $(DESTDIR)$(HTML_DIR)/html
-$(INSTALL) -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html
-$(INSTALL) -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html
- -$(INSTALL) -m 0644 $(srcdir)/html/index.sgml $(DESTDIR)$(HTML_DIR)/html
$(MKDIR_P) $(DESTDIR)$(HTML_DIR)/EXSLT
-$(INSTALL) -m 0644 $(srcdir)/EXSLT/*.html $(DESTDIR)$(HTML_DIR)/EXSLT
$(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 6f95b71f..9ef3e784 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -223,7 +223,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -240,6 +239,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -249,12 +251,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -273,8 +273,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -490,9 +488,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu doc/Makefile
+ $(AUTOMAKE) --foreign doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -882,7 +880,6 @@ install-data-local:
$(MKDIR_P) $(DESTDIR)$(HTML_DIR)/html
-$(INSTALL) -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html
-$(INSTALL) -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html
- -$(INSTALL) -m 0644 $(srcdir)/html/index.sgml $(DESTDIR)$(HTML_DIR)/html
$(MKDIR_P) $(DESTDIR)$(HTML_DIR)/EXSLT
-$(INSTALL) -m 0644 $(srcdir)/EXSLT/*.html $(DESTDIR)$(HTML_DIR)/EXSLT
$(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial
diff --git a/doc/apibuild.py b/doc/apibuild.py
index df1d66b9..bc12f01e 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -47,6 +47,7 @@ ignored_words = {
"X_IN_Y": (5, "macro function builder"),
"XSLT_ITEM_COMMON_FIELDS": (0, "Special macro"),
"CALLBACK": (0, "macro keyword"),
+ "LIBXSLT_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"),
}
def escape(raw):
diff --git a/doc/html/libxslt-extra.html b/doc/html/libxslt-extra.html
index 9e036221..9fb78895 100644
--- a/doc/html/libxslt-extra.html
+++ b/doc/html/libxslt-extra.html
@@ -7,13 +7,12 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
- </style><title>Module extra from libxslt</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/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>Module extra from libxslt</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="index.html">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></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="libxslt-extensions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-extensions.html">extensions</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">Home</a></th><th align="right"><a href="libxslt-functions.html">functions</a></th><td><a accesskey="n" href="libxslt-functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>implement some extension outside the XSLT namespace but not EXSLT with is in a different library. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a></pre><pre class="programlisting">void <a href="#xsltDebug">xsltDebug</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+ </style><title>Module extra from libxslt</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/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>Module extra from libxslt</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="index.html">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></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="libxslt-extensions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-extensions.html">extensions</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">Home</a></th><th align="right"><a href="libxslt-functions.html">functions</a></th><td><a accesskey="n" href="libxslt-functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>implement some extension outside the XSLT namespace but not EXSLT with is in a different library. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a></pre><pre class="programlisting">void <a href="#xsltDebug">xsltDebug</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
<pre class="programlisting">void <a href="#xsltFunctionNodeSet">xsltFunctionNodeSet</a> (xmlXPathParserContextPtr ctxt, <br /> int nargs)</pre>
<pre class="programlisting">void <a href="#xsltRegisterAllExtras">xsltRegisterAllExtras</a> (void)</pre>
<pre class="programlisting">void <a href="#xsltRegisterExtras">xsltRegisterExtras</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
<h2>Description</h2>
<h3><a name="XSLT_LIBXSLT_NAMESPACE" id="XSLT_LIBXSLT_NAMESPACE"></a>Macro: XSLT_LIBXSLT_NAMESPACE</h3><pre>#define XSLT_LIBXSLT_NAMESPACE</pre><p>This is the libxslt namespace for specific extensions.</p>
-<h3><a name="XSLT_NORM_SAXON_NAMESPACE" id="XSLT_NORM_SAXON_NAMESPACE"></a>Macro: XSLT_NORM_SAXON_NAMESPACE</h3><pre>#define XSLT_NORM_SAXON_NAMESPACE</pre><p>This is Norm's namespace for SAXON extensions.</p>
<h3><a name="XSLT_SAXON_NAMESPACE" id="XSLT_SAXON_NAMESPACE"></a>Macro: XSLT_SAXON_NAMESPACE</h3><pre>#define XSLT_SAXON_NAMESPACE</pre><p>This is Michael Kay's Saxon processor namespace for extensions.</p>
<h3><a name="XSLT_XALAN_NAMESPACE" id="XSLT_XALAN_NAMESPACE"></a>Macro: XSLT_XALAN_NAMESPACE</h3><pre>#define XSLT_XALAN_NAMESPACE</pre><p>This is the Apache project XALAN processor namespace for extensions.</p>
<h3><a name="XSLT_XT_NAMESPACE" id="XSLT_XT_NAMESPACE"></a>Macro: XSLT_XT_NAMESPACE</h3><pre>#define XSLT_XT_NAMESPACE</pre><p>This is James Clark's XT processor namespace for extensions.</p>
diff --git a/doc/html/libxslt-transform.html b/doc/html/libxslt-transform.html
index be71f2cf..ddf46826 100644
--- a/doc/html/libxslt-transform.html
+++ b/doc/html/libxslt-transform.html
@@ -14,7 +14,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<pre class="programlisting">xmlDocPtr <a href="#xsltApplyStylesheet">xsltApplyStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> xmlDocPtr doc, <br /> const char ** params)</pre>
<pre class="programlisting">xmlDocPtr <a href="#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> xmlDocPtr doc, <br /> const char ** params, <br /> const char * output, <br /> FILE * profile, <br /> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt)</pre>
<pre class="programlisting">void <a href="#xsltApplyTemplates">xsltApplyTemplates</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> castedComp)</pre>
-<pre class="programlisting">void <a href="#xsltAttribute">xsltAttribute</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void <a href="#xsltAttribute">xsltAttribute</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr contextNode, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> castedComp)</pre>
<pre class="programlisting">void <a href="#xsltCallTemplate">xsltCallTemplate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> castedComp)</pre>
<pre class="programlisting">void <a href="#xsltChoose">xsltChoose</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr contextNode, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
<pre class="programlisting">void <a href="#xsltComment">xsltComment</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
@@ -56,9 +56,9 @@ A:link, A:visited, A:active { text-decoration: underline }
</pre><p>Apply the stylesheet to the document and allow the user to provide its own transformation context.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters names/values tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the targetted output</td></tr><tr><td><span class="term"><i><tt>profile</tt></i>:</span></td><td>profile FILE * output or NULL</td></tr><tr><td><span class="term"><i><tt>userCtxt</tt></i>:</span></td><td>user provided transform context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result document or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltApplyTemplates" id="xsltApplyTemplates"></a>Function: xsltApplyTemplates</h3><pre class="programlisting">void xsltApplyTemplates (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> castedComp)<br />
</pre><p>Processes the XSLT 'apply-templates' instruction on the current node.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the 'current node' in the source tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node of an XSLT 'apply-templates' instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>the compiled instruction</td></tr></tbody></table></div><h3><a name="xsltAttribute" id="xsltAttribute"></a>Function: xsltAttribute</h3><pre class="programlisting">void xsltAttribute (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the 'current node' in the source tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node of an XSLT 'apply-templates' instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>the compiled instruction</td></tr></tbody></table></div><h3><a name="xsltAttribute" id="xsltAttribute"></a>Function: xsltAttribute</h3><pre class="programlisting">void xsltAttribute (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr contextNode, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> castedComp)<br />
</pre><p>Process the xslt attribute node on the source node</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt attribute node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltCallTemplate" id="xsltCallTemplate"></a>Function: xsltCallTemplate</h3><pre class="programlisting">void xsltCallTemplate (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> castedComp)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>contextNode</tt></i>:</span></td><td>the current node in the source tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xsl:attribute element</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltCallTemplate" id="xsltCallTemplate"></a>Function: xsltCallTemplate</h3><pre class="programlisting">void xsltCallTemplate (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr node, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> castedComp)<br />
</pre><p>Processes the XSLT call-template instruction on the source node.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the "current node" in the source tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the XSLT 'call-template' instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>the compiled information of the instruction</td></tr></tbody></table></div><h3><a name="xsltChoose" id="xsltChoose"></a>Function: xsltChoose</h3><pre class="programlisting">void xsltChoose (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlNodePtr contextNode, <br /> xmlNodePtr inst, <br /> <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
</pre><p>Processes the xsl:choose instruction on the source node.</p>
diff --git a/doc/html/libxslt-variables.html b/doc/html/libxslt-variables.html
index 2a7f71d8..a8fc618b 100644
--- a/doc/html/libxslt-variables.html
+++ b/doc/html/libxslt-variables.html
@@ -7,7 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
- </style><title>Module variables from libxslt</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/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>Module variables from libxslt</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="index.html">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></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="libxslt-transform.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-transform.html">transform</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">Home</a></th><th align="right"><a href="libxslt-xslt.html">xslt</a></th><td><a accesskey="n" href="libxslt-xslt.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the variable matching and lookup. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a></pre><pre class="programlisting">int <a href="#xsltAddStackElemList">xsltAddStackElemList</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elems)</pre>
+ </style><title>Module variables from libxslt</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/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>Module variables from libxslt</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="index.html">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></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="libxslt-transform.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-transform.html">transform</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">Home</a></th><th align="right"><a href="libxslt-xslt.html">xslt</a></th><td><a accesskey="n" href="libxslt-xslt.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the variable matching and lookup. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a></pre><pre class="programlisting">#define <a href="#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a></pre><pre class="programlisting">#define <a href="#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a></pre><pre class="programlisting">#define <a href="#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a></pre><pre class="programlisting">int <a href="#xsltAddStackElemList">xsltAddStackElemList</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elems)</pre>
<pre class="programlisting">int <a href="#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
<pre class="programlisting">int <a href="#xsltEvalOneUserParam">xsltEvalOneUserParam</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> const xmlChar * name, <br /> const xmlChar * value)</pre>
<pre class="programlisting">int <a href="#xsltEvalUserParams">xsltEvalUserParams</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> const char ** params)</pre>
@@ -23,6 +23,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<pre class="programlisting">xmlXPathObjectPtr <a href="#xsltXPathVariableLookup">xsltXPathVariableLookup</a> (void * ctxt, <br /> const xmlChar * name, <br /> const xmlChar * ns_uri)</pre>
<h2>Description</h2>
<h3><a name="XSLT_REGISTER_VARIABLE_LOOKUP" id="XSLT_REGISTER_VARIABLE_LOOKUP"></a>Macro: XSLT_REGISTER_VARIABLE_LOOKUP</h3><pre>#define XSLT_REGISTER_VARIABLE_LOOKUP</pre><p>Registering macro, not general purpose at all but used in different modules.</p>
+<h3><a name="XSLT_RVT_FUNC_RESULT" id="XSLT_RVT_FUNC_RESULT"></a>Macro: XSLT_RVT_FUNC_RESULT</h3><pre>#define XSLT_RVT_FUNC_RESULT</pre><p>RVT is part of results returned with func:result. The RVT won't be destroyed after exiting a template and will be reset to <a href="libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a> or <a href="libxslt-variables.html#XSLT_RVT_VARIABLE">XSLT_RVT_VARIABLE</a> in the template that receives the return value.</p>
+<h3><a name="XSLT_RVT_GLOBAL" id="XSLT_RVT_GLOBAL"></a>Macro: XSLT_RVT_GLOBAL</h3><pre>#define XSLT_RVT_GLOBAL</pre><p>RVT is part of a global variable.</p>
+<h3><a name="XSLT_RVT_LOCAL" id="XSLT_RVT_LOCAL"></a>Macro: XSLT_RVT_LOCAL</h3><pre>#define XSLT_RVT_LOCAL</pre><p>RVT is destroyed after the current instructions ends.</p>
+<h3><a name="XSLT_RVT_VARIABLE" id="XSLT_RVT_VARIABLE"></a>Macro: XSLT_RVT_VARIABLE</h3><pre>#define XSLT_RVT_VARIABLE</pre><p>RVT is part of a local variable and destroyed after the variable goes out of scope.</p>
<h3><a name="xsltAddStackElemList" id="xsltAddStackElemList"></a>Function: xsltAddStackElemList</h3><pre class="programlisting">int xsltAddStackElemList (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elems)<br />
</pre><p>Push an element list onto 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>xn XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>elems</tt></i>:</span></td><td>a stack element list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltEvalGlobalVariables" id="xsltEvalGlobalVariables"></a>Function: xsltEvalGlobalVariables</h3><pre class="programlisting">int xsltEvalGlobalVariables (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
diff --git a/doc/html/libxslt-xsltInternals.html b/doc/html/libxslt-xsltInternals.html
index 5cd9cc3d..6c450324 100644
--- a/doc/html/libxslt-xsltInternals.html
+++ b/doc/html/libxslt-xsltInternals.html
@@ -125,12 +125,14 @@ The content of this structure is not made public by the API.
<pre class="programlisting">void <a href="#xsltCompileAttr">xsltCompileAttr</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> xmlAttrPtr attr)</pre>
<pre class="programlisting">xmlDocPtr <a href="#xsltCreateRVT">xsltCreateRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> <a href="#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> xmlChar * name)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> <a href="#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> const xmlChar * nsUri, <br /> const xmlChar * name)</pre>
<pre class="programlisting">Function type: <a href="#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a>
void <a href="#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)
</pre>
<pre class="programlisting">xmlChar * <a href="#xsltEvalAVT">xsltEvalAVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> void * avt, <br /> xmlNodePtr node)</pre>
<pre class="programlisting">int <a href="#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
<pre class="programlisting">int <a href="#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlXPathObjectPtr obj)</pre>
+<pre class="programlisting">int <a href="#xsltFlagRVTs">xsltFlagRVTs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlXPathObjectPtr obj, <br /> void * val)</pre>
<pre class="programlisting">xmlXPathError <a href="#xsltFormatNumberConversion">xsltFormatNumberConversion</a> (<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br /> xmlChar * format, <br /> double number, <br /> xmlChar ** result)</pre>
<pre class="programlisting">void <a href="#xsltFreeAVTList">xsltFreeAVTList</a> (void * avt)</pre>
<pre class="programlisting">void <a href="#xsltFreeRVTs">xsltFreeRVTs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
@@ -250,6 +252,7 @@ void <a href="#xsltTransformFunction">xsltTransformFunction</a> (<a href="libxs
xmlChar * percent
xmlChar * permille
xmlChar * zeroDigit
+ const xmlChar * nsUri
}</pre><h3><a name="xsltDocument" id="xsltDocument">Structure xsltDocument</a></h3><pre class="programlisting">Structure xsltDocument<br />struct _xsltDocument {
struct _xsltDocument * next : documents are kept in a chained list
int main : is this the main document
@@ -560,6 +563,7 @@ The content of this structure is not made public by the API.
<a href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> compCtxt : TODO: Change this to (void *).
<a href="libxslt-xsltInternals.html#xsltPrincipalStylesheetDataPtr">xsltPrincipalStylesheetDataPtr</a> principalData : * Forwards-compatible processing *
int forwards_compatible
+ xmlHashTablePtr namedTemplates : hash table of named templates
}</pre><h3><a name="xsltTemplate" id="xsltTemplate">Structure xsltTemplate</a></h3><pre class="programlisting">Structure xsltTemplate<br />struct _xsltTemplate {
struct _xsltTemplate * next : chained list sorted by priority
struct _xsltStylesheet * style : the containing stylesheet
@@ -636,8 +640,8 @@ The content of this structure is not made public by the API.
xmlDocPtr persistRVT : list of persistant RVTs
int ctxtflags : * Speed optimization when coalescing tex
const xmlChar * lasttext : last text node content
- unsigned int lasttsize : last text node size
- unsigned int lasttuse : * Per Context Debugging *
+ int lasttsize : last text node size
+ int lasttuse : * Per Context Debugging *
int debugStatus : the context level debug status
unsigned long * traceCode : pointer to the variable holding the mas
int parserOptions : * dictionary: shared between stylesheet,
@@ -652,9 +656,9 @@ The content of this structure is not made public by the API.
<a href="libxslt-xsltInternals.html#xsltTransformCachePtr">xsltTransformCachePtr</a> cache
void * contextVariable : the current variable item
xmlDocPtr localRVT : list of local tree fragments; will be f
- xmlDocPtr localRVTBase
+ xmlDocPtr localRVTBase : Obsolete
int keyInitLevel : Needed to catch recursive keys issues
- int funcLevel : Needed to catch recursive functions iss
+ int depth : Needed to catch recursions
int maxTemplateDepth
int maxTemplateVars
}</pre><h3>Enum <a name="xsltTransformState" id="xsltTransformState">xsltTransformState</a></h3><pre class="programlisting">Enum xsltTransformState {
@@ -678,16 +682,20 @@ The content of this structure is not made public by the API.
</pre><p>Creates a Result Value Tree (the XSLT 1.0 term for this is "Result Tree Fragment")</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result value tree or NULL in case of API or internal errors.</td></tr></tbody></table></div><h3><a name="xsltDecimalFormatGetByName" id="xsltDecimalFormatGetByName"></a>Function: xsltDecimalFormatGetByName</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> xsltDecimalFormatGetByName (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> xmlChar * name)<br />
</pre><p>Find decimal-format by name</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the decimal-format name to find</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a></td></tr></tbody></table></div><h3><a name="xsltElemPreCompDeallocator" id="xsltElemPreCompDeallocator"></a>Function type: xsltElemPreCompDeallocator</h3><pre class="programlisting">Function type: xsltElemPreCompDeallocator
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the decimal-format name to find</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a></td></tr></tbody></table></div><h3><a name="xsltDecimalFormatGetByQName" id="xsltDecimalFormatGetByQName"></a>Function: xsltDecimalFormatGetByQName</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> xsltDecimalFormatGetByQName (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> const xmlChar * nsUri, <br /> const xmlChar * name)<br />
+</pre><p>Find decimal-format by QName</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>nsUri</tt></i>:</span></td><td>the namespace URI of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the local part of the QName</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a></td></tr></tbody></table></div><h3><a name="xsltElemPreCompDeallocator" id="xsltElemPreCompDeallocator"></a>Function type: xsltElemPreCompDeallocator</h3><pre class="programlisting">Function type: xsltElemPreCompDeallocator
void xsltElemPreCompDeallocator (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)
</pre><p>Deallocates an #xsltElemPreComp structure.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the #xsltElemPreComp to free up</td></tr></tbody></table></div><br />
<h3><a name="xsltEvalAVT" id="xsltEvalAVT"></a>Function: xsltEvalAVT</h3><pre class="programlisting">xmlChar * xsltEvalAVT (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> void * avt, <br /> xmlNodePtr node)<br />
</pre><p>Process the given AVT, and return the new string value.</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 XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>avt</tt></i>:</span></td><td>the prevompiled attribute value template info</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node hosting the attribute</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltExtensionInstructionResultFinalize" id="xsltExtensionInstructionResultFinalize"></a>Function: xsltExtensionInstructionResultFinalize</h3><pre class="programlisting">int xsltExtensionInstructionResultFinalize (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
</pre><p>Finalizes the data (e.g. result tree fragments) created within a value-returning process (e.g. EXSLT's function). Tree fragments marked as being returned by a function are set to normal state, which means that the fragment garbage collector will free them after the function-calling process exits.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of API or internal errors.</td></tr></tbody></table></div><h3><a name="xsltExtensionInstructionResultRegister" id="xsltExtensionInstructionResultRegister"></a>Function: xsltExtensionInstructionResultRegister</h3><pre class="programlisting">int xsltExtensionInstructionResultRegister (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlXPathObjectPtr obj)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of API or internal errors. This function is unsupported in newer releases of libxslt.</td></tr></tbody></table></div><h3><a name="xsltExtensionInstructionResultRegister" id="xsltExtensionInstructionResultRegister"></a>Function: xsltExtensionInstructionResultRegister</h3><pre class="programlisting">int xsltExtensionInstructionResultRegister (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlXPathObjectPtr obj)<br />
</pre><p>Marks the result of a value-returning extension instruction in order to avoid it being garbage collected before the extension instruction exits. Note that one still has to additionally register any newly created tree fragments (via xsltCreateRVT()) with xsltRegisterLocalRVT().</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>an XPath object to be inspected for result tree fragments</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltFormatNumberConversion" id="xsltFormatNumberConversion"></a>Function: xsltFormatNumberConversion</h3><pre class="programlisting">xmlXPathError xsltFormatNumberConversion (<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br /> xmlChar * format, <br /> double number, <br /> xmlChar ** result)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>an XPath object to be inspected for result tree fragments</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error. It isn't necessary to call this function in newer releases of libxslt.</td></tr></tbody></table></div><h3><a name="xsltFlagRVTs" id="xsltFlagRVTs"></a>Function: xsltFlagRVTs</h3><pre class="programlisting">int xsltFlagRVTs (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br /> xmlXPathObjectPtr obj, <br /> void * val)<br />
+</pre><p>Updates ownership information of RVTs in @obj according to @val. @val = <a href="libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a> for the result of an extension function, so its RVTs won't be destroyed after leaving the returning scope. @val = <a href="libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a> for the result of an extension function to reset the state of its RVTs after it was returned to a new scope. @val = <a href="libxslt-variables.html#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a> for parts of global variables.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>an XPath object to be inspected for result tree fragments</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the flag value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltFormatNumberConversion" id="xsltFormatNumberConversion"></a>Function: xsltFormatNumberConversion</h3><pre class="programlisting">xmlXPathError xsltFormatNumberConversion (<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br /> xmlChar * format, <br /> double number, <br /> xmlChar ** result)<br />
</pre><p>format-number() uses the JDK 1.1 DecimalFormat class: http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html Structure: pattern := subpattern{;subpattern} subpattern := {prefix}integer{.fraction}{suffix} prefix := '\\u0000'..'\\uFFFD' - specialCharacters suffix := '\\u0000'..'\\uFFFD' - specialCharacters integer := '#'* '0'* '0' fraction := '0'* '#'* Notation: X* 0 or more instances of X (X | Y) either X or Y. X..Y any character from X up to Y, inclusive. S - T characters in S, except those in T Special Characters: Symbol Meaning 0 a digit # a digit, zero shows as absent . placeholder for decimal separator , placeholder for grouping separator. ; separates formats. - default negative prefix. % multiply by 100 and show as percentage ? multiply by 1000 and show as per mille X any other characters can be used in the prefix or suffix ' used to quote special characters in a prefix or suffix.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>self</tt></i>:</span></td><td>the decimal format</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>the format requested</td></tr><tr><td><span class="term"><i><tt>number</tt></i>:</span></td><td>the value to format</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the place to ouput the result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a possible XPath error</td></tr></tbody></table></div><h3><a name="xsltFreeAVTList" id="xsltFreeAVTList"></a>Function: xsltFreeAVTList</h3><pre class="programlisting">void xsltFreeAVTList (void * avt)<br />
</pre><p>Free up the memory associated to the attribute value templates</p>
diff --git a/doc/html/libxslt-xsltlocale.html b/doc/html/libxslt-xsltlocale.html
index 01bb5f23..2f4f775c 100644
--- a/doc/html/libxslt-xsltlocale.html
+++ b/doc/html/libxslt-xsltlocale.html
@@ -7,7 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
- </style><title>Module xsltlocale from libxslt</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/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>Module xsltlocale from libxslt</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="index.html">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></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="libxslt-xsltexports.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-xsltexports.html">xsltexports</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">Home</a></th><th align="right"><a href="libxslt-xsltutils.html">xsltutils</a></th><td><a accesskey="n" href="libxslt-xsltutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Interfaces for locale handling. Needed for language dependent sorting. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a></pre><pre class="programlisting">Typedef void * <a name="xsltLocale" id="xsltLocale">xsltLocale</a>
+ </style><title>Module xsltlocale from libxslt</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/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>Module xsltlocale from libxslt</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="index.html">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></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="libxslt-xsltexports.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-xsltexports.html">xsltexports</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">Home</a></th><th align="right"><a href="libxslt-xsltutils.html">xsltutils</a></th><td><a accesskey="n" href="libxslt-xsltutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Interfaces for locale handling. Needed for language dependent sorting. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a></pre><pre class="programlisting">#define <a href="#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a></pre><pre class="programlisting">#define <a href="#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a></pre><pre class="programlisting">Typedef void * <a name="xsltLocale" id="xsltLocale">xsltLocale</a>
</pre><pre class="programlisting">Typedef xmlChar <a name="xsltLocaleChar" id="xsltLocaleChar">xsltLocaleChar</a>
</pre><pre class="programlisting">void <a href="#xsltFreeLocale">xsltFreeLocale</a> (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale)</pre>
<pre class="programlisting">void <a href="#xsltFreeLocales">xsltFreeLocales</a> (void)</pre>
@@ -15,7 +15,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<pre class="programlisting"><a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> <a href="#xsltNewLocale">xsltNewLocale</a> (const xmlChar * languageTag)</pre>
<pre class="programlisting"><a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * <a href="#xsltStrxfrm">xsltStrxfrm</a> (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, <br /> const xmlChar * string)</pre>
<h2>Description</h2>
-<h3><a name="XSLT_LOCALE_NONE" id="XSLT_LOCALE_NONE"></a>Macro: XSLT_LOCALE_NONE</h3><pre>#define XSLT_LOCALE_NONE</pre><p>Macro indicating that locale are not supported</p>
+<h3><a name="XSLT_LOCALE_NONE" id="XSLT_LOCALE_NONE"></a>Macro: XSLT_LOCALE_NONE</h3><pre>#define XSLT_LOCALE_NONE</pre><p>Macro indicating that there's no extended locale support</p>
+<h3><a name="XSLT_LOCALE_POSIX" id="XSLT_LOCALE_POSIX"></a>Macro: XSLT_LOCALE_POSIX</h3><pre>#define XSLT_LOCALE_POSIX</pre><p>Macro indicating to use POSIX locale extensions</p>
+<h3><a name="XSLT_LOCALE_WINAPI" id="XSLT_LOCALE_WINAPI"></a>Macro: XSLT_LOCALE_WINAPI</h3><pre>#define XSLT_LOCALE_WINAPI</pre><p>Macro indicating to use WinAPI for extended locale support</p>
<h3><a name="xsltFreeLocale" id="xsltFreeLocale"></a>Function: xsltFreeLocale</h3><pre class="programlisting">void xsltFreeLocale (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale)<br />
</pre><p>Frees a locale created with <a href="libxslt-xsltlocale.html#xsltNewLocale">xsltNewLocale</a></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>locale</tt></i>:</span></td><td>the locale to free</td></tr></tbody></table></div><h3><a name="xsltFreeLocales" id="xsltFreeLocales"></a>Function: xsltFreeLocales</h3><pre class="programlisting">void xsltFreeLocales (void)<br />
diff --git a/doc/html/libxslt-xsltutils.html b/doc/html/libxslt-xsltutils.html
index 155f0501..0fd8dba4 100644
--- a/doc/html/libxslt-xsltutils.html
+++ b/doc/html/libxslt-xsltutils.html
@@ -119,7 +119,7 @@ int xsltAddCallCallback (<a href="libxslt-xsltInternals.html#xsltTemplatePtr">x
</pre><p>reorder the current node list @list accordingly to the document order This function is slow, obsolete and should not be used anymore.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>the node set</td></tr></tbody></table></div><h3><a name="xsltDropCallCallback" id="xsltDropCallCallback"></a>Function type: xsltDropCallCallback</h3><pre class="programlisting">Function type: xsltDropCallCallback
void xsltDropCallCallback (void)
-</pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody></tbody></table></div><br />
+</pre><p></p><br />
<h3><a name="xsltGetCNsProp" id="xsltGetCNsProp"></a>Function: xsltGetCNsProp</h3><pre class="programlisting">const xmlChar * xsltGetCNsProp (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br /> xmlNodePtr node, <br /> const xmlChar * name, <br /> const xmlChar * nameSpace)<br />
</pre><p>Similar to xmlGetNsProp() but with a slightly different semantic Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified, or has no namespace and the element is in that namespace. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the attribute name</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the attribute value or NULL if not found. The string is allocated in the stylesheet dictionary.</td></tr></tbody></table></div><h3><a name="xsltGetDebuggerStatus" id="xsltGetDebuggerStatus"></a>Function: xsltGetDebuggerStatus</h3><pre class="programlisting">int xsltGetDebuggerStatus (void)<br />
diff --git a/doc/libxslt-api.xml b/doc/libxslt-api.xml
index 1cf7c891..ecb40354 100644
--- a/doc/libxslt-api.xml
+++ b/doc/libxslt-api.xml
@@ -83,7 +83,6 @@
<exports symbol='XSLT_XALAN_NAMESPACE' type='macro'/>
<exports symbol='XSLT_SAXON_NAMESPACE' type='macro'/>
<exports symbol='XSLT_LIBXSLT_NAMESPACE' type='macro'/>
- <exports symbol='XSLT_NORM_SAXON_NAMESPACE' type='macro'/>
<exports symbol='xsltFunctionNodeSet' type='function'/>
<exports symbol='xsltRegisterExtras' type='function'/>
<exports symbol='xsltDebug' type='function'/>
@@ -264,6 +263,10 @@
<description>interface for the variable matching and lookup. </description>
<author>Daniel Veillard </author>
<exports symbol='XSLT_REGISTER_VARIABLE_LOOKUP' type='macro'/>
+ <exports symbol='XSLT_RVT_FUNC_RESULT' type='macro'/>
+ <exports symbol='XSLT_RVT_GLOBAL' type='macro'/>
+ <exports symbol='XSLT_RVT_LOCAL' type='macro'/>
+ <exports symbol='XSLT_RVT_VARIABLE' type='macro'/>
<exports symbol='xsltFreeGlobalVariables' type='function'/>
<exports symbol='xsltQuoteUserParams' type='function'/>
<exports symbol='xsltXPathVariableLookup' type='function'/>
@@ -524,9 +527,11 @@
<exports symbol='xsltParseStylesheetImportedDoc' type='function'/>
<exports symbol='xsltFreeStackElemList' type='function'/>
<exports symbol='xsltAllocateExtra' type='function'/>
+ <exports symbol='xsltFlagRVTs' type='function'/>
<exports symbol='xsltParseSequenceConstructor' type='function'/>
<exports symbol='xsltRegisterTmpRVT' type='function'/>
<exports symbol='xsltInitAllDocKeys' type='function'/>
+ <exports symbol='xsltDecimalFormatGetByName' type='function'/>
<exports symbol='xsltExtensionInstructionResultFinalize' type='function'/>
<exports symbol='xsltPointerListFree' type='function'/>
<exports symbol='xsltIsBlank' type='function'/>
@@ -551,7 +556,7 @@
<exports symbol='xsltParseTemplateContent' type='function'/>
<exports symbol='xsltNewStylesheet' type='function'/>
<exports symbol='xsltParseStylesheetProcess' type='function'/>
- <exports symbol='xsltDecimalFormatGetByName' type='function'/>
+ <exports symbol='xsltDecimalFormatGetByQName' type='function'/>
<exports symbol='xsltTransformFunction' type='function'/>
<exports symbol='xsltRegisterLocalRVT' type='function'/>
<exports symbol='xsltParseStylesheetDoc' type='function'/>
@@ -574,7 +579,9 @@
<summary>Locale handling</summary>
<description>Interfaces for locale handling. Needed for language dependent sorting. </description>
<author>Nick Wellnhofer </author>
+ <exports symbol='XSLT_LOCALE_WINAPI' type='macro'/>
<exports symbol='XSLT_LOCALE_NONE' type='macro'/>
+ <exports symbol='XSLT_LOCALE_POSIX' type='macro'/>
<exports symbol='xsltLocale' type='typedef'/>
<exports symbol='xsltLocaleChar' type='typedef'/>
<exports symbol='xsltNewLocale' type='function'/>
@@ -764,7 +771,13 @@
<info>This is the libxslt namespace for specific extensions.</info>
</macro>
<macro name='XSLT_LOCALE_NONE' file='xsltlocale'>
- <info>Macro indicating that locale are not supported</info>
+ <info>Macro indicating that there&apos;s no extended locale support</info>
+ </macro>
+ <macro name='XSLT_LOCALE_POSIX' file='xsltlocale'>
+ <info>Macro indicating to use POSIX locale extensions</info>
+ </macro>
+ <macro name='XSLT_LOCALE_WINAPI' file='xsltlocale'>
+ <info>Macro indicating to use WinAPI for extended locale support</info>
</macro>
<macro name='XSLT_MARK_RES_TREE_FRAG' file='xsltInternals'>
<info>internal macro to set up tree fragments</info>
@@ -775,9 +788,6 @@
<macro name='XSLT_NAMESPACE' file='xslt'>
<info>The XSLT specification namespace.</info>
</macro>
- <macro name='XSLT_NORM_SAXON_NAMESPACE' file='extra'>
- <info>This is Norm&apos;s namespace for SAXON extensions.</info>
- </macro>
<macro name='XSLT_PARSE_OPTIONS' file='xslt'>
<info>The set of options to pass to an xmlReadxxx when loading files for XSLT consumption.</info>
</macro>
@@ -814,6 +824,18 @@
<arg name='ctxt' info='the transformation context'/>
<arg name='nr' info='the index'/>
</macro>
+ <macro name='XSLT_RVT_FUNC_RESULT' file='variables'>
+ <info>RVT is part of results returned with func:result. The RVT won&apos;t be destroyed after exiting a template and will be reset to XSLT_RVT_LOCAL or XSLT_RVT_VARIABLE in the template that receives the return value.</info>
+ </macro>
+ <macro name='XSLT_RVT_GLOBAL' file='variables'>
+ <info>RVT is part of a global variable.</info>
+ </macro>
+ <macro name='XSLT_RVT_LOCAL' file='variables'>
+ <info>RVT is destroyed after the current instructions ends.</info>
+ </macro>
+ <macro name='XSLT_RVT_VARIABLE' file='variables'>
+ <info>RVT is part of a local variable and destroyed after the variable goes out of scope.</info>
+ </macro>
<macro name='XSLT_SAXON_NAMESPACE' file='extra'>
<info>This is Michael Kay&apos;s Saxon processor namespace for extensions.</info>
</macro>
@@ -991,6 +1013,7 @@ extension element'/>
<field name='percent' type='xmlChar *' info=''/>
<field name='permille' type='xmlChar *' info=''/>
<field name='zeroDigit' type='xmlChar *' info=''/>
+ <field name='nsUri' type='const xmlChar *' info=''/>
</struct>
<typedef name='xsltDecimalFormatPtr' file='xsltInternals' type='xsltDecimalFormat *'/>
<struct name='xsltDocument' file='xsltInternals' type='struct _xsltDocument'>
@@ -1435,6 +1458,7 @@ TODO: We need to get rid of this.
<field name='principalData' type='xsltPrincipalStylesheetDataPtr' info='* Forwards-compatible processing
*'/>
<field name='forwards_compatible' type='int' info=''/>
+ <field name='namedTemplates' type='xmlHashTablePtr' info=' hash table of named templates'/>
</struct>
<typedef name='xsltStylesheetPtr' file='xsltInternals' type='xsltStylesheet *'/>
<struct name='xsltTemplate' file='xsltInternals' type='struct _xsltTemplate'>
@@ -1524,8 +1548,8 @@ TODO: We need to get rid of this.
<field name='ctxtflags' type='int' info='* Speed optimization when coalescing text nodes
*'/>
<field name='lasttext' type='const xmlChar *' info=' last text node content'/>
- <field name='lasttsize' type='unsigned int' info=' last text node size'/>
- <field name='lasttuse' type='unsigned int' info='* Per Context Debugging
+ <field name='lasttsize' type='int' info=' last text node size'/>
+ <field name='lasttuse' type='int' info='* Per Context Debugging
*'/>
<field name='debugStatus' type='int' info=' the context level debug status'/>
<field name='traceCode' type='unsigned long *' info=' pointer to the variable holding the mask'/>
@@ -1545,9 +1569,9 @@ TODO: We need to get rid of this.
<field name='localRVT' type='xmlDocPtr' info=' list of local tree fragments; will be freed when
the instruction which created the fragment
exits'/>
- <field name='localRVTBase' type='xmlDocPtr' info=''/>
+ <field name='localRVTBase' type='xmlDocPtr' info=' Obsolete'/>
<field name='keyInitLevel' type='int' info=' Needed to catch recursive keys issues'/>
- <field name='funcLevel' type='int' info=' Needed to catch recursive functions issues'/>
+ <field name='depth' type='int' info=' Needed to catch recursions'/>
<field name='maxTemplateDepth' type='int' info=''/>
<field name='maxTemplateVars' type='int' info=''/>
</struct>
@@ -1720,9 +1744,9 @@ exits'/>
<info>Process the xslt attribute node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
- <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
- <arg name='inst' type='xmlNodePtr' info='the xslt attribute node'/>
- <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+ <arg name='contextNode' type='xmlNodePtr' info='the current node in the source tree'/>
+ <arg name='inst' type='xmlNodePtr' info='the xsl:attribute element'/>
+ <arg name='castedComp' type='xsltStylePreCompPtr' info='precomputed information'/>
</function>
<function name='xsltCalibrateAdjust' file='xsltutils'>
<info>Used for to correct the calibration for xsltTimestamp()</info>
@@ -1880,6 +1904,13 @@ exits'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='name' type='xmlChar *' info='the decimal-format name to find'/>
</function>
+ <function name='xsltDecimalFormatGetByQName' file='xsltInternals'>
+ <info>Find decimal-format by QName</info>
+ <return type='xsltDecimalFormatPtr' info='the xsltDecimalFormatPtr'/>
+ <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+ <arg name='nsUri' type='const xmlChar *' info='the namespace URI of the QName'/>
+ <arg name='name' type='const xmlChar *' info='the local part of the QName'/>
+ </function>
<function name='xsltDefaultSortFunction' file='xsltutils'>
<info>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes.</info>
<return type='void'/>
@@ -2069,12 +2100,12 @@ exits'/>
</functype>
<function name='xsltExtensionInstructionResultFinalize' file='xsltInternals'>
<info>Finalizes the data (e.g. result tree fragments) created within a value-returning process (e.g. EXSLT&apos;s function). Tree fragments marked as being returned by a function are set to normal state, which means that the fragment garbage collector will free them after the function-calling process exits.</info>
- <return type='int' info='0 in case of success and -1 in case of API or internal errors.'/>
+ <return type='int' info='0 in case of success and -1 in case of API or internal errors. This function is unsupported in newer releases of libxslt.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
<function name='xsltExtensionInstructionResultRegister' file='xsltInternals'>
<info>Marks the result of a value-returning extension instruction in order to avoid it being garbage collected before the extension instruction exits. Note that one still has to additionally register any newly created tree fragments (via xsltCreateRVT()) with xsltRegisterLocalRVT().</info>
- <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <return type='int' info='0 in case of success and -1 in case of error. It isn&apos;t necessary to call this function in newer releases of libxslt.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='obj' type='xmlXPathObjectPtr' info='an XPath object to be inspected for result tree fragments'/>
</function>
@@ -2097,6 +2128,13 @@ exits'/>
<arg name='name' type='const xmlChar *' info='the template name'/>
<arg name='nameURI' type='const xmlChar *' info='the template name URI'/>
</function>
+ <function name='xsltFlagRVTs' file='xsltInternals'>
+ <info>Updates ownership information of RVTs in @obj according to @val. @val = XSLT_RVT_FUNC_RESULT for the result of an extension function, so its RVTs won&apos;t be destroyed after leaving the returning scope. @val = XSLT_RVT_LOCAL for the result of an extension function to reset the state of its RVTs after it was returned to a new scope. @val = XSLT_RVT_GLOBAL for parts of global variables.</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+ <arg name='obj' type='xmlXPathObjectPtr' info='an XPath object to be inspected for result tree fragments'/>
+ <arg name='val' type='void *' info='the flag value'/>
+ </function>
<function name='xsltForEach' file='transform'>
<info>Process the xslt for-each node on the source node</info>
<return type='void'/>
diff --git a/doc/libxslt-refs.xml b/doc/libxslt-refs.xml
index 3d2169f0..ea918a59 100644
--- a/doc/libxslt-refs.xml
+++ b/doc/libxslt-refs.xml
@@ -77,10 +77,11 @@
<reference name='XSLT_LOAD_START' href='html/libxslt-documents.html#XSLT_LOAD_START'/>
<reference name='XSLT_LOAD_STYLESHEET' href='html/libxslt-documents.html#XSLT_LOAD_STYLESHEET'/>
<reference name='XSLT_LOCALE_NONE' href='html/libxslt-xsltlocale.html#XSLT_LOCALE_NONE'/>
+ <reference name='XSLT_LOCALE_POSIX' href='html/libxslt-xsltlocale.html#XSLT_LOCALE_POSIX'/>
+ <reference name='XSLT_LOCALE_WINAPI' href='html/libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI'/>
<reference name='XSLT_MARK_RES_TREE_FRAG' href='html/libxslt-xsltInternals.html#XSLT_MARK_RES_TREE_FRAG'/>
<reference name='XSLT_MAX_SORT' href='html/libxslt-xsltInternals.html#XSLT_MAX_SORT'/>
<reference name='XSLT_NAMESPACE' href='html/libxslt-xslt.html#XSLT_NAMESPACE'/>
- <reference name='XSLT_NORM_SAXON_NAMESPACE' href='html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE'/>
<reference name='XSLT_OUTPUT_HTML' href='html/libxslt-xsltInternals.html#XSLT_OUTPUT_HTML'/>
<reference name='XSLT_OUTPUT_TEXT' href='html/libxslt-xsltInternals.html#XSLT_OUTPUT_TEXT'/>
<reference name='XSLT_OUTPUT_XML' href='html/libxslt-xsltInternals.html#XSLT_OUTPUT_XML'/>
@@ -94,6 +95,10 @@
<reference name='XSLT_RUNTIME_EXTRA' href='html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA'/>
<reference name='XSLT_RUNTIME_EXTRA_FREE' href='html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE'/>
<reference name='XSLT_RUNTIME_EXTRA_LST' href='html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST'/>
+ <reference name='XSLT_RVT_FUNC_RESULT' href='html/libxslt-variables.html#XSLT_RVT_FUNC_RESULT'/>
+ <reference name='XSLT_RVT_GLOBAL' href='html/libxslt-variables.html#XSLT_RVT_GLOBAL'/>
+ <reference name='XSLT_RVT_LOCAL' href='html/libxslt-variables.html#XSLT_RVT_LOCAL'/>
+ <reference name='XSLT_RVT_VARIABLE' href='html/libxslt-variables.html#XSLT_RVT_VARIABLE'/>
<reference name='XSLT_SAXON_NAMESPACE' href='html/libxslt-extra.html#XSLT_SAXON_NAMESPACE'/>
<reference name='XSLT_SECPREF_CREATE_DIRECTORY' href='html/libxslt-security.html#XSLT_SECPREF_CREATE_DIRECTORY'/>
<reference name='XSLT_SECPREF_READ_FILE' href='html/libxslt-security.html#XSLT_SECPREF_READ_FILE'/>
@@ -233,6 +238,7 @@
<reference name='xsltDebugTraceCodes' href='html/libxslt-xsltutils.html#xsltDebugTraceCodes'/>
<reference name='xsltDecimalFormat' href='html/libxslt-xsltInternals.html#xsltDecimalFormat'/>
<reference name='xsltDecimalFormatGetByName' href='html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName'/>
+ <reference name='xsltDecimalFormatGetByQName' href='html/libxslt-xsltInternals.html#xsltDecimalFormatGetByQName'/>
<reference name='xsltDecimalFormatPtr' href='html/libxslt-xsltInternals.html#xsltDecimalFormatPtr'/>
<reference name='xsltDefaultSortFunction' href='html/libxslt-xsltutils.html#xsltDefaultSortFunction'/>
<reference name='xsltDoSortFunction' href='html/libxslt-xsltutils.html#xsltDoSortFunction'/>
@@ -277,6 +283,7 @@
<reference name='xsltFindDocument' href='html/libxslt-documents.html#xsltFindDocument'/>
<reference name='xsltFindElemSpaceHandling' href='html/libxslt-imports.html#xsltFindElemSpaceHandling'/>
<reference name='xsltFindTemplate' href='html/libxslt-imports.html#xsltFindTemplate'/>
+ <reference name='xsltFlagRVTs' href='html/libxslt-xsltInternals.html#xsltFlagRVTs'/>
<reference name='xsltForEach' href='html/libxslt-transform.html#xsltForEach'/>
<reference name='xsltFormatNumberConversion' href='html/libxslt-xsltInternals.html#xsltFormatNumberConversion'/>
<reference name='xsltFormatNumberFunction' href='html/libxslt-functions.html#xsltFormatNumberFunction'/>
@@ -660,10 +667,11 @@
<ref name='XSLT_LOAD_START'/>
<ref name='XSLT_LOAD_STYLESHEET'/>
<ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_LOCALE_POSIX'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
<ref name='XSLT_MARK_RES_TREE_FRAG'/>
<ref name='XSLT_MAX_SORT'/>
<ref name='XSLT_NAMESPACE'/>
- <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
<ref name='XSLT_OUTPUT_HTML'/>
<ref name='XSLT_OUTPUT_TEXT'/>
<ref name='XSLT_OUTPUT_XML'/>
@@ -677,6 +685,10 @@
<ref name='XSLT_RUNTIME_EXTRA'/>
<ref name='XSLT_RUNTIME_EXTRA_FREE'/>
<ref name='XSLT_RUNTIME_EXTRA_LST'/>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='XSLT_RVT_GLOBAL'/>
+ <ref name='XSLT_RVT_LOCAL'/>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='XSLT_SAXON_NAMESPACE'/>
<ref name='XSLT_SECPREF_CREATE_DIRECTORY'/>
<ref name='XSLT_SECPREF_READ_FILE'/>
@@ -820,6 +832,7 @@
<ref name='xsltDebugTraceCodes'/>
<ref name='xsltDecimalFormat'/>
<ref name='xsltDecimalFormatGetByName'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltDecimalFormatPtr'/>
<ref name='xsltDefaultSortFunction'/>
<ref name='xsltDoSortFunction'/>
@@ -864,6 +877,7 @@
<ref name='xsltFindDocument'/>
<ref name='xsltFindElemSpaceHandling'/>
<ref name='xsltFindTemplate'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltForEach'/>
<ref name='xsltFormatNumberConversion'/>
<ref name='xsltFormatNumberFunction'/>
@@ -1245,6 +1259,7 @@
</type>
<type name='xsltDecimalFormatPtr'>
<ref name='xsltDecimalFormatGetByName'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
</type>
<type name='xsltDocumentPtr'>
<ref name='xsltFindDocument'/>
@@ -1342,6 +1357,7 @@
<ref name='xsltCheckWrite'/>
<ref name='xsltCompilePattern'/>
<ref name='xsltCopyTextString'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltDocLoaderFunc'/>
<ref name='xsltEvalAttrValueTemplate'/>
<ref name='xsltEvalOneUserParam'/>
@@ -1413,6 +1429,7 @@
<ref name='xsltDocLoaderFunc'/>
<ref name='xsltEvalAVT'/>
<ref name='xsltExtShutdownFunction'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltFreeAVTList'/>
<ref name='xsltNormalizeCompSteps'/>
<ref name='xsltPointerListAddSize'/>
@@ -1594,6 +1611,7 @@
</type>
<type name='xmlXPathObjectPtr'>
<ref name='xsltExtensionInstructionResultRegister'/>
+ <ref name='xsltFlagRVTs'/>
</type>
<type name='xmlXPathParserContextPtr'>
<ref name='xsltDocumentFunction'/>
@@ -1738,6 +1756,7 @@
<ref name='xsltCompileAttr'/>
<ref name='xsltCompilePattern'/>
<ref name='xsltDecimalFormatGetByName'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltDocumentComp'/>
<ref name='xsltEvalStaticAttrValueTemplate'/>
<ref name='xsltFreeAttributeSetsHashes'/>
@@ -1853,6 +1872,7 @@
<ref name='xsltFindDocument'/>
<ref name='xsltFindElemSpaceHandling'/>
<ref name='xsltFindTemplate'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltForEach'/>
<ref name='xsltFreeCtxtExts'/>
<ref name='xsltFreeDocuments'/>
@@ -1994,7 +2014,6 @@
</file>
<file name='extra'>
<ref name='XSLT_LIBXSLT_NAMESPACE'/>
- <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
<ref name='XSLT_SAXON_NAMESPACE'/>
<ref name='XSLT_XALAN_NAMESPACE'/>
<ref name='XSLT_XT_NAMESPACE'/>
@@ -2145,6 +2164,10 @@
</file>
<file name='variables'>
<ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='XSLT_RVT_GLOBAL'/>
+ <ref name='XSLT_RVT_LOCAL'/>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='xsltAddStackElemList'/>
<ref name='xsltEvalGlobalVariables'/>
<ref name='xsltEvalOneUserParam'/>
@@ -2293,6 +2316,7 @@
<ref name='xsltCreateRVT'/>
<ref name='xsltDecimalFormat'/>
<ref name='xsltDecimalFormatGetByName'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltDecimalFormatPtr'/>
<ref name='xsltDocument'/>
<ref name='xsltDocumentPtr'/>
@@ -2305,6 +2329,7 @@
<ref name='xsltEvalAVT'/>
<ref name='xsltExtensionInstructionResultFinalize'/>
<ref name='xsltExtensionInstructionResultRegister'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltFormatNumberConversion'/>
<ref name='xsltFreeAVTList'/>
<ref name='xsltFreeRVTs'/>
@@ -2444,6 +2469,8 @@
</file>
<file name='xsltlocale'>
<ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_LOCALE_POSIX'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
<ref name='xsltFreeLocale'/>
<ref name='xsltFreeLocales'/>
<ref name='xsltLocale'/>
@@ -2799,6 +2826,7 @@
</word>
<word name='Find'>
<ref name='xsltDecimalFormatGetByName'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltFindElemSpaceHandling'/>
<ref name='xsltGetNamespace'/>
<ref name='xsltGetSpecialNamespace'/>
@@ -2996,6 +3024,8 @@
<ref name='CHECK_STOPPEDE'/>
<ref name='XML_CAST_FPTR'/>
<ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_LOCALE_POSIX'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
<ref name='XSLT_RUNTIME_EXTRA'/>
<ref name='XSLT_RUNTIME_EXTRA_FREE'/>
<ref name='XSLT_RUNTIME_EXTRA_LST'/>
@@ -3055,9 +3085,6 @@
<word name='Needed'>
<ref name='_xsltTransformContext'/>
</word>
- <word name='Norm'>
- <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
- </word>
<word name='Not'>
<ref name='_xsltStylesheet'/>
<ref name='xsltGetPlainNamespace'/>
@@ -3084,6 +3111,7 @@
<ref name='xsltInitAllDocKeys'/>
</word>
<word name='Obsolete'>
+ <ref name='_xsltTransformContext'/>
<ref name='xsltGetPlainNamespace'/>
<ref name='xsltRegisterTmpRVT'/>
<ref name='xsltTemplateProcess'/>
@@ -3100,6 +3128,9 @@
</word>
</letter>
<letter name='P'>
+ <word name='POSIX'>
+ <ref name='XSLT_LOCALE_POSIX'/>
+ </word>
<word name='Parser'>
<ref name='xsltDocumentFunction'/>
<ref name='xsltElementAvailableFunction'/>
@@ -3193,6 +3224,7 @@
<word name='QName'>
<ref name='_xsltStackElem'/>
<ref name='_xsltTemplate'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltEvalAttrValueTemplate'/>
<ref name='xsltGetQNameURI'/>
<ref name='xsltGetQNameURI2'/>
@@ -3223,12 +3255,17 @@
<ref name='_xsltTransformContext'/>
</word>
<word name='RVT'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='XSLT_RVT_GLOBAL'/>
+ <ref name='XSLT_RVT_LOCAL'/>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='_xsltTransformContext'/>
<ref name='xsltRegisterLocalRVT'/>
<ref name='xsltReleaseRVT'/>
</word>
<word name='RVTs'>
<ref name='_xsltTransformContext'/>
+ <ref name='xsltFlagRVTs'/>
</word>
<word name='Read'>
<ref name='xsltGetUTF8Char'/>
@@ -3293,14 +3330,13 @@
<ref name='_xsltTransformContext'/>
</word>
</letter>
+ </chunk>
+ <chunk name='chunk2'>
<letter name='S'>
<word name='SAX'>
<ref name='xsltRunStylesheet'/>
<ref name='xsltRunStylesheetUser'/>
</word>
- <word name='SAXON'>
- <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
- </word>
<word name='Sampling'>
<ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
</word>
@@ -3381,8 +3417,6 @@
<ref name='xsltFormatNumberConversion'/>
</word>
</letter>
- </chunk>
- <chunk name='chunk2'>
<letter name='T'>
<word name='TEMP'>
<ref name='_xsltCompilerCtxt'/>
@@ -3472,6 +3506,9 @@
<word name='Update'>
<ref name='xsltSetSecurityPrefs'/>
</word>
+ <word name='Updates'>
+ <ref name='xsltFlagRVTs'/>
+ </word>
<word name='Use'>
<ref name='xsltRegisterTmpRVT'/>
</word>
@@ -3507,6 +3544,9 @@
<ref name='CHECK_STOPPED0'/>
<ref name='CHECK_STOPPEDE'/>
</word>
+ <word name='WinAPI'>
+ <ref name='XSLT_LOCALE_WINAPI'/>
+ </word>
</letter>
<letter name='X'>
<word name='XALAN'>
@@ -3556,6 +3596,19 @@
<ref name='xsltRunStylesheet'/>
<ref name='xsltRunStylesheetUser'/>
</word>
+ <word name='XSLT_RVT_FUNC_RESULT'>
+ <ref name='xsltFlagRVTs'/>
+ </word>
+ <word name='XSLT_RVT_GLOBAL'>
+ <ref name='xsltFlagRVTs'/>
+ </word>
+ <word name='XSLT_RVT_LOCAL'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='xsltFlagRVTs'/>
+ </word>
+ <word name='XSLT_RVT_VARIABLE'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ </word>
</letter>
<letter name='a'>
<word name='absent'>
@@ -3568,6 +3621,7 @@
<ref name='XSLT_RUNTIME_EXTRA_LST'/>
</word>
<word name='according'>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltRunStylesheet'/>
<ref name='xsltRunStylesheetUser'/>
<ref name='xsltStrxfrm'/>
@@ -3610,7 +3664,11 @@
<ref name='xsltSetDebuggerCallbacks'/>
</word>
<word name='after'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='XSLT_RVT_LOCAL'/>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='xsltExtensionInstructionResultFinalize'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltGetProfileInformation'/>
<ref name='xsltLocaleStrcmp'/>
<ref name='xsltParseStylesheetDoc'/>
@@ -3779,7 +3837,6 @@
<ref name='xsltSaveResultToString'/>
</word>
<word name='are'>
- <ref name='XSLT_LOCALE_NONE'/>
<ref name='_xsltDocument'/>
<ref name='_xsltStackElem'/>
<ref name='_xsltStylesheet'/>
@@ -4078,6 +4135,7 @@
<ref name='xslAddCall'/>
<ref name='xslDropCall'/>
<ref name='xsltDocLoaderFunc'/>
+ <ref name='xsltExtensionInstructionResultRegister'/>
</word>
<word name='call-template'>
<ref name='_xsltStyleItemCallTemplate'/>
@@ -4555,6 +4613,7 @@
</word>
<word name='decimal-format'>
<ref name='xsltDecimalFormatGetByName'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
</word>
<word name='declaration'>
<ref name='xsltCopyNamespace'/>
@@ -4642,6 +4701,12 @@
<ref name='xsltFindDocument'/>
<ref name='xsltGetExtInfo'/>
</word>
+ <word name='destroyed'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='XSLT_RVT_LOCAL'/>
+ <ref name='XSLT_RVT_VARIABLE'/>
+ <ref name='xsltFlagRVTs'/>
+ </word>
<word name='details'>
<ref name='xsltEvalOneUserParam'/>
</word>
@@ -4820,6 +4885,9 @@
<word name='end'>
<ref name='_xsltElemPreComp'/>
</word>
+ <word name='ends'>
+ <ref name='XSLT_RVT_LOCAL'/>
+ </word>
<word name='engine'>
<ref name='xsltDocLoaderFunc'/>
<ref name='xsltSetCtxtParseOptions'/>
@@ -4928,6 +4996,7 @@
<ref name='xsltRegisterTmpRVT'/>
</word>
<word name='exiting'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
<ref name='xsltApplyOneTemplate'/>
</word>
<word name='exits'>
@@ -4979,6 +5048,10 @@
<word name='extInfos'>
<ref name='xsltGetExtInfo'/>
</word>
+ <word name='extended'>
+ <ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
+ </word>
<word name='extending'>
<ref name='xsltInitElemPreComp'/>
</word>
@@ -4987,7 +5060,7 @@
</word>
<word name='extensions'>
<ref name='XSLT_LIBXSLT_NAMESPACE'/>
- <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
+ <ref name='XSLT_LOCALE_POSIX'/>
<ref name='XSLT_SAXON_NAMESPACE'/>
<ref name='XSLT_XALAN_NAMESPACE'/>
<ref name='XSLT_XT_NAMESPACE'/>
@@ -5096,6 +5169,7 @@
<word name='flag'>
<ref name='XSLT_STRANGE'/>
<ref name='XSLT_TODO'/>
+ <ref name='xsltFlagRVTs'/>
</word>
<word name='flags'>
<ref name='xsltXPathCompileFlags'/>
@@ -5191,6 +5265,7 @@
<ref name='_xsltTransformContext'/>
<ref name='xsltExtensionInstructionResultFinalize'/>
<ref name='xsltExtensionInstructionResultRegister'/>
+ <ref name='xsltFlagRVTs'/>
</word>
<word name='free'>
<ref name='XSLT_RUNTIME_EXTRA_FREE'/>
@@ -5225,6 +5300,9 @@
<word name='full'>
<ref name='xsltSplitQName'/>
</word>
+ <word name='func:result'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ </word>
<word name='function-available'>
<ref name='xsltFunctionAvailableFunction'/>
</word>
@@ -5328,6 +5406,7 @@
<ref name='xsltQuoteOneUserParam'/>
</word>
<word name='global'>
+ <ref name='XSLT_RVT_GLOBAL'/>
<ref name='_xsltElemPreComp'/>
<ref name='_xsltTransformContext'/>
<ref name='xsltCleanupGlobals'/>
@@ -5335,6 +5414,7 @@
<ref name='xsltEvalGlobalVariables'/>
<ref name='xsltEvalOneUserParam'/>
<ref name='xsltEvalUserParams'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltFreeGlobalVariables'/>
<ref name='xsltInitCtxtKeys'/>
<ref name='xsltInitGlobals'/>
@@ -5343,6 +5423,9 @@
<ref name='xsltSetCtxtSortFunc'/>
<ref name='xsltSetSortFunc'/>
</word>
+ <word name='goes'>
+ <ref name='XSLT_RVT_VARIABLE'/>
+ </word>
<word name='goto'>
<ref name='CHECK_STOPPEDE'/>
</word>
@@ -5515,6 +5598,8 @@
</word>
<word name='indicating'>
<ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_LOCALE_POSIX'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
<ref name='xsltDocLoaderFunc'/>
</word>
<word name='indicator'>
@@ -5542,6 +5627,7 @@
<ref name='xsltCopyOf'/>
<ref name='xsltDocumentElem'/>
<ref name='xsltElement'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltForEach'/>
<ref name='xsltIf'/>
<ref name='xsltInitCtxtKey'/>
@@ -5608,6 +5694,7 @@
</word>
<word name='inspected'>
<ref name='xsltExtensionInstructionResultRegister'/>
+ <ref name='xsltFlagRVTs'/>
</word>
<word name='instances'>
<ref name='xsltFormatNumberConversion'/>
@@ -5620,6 +5707,7 @@
<ref name='xsltRegisterTmpRVT'/>
</word>
<word name='instructions'>
+ <ref name='XSLT_RVT_LOCAL'/>
<ref name='_xsltTemplate'/>
<ref name='xsltApplyOneTemplate'/>
<ref name='xsltParseAnyXSLTElem'/>
@@ -5686,6 +5774,9 @@
<word name='invoking'>
<ref name='xsltGetSpecialNamespace'/>
</word>
+ <word name='isn'>
+ <ref name='xsltExtensionInstructionResultRegister'/>
+ </word>
<word name='issues'>
<ref name='_xsltTransformContext'/>
</word>
@@ -5710,6 +5801,7 @@
<ref name='xsltAllocateExtra'/>
<ref name='xsltAllocateExtraCtxt'/>
<ref name='xsltApplyStylesheetUser'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltFreeGlobalVariables'/>
<ref name='xsltGetNamespace'/>
<ref name='xsltParseGlobalParam'/>
@@ -5794,6 +5886,9 @@
<word name='leaks'>
<ref name='xsltAttrListTemplateProcess'/>
</word>
+ <word name='leaving'>
+ <ref name='xsltFlagRVTs'/>
+ </word>
<word name='left'>
<ref name='xsltApplyOneTemplate'/>
</word>
@@ -5824,6 +5919,8 @@
<word name='libxslt'>
<ref name='XSLT_LIBXSLT_NAMESPACE'/>
<ref name='XSLT_REFACTORED_VARS'/>
+ <ref name='xsltExtensionInstructionResultFinalize'/>
+ <ref name='xsltExtensionInstructionResultRegister'/>
<ref name='xsltFunctionNodeSet'/>
</word>
<word name='lifespan'>
@@ -5874,10 +5971,12 @@
<ref name='xsltSetLoaderFunc'/>
</word>
<word name='local'>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='_xsltCompilerCtxt'/>
<ref name='_xsltStackElem'/>
<ref name='_xsltTemplate'/>
<ref name='_xsltTransformContext'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltLocalVariablePush'/>
<ref name='xsltParseStylesheetParam'/>
<ref name='xsltParseStylesheetVariable'/>
@@ -5885,6 +5984,8 @@
</word>
<word name='locale'>
<ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_LOCALE_POSIX'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
<ref name='xsltFreeLocale'/>
<ref name='xsltFreeLocales'/>
<ref name='xsltLocaleStrcmp'/>
@@ -6108,6 +6209,7 @@
<ref name='xsltFindTemplate'/>
</word>
<word name='named'>
+ <ref name='_xsltStylesheet'/>
<ref name='xsltFindTemplate'/>
</word>
<word name='names'>
@@ -6142,6 +6244,7 @@
</word>
<word name='necessary'>
<ref name='xsltCheckWrite'/>
+ <ref name='xsltExtensionInstructionResultRegister'/>
</word>
<word name='need'>
<ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
@@ -6176,6 +6279,10 @@
<word name='nested'>
<ref name='_xsltStylesheet'/>
</word>
+ <word name='newer'>
+ <ref name='xsltExtensionInstructionResultFinalize'/>
+ <ref name='xsltExtensionInstructionResultRegister'/>
+ </word>
<word name='newly'>
<ref name='xsltCopyTextString'/>
<ref name='xsltExtensionInstructionResultRegister'/>
@@ -6295,6 +6402,7 @@
<ref name='XML_CAST_FPTR'/>
<ref name='xsltDocumentFunction'/>
<ref name='xsltExtensionInstructionResultRegister'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltKeyFunction'/>
<ref name='xsltSystemPropertyFunction'/>
<ref name='xsltXPathCompile'/>
@@ -6441,6 +6549,7 @@
<ref name='xsltFormatNumberConversion'/>
</word>
<word name='out'>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='xsltSetGenericDebugFunc'/>
<ref name='xsltSetGenericErrorFunc'/>
<ref name='xsltSetTransformErrorFunc'/>
@@ -6471,6 +6580,9 @@
<word name='own'>
<ref name='xsltApplyStylesheetUser'/>
</word>
+ <word name='ownership'>
+ <ref name='xsltFlagRVTs'/>
+ </word>
<word name='owning'>
<ref name='_xsltCompilerNodeInfo'/>
</word>
@@ -6556,12 +6668,19 @@
</word>
<word name='part'>
<ref name='XSLT_REFACTORED_VARS'/>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='XSLT_RVT_GLOBAL'/>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='_xsltElemPreComp'/>
<ref name='_xsltFormatNumberInfo'/>
<ref name='_xsltStackElem'/>
<ref name='_xsltTemplate'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
<ref name='xsltTransformFunction'/>
</word>
+ <word name='parts'>
+ <ref name='xsltFlagRVTs'/>
+ </word>
<word name='pass'>
<ref name='XSLT_PARSE_OPTIONS'/>
<ref name='xsltAttrTemplateValueProcessNode'/>
@@ -6902,6 +7021,9 @@
<ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
<ref name='_xsltEffectiveNs'/>
</word>
+ <word name='receives'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ </word>
<word name='record'>
<ref name='xsltParseGlobalParam'/>
<ref name='xsltParseStylesheetOutput'/>
@@ -6909,6 +7031,9 @@
<word name='recorded'>
<ref name='xsltParseStylesheetCallerParam'/>
</word>
+ <word name='recursions'>
+ <ref name='_xsltTransformContext'/>
+ </word>
<word name='recursive'>
<ref name='_xsltTransformContext'/>
</word>
@@ -6955,6 +7080,10 @@
<ref name='_xsltStylesheet'/>
<ref name='xsltParseStylesheetOutput'/>
</word>
+ <word name='releases'>
+ <ref name='xsltExtensionInstructionResultFinalize'/>
+ <ref name='xsltExtensionInstructionResultRegister'/>
+ </word>
<word name='remain'>
<ref name='xsltLocalVariablePop'/>
</word>
@@ -7003,6 +7132,8 @@
<ref name='xsltNeedElemSpaceHandling'/>
</word>
<word name='reset'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltSetGenericDebugFunc'/>
<ref name='xsltSetGenericErrorFunc'/>
<ref name='xsltSetSortFunc'/>
@@ -7044,6 +7175,7 @@
<ref name='xsltXPathCompileFlags'/>
</word>
<word name='results'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
<ref name='xsltParseTemplateContent'/>
</word>
<word name='retrieve'>
@@ -7052,6 +7184,7 @@
<word name='return'>
<ref name='CHECK_STOPPED'/>
<ref name='CHECK_STOPPED0'/>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
<ref name='xsltAllocateExtra'/>
<ref name='xsltAllocateExtraCtxt'/>
<ref name='xsltAttrTemplateValueProcess'/>
@@ -7060,11 +7193,16 @@
<ref name='xsltSplitQName'/>
</word>
<word name='returned'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
<ref name='xsltExtensionInstructionResultFinalize'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltGetProfileInformation'/>
<ref name='xsltGetQNameURI'/>
<ref name='xsltParseStylesheetDoc'/>
</word>
+ <word name='returning'>
+ <ref name='xsltFlagRVTs'/>
+ </word>
<word name='reuse'>
<ref name='xsltApplyOneTemplate'/>
<ref name='xsltReleaseRVT'/>
@@ -7134,11 +7272,13 @@
<ref name='xsltNormalizeCompSteps'/>
</word>
<word name='scope'>
+ <ref name='XSLT_RVT_VARIABLE'/>
<ref name='_xsltKeyDef'/>
<ref name='_xsltStylePreComp'/>
<ref name='_xsltStylesheet'/>
<ref name='xsltApplyOneTemplate'/>
<ref name='xsltEvalXPathPredicate'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltGetQNameURI'/>
<ref name='xsltGetTemplate'/>
</word>
@@ -7413,6 +7553,7 @@
<ref name='xslHandleDebugger'/>
<ref name='xsltCleanupTemplates'/>
<ref name='xsltExtensionInstructionResultFinalize'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltGetXIncludeDefault'/>
</word>
<word name='states'>
@@ -7582,6 +7723,7 @@
<ref name='xsltEvalUserParams'/>
<ref name='xsltExtensionInstructionResultFinalize'/>
<ref name='xsltExtensionInstructionResultRegister'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltInitAllDocKeys'/>
<ref name='xsltInitCtxtKey'/>
<ref name='xsltLocalVariablePush'/>
@@ -7632,11 +7774,12 @@
<ref name='xsltFormatNumberConversion'/>
</word>
<word name='support'>
+ <ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
<ref name='xsltFreeLocales'/>
</word>
<word name='supported'>
<ref name='XSLT_DEFAULT_VERSION'/>
- <ref name='XSLT_LOCALE_NONE'/>
</word>
<word name='sure'>
<ref name='xsltAllocateExtraCtxt'/>
@@ -7754,6 +7897,7 @@
<ref name='IS_XSLT_REAL_NODE'/>
<ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
<ref name='XSLT_LOCALE_NONE'/>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
<ref name='XSLT_STRANGE'/>
<ref name='xslHandleDebugger'/>
<ref name='xsltApplyOneTemplate'/>
@@ -7790,6 +7934,7 @@
<ref name='xsltStrxfrm'/>
</word>
<word name='there'>
+ <ref name='XSLT_LOCALE_NONE'/>
<ref name='_xsltCompilerCtxt'/>
<ref name='xsltAllocateExtraCtxt'/>
<ref name='xsltGetQNameURI'/>
@@ -7939,6 +8084,9 @@
<word name='unstructured'>
<ref name='_xsltCompilerCtxt'/>
</word>
+ <word name='unsupported'>
+ <ref name='xsltExtensionInstructionResultFinalize'/>
+ </word>
<word name='unused'>
<ref name='xsltDocumentComp'/>
<ref name='xsltSecurityAllow'/>
@@ -7957,6 +8105,8 @@
<ref name='XSLT_FAST_IF'/>
</word>
<word name='use'>
+ <ref name='XSLT_LOCALE_POSIX'/>
+ <ref name='XSLT_LOCALE_WINAPI'/>
<ref name='xsltAddKey'/>
<ref name='xsltCopyNamespaceList'/>
<ref name='xsltDocLoaderFunc'/>
@@ -8060,6 +8210,7 @@
<ref name='xsltCleanupGlobals'/>
<ref name='xsltEvalGlobalVariables'/>
<ref name='xsltEvalUserParams'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltFreeGlobalVariables'/>
<ref name='xsltInitGlobals'/>
<ref name='xsltLocalVariablePop'/>
@@ -8118,6 +8269,7 @@
<ref name='_xsltStackElem'/>
<ref name='_xsltTemplate'/>
<ref name='xsltEvalXPathPredicate'/>
+ <ref name='xsltFlagRVTs'/>
<ref name='xsltNewLocale'/>
<ref name='xsltNextImport'/>
<ref name='xsltRegisterExtPrefix'/>
@@ -8204,6 +8356,7 @@
</word>
<word name='with'>
<ref name='CHECK_STOPPED0'/>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
<ref name='xsltAttrTemplateValueProcessNode'/>
<ref name='xsltEvalAttrValueTemplate'/>
<ref name='xsltEvalStaticAttrValueTemplate'/>
@@ -8239,8 +8392,10 @@
<ref name='_xsltTransformContext'/>
</word>
<word name='won'>
+ <ref name='XSLT_RVT_FUNC_RESULT'/>
<ref name='_xsltTemplate'/>
<ref name='xsltCopyNamespaceList'/>
+ <ref name='xsltFlagRVTs'/>
</word>
<word name='work'>
<ref name='xsltCheckWrite'/>
@@ -8332,6 +8487,9 @@
<word name='xsl:apply-templates'>
<ref name='xsltTransformFunction'/>
</word>
+ <word name='xsl:attribute'>
+ <ref name='xsltAttribute'/>
+ </word>
<word name='xsl:choose'>
<ref name='xsltChoose'/>
</word>
@@ -8448,6 +8606,7 @@
</word>
<word name='xsltDecimalFormatPtr'>
<ref name='xsltDecimalFormatGetByName'/>
+ <ref name='xsltDecimalFormatGetByQName'/>
</word>
<word name='xsltDocLoaderFunc'>
<ref name='xsltDocLoaderFunc'/>
@@ -8616,8 +8775,8 @@
</chunk>
<chunks>
<chunk name='chunk0' start='A' end='I'/>
- <chunk name='chunk1' start='J' end='S'/>
- <chunk name='chunk2' start='T' end='a'/>
+ <chunk name='chunk1' start='J' end='R'/>
+ <chunk name='chunk2' start='S' end='a'/>
<chunk name='chunk3' start='b' end='c'/>
<chunk name='chunk4' start='d' end='e'/>
<chunk name='chunk5' start='f' end='g'/>
diff --git a/doc/libxslt.xsa b/doc/libxslt.xsa
index f6b8c2af..53748721 100644
--- a/doc/libxslt.xsa
+++ b/doc/libxslt.xsa
@@ -8,28 +8,92 @@
</vendor>
<product id="libxslt">
<name>libxslt</name>
- <version>1.1.28</version>
- <last-release> Nov 21 2012</last-release>
+ <version>v1.1.30</version>
+ <last-release> Sep 04 2017</last-release>
<info-url>http://xmlsoft.org/XSLT/</info-url>
- <changes> - Portability:
- Fix python build by using libxsltmod_la_CPPFLAGS instead of AM_CPPFLAGS (Alexandre Rostovtsev),
- configure should be more careful with linker script (Igor Pashev),
- add gcrypt library in LIBADD, not LDFLAGS, as recommended (Roumen Petrov)
+ <changes> - Documentation:
+ Misc doc fixes (Nick Wellnhofer)
- - Bug fixes:
- Fix generate-id() to avoid generating the same ID (Stewart Brodie),
- Fix crash with empty xsl:key/@match attribute (Nick Wellnhofer),
- Crash when passing an uninitialized variable to document() (Nick Wellnhofer),
- Add missing test docs to EXTRA_DIST (Nick Wellnhofer),
- Fix regression: Default namespace not correctly used (Nick Wellnhofer)
+ - Portability:
+ Look for libxml2 via pkg-config first (Elliott Sales de Andrade),
+ Change default SOPREFIX on Windows to "bin" (Nick Wellnhofer),
+ Add WIN32_EXTRA_LDFLAGS to tests/plugins/Makefile.am (Michael Haubenwallner)
- - Cleanups:
- Remove xsltTransStorageAdd and xsltTransStorageRemove from symbols.xml (Daniel Veillard),
- autogen.sh cleanup (Daniel Richard),
- consistent use of xslt processor (Roumen Petrov),
- Add object files in tests/plugins to .gitignore (Nick Wellnhofer),
- Fix error on bug-165 regression test (Daniel Veillard),
- Remove xsltTransStorageAdd and xsltTransStorageRemove (Daniel Veillard),
+ - Bug Fixes:
+ Also fix memory hazards in exsltFuncResultElem (Nick Wellnhofer),
+ Fix NULL deref in xsltDefaultSortFunction (Nick Wellnhofer),
+ Fix memory hazards in exsltFuncFunctionFunction (Nick Wellnhofer),
+ Fix memory leaks in EXSLT error paths (Nick Wellnhofer),
+ Fix memory leak in str:concat with empty node-set (Nick Wellnhofer),
+ Fix memory leaks in error paths (Nick Wellnhofer),
+ Switch to xmlUTF8Strsize in numbers.c (Nick Wellnhofer),
+ Fix NULL pointer deref in xsltFormatNumberFunction (Nick Wellnhofer),
+ Fix UTF-8 check in str:padding (Nick Wellnhofer),
+ Fix xmlStrPrintf argument (Nick Wellnhofer),
+ Check for overflow in _exsltDateParseGYear (Nick Wellnhofer),
+ Fix double to int conversion (Nick Wellnhofer),
+ Check for overflow in exsltDateParseDuration (Nick Wellnhofer),
+ Change version of xsltMaxVars back to 1.0.24 (Nick Wellnhofer),
+ Disable xsltCopyTextString optimization for extensions (Nick Wellnhofer),
+ Create DOCTYPE for HTML version 5 (Nick Wellnhofer),
+ Make xsl:decimal-format work with namespaces (Nick Wellnhofer),
+ Remove norm:localTime extension function (Nick Wellnhofer),
+ Check for integer overflow in xsltAddTextString (Nick Wellnhofer),
+ Detect infinite recursion when evaluating function arguments (Nick Wellnhofer),
+ Fix memory leak in xsltElementAvailableFunction (Nick Wellnhofer),
+ Fix for pattern predicates calling functions (Nick Wellnhofer),
+ Fix cmd.exe invocations in Makefile.mingw (Nick Wellnhofer),
+ Don't try to install index.sgml (Nick Wellnhofer),
+ Fix symbols.xml (Nick Wellnhofer),
+ Fix heap overread in xsltFormatNumberConversion (Nick Wellnhofer),
+ Fix &lt;xsl:number level="any"/&gt; for non-element nodes (Nick Wellnhofer),
+ Fix unreachable code in xsltAddChild (mahendra.n),
+ Change version number in xsl:version warning (Nick Wellnhofer),
+ Avoid infinite recursion after failed param evaluation (Nick Wellnhofer),
+ Stop if potential recursion is detected (Nick Wellnhofer),
+ Consider built-in templates in apply-imports (Nick Wellnhofer),
+ Fix precedence with multiple attribute sets (Nick Wellnhofer),
+ Rework attribute set resolution (Nick Wellnhofer)
+
+ - Improvements:
+ Add .travis.yml (Nick Wellnhofer),
+ Silence tests a little (Nick Wellnhofer),
+ Set LIBXML_SRC to absolute path (Nick Wellnhofer),
+ Add missing #include (Nick Wellnhofer),
+ Adjust expected error messages in tests (Nick Wellnhofer),
+ Make xsltDebug more quiet (Nick Wellnhofer),
+ New-line terminate error message that missed this convention (Jan Pokorný),
+ Use xmlBuffers in EXSLT string functions (Nick Wellnhofer),
+ Switch to xmlUTF8Strsize in EXSLT string functions (Nick Wellnhofer),
+ Check for return value of xmlUTF8Strlen (Nick Wellnhofer),
+ Avoid double/long round trip in FORMAT_ITEM (Nick Wellnhofer),
+ Separate date and duration structs (Nick Wellnhofer),
+ Check for overflow in _exsltDateDifference (Nick Wellnhofer),
+ Clamp seconds field of durations (Nick Wellnhofer),
+ Change _exsltDateAddDurCalc parameter types (Nick Wellnhofer),
+ Fix date:difference with time zones (Nick Wellnhofer),
+ Rework division/remainder arithmetic in date.c (Nick Wellnhofer),
+ Remove exsltDateCastDateToNumber (Nick Wellnhofer),
+ Change internal representation of years (Nick Wellnhofer),
+ Optimize IS_LEAP (Nick Wellnhofer),
+ Link libraries with libm (Jussi Kukkonen),
+ Rename xsltCopyTreeInternal to xsltCopyTree (Nick Wellnhofer),
+ Update linker version script (Nick Wellnhofer),
+ Add local wildcard to version script (Nick Wellnhofer),
+ Make some symbols static (Nick Wellnhofer),
+ Remove redundant NULL check in xsltNumberComp (mahendra.n),
+ Fix forwards compatibility for imported stylesheets (Nick Wellnhofer),
+ Reduce warnings in forwards-compatible mode (Nick Wellnhofer),
+ Precompute XSLT elements after preprocessing (Nick Wellnhofer),
+ Fix whitespace in xsltParseStylesheetTop (Nick Wellnhofer),
+ Consolidate recursion checks (Nick Wellnhofer),
+ Treat XSLT_STATE_STOPPED same as errors (Nick Wellnhofer),
+ Make sure that XSLT_STATE_STOPPED isn't overwritten (Nick Wellnhofer),
+ Add comment regarding built-in templates and params (Nick Wellnhofer),
+ Rewrite memory management of local RVTs (Nick Wellnhofer),
+ Validate QNames of attribute sets (Nick Wellnhofer),
+ Add xsl:attribute-set regression tests (Nick Wellnhofer),
+ Ignore imported stylesheets in xsltApplyAttributeSet (Nick Wellnhofer)
</changes>
diff --git a/doc/newapi.xsl b/doc/newapi.xsl
index 5664e71d..79545be4 100644
--- a/doc/newapi.xsl
+++ b/doc/newapi.xsl
@@ -471,7 +471,7 @@
<xsl:with-param name="text" select="info"/>
</xsl:call-template>
</p>
- <xsl:if test="arg | return">
+ <xsl:if test="arg | return/@info">
<div class="variablelist"><table border="0"><col align="left"/><tbody>
<xsl:for-each select="arg">
<tr>
diff --git a/doc/news.html b/doc/news.html
index 1c63bfb7..a1aa850c 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -9,7 +9,108 @@ H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>News</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/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt 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 XSLT C library for GNOME</h1><h2>News</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="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</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="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</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>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
<a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</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://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</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></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>See the <a href="http://git.gnome.org/browse/libxslt/">git page</a>
-to get a description of the recent commits.</p><p>Those are the public releases made:</p><h3>1.1.29: May 24 2016</h3><ul>
+to get a description of the recent commits.</p><p>Those are the public releases made:</p><h3>v1.1.31: Oct 06 2017</h3><ul>
+ <li>Portability:<br />
+ Fix win32/configure.js (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Fix pkg-config related regressions in configure script (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Adjust expected error output for libxml2 changes (Nick Wellnhofer),<br />
+ Misc autoconf updates (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>v1.1.30: Sep 04 2017</h3><ul>
+ <li>Documentation:<br />
+ Misc doc fixes (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Portability:<br />
+ Look for libxml2 via pkg-config first (Elliott Sales de Andrade),<br />
+ Change default SOPREFIX on Windows to "bin" (Nick Wellnhofer),<br />
+ Add WIN32_EXTRA_LDFLAGS to tests/plugins/Makefile.am (Michael Haubenwallner)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Also fix memory hazards in exsltFuncResultElem (Nick Wellnhofer),<br />
+ Fix NULL deref in xsltDefaultSortFunction (Nick Wellnhofer),<br />
+ Fix memory hazards in exsltFuncFunctionFunction (Nick Wellnhofer),<br />
+ Fix memory leaks in EXSLT error paths (Nick Wellnhofer),<br />
+ Fix memory leak in str:concat with empty node-set (Nick Wellnhofer),<br />
+ Fix memory leaks in error paths (Nick Wellnhofer),<br />
+ Switch to xmlUTF8Strsize in numbers.c (Nick Wellnhofer),<br />
+ Fix NULL pointer deref in xsltFormatNumberFunction (Nick Wellnhofer),<br />
+ Fix UTF-8 check in str:padding (Nick Wellnhofer),<br />
+ Fix xmlStrPrintf argument (Nick Wellnhofer),<br />
+ Check for overflow in _exsltDateParseGYear (Nick Wellnhofer),<br />
+ Fix double to int conversion (Nick Wellnhofer),<br />
+ Check for overflow in exsltDateParseDuration (Nick Wellnhofer),<br />
+ Change version of xsltMaxVars back to 1.0.24 (Nick Wellnhofer),<br />
+ Disable xsltCopyTextString optimization for extensions (Nick Wellnhofer),<br />
+ Create DOCTYPE for HTML version 5 (Nick Wellnhofer),<br />
+ Make xsl:decimal-format work with namespaces (Nick Wellnhofer),<br />
+ Remove norm:localTime extension function (Nick Wellnhofer),<br />
+ Check for integer overflow in xsltAddTextString (Nick Wellnhofer),<br />
+ Detect infinite recursion when evaluating function arguments (Nick Wellnhofer),<br />
+ Fix memory leak in xsltElementAvailableFunction (Nick Wellnhofer),<br />
+ Fix for pattern predicates calling functions (Nick Wellnhofer),<br />
+ Fix cmd.exe invocations in Makefile.mingw (Nick Wellnhofer),<br />
+ Don't try to install index.sgml (Nick Wellnhofer),<br />
+ Fix symbols.xml (Nick Wellnhofer),<br />
+ Fix heap overread in xsltFormatNumberConversion (Nick Wellnhofer),<br />
+ Fix &lt;xsl:number level="any"/&gt; for non-element nodes (Nick Wellnhofer),<br />
+ Fix unreachable code in xsltAddChild (mahendra.n),<br />
+ Change version number in xsl:version warning (Nick Wellnhofer),<br />
+ Avoid infinite recursion after failed param evaluation (Nick Wellnhofer),<br />
+ Stop if potential recursion is detected (Nick Wellnhofer),<br />
+ Consider built-in templates in apply-imports (Nick Wellnhofer),<br />
+ Fix precedence with multiple attribute sets (Nick Wellnhofer),<br />
+ Rework attribute set resolution (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Add .travis.yml (Nick Wellnhofer),<br />
+ Silence tests a little (Nick Wellnhofer),<br />
+ Set LIBXML_SRC to absolute path (Nick Wellnhofer),<br />
+ Add missing #include (Nick Wellnhofer),<br />
+ Adjust expected error messages in tests (Nick Wellnhofer),<br />
+ Make xsltDebug more quiet (Nick Wellnhofer),<br />
+ New-line terminate error message that missed this convention (Jan Pokorný),<br />
+ Use xmlBuffers in EXSLT string functions (Nick Wellnhofer),<br />
+ Switch to xmlUTF8Strsize in EXSLT string functions (Nick Wellnhofer),<br />
+ Check for return value of xmlUTF8Strlen (Nick Wellnhofer),<br />
+ Avoid double/long round trip in FORMAT_ITEM (Nick Wellnhofer),<br />
+ Separate date and duration structs (Nick Wellnhofer),<br />
+ Check for overflow in _exsltDateDifference (Nick Wellnhofer),<br />
+ Clamp seconds field of durations (Nick Wellnhofer),<br />
+ Change _exsltDateAddDurCalc parameter types (Nick Wellnhofer),<br />
+ Fix date:difference with time zones (Nick Wellnhofer),<br />
+ Rework division/remainder arithmetic in date.c (Nick Wellnhofer),<br />
+ Remove exsltDateCastDateToNumber (Nick Wellnhofer),<br />
+ Change internal representation of years (Nick Wellnhofer),<br />
+ Optimize IS_LEAP (Nick Wellnhofer),<br />
+ Link libraries with libm (Jussi Kukkonen),<br />
+ Rename xsltCopyTreeInternal to xsltCopyTree (Nick Wellnhofer),<br />
+ Update linker version script (Nick Wellnhofer),<br />
+ Add local wildcard to version script (Nick Wellnhofer),<br />
+ Make some symbols static (Nick Wellnhofer),<br />
+ Remove redundant NULL check in xsltNumberComp (mahendra.n),<br />
+ Fix forwards compatibility for imported stylesheets (Nick Wellnhofer),<br />
+ Reduce warnings in forwards-compatible mode (Nick Wellnhofer),<br />
+ Precompute XSLT elements after preprocessing (Nick Wellnhofer),<br />
+ Fix whitespace in xsltParseStylesheetTop (Nick Wellnhofer),<br />
+ Consolidate recursion checks (Nick Wellnhofer),<br />
+ Treat XSLT_STATE_STOPPED same as errors (Nick Wellnhofer),<br />
+ Make sure that XSLT_STATE_STOPPED isn't overwritten (Nick Wellnhofer),<br />
+ Add comment regarding built-in templates and params (Nick Wellnhofer),<br />
+ Rewrite memory management of local RVTs (Nick Wellnhofer),<br />
+ Validate QNames of attribute sets (Nick Wellnhofer),<br />
+ Add xsl:attribute-set regression tests (Nick Wellnhofer),<br />
+ Ignore imported stylesheets in xsltApplyAttributeSet (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>1.1.29: May 24 2016</h3><ul>
<li>Security:<br />
CVE-2015-7995 Fix for type confusion in preprocessing attributes (Daniel Veillard)<br />
</li>
diff --git a/doc/symbols.xml b/doc/symbols.xml
index e1bbb38f..52f1cffe 100644
--- a/doc/symbols.xml
+++ b/doc/symbols.xml
@@ -81,7 +81,7 @@
<symbol file="pattern">xsltFreeCompMatchList</symbol>
<symbol file="pattern">xsltFreeTemplateHashes</symbol>
<symbol file="pattern">xsltGetTemplate</symbol>
- <symbol file="pattern">xsltMatchPattern</symbol>
+ <symbol removed="1.0.12" file="pattern">xsltMatchPattern</symbol>
<symbol file="pattern">xsltTestCompMatchList</symbol>
<symbol file="preproc">xsltDocumentComp</symbol>
<symbol file="preproc">xsltFreeStylePreComps</symbol>
@@ -221,6 +221,7 @@
<symbol file="xslt">xsltLibxmlVersion</symbol>
<symbol file="xslt">xsltLibxsltVersion</symbol>
<symbol file="xslt">xsltMaxDepth</symbol>
+ <!-- xsltMaxVars was added in 1.1.27 with a wrong version. -->
<symbol file="xslt">xsltMaxVars</symbol>
<symbol file="xsltInternals">xsltParseStylesheetImportedDoc</symbol>
<symbol file="xsltutils">xsltSetCtxtSortFunc</symbol>
@@ -269,25 +270,25 @@
<symbol file="documents">xsltSetLoaderFunc</symbol>
</release>
<release version="1.1.18">
- <symbol file="xsltInternals">xsltConstNamespaceNameXSLT</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltConstNamespaceNameXSLT</symbol>
<symbol file="xsltInternals">xsltExtensionInstructionResultFinalize</symbol>
<symbol file="xsltInternals">xsltExtensionInstructionResultRegister</symbol>
<symbol file="xsltInternals">xsltInitCtxtKey</symbol>
<symbol file="xslt">xsltInit</symbol>
- <symbol file="xsltInternals">xsltParseAnyXSLTElem</symbol>
- <symbol file="xsltInternals">xsltParseSequenceConstructor</symbol>
- <symbol file="xsltInternals">xsltPointerListAddSize</symbol>
- <symbol file="xsltInternals">xsltPointerListClear</symbol>
- <symbol file="xsltInternals">xsltPointerListCreate</symbol>
- <symbol file="xsltInternals">xsltPointerListFree</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltParseAnyXSLTElem</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltParseSequenceConstructor</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltPointerListAddSize</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltPointerListClear</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltPointerListCreate</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltPointerListFree</symbol>
<symbol file="xsltInternals">xsltRegisterLocalRVT</symbol>
<symbol file="xsltInternals">xsltReleaseRVT</symbol>
- <symbol file="xsltInternals">xsltRestoreDocumentNamespaces</symbol>
- <symbol file="extensions">xsltStyleStylesheetLevelGetExtData</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltRestoreDocumentNamespaces</symbol>
+ <symbol switch="REFACTORED" file="extensions">xsltStyleStylesheetLevelGetExtData</symbol>
<symbol removed="1.1.28" file="xsltInternals">xsltTransStorageAdd</symbol>
<symbol removed="1.1.28" file="xsltInternals">xsltTransStorageRemove</symbol>
<symbol file="xsltInternals">xsltUninit</symbol>
- <symbol file="xsltInternals">xsltXSLTAttrMarker</symbol>
+ <symbol switch="REFACTORED" file="xsltInternals">xsltXSLTAttrMarker</symbol>
</release>
<release version="1.1.20">
<symbol file="transform">xsltLocalVariablePop</symbol>
@@ -314,4 +315,8 @@
<symbol file="xsltlocale">xsltFreeLocales</symbol>
<symbol file="xsltutils">xsltXPathCompileFlags</symbol>
</release>
+ <release version="1.1.30">
+ <symbol file="xsltInternals">xsltFlagRVTs</symbol>
+ <symbol file="xsltInternals">xsltDecimalFormatGetByQName</symbol>
+ </release>
</symbols>
diff --git a/doc/syms.xsl b/doc/syms.xsl
index 3965e90c..b46913e6 100644
--- a/doc/syms.xsl
+++ b/doc/syms.xsl
@@ -44,6 +44,13 @@
<xsl:apply-templates select="."/>
</xsl:for-each>
+ <xsl:if test="not($prev)">
+ <xsl:text>
+ local:
+ *;
+</xsl:text>
+ </xsl:if>
+
<xsl:text>} </xsl:text>
<xsl:if test="$prev">
<xsl:text>LIBXML2_</xsl:text>
@@ -66,6 +73,14 @@
<xsl:text>
</xsl:text>
</xsl:when>
+ <xsl:when test="@switch">
+ <xsl:text># </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>; requires switch </xsl:text>
+ <xsl:value-of select="@switch"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:when>
<xsl:otherwise>
<!-- make sure we can find that symbol exported from the API list -->
<xsl:variable name="def"
diff --git a/doc/xslt.html b/doc/xslt.html
index e1139cd4..cbefaa25 100644
--- a/doc/xslt.html
+++ b/doc/xslt.html
@@ -304,6 +304,111 @@ to get a description of the recent commits.</p>
<p>Those are the public releases made:</p>
+<h3>v1.1.31: Oct 06 2017</h3>
+<ul>
+ <li>Portability:<br/>
+ Fix win32/configure.js (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Fix pkg-config related regressions in configure script (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Adjust expected error output for libxml2 changes (Nick Wellnhofer),<br/>
+ Misc autoconf updates (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+<h3>v1.1.30: Sep 04 2017</h3>
+<ul>
+ <li>Documentation:<br/>
+ Misc doc fixes (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Look for libxml2 via pkg-config first (Elliott Sales de Andrade),<br/>
+ Change default SOPREFIX on Windows to "bin" (Nick Wellnhofer),<br/>
+ Add WIN32_EXTRA_LDFLAGS to tests/plugins/Makefile.am (Michael Haubenwallner)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Also fix memory hazards in exsltFuncResultElem (Nick Wellnhofer),<br/>
+ Fix NULL deref in xsltDefaultSortFunction (Nick Wellnhofer),<br/>
+ Fix memory hazards in exsltFuncFunctionFunction (Nick Wellnhofer),<br/>
+ Fix memory leaks in EXSLT error paths (Nick Wellnhofer),<br/>
+ Fix memory leak in str:concat with empty node-set (Nick Wellnhofer),<br/>
+ Fix memory leaks in error paths (Nick Wellnhofer),<br/>
+ Switch to xmlUTF8Strsize in numbers.c (Nick Wellnhofer),<br/>
+ Fix NULL pointer deref in xsltFormatNumberFunction (Nick Wellnhofer),<br/>
+ Fix UTF-8 check in str:padding (Nick Wellnhofer),<br/>
+ Fix xmlStrPrintf argument (Nick Wellnhofer),<br/>
+ Check for overflow in _exsltDateParseGYear (Nick Wellnhofer),<br/>
+ Fix double to int conversion (Nick Wellnhofer),<br/>
+ Check for overflow in exsltDateParseDuration (Nick Wellnhofer),<br/>
+ Change version of xsltMaxVars back to 1.0.24 (Nick Wellnhofer),<br/>
+ Disable xsltCopyTextString optimization for extensions (Nick Wellnhofer),<br/>
+ Create DOCTYPE for HTML version 5 (Nick Wellnhofer),<br/>
+ Make xsl:decimal-format work with namespaces (Nick Wellnhofer),<br/>
+ Remove norm:localTime extension function (Nick Wellnhofer),<br/>
+ Check for integer overflow in xsltAddTextString (Nick Wellnhofer),<br/>
+ Detect infinite recursion when evaluating function arguments (Nick Wellnhofer),<br/>
+ Fix memory leak in xsltElementAvailableFunction (Nick Wellnhofer),<br/>
+ Fix for pattern predicates calling functions (Nick Wellnhofer),<br/>
+ Fix cmd.exe invocations in Makefile.mingw (Nick Wellnhofer),<br/>
+ Don't try to install index.sgml (Nick Wellnhofer),<br/>
+ Fix symbols.xml (Nick Wellnhofer),<br/>
+ Fix heap overread in xsltFormatNumberConversion (Nick Wellnhofer),<br/>
+ Fix &lt;xsl:number level="any"/&gt; for non-element nodes (Nick Wellnhofer),<br/>
+ Fix unreachable code in xsltAddChild (mahendra.n),<br/>
+ Change version number in xsl:version warning (Nick Wellnhofer),<br/>
+ Avoid infinite recursion after failed param evaluation (Nick Wellnhofer),<br/>
+ Stop if potential recursion is detected (Nick Wellnhofer),<br/>
+ Consider built-in templates in apply-imports (Nick Wellnhofer),<br/>
+ Fix precedence with multiple attribute sets (Nick Wellnhofer),<br/>
+ Rework attribute set resolution (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Add .travis.yml (Nick Wellnhofer),<br/>
+ Silence tests a little (Nick Wellnhofer),<br/>
+ Set LIBXML_SRC to absolute path (Nick Wellnhofer),<br/>
+ Add missing #include (Nick Wellnhofer),<br/>
+ Adjust expected error messages in tests (Nick Wellnhofer),<br/>
+ Make xsltDebug more quiet (Nick Wellnhofer),<br/>
+ New-line terminate error message that missed this convention (Jan Pokorný),<br/>
+ Use xmlBuffers in EXSLT string functions (Nick Wellnhofer),<br/>
+ Switch to xmlUTF8Strsize in EXSLT string functions (Nick Wellnhofer),<br/>
+ Check for return value of xmlUTF8Strlen (Nick Wellnhofer),<br/>
+ Avoid double/long round trip in FORMAT_ITEM (Nick Wellnhofer),<br/>
+ Separate date and duration structs (Nick Wellnhofer),<br/>
+ Check for overflow in _exsltDateDifference (Nick Wellnhofer),<br/>
+ Clamp seconds field of durations (Nick Wellnhofer),<br/>
+ Change _exsltDateAddDurCalc parameter types (Nick Wellnhofer),<br/>
+ Fix date:difference with time zones (Nick Wellnhofer),<br/>
+ Rework division/remainder arithmetic in date.c (Nick Wellnhofer),<br/>
+ Remove exsltDateCastDateToNumber (Nick Wellnhofer),<br/>
+ Change internal representation of years (Nick Wellnhofer),<br/>
+ Optimize IS_LEAP (Nick Wellnhofer),<br/>
+ Link libraries with libm (Jussi Kukkonen),<br/>
+ Rename xsltCopyTreeInternal to xsltCopyTree (Nick Wellnhofer),<br/>
+ Update linker version script (Nick Wellnhofer),<br/>
+ Add local wildcard to version script (Nick Wellnhofer),<br/>
+ Make some symbols static (Nick Wellnhofer),<br/>
+ Remove redundant NULL check in xsltNumberComp (mahendra.n),<br/>
+ Fix forwards compatibility for imported stylesheets (Nick Wellnhofer),<br/>
+ Reduce warnings in forwards-compatible mode (Nick Wellnhofer),<br/>
+ Precompute XSLT elements after preprocessing (Nick Wellnhofer),<br/>
+ Fix whitespace in xsltParseStylesheetTop (Nick Wellnhofer),<br/>
+ Consolidate recursion checks (Nick Wellnhofer),<br/>
+ Treat XSLT_STATE_STOPPED same as errors (Nick Wellnhofer),<br/>
+ Make sure that XSLT_STATE_STOPPED isn't overwritten (Nick Wellnhofer),<br/>
+ Add comment regarding built-in templates and params (Nick Wellnhofer),<br/>
+ Rewrite memory management of local RVTs (Nick Wellnhofer),<br/>
+ Validate QNames of attribute sets (Nick Wellnhofer),<br/>
+ Add xsl:attribute-set regression tests (Nick Wellnhofer),<br/>
+ Ignore imported stylesheets in xsltApplyAttributeSet (Nick Wellnhofer)<br/>
+ </li>
+</ul>
<h3>1.1.29: May 24 2016</h3>
<ul>
<li>Security:<br/>
diff --git a/libexslt/Makefile.am b/libexslt/Makefile.am
index 1cf51381..54495243 100644
--- a/libexslt/Makefile.am
+++ b/libexslt/Makefile.am
@@ -27,7 +27,7 @@ libexslt_la_SOURCES = \
libexslt.h \
dynamic.c
-libexslt_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS) $(LIBGCRYPT_LIBS)
+libexslt_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS) $(LIBGCRYPT_LIBS) $(M_LIBS)
libexslt_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -version-info $(LIBEXSLT_VERSION_INFO)
man_MANS = libexslt.3
diff --git a/libexslt/Makefile.in b/libexslt/Makefile.in
index 57d4a6fe..81622631 100644
--- a/libexslt/Makefile.in
+++ b/libexslt/Makefile.in
@@ -91,7 +91,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = libexslt
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(exsltinc_HEADERS) \
@@ -132,7 +132,8 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libexslt_la_DEPENDENCIES = $(top_builddir)/libxslt/libxslt.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_libexslt_la_OBJECTS = exslt.lo common.lo crypto.lo math.lo sets.lo \
functions.lo strings.lo date.lo saxon.lo dynamic.lo
libexslt_la_OBJECTS = $(am_libexslt_la_OBJECTS)
@@ -283,7 +284,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -300,6 +300,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -309,12 +312,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -333,8 +334,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -415,7 +414,7 @@ libexslt_la_SOURCES = \
libexslt.h \
dynamic.c
-libexslt_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS) $(LIBGCRYPT_LIBS)
+libexslt_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS) $(LIBGCRYPT_LIBS) $(M_LIBS)
libexslt_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -version-info $(LIBEXSLT_VERSION_INFO)
man_MANS = libexslt.3
EXTRA_DIST = $(man_MANS)
@@ -432,9 +431,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libexslt/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libexslt/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu libexslt/Makefile
+ $(AUTOMAKE) --foreign libexslt/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/libexslt/common.c b/libexslt/common.c
index 451a60d8..ff3ab755 100644
--- a/libexslt/common.c
+++ b/libexslt/common.c
@@ -1,7 +1,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
@@ -60,12 +60,6 @@ exsltNodeSetFunction (xmlXPathParserContextPtr ctxt, int nargs) {
xsltTransformError(tctxt, NULL, tctxt->inst,
"exsltNodeSetFunction: Failed to create a node set object.\n");
tctxt->state = XSLT_STATE_STOPPED;
- } else {
- /*
- * Mark it as a function result in order to avoid garbage
- * collecting of tree fragments
- */
- xsltExtensionInstructionResultRegister(tctxt, obj);
}
if (strval != NULL)
xmlFree (strval);
diff --git a/libexslt/crypto.c b/libexslt/crypto.c
index e13db8b1..ac390387 100644
--- a/libexslt/crypto.c
+++ b/libexslt/crypto.c
@@ -1,7 +1,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
@@ -109,7 +109,7 @@ exsltCryptoHex2Bin (const unsigned char *hex, int hexlen,
return j;
}
-#if defined(WIN32)
+#if defined(_WIN32) && !defined(__CYGWIN__)
#define HAVE_CRYPTO
#define PLATFORM_HASH exsltCryptoCryptoApiHash
@@ -121,12 +121,14 @@ exsltCryptoHex2Bin (const unsigned char *hex, int hexlen,
#include <windows.h>
#include <wincrypt.h>
+#ifdef _MSC_VER
#pragma comment(lib, "advapi32.lib")
+#endif
static void
exsltCryptoCryptoApiReportError (xmlXPathParserContextPtr ctxt,
int line) {
- LPVOID lpMsgBuf;
+ char *lpMsgBuf;
DWORD dw = GetLastError ();
FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER |
@@ -143,7 +145,7 @@ exsltCryptoCryptoApiReportError (xmlXPathParserContextPtr ctxt,
static HCRYPTHASH
exsltCryptoCryptoApiCreateHash (xmlXPathParserContextPtr ctxt,
HCRYPTPROV hCryptProv, ALG_ID algorithm,
- const char *msg, unsigned int msglen,
+ const unsigned char *msg, unsigned int msglen,
char *dest, unsigned int destlen)
{
HCRYPTHASH hHash = 0;
@@ -154,12 +156,12 @@ exsltCryptoCryptoApiCreateHash (xmlXPathParserContextPtr ctxt,
return 0;
}
- if (!CryptHashData (hHash, (const BYTE *) msg, msglen, 0)) {
+ if (!CryptHashData (hHash, msg, msglen, 0)) {
exsltCryptoCryptoApiReportError (ctxt, __LINE__);
goto fail;
}
- if (!CryptGetHashParam (hHash, HP_HASHVAL, dest, &dwHashLen, 0)) {
+ if (!CryptGetHashParam (hHash, HP_HASHVAL, (BYTE *) dest, &dwHashLen, 0)) {
exsltCryptoCryptoApiReportError (ctxt, __LINE__);
goto fail;
}
@@ -194,8 +196,8 @@ exsltCryptoCryptoApiHash (xmlXPathParserContextPtr ctxt,
}
hHash = exsltCryptoCryptoApiCreateHash (ctxt, hCryptProv,
- algorithm, msg, msglen,
- dest, HASH_DIGEST_LENGTH);
+ algorithm, (unsigned char *) msg,
+ msglen, dest, HASH_DIGEST_LENGTH);
if (0 != hHash) {
CryptDestroyHash (hHash);
}
@@ -212,7 +214,7 @@ exsltCryptoCryptoApiRc4Encrypt (xmlXPathParserContextPtr ctxt,
HCRYPTKEY hKey;
HCRYPTHASH hHash;
DWORD dwDataLen;
- unsigned char hash[HASH_DIGEST_LENGTH];
+ char hash[HASH_DIGEST_LENGTH];
if (msglen > destlen) {
xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
@@ -263,7 +265,7 @@ exsltCryptoCryptoApiRc4Decrypt (xmlXPathParserContextPtr ctxt,
HCRYPTKEY hKey;
HCRYPTHASH hHash;
DWORD dwDataLen;
- unsigned char hash[HASH_DIGEST_LENGTH];
+ char hash[HASH_DIGEST_LENGTH];
if (msglen > destlen) {
xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
@@ -305,7 +307,7 @@ exsltCryptoCryptoApiRc4Decrypt (xmlXPathParserContextPtr ctxt,
CryptReleaseContext (hCryptProv, 0);
}
-#endif /* defined(WIN32) */
+#endif /* defined(_WIN32) */
#if defined(HAVE_GCRYPT)
diff --git a/libexslt/date.c b/libexslt/date.c
index 3af6f7fd..4b74677f 100644
--- a/libexslt/date.c
+++ b/libexslt/date.c
@@ -22,7 +22,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
@@ -79,14 +79,14 @@ typedef enum {
XS_GYEAR = (XS_GMONTH << 1),
XS_GYEARMONTH = (XS_GYEAR | XS_GMONTH),
XS_DATE = (XS_GYEAR | XS_GMONTH | XS_GDAY),
- XS_DATETIME = (XS_DATE | XS_TIME),
- XS_DURATION = (XS_GYEAR << 1)
+ XS_DATETIME = (XS_DATE | XS_TIME)
} exsltDateType;
/* Date value */
-typedef struct _exsltDateValDate exsltDateValDate;
-typedef exsltDateValDate *exsltDateValDatePtr;
-struct _exsltDateValDate {
+typedef struct _exsltDateVal exsltDateVal;
+typedef exsltDateVal *exsltDateValPtr;
+struct _exsltDateVal {
+ exsltDateType type;
long year;
unsigned int mon :4; /* 1 <= mon <= 12 */
unsigned int day :5; /* 1 <= day <= 31 */
@@ -98,22 +98,13 @@ struct _exsltDateValDate {
};
/* Duration value */
-typedef struct _exsltDateValDuration exsltDateValDuration;
-typedef exsltDateValDuration *exsltDateValDurationPtr;
-struct _exsltDateValDuration {
- long mon; /* mon stores years also */
+typedef struct _exsltDateDurVal exsltDateDurVal;
+typedef exsltDateDurVal *exsltDateDurValPtr;
+struct _exsltDateDurVal {
+ long mon; /* mon stores years also */
long day;
- double sec; /* sec stores min and hour also */
-};
-
-typedef struct _exsltDateVal exsltDateVal;
-typedef exsltDateVal *exsltDateValPtr;
-struct _exsltDateVal {
- exsltDateType type;
- union {
- exsltDateValDate date;
- exsltDateValDuration dur;
- } value;
+ double sec; /* sec stores min and hour also
+ 0 <= sec < SECS_PER_DAY */
};
/****************************************************************
@@ -139,7 +130,6 @@ struct _exsltDateVal {
((c == 0) || (c == 'Z') || (c == '+') || (c == '-'))
#define VALID_ALWAYS(num) (num >= 0)
-#define VALID_YEAR(yr) (yr != 0)
#define VALID_MONTH(mon) ((mon >= 1) && (mon <= 12))
/* VALID_DAY should only be used when month is unknown */
#define VALID_DAY(day) ((day >= 1) && (day <= 31))
@@ -148,7 +138,7 @@ struct _exsltDateVal {
#define VALID_SEC(sec) ((sec >= 0) && (sec < 60))
#define VALID_TZO(tzo) ((tzo > -1440) && (tzo < 1440))
#define IS_LEAP(y) \
- (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
+ (((y & 3) == 0) && ((y % 25 != 0) || ((y & 15) == 0)))
static const unsigned long daysInMonth[12] =
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
@@ -164,7 +154,7 @@ static const unsigned long daysInMonthLeap[12] =
(dt->day <= daysInMonth[dt->mon - 1]))
#define VALID_DATE(dt) \
- (VALID_YEAR(dt->year) && VALID_MONTH(dt->mon) && VALID_MDAY(dt))
+ (VALID_MONTH(dt->mon) && VALID_MDAY(dt))
/*
hour and min structure vals are unsigned, so normal macros give
@@ -177,9 +167,14 @@ static const unsigned long daysInMonthLeap[12] =
#define VALID_DATETIME(dt) \
(VALID_DATE(dt) && VALID_TIME(dt))
-#define SECS_PER_MIN (60)
-#define SECS_PER_HOUR (60 * SECS_PER_MIN)
-#define SECS_PER_DAY (24 * SECS_PER_HOUR)
+#define SECS_PER_MIN 60
+#define MINS_PER_HOUR 60
+#define HOURS_PER_DAY 24
+#define SECS_PER_HOUR (MINS_PER_HOUR * SECS_PER_MIN)
+#define SECS_PER_DAY (HOURS_PER_DAY * SECS_PER_HOUR)
+#define MINS_PER_DAY (HOURS_PER_DAY * MINS_PER_HOUR)
+#define DAYS_PER_EPOCH (400 * 365 + 100 - 4 + 1)
+#define YEARS_PER_EPOCH 400
static const unsigned long dayInYearByMonth[12] =
{ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
@@ -201,10 +196,14 @@ static const unsigned long dayInLeapYearByMonth[12] =
* xs:gYear. It is supposed that @dt->year is big enough to contain
* the year.
*
+ * According to XML Schema Part 2, the year "0000" is an illegal year value
+ * which probably means that the year preceding AD 1 is BC 1. Internally,
+ * we allow a year 0 and adjust the value when parsing and formatting.
+ *
* Returns 0 or the error code
*/
static int
-_exsltDateParseGYear (exsltDateValDatePtr dt, const xmlChar **str)
+_exsltDateParseGYear (exsltDateValPtr dt, const xmlChar **str)
{
const xmlChar *cur = *str, *firstChar;
int isneg = 0, digcnt = 0;
@@ -221,6 +220,8 @@ _exsltDateParseGYear (exsltDateValDatePtr dt, const xmlChar **str)
firstChar = cur;
while ((*cur >= '0') && (*cur <= '9')) {
+ if (dt->year >= LONG_MAX / 10)
+ return -1;
dt->year = dt->year * 10 + (*cur - '0');
cur++;
digcnt++;
@@ -231,17 +232,18 @@ _exsltDateParseGYear (exsltDateValDatePtr dt, const xmlChar **str)
if ((digcnt < 4) || ((digcnt > 4) && (*firstChar == '0')))
return 1;
- if (isneg)
- dt->year = - dt->year;
-
- if (!VALID_YEAR(dt->year))
+ if (dt->year == 0)
return 2;
+ /* The internal representation of negative years is continuous. */
+ if (isneg)
+ dt->year = -dt->year + 1;
+
*str = cur;
#ifdef DEBUG_EXSLT_DATE
xsltGenericDebug(xsltGenericDebugContext,
- "Parsed year %04i\n", dt->year);
+ "Parsed year %04ld\n", dt->year);
#endif
return 0;
@@ -256,12 +258,12 @@ _exsltDateParseGYear (exsltDateValDatePtr dt, const xmlChar **str)
* @cur is updated to point after the xsl:gYear.
*/
#define FORMAT_GYEAR(yr, cur) \
- if (yr < 0) { \
+ if (yr <= 0) { \
*cur = '-'; \
cur++; \
} \
{ \
- long year = (yr < 0) ? - yr : yr; \
+ long year = (yr <= 0) ? -yr + 1 : yr; \
xmlChar tmp_buf[100], *tmp = tmp_buf; \
/* result is in reverse-order */ \
while (year > 0) { \
@@ -381,7 +383,7 @@ _exsltDateParseGYear (exsltDateValDatePtr dt, const xmlChar **str)
* Returns 0 or the error code
*/
static int
-_exsltDateParseGMonth (exsltDateValDatePtr dt, const xmlChar **str)
+_exsltDateParseGMonth (exsltDateValPtr dt, const xmlChar **str)
{
const xmlChar *cur = *str;
int ret = 0;
@@ -423,7 +425,7 @@ _exsltDateParseGMonth (exsltDateValDatePtr dt, const xmlChar **str)
* Returns 0 or the error code
*/
static int
-_exsltDateParseGDay (exsltDateValDatePtr dt, const xmlChar **str)
+_exsltDateParseGDay (exsltDateValPtr dt, const xmlChar **str)
{
const xmlChar *cur = *str;
int ret = 0;
@@ -444,7 +446,7 @@ _exsltDateParseGDay (exsltDateValDatePtr dt, const xmlChar **str)
/**
* FORMAT_GDAY:
- * @dt: the #exsltDateValDate to format
+ * @dt: the #exsltDateVal to format
* @cur: a pointer to an allocated buffer
*
* Formats @dt in xsl:gDay format. Result is appended to @cur and
@@ -455,7 +457,7 @@ _exsltDateParseGDay (exsltDateValDatePtr dt, const xmlChar **str)
/**
* FORMAT_DATE:
- * @dt: the #exsltDateValDate to format
+ * @dt: the #exsltDateVal to format
* @cur: a pointer to an allocated buffer
*
* Formats @dt in xsl:date format. Result is appended to @cur and
@@ -483,7 +485,7 @@ _exsltDateParseGDay (exsltDateValDatePtr dt, const xmlChar **str)
* Returns 0 or the error code
*/
static int
-_exsltDateParseTime (exsltDateValDatePtr dt, const xmlChar **str)
+_exsltDateParseTime (exsltDateValPtr dt, const xmlChar **str)
{
const xmlChar *cur = *str;
unsigned int hour = 0; /* use temp var in case str is not xs:time */
@@ -528,7 +530,7 @@ _exsltDateParseTime (exsltDateValDatePtr dt, const xmlChar **str)
/**
* FORMAT_TIME:
- * @dt: the #exsltDateValDate to format
+ * @dt: the #exsltDateVal to format
* @cur: a pointer to an allocated buffer
*
* Formats @dt in xsl:time format. Result is appended to @cur and
@@ -555,7 +557,7 @@ _exsltDateParseTime (exsltDateValDatePtr dt, const xmlChar **str)
* Returns 0 or the error code
*/
static int
-_exsltDateParseTimeZone (exsltDateValDatePtr dt, const xmlChar **str)
+_exsltDateParseTimeZone (exsltDateValPtr dt, const xmlChar **str)
{
const xmlChar *cur;
int ret = 0;
@@ -670,10 +672,8 @@ exsltDateCreateDate (exsltDateType type)
}
memset (ret, 0, sizeof(exsltDateVal));
- if (type != XS_DURATION) {
- ret->value.date.mon = 1;
- ret->value.date.day = 1;
- }
+ ret->mon = 1;
+ ret->day = 1;
if (type != EXSLT_UNKNOWN)
ret->type = type;
@@ -696,54 +696,41 @@ exsltDateFreeDate (exsltDateValPtr date) {
}
/**
- * PARSE_DIGITS:
- * @num: the integer to fill in
- * @cur: an #xmlChar *
- * @num_type: an integer flag
+ * exsltDateCreateDuration:
*
- * Parses a digits integer and updates @num with the value. @cur is
- * updated to point just after the integer.
- * In case of error, @num_type is set to -1, values of @num and
- * @cur are undefined.
+ * Creates a new #exsltDateDurVal, uninitialized.
+ *
+ * Returns the #exsltDateDurValPtr
*/
-#define PARSE_DIGITS(num, cur, num_type) \
- if ((*cur < '0') || (*cur > '9')) \
- num_type = -1; \
- else \
- while ((*cur >= '0') && (*cur <= '9')) { \
- num = num * 10 + (*cur - '0'); \
- cur++; \
- }
+static exsltDateDurValPtr
+exsltDateCreateDuration (void)
+{
+ exsltDateDurValPtr ret;
+
+ ret = (exsltDateDurValPtr) xmlMalloc(sizeof(exsltDateDurVal));
+ if (ret == NULL) {
+ xsltGenericError(xsltGenericErrorContext,
+ "exsltDateCreateDuration: out of memory\n");
+ return (NULL);
+ }
+ memset (ret, 0, sizeof(exsltDateDurVal));
+
+ return ret;
+}
/**
- * PARSE_NUM:
- * @num: the double to fill in
- * @cur: an #xmlChar *
- * @num_type: an integer flag
+ * exsltDateFreeDuration:
+ * @date: an #exsltDateDurValPtr
*
- * Parses a float or integer and updates @num with the value. @cur is
- * updated to point just after the number. If the number is a float,
- * then it must have an integer part and a decimal part; @num_type will
- * be set to 1. If there is no decimal part, @num_type is set to zero.
- * In case of error, @num_type is set to -1, values of @num and
- * @cur are undefined.
+ * Frees up the @duration
*/
-#define PARSE_NUM(num, cur, num_type) \
- num = 0; \
- PARSE_DIGITS(num, cur, num_type); \
- if (!num_type && (*cur == '.')) { \
- double mult = 1; \
- cur++; \
- if ((*cur < '0') || (*cur > '9')) \
- num_type = -1; \
- else \
- num_type = 1; \
- while ((*cur >= '0') && (*cur <= '9')) { \
- mult /= 10; \
- num += (*cur - '0') * mult; \
- cur++; \
- } \
- }
+static void
+exsltDateFreeDuration (exsltDateDurValPtr duration) {
+ if (duration == NULL)
+ return;
+
+ xmlFree(duration);
+}
#ifdef WITH_TIME
/**
@@ -806,31 +793,32 @@ exsltDateCurrent (void)
}
/* get real year, not years since 1900 */
- ret->value.date.year = localTm.tm_year + 1900;
+ ret->year = localTm.tm_year + 1900;
- ret->value.date.mon = localTm.tm_mon + 1;
- ret->value.date.day = localTm.tm_mday;
- ret->value.date.hour = localTm.tm_hour;
- ret->value.date.min = localTm.tm_min;
+ ret->mon = localTm.tm_mon + 1;
+ ret->day = localTm.tm_mday;
+ ret->hour = localTm.tm_hour;
+ ret->min = localTm.tm_min;
/* floating point seconds */
- ret->value.date.sec = (double) localTm.tm_sec;
+ ret->sec = (double) localTm.tm_sec;
/* determine the time zone offset from local to gm time */
#if HAVE_GMTIME_R
gmtime_r(&secs, &gmTm);
#else
tb = gmtime(&secs);
- if (tb != NULL)
- gmTm = *tb;
+ if (tb == NULL)
+ return NULL;
+ gmTm = *tb;
#endif
- ret->value.date.tz_flag = 0;
+ ret->tz_flag = 0;
#if 0
- ret->value.date.tzo = (((ret->value.date.day * 1440) +
- (ret->value.date.hour * 60) +
- ret->value.date.min) -
- ((gmTm.tm_mday * 1440) + (gmTm.tm_hour * 60) +
- gmTm.tm_min));
+ ret->tzo = (((ret->day * 1440) +
+ (ret->hour * 60) +
+ ret->min) -
+ ((gmTm.tm_mday * 1440) + (gmTm.tm_hour * 60) +
+ gmTm.tm_min));
#endif
local_s = localTm.tm_hour * SECS_PER_HOUR +
localTm.tm_min * SECS_PER_MIN +
@@ -841,19 +829,19 @@ exsltDateCurrent (void)
gmTm.tm_sec;
if (localTm.tm_year < gmTm.tm_year) {
- ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60;
+ ret->tzo = -((SECS_PER_DAY - local_s) + gm_s)/60;
} else if (localTm.tm_year > gmTm.tm_year) {
- ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60;
+ ret->tzo = ((SECS_PER_DAY - gm_s) + local_s)/60;
} else if (localTm.tm_mon < gmTm.tm_mon) {
- ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60;
+ ret->tzo = -((SECS_PER_DAY - local_s) + gm_s)/60;
} else if (localTm.tm_mon > gmTm.tm_mon) {
- ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60;
+ ret->tzo = ((SECS_PER_DAY - gm_s) + local_s)/60;
} else if (localTm.tm_mday < gmTm.tm_mday) {
- ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60;
+ ret->tzo = -((SECS_PER_DAY - local_s) + gm_s)/60;
} else if (localTm.tm_mday > gmTm.tm_mday) {
- ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60;
+ ret->tzo = ((SECS_PER_DAY - gm_s) + local_s)/60;
} else {
- ret->value.date.tzo = (local_s - gm_s)/60;
+ ret->tzo = (local_s - gm_s)/60;
}
return ret;
@@ -877,7 +865,7 @@ exsltDateParse (const xmlChar *dateTime)
#define RETURN_TYPE_IF_VALID(t) \
if (IS_TZO_CHAR(*cur)) { \
- ret = _exsltDateParseTimeZone(&(dt->value.date), &cur); \
+ ret = _exsltDateParseTimeZone(dt, &cur); \
if (ret == 0) { \
if (*cur != 0) \
goto error; \
@@ -906,7 +894,7 @@ exsltDateParse (const xmlChar *dateTime)
/* is it an xs:gDay? */
if (*cur == '-') {
++cur;
- ret = _exsltDateParseGDay(&(dt->value.date), &cur);
+ ret = _exsltDateParseGDay(dt, &cur);
if (ret != 0)
goto error;
@@ -918,7 +906,7 @@ exsltDateParse (const xmlChar *dateTime)
/*
* it should be an xs:gMonthDay or xs:gMonth
*/
- ret = _exsltDateParseGMonth(&(dt->value.date), &cur);
+ ret = _exsltDateParseGMonth(dt, &cur);
if (ret != 0)
goto error;
@@ -934,7 +922,7 @@ exsltDateParse (const xmlChar *dateTime)
}
/* it should be an xs:gMonthDay */
- ret = _exsltDateParseGDay(&(dt->value.date), &cur);
+ ret = _exsltDateParseGDay(dt, &cur);
if (ret != 0)
goto error;
@@ -948,7 +936,7 @@ exsltDateParse (const xmlChar *dateTime)
* Try to parse an xs:time then fallback on right-truncated dates.
*/
if ((*cur >= '0') && (*cur <= '9')) {
- ret = _exsltDateParseTime(&(dt->value.date), &cur);
+ ret = _exsltDateParseTime(dt, &cur);
if (ret == 0) {
/* it's an xs:time */
RETURN_TYPE_IF_VALID(XS_TIME);
@@ -958,7 +946,7 @@ exsltDateParse (const xmlChar *dateTime)
/* fallback on date parsing */
cur = dateTime;
- ret = _exsltDateParseGYear(&(dt->value.date), &cur);
+ ret = _exsltDateParseGYear(dt, &cur);
if (ret != 0)
goto error;
@@ -969,7 +957,7 @@ exsltDateParse (const xmlChar *dateTime)
goto error;
cur++;
- ret = _exsltDateParseGMonth(&(dt->value.date), &cur);
+ ret = _exsltDateParseGMonth(dt, &cur);
if (ret != 0)
goto error;
@@ -980,8 +968,8 @@ exsltDateParse (const xmlChar *dateTime)
goto error;
cur++;
- ret = _exsltDateParseGDay(&(dt->value.date), &cur);
- if ((ret != 0) || !VALID_DATE((&(dt->value.date))))
+ ret = _exsltDateParseGDay(dt, &cur);
+ if ((ret != 0) || !VALID_DATE(dt))
goto error;
/* is it an xs:date? */
@@ -992,12 +980,12 @@ exsltDateParse (const xmlChar *dateTime)
cur++;
/* it should be an xs:dateTime */
- ret = _exsltDateParseTime(&(dt->value.date), &cur);
+ ret = _exsltDateParseTime(dt, &cur);
if (ret != 0)
goto error;
- ret = _exsltDateParseTimeZone(&(dt->value.date), &cur);
- if ((ret != 0) || (*cur != 0) || !VALID_DATETIME((&(dt->value.date))))
+ ret = _exsltDateParseTimeZone(dt, &cur);
+ if ((ret != 0) || (*cur != 0) || !VALID_DATETIME(dt))
goto error;
dt->type = XS_DATETIME;
@@ -1016,15 +1004,17 @@ error:
*
* Parses a duration string
*
- * Returns a newly built #exsltDateValPtr of NULL in case of error
+ * Returns a newly built #exsltDateDurValPtr of NULL in case of error
*/
-static exsltDateValPtr
+static exsltDateDurValPtr
exsltDateParseDuration (const xmlChar *duration)
{
const xmlChar *cur = duration;
- exsltDateValPtr dur;
+ exsltDateDurValPtr dur;
int isneg = 0;
unsigned int seq = 0;
+ long days, secs = 0;
+ double sec_frac = 0.0;
if (duration == NULL)
return NULL;
@@ -1038,15 +1028,15 @@ exsltDateParseDuration (const xmlChar *duration)
if (*cur++ != 'P')
return NULL;
- dur = exsltDateCreateDate(XS_DURATION);
+ dur = exsltDateCreateDuration();
if (dur == NULL)
return NULL;
while (*cur != 0) {
- double num;
- int num_type = 0; /* -1 = invalid, 0 = int, 1 = floating */
+ long num = 0;
+ size_t has_digits = 0;
+ int has_frac = 0;
const xmlChar desig[] = {'Y', 'M', 'D', 'H', 'M', 'S'};
- const double multi[] = { 0.0, 0.0, 86400.0, 3600.0, 60.0, 1.0, 0.0};
/* input string should be empty or invalid date/time item */
if (seq >= sizeof(desig))
@@ -1054,67 +1044,123 @@ exsltDateParseDuration (const xmlChar *duration)
/* T designator must be present for time items */
if (*cur == 'T') {
- if (seq <= 3) {
- seq = 3;
- cur++;
- } else
- return NULL;
+ if (seq > 3)
+ goto error;
+ cur++;
+ seq = 3;
} else if (seq == 3)
goto error;
- /* parse the number portion of the item */
- PARSE_NUM(num, cur, num_type);
+ /* Parse integral part. */
+ while (*cur >= '0' && *cur <= '9') {
+ long digit = *cur - '0';
- if ((num_type == -1) || (*cur == 0))
- goto error;
-
- /* update duration based on item type */
- while (seq < sizeof(desig)) {
- if (*cur == desig[seq]) {
-
- /* verify numeric type; only seconds can be float */
- if ((num_type != 0) && (seq < (sizeof(desig)-1)))
- goto error;
+ if (num > LONG_MAX / 10)
+ goto error;
+ num *= 10;
+ if (num > LONG_MAX - digit)
+ goto error;
+ num += digit;
- switch (seq) {
- case 0:
- dur->value.dur.mon = (long)num * 12;
- break;
- case 1:
- dur->value.dur.mon += (long)num;
- break;
- default:
- /* convert to seconds using multiplier */
- dur->value.dur.sec += num * multi[seq];
- seq++;
- break;
- }
+ has_digits = 1;
+ cur++;
+ }
- break; /* exit loop */
+ if (*cur == '.') {
+ /* Parse fractional part. */
+ double mult = 1.0;
+ cur++;
+ has_frac = 1;
+ while (*cur >= '0' && *cur <= '9') {
+ mult /= 10.0;
+ sec_frac += (*cur - '0') * mult;
+ has_digits = 1;
+ cur++;
}
- /* no date designators found? */
- if (++seq == 3)
+ }
+
+ while (*cur != desig[seq]) {
+ seq++;
+ /* No T designator or invalid char. */
+ if (seq == 3 || seq == sizeof(desig))
goto error;
}
cur++;
+
+ if (!has_digits || (has_frac && (seq != 5)))
+ goto error;
+
+ switch (seq) {
+ case 0:
+ /* Year */
+ if (num > LONG_MAX / 12)
+ goto error;
+ dur->mon = num * 12;
+ break;
+ case 1:
+ /* Month */
+ if (dur->mon > LONG_MAX - num)
+ goto error;
+ dur->mon += num;
+ break;
+ case 2:
+ /* Day */
+ dur->day = num;
+ break;
+ case 3:
+ /* Hour */
+ days = num / HOURS_PER_DAY;
+ if (dur->day > LONG_MAX - days)
+ goto error;
+ dur->day += days;
+ secs = (num % HOURS_PER_DAY) * SECS_PER_HOUR;
+ break;
+ case 4:
+ /* Minute */
+ days = num / MINS_PER_DAY;
+ if (dur->day > LONG_MAX - days)
+ goto error;
+ dur->day += days;
+ secs += (num % MINS_PER_DAY) * SECS_PER_MIN;
+ break;
+ case 5:
+ /* Second */
+ days = num / SECS_PER_DAY;
+ if (dur->day > LONG_MAX - days)
+ goto error;
+ dur->day += days;
+ secs += num % SECS_PER_DAY;
+ break;
+ }
+
+ seq++;
}
+ days = secs / SECS_PER_DAY;
+ if (dur->day > LONG_MAX - days)
+ goto error;
+ dur->day += days;
+ dur->sec = (secs % SECS_PER_DAY) + sec_frac;
+
if (isneg) {
- dur->value.dur.mon = -dur->value.dur.mon;
- dur->value.dur.day = -dur->value.dur.day;
- dur->value.dur.sec = -dur->value.dur.sec;
+ dur->mon = -dur->mon;
+ dur->day = -dur->day;
+ if (dur->sec != 0.0) {
+ dur->sec = SECS_PER_DAY - dur->sec;
+ dur->day -= 1;
+ }
}
#ifdef DEBUG_EXSLT_DATE
xsltGenericDebug(xsltGenericDebugContext,
- "Parsed duration %f\n", dur->value.dur.sec);
+ "Parsed duration %f\n", dur->sec);
#endif
return dur;
error:
if (dur != NULL)
- exsltDateFreeDate(dur);
+ exsltDateFreeDuration(dur);
return NULL;
}
@@ -1126,49 +1172,47 @@ error:
* @item: char designator
*
*/
-#define FORMAT_ITEM(num, cur, limit, item) \
- if (num != 0) { \
- long comp = (long)num / limit; \
- if (comp != 0) { \
- FORMAT_FLOAT((double)comp, cur, 0); \
- *cur++ = item; \
- num -= (double)(comp * limit); \
- } \
+#define FORMAT_ITEM(num, cur, limit, item) \
+ if (num >= limit) { \
+ double comp = floor(num / limit); \
+ FORMAT_FLOAT(comp, cur, 0); \
+ *cur++ = item; \
+ num -= comp * limit; \
}
/**
* exsltDateFormatDuration:
- * @dt: an #exsltDateValDurationPtr
+ * @dur: an #exsltDateDurValPtr
*
- * Formats @dt in xs:duration format.
+ * Formats the duration.
*
* Returns a newly allocated string, or NULL in case of error
*/
static xmlChar *
-exsltDateFormatDuration (const exsltDateValDurationPtr dt)
+exsltDateFormatDuration (const exsltDateDurValPtr dur)
{
xmlChar buf[100], *cur = buf;
double secs, days;
double years, months;
- if (dt == NULL)
+ if (dur == NULL)
return NULL;
/* quick and dirty check */
- if ((dt->sec == 0.0) && (dt->day == 0) && (dt->mon == 0))
+ if ((dur->sec == 0.0) && (dur->day == 0) && (dur->mon == 0))
return xmlStrdup((xmlChar*)"P0D");
- secs = dt->sec;
- days = (double)dt->day;
- years = (double)(dt->mon / 12);
- months = (double)(dt->mon % 12);
+ secs = dur->sec;
+ days = (double)dur->day;
+ years = (double)(dur->mon / 12);
+ months = (double)(dur->mon % 12);
*cur = '\0';
- if (secs < 0.0) {
- secs = -secs;
- *cur = '-';
- }
if (days < 0) {
+ if (secs != 0.0) {
+ secs = SECS_PER_DAY - secs;
+ days += 1;
+ }
days = -days;
*cur = '-';
}
@@ -1193,12 +1237,6 @@ exsltDateFormatDuration (const exsltDateValDurationPtr dt)
FORMAT_ITEM(months, cur, 1, 'M');
}
- if (secs >= SECS_PER_DAY) {
- double tmp = floor(secs / SECS_PER_DAY);
- days += tmp;
- secs -= (tmp * SECS_PER_DAY);
- }
-
FORMAT_ITEM(days, cur, 1, 'D');
if (secs > 0.0) {
*cur++ = 'T';
@@ -1217,14 +1255,14 @@ exsltDateFormatDuration (const exsltDateValDurationPtr dt)
/**
* exsltDateFormatDateTime:
- * @dt: an #exsltDateValDatePtr
+ * @dt: an #exsltDateValPtr
*
* Formats @dt in xs:dateTime format.
*
* Returns a newly allocated string, or NULL in case of error
*/
static xmlChar *
-exsltDateFormatDateTime (const exsltDateValDatePtr dt)
+exsltDateFormatDateTime (const exsltDateValPtr dt)
{
xmlChar buf[100], *cur = buf;
@@ -1243,14 +1281,14 @@ exsltDateFormatDateTime (const exsltDateValDatePtr dt)
/**
* exsltDateFormatDate:
- * @dt: an #exsltDateValDatePtr
+ * @dt: an #exsltDateValPtr
*
* Formats @dt in xs:date format.
*
* Returns a newly allocated string, or NULL in case of error
*/
static xmlChar *
-exsltDateFormatDate (const exsltDateValDatePtr dt)
+exsltDateFormatDate (const exsltDateValPtr dt)
{
xmlChar buf[100], *cur = buf;
@@ -1268,14 +1306,14 @@ exsltDateFormatDate (const exsltDateValDatePtr dt)
/**
* exsltDateFormatTime:
- * @dt: an #exsltDateValDatePtr
+ * @dt: an #exsltDateValPtr
*
* Formats @dt in xs:time format.
*
* Returns a newly allocated string, or NULL in case of error
*/
static xmlChar *
-exsltDateFormatTime (const exsltDateValDatePtr dt)
+exsltDateFormatTime (const exsltDateValPtr dt)
{
xmlChar buf[100], *cur = buf;
@@ -1309,14 +1347,12 @@ exsltDateFormat (const exsltDateValPtr dt)
return NULL;
switch (dt->type) {
- case XS_DURATION:
- return exsltDateFormatDuration(&(dt->value.dur));
case XS_DATETIME:
- return exsltDateFormatDateTime(&(dt->value.date));
+ return exsltDateFormatDateTime(dt);
case XS_DATE:
- return exsltDateFormatDate(&(dt->value.date));
+ return exsltDateFormatDate(dt);
case XS_TIME:
- return exsltDateFormatTime(&(dt->value.date));
+ return exsltDateFormatTime(dt);
default:
break;
}
@@ -1324,15 +1360,15 @@ exsltDateFormat (const exsltDateValPtr dt)
if (dt->type & XS_GYEAR) {
xmlChar buf[100], *cur = buf;
- FORMAT_GYEAR(dt->value.date.year, cur);
+ FORMAT_GYEAR(dt->year, cur);
if (dt->type == XS_GYEARMONTH) {
*cur = '-';
cur++;
- FORMAT_GMONTH(dt->value.date.mon, cur);
+ FORMAT_GMONTH(dt->mon, cur);
}
- if (dt->value.date.tz_flag || (dt->value.date.tzo != 0)) {
- FORMAT_TZ(dt->value.date.tzo, cur);
+ if (dt->tz_flag || (dt->tzo != 0)) {
+ FORMAT_TZ(dt->tzo, cur);
}
*cur = 0;
return xmlStrdup(buf);
@@ -1348,7 +1384,7 @@ exsltDateFormat (const exsltDateValPtr dt)
* Convert mon and year of @dt to total number of days. Take the
* number of years since (or before) 1 AD and add the number of leap
* years. This is a function because negative
- * years must be handled a little differently and there is no zero year.
+ * years must be handled a little differently.
*
* Returns number of days.
*/
@@ -1357,16 +1393,16 @@ _exsltDateCastYMToDays (const exsltDateValPtr dt)
{
long ret;
- if (dt->value.date.year < 0)
- ret = (dt->value.date.year * 365) +
- (((dt->value.date.year+1)/4)-((dt->value.date.year+1)/100)+
- ((dt->value.date.year+1)/400)) +
- DAY_IN_YEAR(0, dt->value.date.mon, dt->value.date.year);
+ if (dt->year <= 0)
+ ret = ((dt->year-1) * 365) +
+ (((dt->year)/4)-((dt->year)/100)+
+ ((dt->year)/400)) +
+ DAY_IN_YEAR(0, dt->mon, dt->year) - 1;
else
- ret = ((dt->value.date.year-1) * 365) +
- (((dt->value.date.year-1)/4)-((dt->value.date.year-1)/100)+
- ((dt->value.date.year-1)/400)) +
- DAY_IN_YEAR(0, dt->value.date.mon, dt->value.date.year);
+ ret = ((dt->year-1) * 365) +
+ (((dt->year-1)/4)-((dt->year-1)/100)+
+ ((dt->year-1)/400)) +
+ DAY_IN_YEAR(0, dt->mon, dt->year);
return ret;
}
@@ -1380,42 +1416,8 @@ _exsltDateCastYMToDays (const exsltDateValPtr dt)
* Returns seconds.
*/
#define TIME_TO_NUMBER(dt) \
- ((double)((dt->value.date.hour * SECS_PER_HOUR) + \
- (dt->value.date.min * SECS_PER_MIN)) + dt->value.date.sec)
-
-/**
- * exsltDateCastDateToNumber:
- * @dt: an #exsltDateValPtr
- *
- * Calculates the number of seconds from year zero.
- *
- * Returns seconds from zero year.
- */
-static double
-exsltDateCastDateToNumber (const exsltDateValPtr dt)
-{
- double ret = 0.0;
-
- if (dt == NULL)
- return 0.0;
-
- if ((dt->type & XS_GYEAR) == XS_GYEAR) {
- ret = (double)_exsltDateCastYMToDays(dt) * SECS_PER_DAY;
- }
-
- /* add in days */
- if (dt->type == XS_DURATION) {
- ret += (double)dt->value.dur.day * SECS_PER_DAY;
- ret += dt->value.dur.sec;
- } else {
- ret += (double)dt->value.date.day * SECS_PER_DAY;
- /* add in time */
- ret += TIME_TO_NUMBER(dt);
- }
-
-
- return ret;
-}
+ ((double)((dt->hour * SECS_PER_HOUR) + \
+ (dt->min * SECS_PER_MIN)) + dt->sec)
/**
* _exsltDateTruncateDate:
@@ -1433,19 +1435,19 @@ _exsltDateTruncateDate (exsltDateValPtr dt, exsltDateType type)
return 1;
if ((type & XS_TIME) != XS_TIME) {
- dt->value.date.hour = 0;
- dt->value.date.min = 0;
- dt->value.date.sec = 0.0;
+ dt->hour = 0;
+ dt->min = 0;
+ dt->sec = 0.0;
}
if ((type & XS_GDAY) != XS_GDAY)
- dt->value.date.day = 1;
+ dt->day = 1;
if ((type & XS_GMONTH) != XS_GMONTH)
- dt->value.date.mon = 1;
+ dt->mon = 1;
if ((type & XS_GYEAR) != XS_GYEAR)
- dt->value.date.year = 0;
+ dt->year = 0;
dt->type = type;
@@ -1461,7 +1463,7 @@ _exsltDateTruncateDate (exsltDateValPtr dt, exsltDateType type)
* a Monday so all other days are calculated from there. Take the
* number of years since (or before) add the number of leap years and
* the day-in-year and mod by 7. This is a function because negative
- * years must be handled a little differently and there is no zero year.
+ * years must be handled a little differently.
*
* Returns day in week (Sunday = 0).
*/
@@ -1470,8 +1472,8 @@ _exsltDateDayInWeek(long yday, long yr)
{
long ret;
- if (yr < 0) {
- ret = ((yr + (((yr+1)/4)-((yr+1)/100)+((yr+1)/400)) + yday) % 7);
+ if (yr <= 0) {
+ ret = ((yr-2 + ((yr/4)-(yr/100)+(yr/400)) + yday) % 7);
if (ret < 0)
ret += 7;
} else
@@ -1480,18 +1482,10 @@ _exsltDateDayInWeek(long yday, long yr)
return ret;
}
-/*
- * macros for adding date/times and durations
- */
-#define FQUOTIENT(a,b) ((floor(((double)a/(double)b))))
-#define MODULO(a,b) ((a - FQUOTIENT(a,b) * b))
-#define FQUOTIENT_RANGE(a,low,high) (FQUOTIENT((a-low),(high-low)))
-#define MODULO_RANGE(a,low,high) ((MODULO((a-low),(high-low)))+low)
-
/**
* _exsltDateAdd:
* @dt: an #exsltDateValPtr
- * @dur: an #exsltDateValPtr of type #XS_DURATION
+ * @dur: an #exsltDateDurValPtr
*
* Compute a new date/time from @dt and @dur. This function assumes @dt
* is either #XS_DATETIME, #XS_DATE, #XS_GYEARMONTH, or #XS_GYEAR.
@@ -1499,12 +1493,11 @@ _exsltDateDayInWeek(long yday, long yr)
* Returns date/time pointer or NULL.
*/
static exsltDateValPtr
-_exsltDateAdd (exsltDateValPtr dt, exsltDateValPtr dur)
+_exsltDateAdd (exsltDateValPtr dt, exsltDateDurValPtr dur)
{
exsltDateValPtr ret;
- long carry, tempdays, temp;
- exsltDateValDatePtr r, d;
- exsltDateValDurationPtr u;
+ long carry, temp;
+ double sum;
if ((dt == NULL) || (dur == NULL))
return NULL;
@@ -1513,105 +1506,119 @@ _exsltDateAdd (exsltDateValPtr dt, exsltDateValPtr dur)
if (ret == NULL)
return NULL;
- r = &(ret->value.date);
- d = &(dt->value.date);
- u = &(dur->value.dur);
+ /*
+ * Note that temporary values may need more bits than the values in
+ * bit field.
+ */
/* month */
- carry = d->mon + u->mon;
- r->mon = (unsigned int)MODULO_RANGE(carry, 1, 13);
- carry = (long)FQUOTIENT_RANGE(carry, 1, 13);
+ temp = dt->mon + dur->mon % 12;
+ carry = dur->mon / 12;
+ if (temp < 1) {
+ temp += 12;
+ carry -= 1;
+ }
+ else if (temp > 12) {
+ temp -= 12;
+ carry += 1;
+ }
+ ret->mon = temp;
- /* year (may be modified later) */
- r->year = d->year + carry;
- if (r->year == 0) {
- if (d->year > 0)
- r->year--;
- else
- r->year++;
+ /*
+ * year (may be modified later)
+ *
+ * Add epochs from dur->day now to avoid overflow later and to speed up
+ * pathological cases.
+ */
+ carry += (dur->day / DAYS_PER_EPOCH) * YEARS_PER_EPOCH;
+ if ((carry > 0 && dt->year > LONG_MAX - carry) ||
+ (carry < 0 && dt->year < LONG_MIN - carry)) {
+ /* Overflow */
+ exsltDateFreeDate(ret);
+ return NULL;
}
+ ret->year = dt->year + carry;
/* time zone */
- r->tzo = d->tzo;
- r->tz_flag = d->tz_flag;
+ ret->tzo = dt->tzo;
+ ret->tz_flag = dt->tz_flag;
/* seconds */
- r->sec = d->sec + u->sec;
- carry = (long)FQUOTIENT((long)r->sec, 60);
- if (r->sec != 0.0) {
- r->sec = MODULO(r->sec, 60.0);
- }
+ sum = dt->sec + dur->sec;
+ ret->sec = fmod(sum, 60.0);
+ carry = (long)(sum / 60.0);
/* minute */
- carry += d->min;
- r->min = (unsigned int)MODULO(carry, 60);
- carry = (long)FQUOTIENT(carry, 60);
+ temp = dt->min + carry % 60;
+ carry = carry / 60;
+ if (temp >= 60) {
+ temp -= 60;
+ carry += 1;
+ }
+ ret->min = temp;
/* hours */
- carry += d->hour;
- r->hour = (unsigned int)MODULO(carry, 24);
- carry = (long)FQUOTIENT(carry, 24);
+ temp = dt->hour + carry % 24;
+ carry = carry / 24;
+ if (temp >= 24) {
+ temp -= 24;
+ carry += 1;
+ }
+ ret->hour = temp;
- /*
- * days
- * Note we use tempdays because the temporary values may need more
- * than 5 bits
- */
- if ((VALID_YEAR(r->year)) && (VALID_MONTH(r->mon)) &&
- (d->day > MAX_DAYINMONTH(r->year, r->mon)))
- tempdays = MAX_DAYINMONTH(r->year, r->mon);
- else if (d->day < 1)
- tempdays = 1;
+ /* days */
+ if (dt->day > MAX_DAYINMONTH(ret->year, ret->mon))
+ temp = MAX_DAYINMONTH(ret->year, ret->mon);
+ else if (dt->day < 1)
+ temp = 1;
else
- tempdays = d->day;
+ temp = dt->day;
- tempdays += u->day + carry;
+ temp += dur->day % DAYS_PER_EPOCH + carry;
while (1) {
- if (tempdays < 1) {
- long tmon = (long)MODULO_RANGE((int)r->mon-1, 1, 13);
- long tyr = r->year + (long)FQUOTIENT_RANGE((int)r->mon-1, 1, 13);
- if (tyr == 0)
- tyr--;
- /*
- * Coverity detected an overrun in daysInMonth
- * of size 12 at position 12 with index variable "((r)->mon - 1)"
- */
- if (tmon < 0)
- tmon = 0;
- if (tmon > 12)
- tmon = 12;
- tempdays += MAX_DAYINMONTH(tyr, tmon);
- carry = -1;
- } else if (tempdays > (long)MAX_DAYINMONTH(r->year, r->mon)) {
- tempdays = tempdays - MAX_DAYINMONTH(r->year, r->mon);
- carry = 1;
+ if (temp < 1) {
+ if (ret->mon > 1) {
+ ret->mon -= 1;
+ }
+ else {
+ if (ret->year == LONG_MIN) {
+ exsltDateFreeDate(ret);
+ return NULL;
+ }
+ ret->mon = 12;
+ ret->year -= 1;
+ }
+ temp += MAX_DAYINMONTH(ret->year, ret->mon);
+ } else if (temp > (long)MAX_DAYINMONTH(ret->year, ret->mon)) {
+ temp -= MAX_DAYINMONTH(ret->year, ret->mon);
+ if (ret->mon < 12) {
+ ret->mon += 1;
+ }
+ else {
+ if (ret->year == LONG_MAX) {
+ exsltDateFreeDate(ret);
+ return NULL;
+ }
+ ret->mon = 1;
+ ret->year += 1;
+ }
} else
break;
-
- temp = r->mon + carry;
- r->mon = (unsigned int)MODULO_RANGE(temp, 1, 13);
- r->year = r->year + (long)FQUOTIENT_RANGE(temp, 1, 13);
- if (r->year == 0) {
- if (temp < 1)
- r->year--;
- else
- r->year++;
- }
}
- r->day = tempdays;
+ ret->day = temp;
/*
* adjust the date/time type to the date values
*/
if (ret->type != XS_DATETIME) {
- if ((r->hour) || (r->min) || (r->sec))
+ if ((ret->hour) || (ret->min) || (ret->sec))
ret->type = XS_DATETIME;
else if (ret->type != XS_DATE) {
- if (r->day != 1)
+ if (ret->day != 1)
ret->type = XS_DATE;
- else if ((ret->type != XS_GYEARMONTH) && (r->mon != 1))
+ else if ((ret->type != XS_GYEARMONTH) && (ret->mon != 1))
ret->type = XS_GYEARMONTH;
}
}
@@ -1629,12 +1636,12 @@ _exsltDateAdd (exsltDateValPtr dt, exsltDateValPtr dur)
* (i.e. y - x). If the @flag is set then even if the least specific
* format of @x or @y is xs:gYear or xs:gYearMonth.
*
- * Returns date/time pointer or NULL.
+ * Returns a duration pointer or NULL.
*/
-static exsltDateValPtr
+static exsltDateDurValPtr
_exsltDateDifference (exsltDateValPtr x, exsltDateValPtr y, int flag)
{
- exsltDateValPtr ret;
+ exsltDateDurValPtr ret;
if ((x == NULL) || (y == NULL))
return NULL;
@@ -1655,30 +1662,37 @@ _exsltDateDifference (exsltDateValPtr x, exsltDateValPtr y, int flag)
}
}
- ret = exsltDateCreateDate(XS_DURATION);
+ ret = exsltDateCreateDuration();
if (ret == NULL)
return NULL;
if (((x->type == XS_GYEAR) || (x->type == XS_GYEARMONTH)) && (!flag)) {
/* compute the difference in months */
- ret->value.dur.mon = ((y->value.date.year * 12) + y->value.date.mon) -
- ((x->value.date.year * 12) + x->value.date.mon);
- /* The above will give a wrong result if x and y are on different sides
- of the September 1752. Resolution is welcome :-) */
+ if ((x->year >= LONG_MAX / 24) || (x->year <= LONG_MIN / 24) ||
+ (y->year >= LONG_MAX / 24) || (y->year <= LONG_MIN / 24)) {
+ /* Possible overflow. */
+ exsltDateFreeDuration(ret);
+ return NULL;
+ }
+ ret->mon = (y->year - x->year) * 12 + (y->mon - x->mon);
} else {
- ret->value.dur.day = _exsltDateCastYMToDays(y) -
- _exsltDateCastYMToDays(x);
- ret->value.dur.day += y->value.date.day - x->value.date.day;
- ret->value.dur.sec = TIME_TO_NUMBER(y) - TIME_TO_NUMBER(x);
- ret->value.dur.sec += (x->value.date.tzo - y->value.date.tzo) *
- SECS_PER_MIN;
- if (ret->value.dur.day > 0.0 && ret->value.dur.sec < 0.0) {
- ret->value.dur.day -= 1;
- ret->value.dur.sec = ret->value.dur.sec + SECS_PER_DAY;
- } else if (ret->value.dur.day < 0.0 && ret->value.dur.sec > 0.0) {
- ret->value.dur.day += 1;
- ret->value.dur.sec = ret->value.dur.sec - SECS_PER_DAY;
- }
+ long carry;
+
+ if ((x->year > LONG_MAX / 731) || (x->year < LONG_MIN / 731) ||
+ (y->year > LONG_MAX / 731) || (y->year < LONG_MIN / 731)) {
+ /* Possible overflow. */
+ exsltDateFreeDuration(ret);
+ return NULL;
+ }
+
+ ret->sec = TIME_TO_NUMBER(y) - TIME_TO_NUMBER(x);
+ ret->sec += (x->tzo - y->tzo) * SECS_PER_MIN;
+ carry = (long)floor(ret->sec / SECS_PER_DAY);
+ ret->sec = ret->sec - carry * SECS_PER_DAY;
+
+ ret->day = _exsltDateCastYMToDays(y) - _exsltDateCastYMToDays(x);
+ ret->day += y->day - x->day;
+ ret->day += carry;
}
return ret;
@@ -1686,9 +1700,9 @@ _exsltDateDifference (exsltDateValPtr x, exsltDateValPtr y, int flag)
/**
* _exsltDateAddDurCalc
- * @ret: an exsltDateValPtr for the return value:
- * @x: an exsltDateValPtr for the first operand
- * @y: an exsltDateValPtr for the second operand
+ * @ret: an exsltDateDurValPtr for the return value:
+ * @x: an exsltDateDurValPtr for the first operand
+ * @y: an exsltDateDurValPtr for the second operand
*
* Add two durations, catering for possible negative values.
* The sum is placed in @ret.
@@ -1696,72 +1710,76 @@ _exsltDateDifference (exsltDateValPtr x, exsltDateValPtr y, int flag)
* Returns 1 for success, 0 if error detected.
*/
static int
-_exsltDateAddDurCalc (exsltDateValPtr ret, exsltDateValPtr x,
- exsltDateValPtr y)
+_exsltDateAddDurCalc (exsltDateDurValPtr ret, exsltDateDurValPtr x,
+ exsltDateDurValPtr y)
{
- long carry;
-
/* months */
- ret->value.dur.mon = x->value.dur.mon + y->value.dur.mon;
-
- /* seconds */
- ret->value.dur.sec = x->value.dur.sec + y->value.dur.sec;
- carry = (long)FQUOTIENT(ret->value.dur.sec, SECS_PER_DAY);
- if (ret->value.dur.sec != 0.0) {
- ret->value.dur.sec = MODULO(ret->value.dur.sec, SECS_PER_DAY);
- /*
- * Our function MODULO always gives us a positive value, so
- * if we end up with a "-ve" carry we need to adjust it
- * appropriately (bug 154021)
- */
- if ((carry < 0) && (ret->value.dur.sec != 0)) {
- /* change seconds to equiv negative modulus */
- ret->value.dur.sec = ret->value.dur.sec - SECS_PER_DAY;
- carry++;
- }
+ if ((x->mon > 0 && y->mon > LONG_MAX - x->mon) ||
+ (x->mon < 0 && y->mon < LONG_MIN - x->mon)) {
+ /* Overflow */
+ return 0;
}
+ ret->mon = x->mon + y->mon;
/* days */
- ret->value.dur.day = x->value.dur.day + y->value.dur.day + carry;
+ if ((x->day > 0 && y->day > LONG_MAX - x->day) ||
+ (x->day < 0 && y->day < LONG_MIN - x->day)) {
+ /* Overflow */
+ return 0;
+ }
+ ret->day = x->day + y->day;
+
+ /* seconds */
+ ret->sec = x->sec + y->sec;
+ if (ret->sec >= SECS_PER_DAY) {
+ if (ret->day == LONG_MAX) {
+ /* Overflow */
+ return 0;
+ }
+ ret->sec -= SECS_PER_DAY;
+ ret->day += 1;
+ }
/*
* are the results indeterminate? i.e. how do you subtract days from
* months or years?
*/
- if ((((ret->value.dur.day > 0) || (ret->value.dur.sec > 0)) &&
- (ret->value.dur.mon < 0)) ||
- (((ret->value.dur.day < 0) || (ret->value.dur.sec < 0)) &&
- (ret->value.dur.mon > 0))) {
- return 0;
+ if (ret->day >= 0) {
+ if (((ret->day > 0) || (ret->sec > 0)) && (ret->mon < 0))
+ return 0;
+ }
+ else {
+ if (ret->mon > 0)
+ return 0;
}
return 1;
}
/**
* _exsltDateAddDuration:
- * @x: an #exsltDateValPtr of type #XS_DURATION
- * @y: an #exsltDateValPtr of type #XS_DURATION
+ * @x: an #exsltDateDurValPtr
+ * @y: an #exsltDateDurValPtr
*
* Compute a new duration from @x and @y.
*
- * Returns date/time pointer or NULL.
+ * Returns a duration pointer or NULL.
*/
-static exsltDateValPtr
-_exsltDateAddDuration (exsltDateValPtr x, exsltDateValPtr y)
+static exsltDateDurValPtr
+_exsltDateAddDuration (exsltDateDurValPtr x, exsltDateDurValPtr y)
{
- exsltDateValPtr ret;
+ exsltDateDurValPtr ret;
if ((x == NULL) || (y == NULL))
return NULL;
- ret = exsltDateCreateDate(XS_DURATION);
+ ret = exsltDateCreateDuration();
if (ret == NULL)
return NULL;
if (_exsltDateAddDurCalc(ret, x, y))
return ret;
- exsltDateFreeDate(ret);
+ exsltDateFreeDuration(ret);
return NULL;
}
@@ -1788,7 +1806,7 @@ exsltDateDateTime (void)
cur = exsltDateCurrent();
if (cur != NULL) {
- ret = exsltDateFormatDateTime(&(cur->value.date));
+ ret = exsltDateFormatDateTime(cur);
exsltDateFreeDate(cur);
}
#endif
@@ -1834,7 +1852,7 @@ exsltDateDate (const xmlChar *dateTime)
}
}
- ret = exsltDateFormatDate(&(dt->value.date));
+ ret = exsltDateFormatDate(dt);
exsltDateFreeDate(dt);
return ret;
@@ -1878,7 +1896,7 @@ exsltDateTime (const xmlChar *dateTime)
}
}
- ret = exsltDateFormatTime(&(dt->value.date));
+ ret = exsltDateFormatTime(dt);
exsltDateFreeDate(dt);
return ret;
@@ -1908,6 +1926,7 @@ static double
exsltDateYear (const xmlChar *dateTime)
{
exsltDateValPtr dt;
+ long year;
double ret;
if (dateTime == NULL) {
@@ -1927,7 +1946,9 @@ exsltDateYear (const xmlChar *dateTime)
}
}
- ret = (double) dt->value.date.year;
+ year = dt->year;
+ if (year <= 0) year -= 1; /* Adjust for missing year 0. */
+ ret = (double) year;
exsltDateFreeDate(dt);
return ret;
@@ -1956,16 +1977,32 @@ exsltDateYear (const xmlChar *dateTime)
static xmlXPathObjectPtr
exsltDateLeapYear (const xmlChar *dateTime)
{
- double year;
+ exsltDateValPtr dt = NULL;
+ xmlXPathObjectPtr ret;
- year = exsltDateYear(dateTime);
- if (xmlXPathIsNaN(year))
- return xmlXPathNewFloat(xmlXPathNAN);
+ if (dateTime == NULL) {
+#ifdef WITH_TIME
+ dt = exsltDateCurrent();
+#endif
+ } else {
+ dt = exsltDateParse(dateTime);
+ if ((dt != NULL) &&
+ (dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
+ (dt->type != XS_GYEARMONTH) && (dt->type != XS_GYEAR)) {
+ exsltDateFreeDate(dt);
+ dt = NULL;
+ }
+ }
- if (IS_LEAP((long)year))
- return xmlXPathNewBoolean(1);
+ if (dt == NULL) {
+ ret = xmlXPathNewFloat(xmlXPathNAN);
+ }
+ else {
+ ret = xmlXPathNewBoolean(IS_LEAP(dt->year));
+ exsltDateFreeDate(dt);
+ }
- return xmlXPathNewBoolean(0);
+ return ret;
}
/**
@@ -2013,7 +2050,7 @@ exsltDateMonthInYear (const xmlChar *dateTime)
}
}
- ret = (double) dt->value.date.mon;
+ ret = (double) dt->mon;
exsltDateFreeDate(dt);
return ret;
@@ -2060,11 +2097,12 @@ exsltDateMonthName (const xmlChar *dateTime)
{ 'N', 'o', 'v', 'e', 'm', 'b', 'e', 'r', 0 },
{ 'D', 'e', 'c', 'e', 'm', 'b', 'e', 'r', 0 }
};
- int month;
- month = (int) exsltDateMonthInYear(dateTime);
- if (!VALID_MONTH(month))
- month = 0;
- return monthNames[month];
+ double month;
+ int index = 0;
+ month = exsltDateMonthInYear(dateTime);
+ if (!xmlXPathIsNaN(month) && (month >= 1.0) && (month <= 12.0))
+ index = (int) month;
+ return monthNames[index];
}
/**
@@ -2108,11 +2146,12 @@ exsltDateMonthAbbreviation (const xmlChar *dateTime)
{ 'N', 'o', 'v', 0 },
{ 'D', 'e', 'c', 0 }
};
- int month;
- month = (int) exsltDateMonthInYear(dateTime);
- if(!VALID_MONTH(month))
- month = 0;
- return monthAbbreviations[month];
+ double month;
+ int index = 0;
+ month = exsltDateMonthInYear(dateTime);
+ if (!xmlXPathIsNaN(month) && (month >= 1.0) && (month <= 12.0))
+ index = (int) month;
+ return monthAbbreviations[index];
}
/**
@@ -2158,23 +2197,22 @@ exsltDateWeekInYear (const xmlChar *dateTime)
}
}
- diy = DAY_IN_YEAR(dt->value.date.day, dt->value.date.mon,
- dt->value.date.year);
+ diy = DAY_IN_YEAR(dt->day, dt->mon, dt->year);
/*
* Determine day-in-week (0=Sun, 1=Mon, etc.) then adjust so Monday
* is the first day-in-week
*/
- diw = (_exsltDateDayInWeek(diy, dt->value.date.year) + 6) % 7;
+ diw = (_exsltDateDayInWeek(diy, dt->year) + 6) % 7;
/* ISO 8601 adjustment, 3 is Thu */
diy += (3 - diw);
if(diy < 1) {
- year = dt->value.date.year - 1;
+ year = dt->year - 1;
if(year == 0) year--;
diy = DAY_IN_YEAR(31, 12, year) + diy;
- } else if (diy > (long)DAY_IN_YEAR(31, 12, dt->value.date.year)) {
- diy -= DAY_IN_YEAR(31, 12, dt->value.date.year);
+ } else if (diy > (long)DAY_IN_YEAR(31, 12, dt->year)) {
+ diy -= DAY_IN_YEAR(31, 12, dt->year);
}
ret = ((diy - 1) / 7) + 1;
@@ -2227,14 +2265,14 @@ exsltDateWeekInMonth (const xmlChar *dateTime)
}
}
- fdiy = DAY_IN_YEAR(1, dt->value.date.mon, dt->value.date.year);
+ fdiy = DAY_IN_YEAR(1, dt->mon, dt->year);
/*
* Determine day-in-week (0=Sun, 1=Mon, etc.) then adjust so Monday
* is the first day-in-week
*/
- fdiw = (_exsltDateDayInWeek(fdiy, dt->value.date.year) + 6) % 7;
+ fdiw = (_exsltDateDayInWeek(fdiy, dt->year) + 6) % 7;
- ret = ((dt->value.date.day + fdiw - 1) / 7) + 1;
+ ret = ((dt->day + fdiw - 1) / 7) + 1;
exsltDateFreeDate(dt);
@@ -2281,8 +2319,7 @@ exsltDateDayInYear (const xmlChar *dateTime)
}
}
- ret = DAY_IN_YEAR(dt->value.date.day, dt->value.date.mon,
- dt->value.date.year);
+ ret = DAY_IN_YEAR(dt->day, dt->mon, dt->year);
exsltDateFreeDate(dt);
@@ -2332,7 +2369,7 @@ exsltDateDayInMonth (const xmlChar *dateTime)
}
}
- ret = (double) dt->value.date.day;
+ ret = (double) dt->day;
exsltDateFreeDate(dt);
return ret;
@@ -2379,7 +2416,7 @@ exsltDateDayOfWeekInMonth (const xmlChar *dateTime)
}
}
- ret = ((dt->value.date.day -1) / 7) + 1;
+ ret = ((dt->day -1) / 7) + 1;
exsltDateFreeDate(dt);
@@ -2428,10 +2465,9 @@ exsltDateDayInWeek (const xmlChar *dateTime)
}
}
- diy = DAY_IN_YEAR(dt->value.date.day, dt->value.date.mon,
- dt->value.date.year);
+ diy = DAY_IN_YEAR(dt->day, dt->mon, dt->year);
- ret = _exsltDateDayInWeek(diy, dt->value.date.year) + 1;
+ ret = _exsltDateDayInWeek(diy, dt->year) + 1;
exsltDateFreeDate(dt);
@@ -2471,11 +2507,12 @@ exsltDateDayName (const xmlChar *dateTime)
{ 'F', 'r', 'i', 'd', 'a', 'y', 0 },
{ 'S', 'a', 't', 'u', 'r', 'd', 'a', 'y', 0 }
};
- int day;
- day = (int) exsltDateDayInWeek(dateTime);
- if((day < 1) || (day > 7))
- day = 0;
- return dayNames[day];
+ double day;
+ int index = 0;
+ day = exsltDateDayInWeek(dateTime);
+ if(!xmlXPathIsNaN(day) && (day >= 1.0) && (day <= 7.0))
+ index = (int) day;
+ return dayNames[index];
}
/**
@@ -2511,11 +2548,12 @@ exsltDateDayAbbreviation (const xmlChar *dateTime)
{ 'F', 'r', 'i', 0 },
{ 'S', 'a', 't', 0 }
};
- int day;
- day = (int) exsltDateDayInWeek(dateTime);
- if((day < 1) || (day > 7))
- day = 0;
- return dayAbbreviations[day];
+ double day;
+ int index = 0;
+ day = exsltDateDayInWeek(dateTime);
+ if(!xmlXPathIsNaN(day) && (day >= 1.0) && (day <= 7.0))
+ index = (int) day;
+ return dayAbbreviations[index];
}
/**
@@ -2558,7 +2596,7 @@ exsltDateHourInDay (const xmlChar *dateTime)
}
}
- ret = (double) dt->value.date.hour;
+ ret = (double) dt->hour;
exsltDateFreeDate(dt);
return ret;
@@ -2604,7 +2642,7 @@ exsltDateMinuteInHour (const xmlChar *dateTime)
}
}
- ret = (double) dt->value.date.min;
+ ret = (double) dt->min;
exsltDateFreeDate(dt);
return ret;
@@ -2652,7 +2690,7 @@ exsltDateSecondInMinute (const xmlChar *dateTime)
}
}
- ret = dt->value.date.sec;
+ ret = dt->sec;
exsltDateFreeDate(dt);
return ret;
@@ -2685,7 +2723,8 @@ exsltDateSecondInMinute (const xmlChar *dateTime)
static xmlChar *
exsltDateAdd (const xmlChar *xstr, const xmlChar *ystr)
{
- exsltDateValPtr dt, dur, res;
+ exsltDateValPtr dt, res;
+ exsltDateDurValPtr dur;
xmlChar *ret;
if ((xstr == NULL) || (ystr == NULL))
@@ -2708,7 +2747,7 @@ exsltDateAdd (const xmlChar *xstr, const xmlChar *ystr)
res = _exsltDateAdd(dt, dur);
exsltDateFreeDate(dt);
- exsltDateFreeDate(dur);
+ exsltDateFreeDuration(dur);
if (res == NULL)
return NULL;
@@ -2743,7 +2782,7 @@ exsltDateAdd (const xmlChar *xstr, const xmlChar *ystr)
static xmlChar *
exsltDateAddDuration (const xmlChar *xstr, const xmlChar *ystr)
{
- exsltDateValPtr x, y, res;
+ exsltDateDurValPtr x, y, res;
xmlChar *ret;
if ((xstr == NULL) || (ystr == NULL))
@@ -2755,20 +2794,20 @@ exsltDateAddDuration (const xmlChar *xstr, const xmlChar *ystr)
y = exsltDateParseDuration(ystr);
if (y == NULL) {
- exsltDateFreeDate(x);
+ exsltDateFreeDuration(x);
return NULL;
}
res = _exsltDateAddDuration(x, y);
- exsltDateFreeDate(x);
- exsltDateFreeDate(y);
+ exsltDateFreeDuration(x);
+ exsltDateFreeDuration(y);
if (res == NULL)
return NULL;
- ret = exsltDateFormatDuration(&(res->value.dur));
- exsltDateFreeDate(res);
+ ret = exsltDateFormatDuration(res);
+ exsltDateFreeDuration(res);
return ret;
}
@@ -2798,7 +2837,7 @@ exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int nargs)
xmlNodeSetPtr ns;
void *user = NULL;
xmlChar *tmp;
- exsltDateValPtr x, total;
+ exsltDateDurValPtr x, total;
xmlChar *ret;
int i;
@@ -2825,7 +2864,7 @@ exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int nargs)
return;
}
- total = exsltDateCreateDate (XS_DURATION);
+ total = exsltDateCreateDuration ();
if (total == NULL) {
xmlXPathFreeNodeSet (ns);
return;
@@ -2836,14 +2875,14 @@ exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int nargs)
tmp = xmlXPathCastNodeToString (ns->nodeTab[i]);
if (tmp == NULL) {
xmlXPathFreeNodeSet (ns);
- exsltDateFreeDate (total);
+ exsltDateFreeDuration (total);
return;
}
x = exsltDateParseDuration (tmp);
if (x == NULL) {
xmlFree (tmp);
- exsltDateFreeDate (total);
+ exsltDateFreeDuration (total);
xmlXPathFreeNodeSet (ns);
xmlXPathReturnEmptyString (ctxt);
return;
@@ -2851,18 +2890,18 @@ exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int nargs)
result = _exsltDateAddDurCalc(total, total, x);
- exsltDateFreeDate (x);
+ exsltDateFreeDuration (x);
xmlFree (tmp);
if (!result) {
- exsltDateFreeDate (total);
+ exsltDateFreeDuration (total);
xmlXPathFreeNodeSet (ns);
xmlXPathReturnEmptyString (ctxt);
return;
}
}
- ret = exsltDateFormatDuration (&(total->value.dur));
- exsltDateFreeDate (total);
+ ret = exsltDateFormatDuration (total);
+ exsltDateFreeDuration (total);
xmlXPathFreeNodeSet (ns);
if (user != NULL)
@@ -2906,6 +2945,7 @@ static double
exsltDateSeconds (const xmlChar *dateTime)
{
exsltDateValPtr dt;
+ exsltDateDurValPtr dur = NULL;
double ret = xmlXPathNAN;
if (dateTime == NULL) {
@@ -2915,16 +2955,14 @@ exsltDateSeconds (const xmlChar *dateTime)
#endif
return xmlXPathNAN;
} else {
- dt = exsltDateParseDuration(dateTime);
+ dt = exsltDateParse(dateTime);
if (dt == NULL)
- dt = exsltDateParse(dateTime);
+ dur = exsltDateParseDuration(dateTime);
}
- if (dt == NULL)
- return xmlXPathNAN;
-
- if ((dt->type <= XS_DATETIME) && (dt->type >= XS_GYEAR)) {
- exsltDateValPtr y, dur;
+ if ((dt != NULL) && (dt->type >= XS_GYEAR)) {
+ exsltDateValPtr y;
+ exsltDateDurValPtr diff;
/*
* compute the difference between the given (or current) date
@@ -2932,23 +2970,27 @@ exsltDateSeconds (const xmlChar *dateTime)
*/
y = exsltDateCreateDate(XS_DATETIME);
if (y != NULL) {
- y->value.date.year = 1970;
- y->value.date.mon = 1;
- y->value.date.day = 1;
- y->value.date.tz_flag = 1;
-
- dur = _exsltDateDifference(y, dt, 1);
- if (dur != NULL) {
- ret = exsltDateCastDateToNumber(dur);
- exsltDateFreeDate(dur);
+ y->year = 1970;
+ y->mon = 1;
+ y->day = 1;
+ y->tz_flag = 1;
+
+ diff = _exsltDateDifference(y, dt, 1);
+ if (diff != NULL) {
+ ret = (double)diff->day * SECS_PER_DAY + diff->sec;
+ exsltDateFreeDuration(diff);
}
exsltDateFreeDate(y);
}
- } else if ((dt->type == XS_DURATION) && (dt->value.dur.mon == 0))
- ret = exsltDateCastDateToNumber(dt);
+ } else if ((dur != NULL) && (dur->mon == 0)) {
+ ret = (double)dur->day * SECS_PER_DAY + dur->sec;
+ }
- exsltDateFreeDate(dt);
+ if (dt != NULL)
+ exsltDateFreeDate(dt);
+ if (dur != NULL)
+ exsltDateFreeDuration(dur);
return ret;
}
@@ -2993,8 +3035,9 @@ exsltDateSeconds (const xmlChar *dateTime)
static xmlChar *
exsltDateDifference (const xmlChar *xstr, const xmlChar *ystr)
{
- exsltDateValPtr x, y, dur;
- xmlChar *ret = NULL;
+ exsltDateValPtr x, y;
+ exsltDateDurValPtr dur;
+ xmlChar *ret = NULL;
if ((xstr == NULL) || (ystr == NULL))
return NULL;
@@ -3024,8 +3067,8 @@ exsltDateDifference (const xmlChar *xstr, const xmlChar *ystr)
if (dur == NULL)
return NULL;
- ret = exsltDateFormatDuration(&(dur->value.dur));
- exsltDateFreeDate(dur);
+ ret = exsltDateFormatDuration(dur);
+ exsltDateFreeDuration(dur);
return ret;
}
@@ -3053,8 +3096,8 @@ exsltDateDifference (const xmlChar *xstr, const xmlChar *ystr)
static xmlChar *
exsltDateDuration (const xmlChar *number)
{
- exsltDateValPtr dur;
- double secs;
+ exsltDateDurValPtr dur;
+ double secs, days;
xmlChar *ret;
if (number == NULL)
@@ -3065,14 +3108,16 @@ exsltDateDuration (const xmlChar *number)
if ((xmlXPathIsNaN(secs)) || (xmlXPathIsInf(secs)))
return NULL;
- dur = exsltDateCreateDate(XS_DURATION);
+ dur = exsltDateCreateDuration();
if (dur == NULL)
return NULL;
- dur->value.dur.sec = secs;
+ days = floor(secs / SECS_PER_DAY);
+ dur->day = (long)days;
+ dur->sec = secs - days * SECS_PER_DAY;
- ret = exsltDateFormatDuration(&(dur->value.dur));
- exsltDateFreeDate(dur);
+ ret = exsltDateFormatDuration(dur);
+ exsltDateFreeDuration(dur);
return ret;
}
diff --git a/libexslt/dynamic.c b/libexslt/dynamic.c
index 7b95fc5e..dd0804bc 100644
--- a/libexslt/dynamic.c
+++ b/libexslt/dynamic.c
@@ -23,7 +23,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
@@ -113,24 +113,12 @@ exsltDynMapFunction(xmlXPathParserContextPtr ctxt, int nargs)
return;
}
str = xmlXPathPopString(ctxt);
- if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
- return;
- }
+ if (xmlXPathCheckError(ctxt))
+ goto cleanup;
nodeset = xmlXPathPopNodeSet(ctxt);
- if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
- return;
- }
- if (str == NULL || !xmlStrlen(str) || !(comp = xmlXPathCompile(str))) {
- if (nodeset != NULL)
- xmlXPathFreeNodeSet(nodeset);
- if (str != NULL)
- xmlFree(str);
- valuePush(ctxt, xmlXPathNewNodeSet(NULL));
- return;
- }
+ if (xmlXPathCheckError(ctxt))
+ goto cleanup;
ret = xmlXPathNewNodeSet(NULL);
if (ret == NULL) {
@@ -139,6 +127,9 @@ exsltDynMapFunction(xmlXPathParserContextPtr ctxt, int nargs)
goto cleanup;
}
+ if (str == NULL || !xmlStrlen(str) || !(comp = xmlXPathCompile(str)))
+ goto cleanup;
+
oldDoc = ctxt->context->doc;
oldNode = ctxt->context->node;
oldContextSize = ctxt->context->contextSize;
@@ -216,7 +207,6 @@ exsltDynMapFunction(xmlXPathParserContextPtr ctxt, int nargs)
xmlXPathNodeSetAddUnique(ret->nodesetval,
cur);
}
- xsltExtensionInstructionResultRegister(tctxt, ret);
}
break;
case XPATH_NUMBER:
@@ -239,7 +229,6 @@ exsltDynMapFunction(xmlXPathParserContextPtr ctxt, int nargs)
xmlXPathNodeSetAddUnique(ret->nodesetval,
cur);
}
- xsltExtensionInstructionResultRegister(tctxt, ret);
}
break;
case XPATH_STRING:
@@ -257,7 +246,6 @@ exsltDynMapFunction(xmlXPathParserContextPtr ctxt, int nargs)
xmlXPathNodeSetAddUnique(ret->nodesetval,
cur);
}
- xsltExtensionInstructionResultRegister(tctxt, ret);
}
break;
default:
diff --git a/libexslt/functions.c b/libexslt/functions.c
index 0795a13d..dc794e3d 100644
--- a/libexslt/functions.c
+++ b/libexslt/functions.c
@@ -1,7 +1,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
@@ -35,7 +35,6 @@ struct _exsltFuncData {
xmlHashTablePtr funcs; /* pointer to the stylesheet module data */
xmlXPathObjectPtr result; /* returned by func:result */
int error; /* did an error occur? */
- xmlDocPtr RVT; /* result tree fragment */
};
typedef struct _exsltFuncResultPreComp exsltFuncResultPreComp;
@@ -57,8 +56,6 @@ static void exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt,
int nargs);
static exsltFuncFunctionData *exsltFuncNewFunctionData(void);
-#define MAX_FUNC_RECURSION 1000
-
/*static const xmlChar *exsltResultDataID = (const xmlChar *) "EXSLT Result";*/
/**
@@ -333,14 +330,21 @@ exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
"param == NULL\n");
return;
}
- if (tctxt->funcLevel > MAX_FUNC_RECURSION) {
- xsltGenericError(xsltGenericErrorContext,
- "{%s}%s: detected a recursion\n",
- ctxt->context->functionURI, ctxt->context->function);
- ctxt->error = XPATH_MEMORY_ERROR;
- return;
+
+ /*
+ * When a function is called recursively during evaluation of its
+ * arguments, the recursion check in xsltApplySequenceConstructor
+ * isn't reached.
+ */
+ if (tctxt->depth >= tctxt->maxTemplateDepth) {
+ xsltTransformError(tctxt, NULL, NULL,
+ "exsltFuncFunctionFunction: Potentially infinite recursion "
+ "detected in function {%s}%s.\n",
+ ctxt->context->functionURI, ctxt->context->function);
+ tctxt->state = XSLT_STATE_STOPPED;
+ return;
}
- tctxt->funcLevel++;
+ tctxt->depth++;
/*
* We have a problem with the evaluation of function parameters.
@@ -415,7 +419,7 @@ exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
(const xmlChar *)"fake", NULL);
oldInsert = tctxt->insert;
tctxt->insert = fake;
- xsltApplyOneTemplate (tctxt, xmlXPathGetContextNode(ctxt),
+ xsltApplyOneTemplate (tctxt, tctxt->node,
func->content, NULL, NULL);
xsltLocalVariablePop(tctxt, tctxt->varsBase, -2);
tctxt->insert = oldInsert;
@@ -424,10 +428,16 @@ exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
xsltFreeStackElemList(params);
if (data->error != 0)
- goto error;
+ goto error;
if (data->result != NULL) {
ret = data->result;
+ /*
+ * IMPORTANT: This enables previously tree fragments marked as
+ * being results of a function, to be garbage-collected after
+ * the calling process exits.
+ */
+ xsltFlagRVTs(tctxt, ret, XSLT_RVT_LOCAL);
} else
ret = xmlXPathNewCString("");
@@ -452,13 +462,7 @@ exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
valuePush(ctxt, ret);
error:
- /*
- * IMPORTANT: This enables previously tree fragments marked as
- * being results of a function, to be garbage-collected after
- * the calling process exits.
- */
- xsltExtensionInstructionResultFinalize(tctxt);
- tctxt->funcLevel--;
+ tctxt->depth--;
}
@@ -536,6 +540,7 @@ exsltFuncFunctionComp (xsltStylesheetPtr style, xmlNodePtr inst) {
xsltGenericError(xsltGenericErrorContext,
"exsltFuncFunctionComp: no stylesheet data\n");
xmlFree(name);
+ xmlFree(func);
return;
}
@@ -544,6 +549,7 @@ exsltFuncFunctionComp (xsltStylesheetPtr style, xmlNodePtr inst) {
"Failed to register function {%s}%s\n",
ns->href, name);
style->errors++;
+ xmlFree(func);
} else {
xsltGenericDebug(xsltGenericDebugContext,
"exsltFuncFunctionComp: register {%s}%s\n",
@@ -708,6 +714,7 @@ exsltFuncResultElem (xsltTransformContextPtr ctxt,
ctxt->xpathCtxt->namespaces = comp->nsList;
ctxt->xpathCtxt->nsNr = comp->nsNr;
+ ctxt->xpathCtxt->node = ctxt->node;
ret = xmlXPathCompiledEval(comp->select, ctxt->xpathCtxt);
@@ -724,7 +731,7 @@ exsltFuncResultElem (xsltTransformContextPtr ctxt,
* Mark it as a function result in order to avoid garbage
* collecting of tree fragments before the function exits.
*/
- xsltExtensionInstructionResultRegister(ctxt, ret);
+ xsltFlagRVTs(ctxt, ret, XSLT_RVT_FUNC_RESULT);
} else if (inst->children != NULL) {
/* If the func:result element does not have a select attribute
* and has non-empty content (i.e. the func:result element has
@@ -741,11 +748,12 @@ exsltFuncResultElem (xsltTransformContextPtr ctxt,
data->error = 1;
return;
}
- xsltRegisterLocalRVT(ctxt, container);
+ /* Mark as function result. */
+ container->psvi = XSLT_RVT_FUNC_RESULT;
oldInsert = ctxt->insert;
ctxt->insert = (xmlNodePtr) container;
- xsltApplyOneTemplate (ctxt, ctxt->xpathCtxt->node,
+ xsltApplyOneTemplate (ctxt, ctxt->node,
inst->children, NULL, NULL);
ctxt->insert = oldInsert;
@@ -756,11 +764,6 @@ exsltFuncResultElem (xsltTransformContextPtr ctxt,
data->error = 1;
} else {
ret->boolval = 0; /* Freeing is not handled there anymore */
- /*
- * Mark it as a function result in order to avoid garbage
- * collecting of tree fragments before the function exits.
- */
- xsltExtensionInstructionResultRegister(ctxt, ret);
}
} else {
/* If the func:result element has empty content and does not
diff --git a/libexslt/libexslt.h b/libexslt/libexslt.h
index 2dd9b37b..ad9cc748 100644
--- a/libexslt/libexslt.h
+++ b/libexslt/libexslt.h
@@ -9,7 +9,7 @@
#ifndef __XSLT_LIBEXSLT_H__
#define __XSLT_LIBEXSLT_H__
-#if defined(WIN32) && !defined (__CYGWIN__) && !defined (__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && !defined (__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
diff --git a/libexslt/math.c b/libexslt/math.c
index 6b24dbe0..f1aa0ba5 100644
--- a/libexslt/math.c
+++ b/libexslt/math.c
@@ -1,7 +1,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
diff --git a/libexslt/saxon.c b/libexslt/saxon.c
index 7a2f63be..15343969 100644
--- a/libexslt/saxon.c
+++ b/libexslt/saxon.c
@@ -1,7 +1,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
diff --git a/libexslt/sets.c b/libexslt/sets.c
index a5a79130..c7142ff1 100644
--- a/libexslt/sets.c
+++ b/libexslt/sets.c
@@ -1,7 +1,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
@@ -34,14 +34,12 @@ exsltSetsDifferenceFunction (xmlXPathParserContextPtr ctxt, int nargs) {
}
arg2 = xmlXPathPopNodeSet(ctxt);
- if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ if (xmlXPathCheckError(ctxt))
return;
- }
arg1 = xmlXPathPopNodeSet(ctxt);
if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ xmlXPathFreeNodeSet(arg2);
return;
}
@@ -71,14 +69,12 @@ exsltSetsIntersectionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
}
arg2 = xmlXPathPopNodeSet(ctxt);
- if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ if (xmlXPathCheckError(ctxt))
return;
- }
arg1 = xmlXPathPopNodeSet(ctxt);
if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ xmlXPathFreeNodeSet(arg2);
return;
}
@@ -150,14 +146,12 @@ exsltSetsHasSameNodesFunction (xmlXPathParserContextPtr ctxt,
}
arg2 = xmlXPathPopNodeSet(ctxt);
- if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ if (xmlXPathCheckError(ctxt))
return;
- }
arg1 = xmlXPathPopNodeSet(ctxt);
if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ xmlXPathFreeNodeSet(arg2);
return;
}
@@ -186,14 +180,12 @@ exsltSetsLeadingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
}
arg2 = xmlXPathPopNodeSet(ctxt);
- if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ if (xmlXPathCheckError(ctxt))
return;
- }
arg1 = xmlXPathPopNodeSet(ctxt);
if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ xmlXPathFreeNodeSet(arg2);
return;
}
@@ -233,14 +225,12 @@ exsltSetsTrailingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
}
arg2 = xmlXPathPopNodeSet(ctxt);
- if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ if (xmlXPathCheckError(ctxt))
return;
- }
arg1 = xmlXPathPopNodeSet(ctxt);
if (xmlXPathCheckError(ctxt)) {
- xmlXPathSetTypeError(ctxt);
+ xmlXPathFreeNodeSet(arg2);
return;
}
diff --git a/libexslt/strings.c b/libexslt/strings.c
index f5f2d3c5..14d9172f 100644
--- a/libexslt/strings.c
+++ b/libexslt/strings.c
@@ -1,7 +1,7 @@
#define IN_LIBEXSLT
#include "libexslt/libexslt.h"
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
@@ -75,7 +75,7 @@ exsltStrTokenizeFunction(xmlXPathParserContextPtr ctxt, int nargs)
ret = xmlXPathNewNodeSet(NULL);
if (ret != NULL) {
for (cur = str, token = str; *cur != 0; cur += clen) {
- clen = xmlUTF8Size(cur);
+ clen = xmlUTF8Strsize(cur, 1);
if (*delimiters == 0) { /* empty string case */
xmlChar ctmp;
ctmp = *(cur+clen);
@@ -87,7 +87,7 @@ exsltStrTokenizeFunction(xmlXPathParserContextPtr ctxt, int nargs)
*(cur+clen) = ctmp; /* restore the changed byte */
token = cur + clen;
} else for (delimiter = delimiters; *delimiter != 0;
- delimiter += xmlUTF8Size(delimiter)) {
+ delimiter += xmlUTF8Strsize(delimiter, 1)) {
if (!xmlUTF8Charcmp(cur, delimiter)) {
if (cur == token) {
/* discard empty tokens */
@@ -111,11 +111,6 @@ exsltStrTokenizeFunction(xmlXPathParserContextPtr ctxt, int nargs)
xmlAddChild((xmlNodePtr) container, node);
xmlXPathNodeSetAddUnique(ret->nodesetval, node);
}
- /*
- * Mark it as a function result in order to avoid garbage
- * collecting of tree fragments
- */
- xsltExtensionInstructionResultRegister(tctxt, ret);
}
}
@@ -222,11 +217,6 @@ exsltStrSplitFunction(xmlXPathParserContextPtr ctxt, int nargs) {
xmlAddChild((xmlNodePtr) container, node);
xmlXPathNodeSetAddUnique(ret->nodesetval, node);
}
- /*
- * Mark it as a function result in order to avoid garbage
- * collecting of tree fragments
- */
- xsltExtensionInstructionResultRegister(tctxt, ret);
}
}
@@ -275,7 +265,10 @@ exsltStrEncodeUriFunction (xmlXPathParserContextPtr ctxt, int nargs) {
str = xmlXPathPopString(ctxt);
str_len = xmlUTF8Strlen(str);
- if (str_len == 0) {
+ if (str_len <= 0) {
+ if (str_len < 0)
+ xsltGenericError(xsltGenericErrorContext,
+ "exsltStrEncodeUriFunction: invalid UTF-8\n");
xmlXPathReturnEmptyString(ctxt);
xmlFree(str);
return;
@@ -320,7 +313,10 @@ exsltStrDecodeUriFunction (xmlXPathParserContextPtr ctxt, int nargs) {
str = xmlXPathPopString(ctxt);
str_len = xmlUTF8Strlen(str);
- if (str_len == 0) {
+ if (str_len <= 0) {
+ if (str_len < 0)
+ xsltGenericError(xsltGenericErrorContext,
+ "exsltStrDecodeUriFunction: invalid UTF-8\n");
xmlXPathReturnEmptyString(ctxt);
xmlFree(str);
return;
@@ -352,7 +348,9 @@ exsltStrDecodeUriFunction (xmlXPathParserContextPtr ctxt, int nargs) {
static void
exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
int number, str_len = 0, str_size = 0;
- xmlChar *str = NULL, *ret = NULL;
+ double floatval;
+ xmlChar *str = NULL;
+ xmlBufferPtr buf;
if ((nargs < 1) || (nargs > 2)) {
xmlXPathSetArityError(ctxt);
@@ -364,14 +362,31 @@ exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
str_len = xmlUTF8Strlen(str);
str_size = xmlStrlen(str);
}
- if (str_len == 0) {
+
+ floatval = xmlXPathPopNumber(ctxt);
+
+ if (str_len <= 0) {
+ if (str_len < 0) {
+ xsltGenericError(xsltGenericErrorContext,
+ "exsltStrPaddingFunction: invalid UTF-8\n");
+ xmlXPathReturnEmptyString(ctxt);
+ xmlFree(str);
+ return;
+ }
if (str != NULL) xmlFree(str);
str = xmlStrdup((const xmlChar *) " ");
str_len = 1;
str_size = 1;
}
- number = (int) xmlXPathPopNumber(ctxt);
+ if (xmlXPathIsNaN(floatval) || floatval < 0.0) {
+ number = 0;
+ } else if (floatval >= 100000.0) {
+ number = 100000;
+ }
+ else {
+ number = (int) floatval;
+ }
if (number <= 0) {
xmlXPathReturnEmptyString(ctxt);
@@ -379,17 +394,26 @@ exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
return;
}
+ buf = xmlBufferCreateSize(number);
+ if (buf == NULL) {
+ xmlXPathSetError(ctxt, XPATH_MEMORY_ERROR);
+ xmlFree(str);
+ return;
+ }
+ xmlBufferSetAllocationScheme(buf, XML_BUFFER_ALLOC_DOUBLEIT);
+
while (number >= str_len) {
- ret = xmlStrncat(ret, str, str_size);
+ xmlBufferAdd(buf, str, str_size);
number -= str_len;
}
if (number > 0) {
str_size = xmlUTF8Strsize(str, number);
- ret = xmlStrncat(ret, str, str_size);
+ xmlBufferAdd(buf, str, str_size);
}
- xmlXPathReturnString(ctxt, ret);
+ xmlXPathReturnString(ctxt, xmlBufferDetach(buf));
+ xmlBufferFree(buf);
if (str != NULL)
xmlFree(str);
}
@@ -422,6 +446,16 @@ exsltStrAlignFunction (xmlXPathParserContextPtr ctxt, int nargs) {
str_l = xmlUTF8Strlen (str);
padding_l = xmlUTF8Strlen (padding);
+ if (str_l < 0 || padding_l < 0) {
+ xsltGenericError(xsltGenericErrorContext,
+ "exsltStrAlignFunction: invalid UTF-8\n");
+ xmlXPathReturnEmptyString(ctxt);
+ xmlFree(str);
+ xmlFree(padding);
+ xmlFree(alignment);
+ return;
+ }
+
if (str_l == padding_l) {
xmlXPathReturnString (ctxt, str);
xmlFree(padding);
@@ -472,7 +506,7 @@ exsltStrAlignFunction (xmlXPathParserContextPtr ctxt, int nargs) {
static void
exsltStrConcatFunction (xmlXPathParserContextPtr ctxt, int nargs) {
xmlXPathObjectPtr obj;
- xmlChar *ret = NULL;
+ xmlBufferPtr buf;
int i;
if (nargs != 1) {
@@ -488,22 +522,32 @@ exsltStrConcatFunction (xmlXPathParserContextPtr ctxt, int nargs) {
obj = valuePop (ctxt);
if (xmlXPathNodeSetIsEmpty(obj->nodesetval)) {
+ xmlXPathFreeObject(obj);
xmlXPathReturnEmptyString(ctxt);
return;
}
+ buf = xmlBufferCreate();
+ if (buf == NULL) {
+ xmlXPathSetError(ctxt, XPATH_MEMORY_ERROR);
+ xmlXPathFreeObject(obj);
+ return;
+ }
+ xmlBufferSetAllocationScheme(buf, XML_BUFFER_ALLOC_DOUBLEIT);
+
for (i = 0; i < obj->nodesetval->nodeNr; i++) {
xmlChar *tmp;
tmp = xmlXPathCastNodeToString(obj->nodesetval->nodeTab[i]);
- ret = xmlStrcat (ret, tmp);
+ xmlBufferCat(buf, tmp);
xmlFree(tmp);
}
xmlXPathFreeObject (obj);
- xmlXPathReturnString(ctxt, ret);
+ xmlXPathReturnString(ctxt, xmlBufferDetach(buf));
+ xmlBufferFree(buf);
}
/**
@@ -543,7 +587,6 @@ exsltStrReturnString(xmlXPathParserContextPtr ctxt, const xmlChar *str,
return(-1);
}
- xsltExtensionInstructionResultRegister(tctxt, ret);
valuePush(ctxt, ret);
return(0);
@@ -680,6 +723,7 @@ exsltStrReplaceFunction (xmlXPathParserContextPtr ctxt, int nargs) {
xmlXPathSetError(ctxt, XPATH_MEMORY_ERROR);
goto fail_buffer;
}
+ xmlBufferSetAllocationScheme(buf, XML_BUFFER_ALLOC_DOUBLEIT);
src = string;
start = string;
@@ -707,7 +751,7 @@ exsltStrReplaceFunction (xmlXPathParserContextPtr ctxt, int nargs) {
start = src;
}
- src += xmlUTF8Size(src);
+ src += xmlUTF8Strsize(src, 1);
}
else {
if ((start < src &&
diff --git a/libxslt.spec b/libxslt.spec
index 7d42eddd..392d7fe6 100644
--- a/libxslt.spec
+++ b/libxslt.spec
@@ -1,6 +1,6 @@
Summary: Library providing the GNOME XSLT engine
Name: libxslt
-Version: 1.1.29
+Version: 1.1.32
Release: 1%{?dist}%{?extra_release}
License: MIT
Group: Development/Libraries
@@ -129,5 +129,5 @@ rm -fr %{buildroot}
%doc python/tests/*.xsl
%changelog
-* Tue May 24 2016 Daniel Veillard <veillard@redhat.com>
-- upstream release 1.1.29 see http://xmlsoft.org/XSLT/news.html
+* Thu Nov 2 2017 Daniel Veillard <veillard@redhat.com>
+- upstream release 1.1.32 see http://xmlsoft.org/XSLT/news.html
diff --git a/libxslt/Makefile.am b/libxslt/Makefile.am
index d9fed686..ef2de24e 100644
--- a/libxslt/Makefile.am
+++ b/libxslt/Makefile.am
@@ -62,7 +62,7 @@ else
LIBXSLT_VERSION_SCRIPT =
endif
-libxslt_la_LIBADD = $(LIBXML_LIBS) $(EXTRA_LIBS)
+libxslt_la_LIBADD = $(LIBXML_LIBS) $(EXTRA_LIBS) $(M_LIBS)
libxslt_la_LDFLAGS = \
$(WIN32_EXTRA_LDFLAGS) \
$(LIBXSLT_VERSION_SCRIPT) \
diff --git a/libxslt/Makefile.in b/libxslt/Makefile.in
index bca66a30..4e193e83 100644
--- a/libxslt/Makefile.in
+++ b/libxslt/Makefile.in
@@ -91,7 +91,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = libxslt
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(xsltinc_HEADERS) \
@@ -131,7 +131,8 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
"$(DESTDIR)$(xsltincdir)" "$(DESTDIR)$(xsltincdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
-libxslt_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+libxslt_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_libxslt_la_OBJECTS = attrvt.lo xslt.lo xsltlocale.lo xsltutils.lo \
pattern.lo templates.lo variables.lo keys.lo numbers.lo \
extensions.lo extra.lo functions.lo namespaces.lo imports.lo \
@@ -286,7 +287,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -303,6 +303,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -312,12 +315,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -336,8 +337,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -449,7 +448,7 @@ nodist_libxslt_la_SOURCES = \
@USE_VERSION_SCRIPT_FALSE@LIBXSLT_VERSION_SCRIPT =
@USE_VERSION_SCRIPT_TRUE@LIBXSLT_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxslt.syms
-libxslt_la_LIBADD = $(LIBXML_LIBS) $(EXTRA_LIBS)
+libxslt_la_LIBADD = $(LIBXML_LIBS) $(EXTRA_LIBS) $(M_LIBS)
libxslt_la_LDFLAGS = \
$(WIN32_EXTRA_LDFLAGS) \
$(LIBXSLT_VERSION_SCRIPT) \
@@ -470,9 +469,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libxslt/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libxslt/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu libxslt/Makefile
+ $(AUTOMAKE) --foreign libxslt/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/libxslt/attributes.c b/libxslt/attributes.c
index 8440b103..5958ef3c 100644
--- a/libxslt/attributes.c
+++ b/libxslt/attributes.c
@@ -55,14 +55,6 @@
#endif
/*
- * TODO: merge attribute sets from different import precedence.
- * all this should be precomputed just before the transformation
- * starts or at first hit with a cache in the context.
- * The simple way for now would be to not allow redefinition of
- * attributes once generated in the output tree, possibly costlier.
- */
-
-/*
* Useful macros
*/
#ifdef IS_BLANK
@@ -75,6 +67,10 @@
#define IS_BLANK_NODE(n) \
(((n)->type == XML_TEXT_NODE) && (xsltIsBlank((n)->content)))
+#define ATTRSET_UNRESOLVED 0
+#define ATTRSET_RESOLVING 1
+#define ATTRSET_RESOLVED 2
+
/*
* The in-memory structure corresponding to an XSLT Attribute in
@@ -87,10 +83,36 @@ typedef xsltAttrElem *xsltAttrElemPtr;
struct _xsltAttrElem {
struct _xsltAttrElem *next;/* chained list */
xmlNodePtr attr; /* the xsl:attribute definition */
- const xmlChar *set; /* or the attribute set */
- const xmlChar *ns; /* and its namespace */
};
+typedef struct _xsltUseAttrSet xsltUseAttrSet;
+typedef xsltUseAttrSet *xsltUseAttrSetPtr;
+struct _xsltUseAttrSet {
+ struct _xsltUseAttrSet *next; /* chained list */
+ const xmlChar *ncname;
+ const xmlChar *ns;
+};
+
+typedef struct _xsltAttrSet xsltAttrSet;
+typedef xsltAttrSet *xsltAttrSetPtr;
+struct _xsltAttrSet {
+ int state;
+ xsltAttrElemPtr attrs; /* list head */
+ xsltUseAttrSetPtr useAttrSets; /* list head */
+};
+
+typedef struct _xsltAttrSetContext xsltAttrSetContext;
+typedef xsltAttrSetContext *xsltAttrSetContextPtr;
+struct _xsltAttrSetContext {
+ xsltStylesheetPtr topStyle;
+ xsltStylesheetPtr style;
+};
+
+static void
+xsltResolveAttrSet(xsltAttrSetPtr set, xsltStylesheetPtr topStyle,
+ xsltStylesheetPtr style, const xmlChar *name,
+ const xmlChar *ns, int depth);
+
/************************************************************************
* *
* XSLT Attribute handling *
@@ -148,11 +170,6 @@ xsltFreeAttrElemList(xsltAttrElemPtr list) {
}
}
-#ifdef XSLT_REFACTORED
- /*
- * This was moved to xsltParseStylesheetAttributeSet().
- */
-#else
/**
* xsltAddAttrElemList:
* @list: an XSLT AttrElem list
@@ -173,9 +190,7 @@ xsltAddAttrElemList(xsltAttrElemPtr list, xmlNodePtr attr) {
cur = list;
while (cur != NULL) {
next = cur->next;
- if (cur->attr == attr)
- return(cur);
- if (cur->next == NULL) {
+ if (next == NULL) {
cur->next = xsltNewAttrElem(attr);
return(list);
}
@@ -183,92 +198,174 @@ xsltAddAttrElemList(xsltAttrElemPtr list, xmlNodePtr attr) {
}
return(list);
}
-#endif /* XSLT_REFACTORED */
/**
- * xsltMergeAttrElemList:
- * @list: an XSLT AttrElem list
- * @old: another XSLT AttrElem list
+ * xsltNewUseAttrSet:
+ * @ncname: local name
+ * @ns: namespace URI
*
- * Add all the attributes from list @old to list @list,
- * but drop redefinition of existing values.
+ * Create a new XSLT UseAttrSet
*
- * Returns the new list pointer
+ * Returns the newly allocated xsltUseAttrSetPtr or NULL in case of error.
*/
-static xsltAttrElemPtr
-xsltMergeAttrElemList(xsltStylesheetPtr style,
- xsltAttrElemPtr list, xsltAttrElemPtr old) {
+static xsltUseAttrSetPtr
+xsltNewUseAttrSet(const xmlChar *ncname, const xmlChar *ns) {
+ xsltUseAttrSetPtr cur;
+
+ cur = (xsltUseAttrSetPtr) xmlMalloc(sizeof(xsltUseAttrSet));
+ if (cur == NULL) {
+ xsltGenericError(xsltGenericErrorContext,
+ "xsltNewUseAttrSet : malloc failed\n");
+ return(NULL);
+ }
+ memset(cur, 0, sizeof(xsltUseAttrSet));
+ cur->ncname = ncname;
+ cur->ns = ns;
+ return(cur);
+}
+
+/**
+ * xsltFreeUseAttrSet:
+ * @use: an XSLT UseAttrSet
+ *
+ * Free up the memory allocated by @use
+ */
+static void
+xsltFreeUseAttrSet(xsltUseAttrSetPtr use) {
+ xmlFree(use);
+}
+
+/**
+ * xsltFreeUseAttrSetList:
+ * @list: an XSLT UseAttrSet list
+ *
+ * Free up the memory allocated by @list
+ */
+static void
+xsltFreeUseAttrSetList(xsltUseAttrSetPtr list) {
+ xsltUseAttrSetPtr next;
+
+ while (list != NULL) {
+ next = list->next;
+ xsltFreeUseAttrSet(list);
+ list = next;
+ }
+}
+
+/**
+ * xsltAddUseAttrSetList:
+ * @list: a xsltUseAttrSet list
+ * @ncname: local name
+ * @ns: namespace URI
+ *
+ * Add the use-attribute-set name to the list.
+ *
+ * Returns the new list pointer.
+ */
+static xsltUseAttrSetPtr
+xsltAddUseAttrSetList(xsltUseAttrSetPtr list, const xmlChar *ncname,
+ const xmlChar *ns) {
+ xsltUseAttrSetPtr next, cur;
+
+ if (ncname == NULL)
+ return(list);
+ if (list == NULL)
+ return(xsltNewUseAttrSet(ncname, ns));
+ cur = list;
+ while (cur != NULL) {
+ if ((cur->ncname == ncname) && (cur->ns == ns))
+ return(list);
+ next = cur->next;
+ if (next == NULL) {
+ cur->next = xsltNewUseAttrSet(ncname, ns);
+ return(list);
+ }
+ cur = next;
+ }
+ return(list);
+}
+
+/**
+ * xsltNewAttrSet:
+ *
+ * Create a new attribute set.
+ *
+ * Returns the newly allocated xsltAttrSetPtr or NULL in case of error.
+ */
+static xsltAttrSetPtr
+xsltNewAttrSet() {
+ xsltAttrSetPtr cur;
+
+ cur = (xsltAttrSetPtr) xmlMalloc(sizeof(xsltAttrSet));
+ if (cur == NULL) {
+ xsltGenericError(xsltGenericErrorContext,
+ "xsltNewAttrSet : malloc failed\n");
+ return(NULL);
+ }
+ memset(cur, 0, sizeof(xsltAttrSet));
+ return(cur);
+}
+
+/**
+ * xsltFreeAttrSet:
+ * @set: an attribute set
+ *
+ * Free memory allocated by @set
+ */
+static void
+xsltFreeAttrSet(xsltAttrSetPtr set) {
+ if (set == NULL)
+ return;
+
+ xsltFreeAttrElemList(set->attrs);
+ xsltFreeUseAttrSetList(set->useAttrSets);
+ xmlFree(set);
+}
+
+/**
+ * xsltMergeAttrSets:
+ * @set: an attribute set
+ * @other: another attribute set
+ *
+ * Add all the attributes from @other to @set,
+ * but drop redefinition of existing values.
+ */
+static void
+xsltMergeAttrSets(xsltAttrSetPtr set, xsltAttrSetPtr other) {
xsltAttrElemPtr cur;
+ xsltAttrElemPtr old = other->attrs;
int add;
while (old != NULL) {
- if ((old->attr == NULL) && (old->set == NULL)) {
- old = old->next;
- continue;
- }
/*
* Check that the attribute is not yet in the list
*/
- cur = list;
+ cur = set->attrs;
add = 1;
while (cur != NULL) {
- if ((cur->attr == NULL) && (cur->set == NULL)) {
- if (cur->next == NULL)
- break;
- cur = cur->next;
- continue;
- }
- if ((cur->set != NULL) && (cur->set == old->set)) {
- add = 0;
- break;
- }
- if (cur->set != NULL) {
- if (cur->next == NULL)
- break;
- cur = cur->next;
- continue;
- }
- if (old->set != NULL) {
- if (cur->next == NULL)
- break;
- cur = cur->next;
- continue;
- }
- if (cur->attr == old->attr) {
- xsltGenericError(xsltGenericErrorContext,
- "xsl:attribute-set : use-attribute-sets recursion detected\n");
- return(list);
- }
+ xsltStylePreCompPtr curComp = cur->attr->psvi;
+ xsltStylePreCompPtr oldComp = old->attr->psvi;
+
+ if ((curComp->name == oldComp->name) &&
+ (curComp->ns == oldComp->ns)) {
+ add = 0;
+ break;
+ }
if (cur->next == NULL)
break;
cur = cur->next;
}
if (add == 1) {
- /*
- * Changed to use the string-dict, rather than duplicating
- * @set and @ns; this fixes bug #340400.
- */
if (cur == NULL) {
- list = xsltNewAttrElem(old->attr);
- if (old->set != NULL) {
- list->set = xmlDictLookup(style->dict, old->set, -1);
- if (old->ns != NULL)
- list->ns = xmlDictLookup(style->dict, old->ns, -1);
- }
+ set->attrs = xsltNewAttrElem(old->attr);
} else if (add) {
cur->next = xsltNewAttrElem(old->attr);
- if (old->set != NULL) {
- cur->next->set = xmlDictLookup(style->dict, old->set, -1);
- if (old->ns != NULL)
- cur->next->ns = xmlDictLookup(style->dict, old->ns, -1);
- }
}
}
old = old->next;
}
- return(list);
}
/************************************************************************
@@ -289,9 +386,10 @@ void
xsltParseStylesheetAttributeSet(xsltStylesheetPtr style, xmlNodePtr cur) {
const xmlChar *ncname;
const xmlChar *prefix;
+ const xmlChar *nsUri = NULL;
xmlChar *value;
xmlNodePtr child;
- xsltAttrElemPtr attrItems;
+ xsltAttrSetPtr set;
if ((cur == NULL) || (style == NULL) || (cur->type != XML_ELEMENT_NODE))
return;
@@ -305,9 +403,29 @@ xsltParseStylesheetAttributeSet(xsltStylesheetPtr style, xmlNodePtr cur) {
return;
}
+ if (xmlValidateQName(value, 0)) {
+ xsltTransformError(NULL, style, cur,
+ "xsl:attribute-set : The name '%s' is not a valid QName.\n",
+ value);
+ style->errors++;
+ xmlFree(value);
+ return;
+ }
+
ncname = xsltSplitQName(style->dict, value, &prefix);
xmlFree(value);
value = NULL;
+ if (prefix != NULL) {
+ xmlNsPtr ns = xmlSearchNs(style->doc, cur, prefix);
+ if (ns == NULL) {
+ xsltTransformError(NULL, style, cur,
+ "xsl:attribute-set : No namespace found for QName '%s:%s'\n",
+ prefix, ncname);
+ style->errors++;
+ return;
+ }
+ nsUri = ns->href;
+ }
if (style->attributeSets == NULL) {
#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
@@ -319,7 +437,13 @@ xsltParseStylesheetAttributeSet(xsltStylesheetPtr style, xmlNodePtr cur) {
if (style->attributeSets == NULL)
return;
- attrItems = xmlHashLookup2(style->attributeSets, ncname, prefix);
+ set = xmlHashLookup2(style->attributeSets, ncname, nsUri);
+ if (set == NULL) {
+ set = xsltNewAttrSet();
+ if (set == NULL)
+ return;
+ xmlHashAddEntry2(style->attributeSets, ncname, nsUri, set);
+ }
/*
* Parse the content. Only xsl:attribute elements are allowed.
@@ -345,71 +469,36 @@ xsltParseStylesheetAttributeSet(xsltStylesheetPtr style, xmlNodePtr cur) {
"xsl:attribute-set : unexpected child xsl:%s\n",
child->name);
} else {
-#ifdef XSLT_REFACTORED
- xsltAttrElemPtr nextAttr, curAttr;
-
- /*
- * Process xsl:attribute
- * ---------------------
- */
-
#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"add attribute to list %s\n", ncname);
#endif
- /*
- * The following was taken over from
- * xsltAddAttrElemList().
- */
- if (attrItems == NULL) {
- attrItems = xsltNewAttrElem(child);
- } else {
- curAttr = attrItems;
- while (curAttr != NULL) {
- nextAttr = curAttr->next;
- if (curAttr->attr == child) {
- /*
- * URGENT TODO: Can somebody explain
- * why attrItems is set to curAttr
- * here? Is this somehow related to
- * avoidance of recursions?
- */
- attrItems = curAttr;
- goto next_child;
- }
- if (curAttr->next == NULL)
- curAttr->next = xsltNewAttrElem(child);
- curAttr = nextAttr;
- }
- }
- /*
- * Parse the xsl:attribute and its content.
- */
- xsltParseAnyXSLTElem(XSLT_CCTXT(style), child);
+ xsltStylePreCompute(style, child);
+ if (child->children != NULL) {
+#ifdef XSLT_REFACTORED
+ xsltParseSequenceConstructor(XSLT_CCTXT(style),
+ child->children);
#else
-#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
- xsltGenericDebug(xsltGenericDebugContext,
- "add attribute to list %s\n", ncname);
-#endif
- /*
- * OLD behaviour:
- */
- attrItems = xsltAddAttrElemList(attrItems, child);
+ xsltParseTemplateContent(style, child);
#endif
+ }
+ if (child->psvi == NULL) {
+ xsltTransformError(NULL, style, child,
+ "xsl:attribute-set : internal error, attribute %s not "
+ "compiled\n", child->name);
+ }
+ else {
+ set->attrs = xsltAddAttrElemList(set->attrs, child);
+ }
}
-#ifdef XSLT_REFACTORED
-next_child:
-#endif
child = child->next;
}
/*
- * Process attribue "use-attribute-sets".
+ * Process attribute "use-attribute-sets".
*/
- /* TODO check recursion */
- value = xmlGetNsProp(cur, (const xmlChar *)"use-attribute-sets",
- NULL);
+ value = xmlGetNsProp(cur, BAD_CAST "use-attribute-sets", NULL);
if (value != NULL) {
const xmlChar *curval, *endval;
curval = value;
@@ -423,21 +512,38 @@ next_child:
if (curval) {
const xmlChar *ncname2 = NULL;
const xmlChar *prefix2 = NULL;
- xsltAttrElemPtr refAttrItems;
+ const xmlChar *nsUri2 = NULL;
#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"xsl:attribute-set : %s adds use %s\n", ncname, curval);
#endif
+
+ if (xmlValidateQName(curval, 0)) {
+ xsltTransformError(NULL, style, cur,
+ "xsl:attribute-set : The name '%s' in "
+ "use-attribute-sets is not a valid QName.\n", curval);
+ style->errors++;
+ xmlFree(value);
+ return;
+ }
+
ncname2 = xsltSplitQName(style->dict, curval, &prefix2);
- refAttrItems = xsltNewAttrElem(NULL);
- if (refAttrItems != NULL) {
- refAttrItems->set = ncname2;
- refAttrItems->ns = prefix2;
- attrItems = xsltMergeAttrElemList(style,
- attrItems, refAttrItems);
- xsltFreeAttrElem(refAttrItems);
- }
+ if (prefix2 != NULL) {
+ xmlNsPtr ns2 = xmlSearchNs(style->doc, cur, prefix2);
+ if (ns2 == NULL) {
+ xsltTransformError(NULL, style, cur,
+ "xsl:attribute-set : No namespace found for QName "
+ "'%s:%s' in use-attribute-sets\n",
+ prefix2, ncname2);
+ style->errors++;
+ xmlFree(value);
+ return;
+ }
+ nsUri2 = ns2->href;
+ }
+ set->useAttrSets = xsltAddUseAttrSetList(set->useAttrSets,
+ ncname2, nsUri2);
}
curval = endval;
}
@@ -445,15 +551,6 @@ next_child:
value = NULL;
}
- /*
- * Update the value
- */
- /*
- * TODO: Why is this dummy entry needed.?
- */
- if (attrItems == NULL)
- attrItems = xsltNewAttrElem(NULL);
- xmlHashUpdateEntry2(style->attributeSets, ncname, prefix, attrItems, NULL);
#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"updated attribute list %s\n", ncname);
@@ -461,143 +558,141 @@ next_child:
}
/**
- * xsltGetSAS:
- * @style: the XSLT stylesheet
- * @name: the attribute list name
- * @ns: the attribute list namespace
+ * xsltResolveUseAttrSets:
+ * @set: the attribute set
+ * @asctx: the context for attribute set resolution
+ * @depth: recursion depth
*
- * lookup an attribute set based on the style cascade
- *
- * Returns the attribute set or NULL
+ * Process "use-attribute-sets".
*/
-static xsltAttrElemPtr
-xsltGetSAS(xsltStylesheetPtr style, const xmlChar *name, const xmlChar *ns) {
- xsltAttrElemPtr values;
-
- while (style != NULL) {
- values = xmlHashLookup2(style->attributeSets, name, ns);
- if (values != NULL)
- return(values);
- style = xsltNextImport(style);
+static void
+xsltResolveUseAttrSets(xsltAttrSetPtr set, xsltStylesheetPtr topStyle,
+ int depth) {
+ xsltStylesheetPtr cur;
+ xsltAttrSetPtr other;
+ xsltUseAttrSetPtr use = set->useAttrSets;
+ xsltUseAttrSetPtr next;
+
+ while (use != NULL) {
+ /*
+ * Iterate top stylesheet and all imports.
+ */
+ cur = topStyle;
+ while (cur != NULL) {
+ if (cur->attributeSets) {
+ other = xmlHashLookup2(cur->attributeSets, use->ncname,
+ use->ns);
+ if (other != NULL) {
+ xsltResolveAttrSet(other, topStyle, cur, use->ncname,
+ use->ns, depth + 1);
+ xsltMergeAttrSets(set, other);
+ break;
+ }
+ }
+ cur = xsltNextImport(cur);
+ }
+
+ next = use->next;
+ /* Free useAttrSets early. */
+ xsltFreeUseAttrSet(use);
+ use = next;
}
- return(NULL);
+
+ set->useAttrSets = NULL;
}
/**
- * xsltResolveSASCallbackInt:
- * @style: the XSLT stylesheet
+ * xsltResolveAttrSet:
+ * @set: the attribute set
+ * @asctx: the context for attribute set resolution
+ * @name: the local name of the attirbute set
+ * @ns: the namespace of the attribute set
+ * @depth: recursion depth
*
* resolve the references in an attribute set.
*/
static void
-xsltResolveSASCallbackInt(xsltAttrElemPtr values, xsltStylesheetPtr style,
- const xmlChar *name, const xmlChar *ns,
- int depth) {
- xsltAttrElemPtr tmp;
- xsltAttrElemPtr refs;
+xsltResolveAttrSet(xsltAttrSetPtr set, xsltStylesheetPtr topStyle,
+ xsltStylesheetPtr style, const xmlChar *name,
+ const xmlChar *ns, int depth) {
+ xsltStylesheetPtr cur;
+ xsltAttrSetPtr other;
- tmp = values;
- if ((name == NULL) || (name[0] == 0))
+ if (set->state == ATTRSET_RESOLVED)
+ return;
+ if (set->state == ATTRSET_RESOLVING) {
+ xsltTransformError(NULL, topStyle, NULL,
+ "xsl:attribute-set : use-attribute-sets recursion detected"
+ " on %s\n", name);
+ topStyle->errors++;
+ set->state = ATTRSET_RESOLVED;
return;
+ }
if (depth > 100) {
- xsltGenericError(xsltGenericErrorContext,
- "xsl:attribute-set : use-attribute-sets recursion detected on %s\n",
- name);
+ xsltTransformError(NULL, topStyle, NULL,
+ "xsl:attribute-set : use-attribute-sets maximum recursion "
+ "depth exceeded on %s\n", name);
+ topStyle->errors++;
return;
}
- while (tmp != NULL) {
- if (tmp->set != NULL) {
- /*
- * Check against cycles !
- */
- if ((xmlStrEqual(name, tmp->set)) && (xmlStrEqual(ns, tmp->ns))) {
- xsltGenericError(xsltGenericErrorContext,
- "xsl:attribute-set : use-attribute-sets recursion detected on %s\n",
- name);
- } else {
+
+ set->state = ATTRSET_RESOLVING;
+
+ xsltResolveUseAttrSets(set, topStyle, depth);
+
+ /* Merge imported sets. */
+ cur = xsltNextImport(style);
+ while (cur != NULL) {
+ if (cur->attributeSets != NULL) {
+ other = xmlHashLookup2(cur->attributeSets, name, ns);
+
+ if (other != NULL) {
#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
- xsltGenericDebug(xsltGenericDebugContext,
- "Importing attribute list %s\n", tmp->set);
+ xsltGenericDebug(xsltGenericDebugContext,
+ "xsl:attribute-set : merging import for %s\n", name);
#endif
+ xsltResolveUseAttrSets(other, topStyle, depth);
+ xsltMergeAttrSets(set, other);
+ xmlHashRemoveEntry2(cur->attributeSets, name, ns, NULL);
+ xsltFreeAttrSet(other);
+ }
+ }
- refs = xsltGetSAS(style, tmp->set, tmp->ns);
- if (refs == NULL) {
- xsltGenericError(xsltGenericErrorContext,
- "xsl:attribute-set : use-attribute-sets %s reference missing %s\n",
- name, tmp->set);
- } else {
- /*
- * recurse first for cleanup
- */
- xsltResolveSASCallbackInt(refs, style, name, ns, depth + 1);
- /*
- * Then merge
- */
- xsltMergeAttrElemList(style, values, refs);
- /*
- * Then suppress the reference
- */
- tmp->set = NULL;
- tmp->ns = NULL;
- }
- }
- }
- tmp = tmp->next;
+ cur = xsltNextImport(cur);
}
+
+ set->state = ATTRSET_RESOLVED;
}
/**
- * xsltResolveSASCallback,:
- * @style: the XSLT stylesheet
+ * xsltResolveSASCallback:
+ * @set: the attribute set
+ * @asctx: the context for attribute set resolution
+ * @name: the local name of the attirbute set
+ * @ns: the namespace of the attribute set
*
* resolve the references in an attribute set.
*/
static void
-xsltResolveSASCallback(xsltAttrElemPtr values, xsltStylesheetPtr style,
+xsltResolveSASCallback(xsltAttrSetPtr set, xsltAttrSetContextPtr asctx,
const xmlChar *name, const xmlChar *ns,
ATTRIBUTE_UNUSED const xmlChar *ignored) {
- xsltResolveSASCallbackInt(values, style, name, ns, 1);
-}
+ xsltStylesheetPtr topStyle = asctx->topStyle;
+ xsltStylesheetPtr style = asctx->style;
-/**
- * xsltMergeSASCallback,:
- * @style: the XSLT stylesheet
- *
- * Merge an attribute set from an imported stylesheet.
- */
-static void
-xsltMergeSASCallback(xsltAttrElemPtr values, xsltStylesheetPtr style,
- const xmlChar *name, const xmlChar *ns,
- ATTRIBUTE_UNUSED const xmlChar *ignored) {
- int ret;
- xsltAttrElemPtr topSet;
+ xsltResolveAttrSet(set, topStyle, style, name, ns, 1);
- ret = xmlHashAddEntry2(style->attributeSets, name, ns, values);
- if (ret < 0) {
- /*
- * Add failed, this attribute set can be removed.
- */
-#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
- xsltGenericDebug(xsltGenericDebugContext,
- "attribute set %s present already in top stylesheet"
- " - merging\n", name);
-#endif
- topSet = xmlHashLookup2(style->attributeSets, name, ns);
- if (topSet==NULL) {
+ /* Move attribute sets to top stylesheet. */
+ if (style != topStyle) {
+ /*
+ * This imported stylesheet won't be visited anymore. Don't bother
+ * removing the hash entry.
+ */
+ if (xmlHashAddEntry2(topStyle->attributeSets, name, ns, set) < 0) {
xsltGenericError(xsltGenericErrorContext,
- "xsl:attribute-set : logic error merging from imports for"
- " attribute-set %s\n", name);
- } else {
- topSet = xsltMergeAttrElemList(style, topSet, values);
- xmlHashUpdateEntry2(style->attributeSets, name, ns, topSet, NULL);
- }
- xsltFreeAttrElemList(values);
-#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
- } else {
- xsltGenericDebug(xsltGenericDebugContext,
- "attribute set %s moved to top stylesheet\n",
- name);
-#endif
+ "xsl:attribute-set : internal error, can't move imported "
+ " attribute set %s\n", name);
+ }
}
}
@@ -610,15 +705,14 @@ xsltMergeSASCallback(xsltAttrElemPtr values, xsltStylesheetPtr style,
void
xsltResolveStylesheetAttributeSet(xsltStylesheetPtr style) {
xsltStylesheetPtr cur;
+ xsltAttrSetContext asctx;
#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"Resolving attribute sets references\n");
#endif
- /*
- * First aggregate all the attribute sets definitions from the imports
- */
- cur = xsltNextImport(style);
+ asctx.topStyle = style;
+ cur = style;
while (cur != NULL) {
if (cur->attributeSets != NULL) {
if (style->attributeSets == NULL) {
@@ -628,43 +722,37 @@ xsltResolveStylesheetAttributeSet(xsltStylesheetPtr style) {
#endif
style->attributeSets = xmlHashCreate(10);
}
+ asctx.style = cur;
xmlHashScanFull(cur->attributeSets,
- (xmlHashScannerFull) xsltMergeSASCallback, style);
- /*
- * the attribute lists have either been migrated to style
- * or freed directly in xsltMergeSASCallback()
- */
- xmlHashFree(cur->attributeSets, NULL);
- cur->attributeSets = NULL;
+ (xmlHashScannerFull) xsltResolveSASCallback, &asctx);
+
+ if (cur != style) {
+ /*
+ * the attribute lists have either been migrated to style
+ * or freed directly in xsltResolveSASCallback()
+ */
+ xmlHashFree(cur->attributeSets, NULL);
+ cur->attributeSets = NULL;
+ }
}
cur = xsltNextImport(cur);
}
-
- /*
- * Then resolve all the references and computes the resulting sets
- */
- if (style->attributeSets != NULL) {
- xmlHashScanFull(style->attributeSets,
- (xmlHashScannerFull) xsltResolveSASCallback, style);
- }
}
/**
- * xsltAttributeInternal:
+ * xsltAttribute:
* @ctxt: a XSLT process context
- * @node: the current node in the source tree
+ * @contextNode: the current node in the source tree
* @inst: the xsl:attribute element
- * @comp: precomputed information
- * @fromAttributeSet: the attribute comes from an attribute-set
+ * @castedComp: precomputed information
*
* Process the xslt attribute node on the source node
*/
-static void
-xsltAttributeInternal(xsltTransformContextPtr ctxt,
- xmlNodePtr contextNode,
- xmlNodePtr inst,
- xsltStylePreCompPtr castedComp,
- int fromAttributeSet)
+void
+xsltAttribute(xsltTransformContextPtr ctxt,
+ xmlNodePtr contextNode,
+ xmlNodePtr inst,
+ xsltStylePreCompPtr castedComp)
{
#ifdef XSLT_REFACTORED
xsltStyleItemAttributePtr comp =
@@ -704,7 +792,7 @@ xsltAttributeInternal(xsltTransformContextPtr ctxt,
if (comp == NULL) {
xsltTransformError(ctxt, NULL, inst,
- "Internal error in xsltAttributeInternal(): "
+ "Internal error in xsltAttribute(): "
"The XSLT 'attribute' instruction was not compiled.\n");
return;
}
@@ -869,19 +957,6 @@ xsltAttributeInternal(xsltTransformContextPtr ctxt,
nsName = ns->href;
}
- if (fromAttributeSet) {
- /*
- * This tries to ensure that xsl:attribute(s) coming
- * from an xsl:attribute-set won't override attribute of
- * literal result elements or of explicit xsl:attribute(s).
- * URGENT TODO: This might be buggy, since it will miss to
- * overwrite two equal attributes both from attribute sets.
- */
- attr = xmlHasNsProp(targetElem, name, nsName);
- if (attr != NULL)
- return;
- }
-
/*
* Find/create a matching ns-decl in the result tree.
*/
@@ -1032,21 +1107,6 @@ error:
}
/**
- * xsltAttribute:
- * @ctxt: a XSLT process context
- * @node: the node in the source tree.
- * @inst: the xslt attribute node
- * @comp: precomputed information
- *
- * Process the xslt attribute node on the source node
- */
-void
-xsltAttribute(xsltTransformContextPtr ctxt, xmlNodePtr node,
- xmlNodePtr inst, xsltStylePreCompPtr comp) {
- xsltAttributeInternal(ctxt, node, inst, comp, 0);
-}
-
-/**
* xsltApplyAttributeSet:
* @ctxt: the XSLT stylesheet
* @node: the node in the source tree.
@@ -1066,7 +1126,7 @@ xsltApplyAttributeSet(xsltTransformContextPtr ctxt, xmlNodePtr node,
const xmlChar *ncname = NULL;
const xmlChar *prefix = NULL;
const xmlChar *curstr, *endstr;
- xsltAttrElemPtr attrs;
+ xsltAttrSetPtr set;
xsltStylesheetPtr style;
if (attrSets == NULL) {
@@ -1103,15 +1163,32 @@ xsltApplyAttributeSet(xsltTransformContextPtr ctxt, xmlNodePtr node,
endstr++;
curstr = xmlDictLookup(ctxt->dict, curstr, endstr - curstr);
if (curstr) {
- /*
- * TODO: Validate the QName.
- */
+ xmlNsPtr ns;
+ const xmlChar *nsUri = NULL;
-#ifdef WITH_XSLT_DEBUG_curstrUTES
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
- "apply curstrute set %s\n", curstr);
+ "apply attribute set %s\n", curstr);
#endif
+
+ if (xmlValidateQName(curstr, 0)) {
+ xsltTransformError(ctxt, NULL, inst,
+ "The name '%s' in use-attribute-sets is not a valid "
+ "QName.\n", curstr);
+ return;
+ }
+
ncname = xsltSplitQName(ctxt->dict, curstr, &prefix);
+ if (prefix != NULL) {
+ ns = xmlSearchNs(inst->doc, inst, prefix);
+ if (ns == NULL) {
+ xsltTransformError(ctxt, NULL, inst,
+ "use-attribute-set : No namespace found for QName "
+ "'%s:%s'\n", prefix, ncname);
+ return;
+ }
+ nsUri = ns->href;
+ }
style = ctxt->style;
@@ -1120,27 +1197,28 @@ xsltApplyAttributeSet(xsltTransformContextPtr ctxt, xmlNodePtr node,
(style->attributeSets != NULL) &&
(ctxt->debugStatus != XSLT_DEBUG_NONE))
{
- attrs =
- xmlHashLookup2(style->attributeSets, ncname, prefix);
- if ((attrs != NULL) && (attrs->attr != NULL))
- xslHandleDebugger(attrs->attr->parent, node, NULL,
+ set = xmlHashLookup2(style->attributeSets, ncname, nsUri);
+ if ((set != NULL) && (set->attrs != NULL) &&
+ (set->attrs->attr != NULL))
+ xslHandleDebugger(set->attrs->attr->parent, node, NULL,
ctxt);
}
#endif
/*
- * Lookup the referenced curstrute-set.
+ * Lookup the referenced attribute-set. All attribute sets were
+ * moved to the top stylesheet so there's no need to iterate
+ * imported stylesheets
*/
- while (style != NULL) {
- attrs =
- xmlHashLookup2(style->attributeSets, ncname, prefix);
- while (attrs != NULL) {
- if (attrs->attr != NULL) {
- xsltAttributeInternal(ctxt, node, attrs->attr,
- attrs->attr->psvi, 1);
+ set = xmlHashLookup2(style->attributeSets, ncname, nsUri);
+ if (set != NULL) {
+ xsltAttrElemPtr cur = set->attrs;
+ while (cur != NULL) {
+ if (cur->attr != NULL) {
+ xsltAttribute(ctxt, node, cur->attr,
+ cur->attr->psvi);
}
- attrs = attrs->next;
+ cur = cur->next;
}
- style = xsltNextImport(style);
}
}
curstr = endstr;
@@ -1157,6 +1235,6 @@ void
xsltFreeAttributeSetsHashes(xsltStylesheetPtr style) {
if (style->attributeSets != NULL)
xmlHashFree((xmlHashTablePtr) style->attributeSets,
- (xmlHashDeallocator) xsltFreeAttrElemList);
+ (xmlHashDeallocator) xsltFreeAttrSet);
style->attributeSets = NULL;
}
diff --git a/libxslt/extensions.c b/libxslt/extensions.c
index ae6eef08..ed02de51 100644
--- a/libxslt/extensions.c
+++ b/libxslt/extensions.c
@@ -389,8 +389,7 @@ xsltExtModuleRegisterDynamic(const xmlChar * URI)
/* build the module filename, and confirm the module exists */
xmlStrPrintf((xmlChar *) module_filename, sizeof(module_filename),
- BAD_CAST "%s/%s%s",
- ext_directory, ext_name, LIBXML_MODULE_EXTENSION);
+ "%s/%s%s", ext_directory, ext_name, LIBXML_MODULE_EXTENSION);
#ifdef WITH_XSLT_DEBUG_EXTENSIONS
xsltGenericDebug(xsltGenericDebugContext,
diff --git a/libxslt/extra.c b/libxslt/extra.c
index 17df4bae..2be0eec5 100644
--- a/libxslt/extra.c
+++ b/libxslt/extra.c
@@ -14,9 +14,6 @@
#include "libxslt.h"
#include <string.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
@@ -99,7 +96,10 @@ xsltDebug(xsltTransformContextPtr ctxt, xmlNodePtr node ATTRIBUTE_UNUSED,
xsltGenericError(xsltGenericErrorContext, "noname !!!!");
#ifdef LIBXML_DEBUG_ENABLED
if (cur->value != NULL) {
- xmlXPathDebugDumpObject(stdout, cur->value, 1);
+ if ((xsltGenericDebugContext == stdout) ||
+ (xsltGenericDebugContext == stderr))
+ xmlXPathDebugDumpObject((FILE*)xsltGenericDebugContext,
+ cur->value, 1);
} else {
xsltGenericError(xsltGenericErrorContext, "NULL !!!!");
}
@@ -148,134 +148,6 @@ xsltFunctionNodeSet(xmlXPathParserContextPtr ctxt, int nargs){
}
}
-
-/*
- * Okay the following really seems unportable and since it's not
- * part of any standard I'm not too ashamed to do this
- */
-#if defined(linux) || defined(__sun)
-#if defined(HAVE_MKTIME) && defined(HAVE_LOCALTIME) && defined(HAVE_ASCTIME)
-#define WITH_LOCALTIME
-
-/**
- * xsltFunctionLocalTime:
- * @ctxt: the XPath Parser context
- * @nargs: the number of arguments
- *
- * Implement the localTime XSLT function used by NORM
- * string localTime(???)
- *
- * This function is available in Norm's extension namespace
- * Code (and comments) contributed by Norm
- */
-static void
-xsltFunctionLocalTime(xmlXPathParserContextPtr ctxt, int nargs) {
- xmlXPathObjectPtr obj;
- char *str;
- char digits[5];
- char result[29];
- long int field;
- time_t gmt, lmt;
- struct tm gmt_tm;
- struct tm *local_tm;
-
- if (nargs != 1) {
- xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
- "localTime() : invalid number of args %d\n", nargs);
- ctxt->error = XPATH_INVALID_ARITY;
- return;
- }
-
- obj = valuePop(ctxt);
-
- if (obj->type != XPATH_STRING) {
- obj = xmlXPathConvertString(obj);
- }
- if (obj == NULL) {
- valuePush(ctxt, xmlXPathNewString((const xmlChar *)""));
- return;
- }
-
- str = (char *) obj->stringval;
-
- /* str = "$Date$" */
- memset(digits, 0, sizeof(digits));
- strncpy(digits, str+7, 4);
- field = strtol(digits, NULL, 10);
- gmt_tm.tm_year = field - 1900;
-
- memset(digits, 0, sizeof(digits));
- strncpy(digits, str+12, 2);
- field = strtol(digits, NULL, 10);
- gmt_tm.tm_mon = field - 1;
-
- memset(digits, 0, sizeof(digits));
- strncpy(digits, str+15, 2);
- field = strtol(digits, NULL, 10);
- gmt_tm.tm_mday = field;
-
- memset(digits, 0, sizeof(digits));
- strncpy(digits, str+18, 2);
- field = strtol(digits, NULL, 10);
- gmt_tm.tm_hour = field;
-
- memset(digits, 0, sizeof(digits));
- strncpy(digits, str+21, 2);
- field = strtol(digits, NULL, 10);
- gmt_tm.tm_min = field;
-
- memset(digits, 0, sizeof(digits));
- strncpy(digits, str+24, 2);
- field = strtol(digits, NULL, 10);
- gmt_tm.tm_sec = field;
-
- /* Now turn gmt_tm into a time. */
- gmt = mktime(&gmt_tm);
-
-
- /*
- * FIXME: it's been too long since I did manual memory management.
- * (I swore never to do it again.) Does this introduce a memory leak?
- */
- local_tm = localtime(&gmt);
-
- /*
- * Calling localtime() has the side-effect of setting timezone.
- * After we know the timezone, we can adjust for it
- */
-#if !defined(__FreeBSD__)
- lmt = gmt - timezone;
-#else /* FreeBSD DOESN'T have such side-ffect */
- lmt = gmt - local_tm->tm_gmtoff;
-#endif
- /*
- * FIXME: it's been too long since I did manual memory management.
- * (I swore never to do it again.) Does this introduce a memory leak?
- */
- local_tm = localtime(&lmt);
-
- /*
- * Now convert local_tm back into a string. This doesn't introduce
- * a memory leak, so says asctime(3).
- */
-
- str = asctime(local_tm); /* "Tue Jun 26 05:02:16 2001" */
- /* 0123456789 123456789 123 */
-
- memset(result, 0, sizeof(result)); /* "Thu, 26 Jun 2001" */
- /* 0123456789 12345 */
-
- strncpy(result, str, 20);
- strcpy(result+20, "???"); /* tzname doesn't work, fake it */
- strncpy(result+23, str+19, 5);
-
- /* Ok, now result contains the string I want to send back. */
- valuePush(ctxt, xmlXPathNewString((xmlChar *)result));
-}
-#endif
-#endif /* linux or sun */
-
-
/**
* xsltRegisterExtras:
* @ctxt: a XSLT process context
@@ -304,11 +176,6 @@ xsltRegisterAllExtras (void) {
xsltRegisterExtModuleFunction((const xmlChar *) "node-set",
XSLT_XT_NAMESPACE,
xsltFunctionNodeSet);
-#ifdef WITH_LOCALTIME
- xsltRegisterExtModuleFunction((const xmlChar *) "localTime",
- XSLT_NORM_SAXON_NAMESPACE,
- xsltFunctionLocalTime);
-#endif
xsltRegisterExtModuleElement((const xmlChar *) "debug",
XSLT_LIBXSLT_NAMESPACE,
NULL,
diff --git a/libxslt/extra.h b/libxslt/extra.h
index 6929e3c6..1b36d568 100644
--- a/libxslt/extra.h
+++ b/libxslt/extra.h
@@ -48,14 +48,6 @@ extern "C" {
#define XSLT_XALAN_NAMESPACE ((xmlChar *) \
"org.apache.xalan.xslt.extensions.Redirect")
-/**
- * XSLT_NORM_SAXON_NAMESPACE:
- *
- * This is Norm's namespace for SAXON extensions.
- */
-#define XSLT_NORM_SAXON_NAMESPACE ((xmlChar *) \
- "http://nwalsh.com/xslt/ext/com.nwalsh.saxon.CVS")
-
XSLTPUBFUN void XSLTCALL
xsltFunctionNodeSet (xmlXPathParserContextPtr ctxt,
diff --git a/libxslt/functions.c b/libxslt/functions.c
index a5e70210..43d82f6d 100644
--- a/libxslt/functions.c
+++ b/libxslt/functions.c
@@ -603,12 +603,15 @@ xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs)
xmlXPathObjectPtr formatObj = NULL;
xmlXPathObjectPtr decimalObj = NULL;
xsltStylesheetPtr sheet;
- xsltDecimalFormatPtr formatValues;
+ xsltDecimalFormatPtr formatValues = NULL;
xmlChar *result;
+ const xmlChar *ncname;
+ const xmlChar *prefix = NULL;
+ const xmlChar *nsUri = NULL;
xsltTransformContextPtr tctxt;
tctxt = xsltXPathGetTransformContext(ctxt);
- if (tctxt == NULL)
+ if ((tctxt == NULL) || (tctxt->inst == NULL))
return;
sheet = tctxt->style;
if (sheet == NULL)
@@ -619,7 +622,23 @@ xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs)
case 3:
CAST_TO_STRING;
decimalObj = valuePop(ctxt);
- formatValues = xsltDecimalFormatGetByName(sheet, decimalObj->stringval);
+ ncname = xsltSplitQName(sheet->dict, decimalObj->stringval, &prefix);
+ if (prefix != NULL) {
+ xmlNsPtr ns = xmlSearchNs(tctxt->inst->doc, tctxt->inst, prefix);
+ if (ns == NULL) {
+ xsltTransformError(tctxt, NULL, NULL,
+ "format-number : No namespace found for QName '%s:%s'\n",
+ prefix, ncname);
+ sheet->errors++;
+ ncname = NULL;
+ }
+ else {
+ nsUri = ns->href;
+ }
+ }
+ if (ncname != NULL) {
+ formatValues = xsltDecimalFormatGetByQName(sheet, nsUri, ncname);
+ }
if (formatValues == NULL) {
xsltTransformError(tctxt, NULL, NULL,
"format-number() : undeclared decimal format '%s'\n",
@@ -835,7 +854,7 @@ xsltElementAvailableFunction(xmlXPathParserContextPtr ctxt, int nargs){
}
obj = valuePop(ctxt);
tctxt = xsltXPathGetTransformContext(ctxt);
- if (tctxt == NULL) {
+ if ((tctxt == NULL) || (tctxt->inst == NULL)) {
xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
"element-available() : internal error tctxt == NULL\n");
xmlXPathFreeObject(obj);
@@ -850,7 +869,7 @@ xsltElementAvailableFunction(xmlXPathParserContextPtr ctxt, int nargs){
name = xmlStrdup(obj->stringval);
ns = xmlSearchNs(tctxt->inst->doc, tctxt->inst, NULL);
- if (ns != NULL) nsURI = xmlStrdup(ns->href);
+ if (ns != NULL) nsURI = ns->href;
} else {
nsURI = xmlXPathNsLookup(ctxt->context, prefix);
if (nsURI == NULL) {
diff --git a/libxslt/keys.c b/libxslt/keys.c
index 43a343eb..85902b0d 100644
--- a/libxslt/keys.c
+++ b/libxslt/keys.c
@@ -402,10 +402,13 @@ xsltAddKey(xsltStylesheetPtr style, const xmlChar *name,
prev->next = key;
}
key->next = NULL;
+ key = NULL;
error:
if (pattern != NULL)
xmlFree(pattern);
+ if (key != NULL)
+ xsltFreeKeyDef(key);
return(0);
}
diff --git a/libxslt/libxslt.h b/libxslt/libxslt.h
index e6d4c831..5e98158e 100644
--- a/libxslt/libxslt.h
+++ b/libxslt/libxslt.h
@@ -10,7 +10,7 @@
#ifndef __XSLT_LIBXSLT_H__
#define __XSLT_LIBXSLT_H__
-#if defined(WIN32) && !defined (__CYGWIN__) && !defined (__MINGW32__)
+#if defined(_WIN32) && !defined (__CYGWIN__) && !defined (__MINGW32__)
#include <win32config.h>
#else
#include "config.h"
diff --git a/libxslt/libxslt.syms b/libxslt/libxslt.syms
index 3d9b5c6d..684cd1bd 100644
--- a/libxslt/libxslt.syms
+++ b/libxslt/libxslt.syms
@@ -107,7 +107,7 @@ LIBXML2_1.0.11 {
xsltFreeCompMatchList;
xsltFreeTemplateHashes;
xsltGetTemplate;
- xsltMatchPattern;
+# xsltMatchPattern; removed in 1.0.12
xsltTestCompMatchList;
# preproc
@@ -210,6 +210,9 @@ LIBXML2_1.0.11 {
# xslt
xsltCleanupGlobals;
+
+ local:
+ *;
} ;
LIBXML2_1.0.12 {
@@ -407,7 +410,7 @@ LIBXML2_1.1.18 {
global:
# xsltInternals
- xsltConstNamespaceNameXSLT; # variable
+# xsltConstNamespaceNameXSLT; requires switch REFACTORED
xsltExtensionInstructionResultFinalize;
xsltExtensionInstructionResultRegister;
xsltInitCtxtKey;
@@ -416,24 +419,24 @@ LIBXML2_1.1.18 {
xsltInit;
# xsltInternals
- xsltParseAnyXSLTElem;
- xsltParseSequenceConstructor;
- xsltPointerListAddSize;
- xsltPointerListClear;
- xsltPointerListCreate;
- xsltPointerListFree;
+# xsltParseAnyXSLTElem; requires switch REFACTORED
+# xsltParseSequenceConstructor; requires switch REFACTORED
+# xsltPointerListAddSize; requires switch REFACTORED
+# xsltPointerListClear; requires switch REFACTORED
+# xsltPointerListCreate; requires switch REFACTORED
+# xsltPointerListFree; requires switch REFACTORED
xsltRegisterLocalRVT;
xsltReleaseRVT;
- xsltRestoreDocumentNamespaces;
+# xsltRestoreDocumentNamespaces; requires switch REFACTORED
# extensions
- xsltStyleStylesheetLevelGetExtData;
+# xsltStyleStylesheetLevelGetExtData; requires switch REFACTORED
# xsltInternals
# xsltTransStorageAdd; removed in 1.1.28
# xsltTransStorageRemove; removed in 1.1.28
xsltUninit;
- xsltXSLTAttrMarker; # variable
+# xsltXSLTAttrMarker; requires switch REFACTORED
} LIBXML2_1.1.9;
LIBXML2_1.1.20 {
@@ -488,3 +491,11 @@ LIBXML2_1.1.27 {
xsltXPathCompileFlags;
} LIBXML2_1.1.26;
+LIBXML2_1.1.30 {
+ global:
+
+# xsltInternals
+ xsltFlagRVTs;
+ xsltDecimalFormatGetByQName;
+} LIBXML2_1.1.27;
+
diff --git a/libxslt/numbers.c b/libxslt/numbers.c
index e769c42b..24a11575 100644
--- a/libxslt/numbers.c
+++ b/libxslt/numbers.c
@@ -65,40 +65,12 @@ static xsltFormatToken default_token;
/*
* **** Start temp insert ****
*
- * The following two routines (xsltUTF8Size and xsltUTF8Charcmp)
- * will be replaced with calls to the corresponding libxml routines
- * at a later date (when other inter-library dependencies require it)
+ * The following routine xsltUTF8Charcmp will be replaced with calls to
+ * the corresponding libxml routine at a later date (when other
+ * inter-library dependencies require it).
*/
/**
- * xsltUTF8Size:
- * @utf: pointer to the UTF8 character
- *
- * returns the numbers of bytes in the character, -1 on format error
- */
-static int
-xsltUTF8Size(xmlChar *utf) {
- xmlChar mask;
- int len;
-
- if (utf == NULL)
- return -1;
- if (*utf < 0x80)
- return 1;
- /* check valid UTF8 character */
- if (!(*utf & 0x40))
- return -1;
- /* determine number of bytes in char */
- len = 2;
- for (mask=0x20; mask != 0; mask>>=1) {
- if (!(*utf & mask))
- return len;
- len++;
- }
- return -1;
-}
-
-/**
* xsltUTF8Charcmp
* @utf1: pointer to first UTF8 char
* @utf2: pointer to second UTF8 char
@@ -108,13 +80,16 @@ xsltUTF8Size(xmlChar *utf) {
*/
static int
xsltUTF8Charcmp(xmlChar *utf1, xmlChar *utf2) {
+ int len = xmlUTF8Strsize(utf1, 1);
+ if (len < 1)
+ return -1;
if (utf1 == NULL ) {
if (utf2 == NULL)
return 0;
return -1;
}
- return xmlStrncmp(utf1, utf2, xsltUTF8Size(utf1));
+ return xmlStrncmp(utf1, utf2, len);
}
/***** Stop temp insert *****/
@@ -222,7 +197,7 @@ xsltNumberFormatDecimal(xmlBufferPtr buffer,
}
if (i < 0)
xsltGenericError(xsltGenericErrorContext,
- "xsltNumberFormatDecimal: Internal buffer size exceeded");
+ "xsltNumberFormatDecimal: Internal buffer size exceeded\n");
xmlBufferCat(buffer, pointer);
}
@@ -616,25 +591,7 @@ xsltNumberFormatGetAnyLevel(xsltTransformContextPtr context,
{
int amount = 0;
int cnt = 0;
- xmlNodePtr cur;
-
- /* select the starting node */
- switch (node->type) {
- case XML_ELEMENT_NODE:
- cur = node;
- break;
- case XML_ATTRIBUTE_NODE:
- cur = ((xmlAttrPtr) node)->parent;
- break;
- case XML_TEXT_NODE:
- case XML_PI_NODE:
- case XML_COMMENT_NODE:
- cur = node->parent;
- break;
- default:
- cur = NULL;
- break;
- }
+ xmlNodePtr cur = node;
while (cur != NULL) {
/* process current node */
@@ -653,16 +610,25 @@ xsltNumberFormatGetAnyLevel(xsltTransformContextPtr context,
(cur->type == XML_HTML_DOCUMENT_NODE))
break; /* while */
- while ((cur->prev != NULL) && ((cur->prev->type == XML_DTD_NODE) ||
- (cur->prev->type == XML_XINCLUDE_START) ||
- (cur->prev->type == XML_XINCLUDE_END)))
- cur = cur->prev;
- if (cur->prev != NULL) {
- for (cur = cur->prev; cur->last != NULL; cur = cur->last);
- } else {
- cur = cur->parent;
- }
-
+ if (cur->type == XML_NAMESPACE_DECL) {
+ /*
+ * The XPath module stores the parent of a namespace node in
+ * the ns->next field.
+ */
+ cur = (xmlNodePtr) ((xmlNsPtr) cur)->next;
+ } else if (cur->type == XML_ATTRIBUTE_NODE) {
+ cur = cur->parent;
+ } else {
+ while ((cur->prev != NULL) && ((cur->prev->type == XML_DTD_NODE) ||
+ (cur->prev->type == XML_XINCLUDE_START) ||
+ (cur->prev->type == XML_XINCLUDE_END)))
+ cur = cur->prev;
+ if (cur->prev != NULL) {
+ for (cur = cur->prev; cur->last != NULL; cur = cur->last);
+ } else {
+ cur = cur->parent;
+ }
+ }
}
array[amount++] = (double) cnt;
@@ -908,7 +874,7 @@ xsltFormatNumberPreSuffix(xsltDecimalFormatPtr self, xmlChar **format, xsltForma
}
}
- if ((len=xsltUTF8Size(*format)) < 1)
+ if ((len=xmlUTF8Strsize(*format, 1)) < 1)
return -1;
count += len;
*format += len;
@@ -1090,7 +1056,7 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
} else
break; /* while */
- if ((len=xsltUTF8Size(the_format)) < 1) {
+ if ((len=xmlUTF8Strsize(the_format, 1)) < 1) {
found_error = 1;
goto OUTPUT_NUMBER;
}
@@ -1099,9 +1065,14 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
}
/* We have finished the integer part, now work on fraction */
- if (xsltUTF8Charcmp(the_format, self->decimalPoint) == 0) {
+ if ( (*the_format != 0) &&
+ (xsltUTF8Charcmp(the_format, self->decimalPoint) == 0) ) {
format_info.add_decimal = TRUE;
- the_format += xsltUTF8Size(the_format); /* Skip over the decimal */
+ if ((len = xmlUTF8Strsize(the_format, 1)) < 1) {
+ found_error = 1;
+ goto OUTPUT_NUMBER;
+ }
+ the_format += len; /* Skip over the decimal */
}
while (*the_format != 0) {
@@ -1120,7 +1091,7 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
goto OUTPUT_NUMBER;
}
delayed_multiplier = 100;
- if ((len = xsltUTF8Size(the_format)) < 1) {
+ if ((len = xmlUTF8Strsize(the_format, 1)) < 1) {
found_error = 1;
goto OUTPUT_NUMBER;
}
@@ -1132,7 +1103,7 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
goto OUTPUT_NUMBER;
}
delayed_multiplier = 1000;
- if ((len = xsltUTF8Size(the_format)) < 1) {
+ if ((len = xmlUTF8Strsize(the_format, 1)) < 1) {
found_error = 1;
goto OUTPUT_NUMBER;
}
@@ -1141,7 +1112,7 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
} else if (xsltUTF8Charcmp(the_format, self->grouping) != 0) {
break; /* while */
}
- if ((len = xsltUTF8Size(the_format)) < 1) {
+ if ((len = xmlUTF8Strsize(the_format, 1)) < 1) {
found_error = 1;
goto OUTPUT_NUMBER;
}
@@ -1218,7 +1189,7 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
delayed_multiplier = 0;
else
break; /* while */
- if ((len = xsltUTF8Size(the_format)) < 1) {
+ if ((len = xmlUTF8Strsize(the_format, 1)) < 1) {
found_error = 1;
goto OUTPUT_NUMBER;
}
@@ -1284,12 +1255,12 @@ OUTPUT_NUMBER:
/* Ready to output our number. First see if "default sign" is required */
if (default_sign != 0)
- xmlBufferAdd(buffer, self->minusSign, xsltUTF8Size(self->minusSign));
+ xmlBufferAdd(buffer, self->minusSign, xmlUTF8Strsize(self->minusSign, 1));
/* Put the prefix into the buffer */
for (j = 0; j < prefix_length; j++) {
if ((pchar = *prefix++) == SYMBOL_QUOTE) {
- len = xsltUTF8Size(prefix);
+ len = xmlUTF8Strsize(prefix, 1);
xmlBufferAdd(buffer, prefix, len);
prefix += len;
j += len - 1; /* length of symbol less length of quote */
@@ -1326,20 +1297,20 @@ OUTPUT_NUMBER:
/* Add leading zero, if required */
if ((floor(number) == 0) &&
(format_info.integer_digits + format_info.frac_digits == 0)) {
- xmlBufferAdd(buffer, self->zeroDigit, xsltUTF8Size(self->zeroDigit));
+ xmlBufferAdd(buffer, self->zeroDigit, xmlUTF8Strsize(self->zeroDigit, 1));
}
/* Next the fractional part, if required */
if (format_info.frac_digits + format_info.frac_hash == 0) {
if (format_info.add_decimal)
xmlBufferAdd(buffer, self->decimalPoint,
- xsltUTF8Size(self->decimalPoint));
+ xmlUTF8Strsize(self->decimalPoint, 1));
}
else {
number -= floor(number);
if ((number != 0) || (format_info.frac_digits != 0)) {
xmlBufferAdd(buffer, self->decimalPoint,
- xsltUTF8Size(self->decimalPoint));
+ xmlUTF8Strsize(self->decimalPoint, 1));
number = floor(scale * number + 0.5);
for (j = format_info.frac_hash; j > 0; j--) {
if (fmod(number, 10.0) >= 1.0)
@@ -1354,7 +1325,7 @@ OUTPUT_NUMBER:
/* Put the suffix into the buffer */
for (j = 0; j < suffix_length; j++) {
if ((pchar = *suffix++) == SYMBOL_QUOTE) {
- len = xsltUTF8Size(suffix);
+ len = xmlUTF8Strsize(suffix, 1);
xmlBufferAdd(buffer, suffix, len);
suffix += len;
j += len - 1; /* length of symbol less length of escape */
diff --git a/libxslt/pattern.c b/libxslt/pattern.c
index e211a01d..c094e974 100644
--- a/libxslt/pattern.c
+++ b/libxslt/pattern.c
@@ -104,6 +104,7 @@ struct _xsltCompMatch {
const xmlChar *mode; /* the mode */
const xmlChar *modeURI; /* the mode URI */
xsltTemplatePtr template; /* the associated template */
+ xmlNodePtr node; /* the containing element */
int direct;
/* TODO fix the statically allocated size steps[] */
@@ -914,7 +915,9 @@ xsltTestCompMatch(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp,
xmlNodePtr matchNode, const xmlChar *mode,
const xmlChar *modeURI) {
int i;
+ int found = 0;
xmlNodePtr node = matchNode;
+ xmlNodePtr oldInst;
xsltStepOpPtr step, sel = NULL;
xsltStepStates states = {0, 0, NULL}; /* // may require backtrack */
@@ -948,6 +951,10 @@ xsltTestCompMatch(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp,
return(0);
}
+ /* Some XPath functions rely on inst being set correctly. */
+ oldInst = ctxt->inst;
+ ctxt->inst = comp->node;
+
i = 0;
restart:
for (;i < comp->nbStep;i++) {
@@ -1140,12 +1147,9 @@ restart:
* as possible this costly computation.
*/
if (comp->direct) {
- if (states.states != NULL) {
- /* Free the rollback states */
- xmlFree(states.states);
- }
- return(xsltTestCompMatchDirect(ctxt, comp, matchNode,
- comp->nsList, comp->nsNr));
+ found = xsltTestCompMatchDirect(ctxt, comp, matchNode,
+ comp->nsList, comp->nsNr);
+ goto exit;
}
if (!xsltTestPredicateMatch(ctxt, comp, node, step, sel))
@@ -1185,18 +1189,19 @@ restart:
}
}
found:
+ found = 1;
+exit:
+ ctxt->inst = oldInst;
if (states.states != NULL) {
/* Free the rollback states */
xmlFree(states.states);
}
- return(1);
+ return found;
rollback:
/* got an error try to rollback */
- if (states.states == NULL)
- return(0);
- if (states.nbstates <= 0) {
- xmlFree(states.states);
- return(0);
+ if (states.states == NULL || states.nbstates <= 0) {
+ found = 0;
+ goto exit;
}
states.nbstates--;
i = states.states[states.nbstates].step;
@@ -1475,6 +1480,7 @@ xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name,
xsltTransformError(NULL, NULL, NULL,
"xsltCompileIdKeyPattern : ) expected\n");
ctxt->error = 1;
+ xmlFree(lit);
return;
}
}
@@ -1637,6 +1643,7 @@ parse_node_test:
xsltTransformError(NULL, NULL, NULL,
"xsltCompileStepPattern : Name expected\n");
ctxt->error = 1;
+ xmlFree(URL);
goto error;
}
} else {
@@ -1944,6 +1951,7 @@ xsltCompilePatternInternal(const xmlChar *pattern, xmlDocPtr doc,
goto error;
ctxt->cur = &(ctxt->base)[current - start];
element->pattern = ctxt->base;
+ element->node = node;
element->nsList = xmlGetNsList(doc, node);
j = 0;
if (element->nsList != NULL) {
diff --git a/libxslt/preproc.c b/libxslt/preproc.c
index 955b3b00..9a7de532 100644
--- a/libxslt/preproc.c
+++ b/libxslt/preproc.c
@@ -1418,9 +1418,6 @@ xsltNumberComp(xsltStylesheetPtr style, xmlNodePtr cur) {
return;
cur->psvi = comp;
- if ((style == NULL) || (cur == NULL))
- return;
-
comp->numdata.doc = cur->doc;
comp->numdata.node = cur;
comp->numdata.value = xsltGetCNsProp(style, cur, (const xmlChar *)"value",
@@ -2343,7 +2340,7 @@ xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) {
xsltCheckInstructionElement(style, inst);
inst->psvi = (void *) xsltDocumentComp(style, inst,
(xsltTransformFunction) xsltDocumentElem);
- } else {
+ } else if ((style == NULL) || (style->forwards_compatible == 0)) {
xsltTransformError(NULL, style, inst,
"xsltStylePreCompute: unknown xsl:%s\n", inst->name);
if (style != NULL) style->warnings++;
diff --git a/libxslt/security.c b/libxslt/security.c
index 965175f7..9c848cc4 100644
--- a/libxslt/security.c
+++ b/libxslt/security.c
@@ -34,7 +34,7 @@
#include <ctype.h>
#endif
-#if defined(WIN32) && !defined(__CYGWIN__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
#include <windows.h>
#ifndef INVALID_FILE_ATTRIBUTES
#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
@@ -279,7 +279,7 @@ xsltCheckFilename (const char *path)
{
#ifdef HAVE_STAT
struct stat stat_buffer;
-#if defined(WIN32) && !defined(__CYGWIN__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
DWORD dwAttrs;
dwAttrs = GetFileAttributes(path);
@@ -384,7 +384,7 @@ xsltCheckWrite(xsltSecurityPrefsPtr sec,
if ((uri->scheme == NULL) ||
(xmlStrEqual(BAD_CAST uri->scheme, BAD_CAST "file"))) {
-#if defined(WIN32) && !defined(__CYGWIN__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
if ((uri->path)&&(uri->path[0]=='/')&&
(uri->path[1]!='\0')&&(uri->path[2]==':'))
ret = xsltCheckWritePath(sec, ctxt, uri->path+1);
diff --git a/libxslt/templates.c b/libxslt/templates.c
index 02193f7e..42559210 100644
--- a/libxslt/templates.c
+++ b/libxslt/templates.c
@@ -63,6 +63,12 @@ xsltEvalXPathPredicate(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
xmlNodePtr oldInst;
int oldProximityPosition, oldContextSize;
+ if ((ctxt == NULL) || (ctxt->inst == NULL)) {
+ xsltTransformError(ctxt, NULL, NULL,
+ "xsltEvalXPathPredicate: No context or instruction\n");
+ return(0);
+ }
+
oldContextSize = ctxt->xpathCtxt->contextSize;
oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
oldNsNr = ctxt->xpathCtxt->nsNr;
@@ -124,6 +130,12 @@ xsltEvalXPathStringNs(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
int oldNsNr;
xmlNsPtr *oldNamespaces;
+ if ((ctxt == NULL) || (ctxt->inst == NULL)) {
+ xsltTransformError(ctxt, NULL, NULL,
+ "xsltEvalXPathStringNs: No context or instruction\n");
+ return(0);
+ }
+
oldInst = ctxt->inst;
oldNode = ctxt->node;
oldPos = ctxt->xpathCtxt->proximityPosition;
@@ -296,12 +308,12 @@ xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
xsltTransformError(ctxt, NULL, inst,
"xsltAttrTemplateValueProcessNode: unmatched '{'\n");
ret = xmlStrncat(ret, str, cur - str);
- return(ret);
+ goto exit;
}
str++;
expr = xmlStrndup(str, cur - str);
if (expr == NULL)
- return(ret);
+ goto exit;
else if (*expr == '{') {
ret = xmlStrcat(ret, expr);
xmlFree(expr);
@@ -349,6 +361,7 @@ xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
ret = xmlStrncat(ret, str, cur - str);
}
+exit:
if (nsList != NULL)
xmlFree(nsList);
diff --git a/libxslt/transform.c b/libxslt/transform.c
index 8b86e2eb..560f43ca 100644
--- a/libxslt/transform.c
+++ b/libxslt/transform.c
@@ -19,8 +19,10 @@
#define IN_LIBXSLT
#include "libxslt.h"
+#include <limits.h>
#include <string.h>
#include <stdio.h>
+#include <stddef.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
@@ -56,6 +58,7 @@
#ifdef WITH_XSLT_DEBUG
#define WITH_XSLT_DEBUG_EXTRA
#define WITH_XSLT_DEBUG_PROCESS
+#define WITH_XSLT_DEBUG_VARIABLE
#endif
#define XSLT_GENERATE_HTML_DOCTYPE
@@ -88,10 +91,9 @@ static xmlNsPtr
xsltCopyNamespaceListInternal(xmlNodePtr node, xmlNsPtr cur);
static xmlNodePtr
-xsltCopyTreeInternal(xsltTransformContextPtr ctxt,
- xmlNodePtr invocNode,
- xmlNodePtr node,
- xmlNodePtr insert, int isLRE, int topElemVisited);
+xsltCopyTree(xsltTransformContextPtr ctxt, xmlNodePtr invocNode,
+ xmlNodePtr node, xmlNodePtr insert, int isLRE,
+ int topElemVisited);
static void
xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,
@@ -467,7 +469,7 @@ xsltGetXIncludeDefault(void) {
return(xsltDoXIncludeDefault);
}
-unsigned long xsltDefaultTrace = (unsigned long) XSLT_TRACE_ALL;
+static unsigned long xsltDefaultTrace = (unsigned long) XSLT_TRACE_ALL;
/**
* xsltDebugSetDefaultTrace:
@@ -766,9 +768,6 @@ xsltFreeTransformContext(xsltTransformContextPtr ctxt) {
* *
************************************************************************/
-xmlNodePtr xsltCopyTree(xsltTransformContextPtr ctxt,
- xmlNodePtr node, xmlNodePtr insert, int literal);
-
/**
* xsltAddChild:
* @parent: the parent node
@@ -784,7 +783,7 @@ static xmlNodePtr
xsltAddChild(xmlNodePtr parent, xmlNodePtr cur) {
xmlNodePtr ret;
- if ((cur == NULL) || (parent == NULL))
+ if (cur == NULL)
return(NULL);
if (parent == NULL) {
xmlFreeNode(cur);
@@ -816,13 +815,32 @@ xsltAddTextString(xsltTransformContextPtr ctxt, xmlNodePtr target,
return(target);
if (ctxt->lasttext == target->content) {
+ int minSize;
+
+ /* Check for integer overflow accounting for NUL terminator. */
+ if (len >= INT_MAX - ctxt->lasttuse) {
+ xsltTransformError(ctxt, NULL, target,
+ "xsltCopyText: text allocation failed\n");
+ return(NULL);
+ }
+ minSize = ctxt->lasttuse + len + 1;
- if (ctxt->lasttuse + len >= ctxt->lasttsize) {
+ if (ctxt->lasttsize < minSize) {
xmlChar *newbuf;
int size;
+ int extra;
+
+ /* Double buffer size but increase by at least 100 bytes. */
+ extra = minSize < 100 ? 100 : minSize;
+
+ /* Check for integer overflow. */
+ if (extra > INT_MAX - ctxt->lasttsize) {
+ size = INT_MAX;
+ }
+ else {
+ size = ctxt->lasttsize + extra;
+ }
- size = ctxt->lasttsize + len + 100;
- size *= 2;
newbuf = (xmlChar *) xmlRealloc(target->content,size);
if (newbuf == NULL) {
xsltTransformError(ctxt, NULL, target,
@@ -1123,7 +1141,7 @@ exit:
*
* Do a copy of an attribute.
* Called by:
- * - xsltCopyTreeInternal()
+ * - xsltCopyTree()
* - xsltCopyOf()
* - xsltCopy()
*
@@ -1224,7 +1242,7 @@ xsltShallowCopyAttr(xsltTransformContextPtr ctxt, xmlNodePtr invocNode,
* @target element node.
*
* Called by:
- * - xsltCopyTreeInternal()
+ * - xsltCopyTree()
*
* Returns 0 on success and -1 on errors and internal errors.
*/
@@ -1346,7 +1364,7 @@ xsltShallowCopyElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
* copy over all namespace nodes in scope.
* The damn thing about this is, that we would need to
* use the xmlGetNsList(), for every single node; this is
- * also done in xsltCopyTreeInternal(), but only for the top node.
+ * also done in xsltCopyTree(), but only for the top node.
*/
if (node->ns != NULL) {
if (isLRE) {
@@ -1404,7 +1422,7 @@ xsltCopyTreeList(xsltTransformContextPtr ctxt, xmlNodePtr invocNode,
xmlNodePtr copy, ret = NULL;
while (list != NULL) {
- copy = xsltCopyTreeInternal(ctxt, invocNode,
+ copy = xsltCopyTree(ctxt, invocNode,
list, insert, isLRE, topElemVisited);
if (copy != NULL) {
if (ret == NULL) {
@@ -1424,7 +1442,7 @@ xsltCopyTreeList(xsltTransformContextPtr ctxt, xmlNodePtr invocNode,
* Do a copy of a namespace list. If @node is non-NULL the
* new namespaces are added automatically.
* Called by:
- * xsltCopyTreeInternal()
+ * xsltCopyTree()
*
* QUESTION: What is the exact difference between this function
* and xsltCopyNamespaceList() in "namespaces.c"?
@@ -1582,7 +1600,7 @@ occupied:
}
/**
- * xsltCopyTreeInternal:
+ * xsltCopyTree:
* @ctxt: the XSLT transformation context
* @invocNode: responsible node in the stylesheet; used for error reports
* @node: the element node in the source tree
@@ -1601,10 +1619,9 @@ occupied:
* Returns a pointer to the new tree, or NULL in case of error
*/
static xmlNodePtr
-xsltCopyTreeInternal(xsltTransformContextPtr ctxt,
- xmlNodePtr invocNode,
- xmlNodePtr node,
- xmlNodePtr insert, int isLRE, int topElemVisited)
+xsltCopyTree(xsltTransformContextPtr ctxt, xmlNodePtr invocNode,
+ xmlNodePtr node, xmlNodePtr insert, int isLRE,
+ int topElemVisited)
{
xmlNodePtr copy;
@@ -1660,7 +1677,7 @@ xsltCopyTreeInternal(xsltTransformContextPtr ctxt,
copy = xsltAddChild(insert, copy);
if (copy == NULL) {
xsltTransformError(ctxt, NULL, invocNode,
- "xsltCopyTreeInternal: Copying of '%s' failed.\n", node->name);
+ "xsltCopyTree: Copying of '%s' failed.\n", node->name);
return (copy);
}
/*
@@ -1791,34 +1808,11 @@ xsltCopyTreeInternal(xsltTransformContextPtr ctxt,
}
} else {
xsltTransformError(ctxt, NULL, invocNode,
- "xsltCopyTreeInternal: Copying of '%s' failed.\n", node->name);
+ "xsltCopyTree: Copying of '%s' failed.\n", node->name);
}
return(copy);
}
-/**
- * xsltCopyTree:
- * @ctxt: the XSLT transformation context
- * @node: the element node in the source tree
- * @insert: the parent in the result tree
- * @literal: indicates if @node is a Literal Result Element
- *
- * Make a copy of the full tree under the element node @node
- * and insert it as last child of @insert
- * For literal result element, some of the namespaces may not be copied
- * over according to section 7.1.
- * TODO: Why is this a public function?
- *
- * Returns a pointer to the new tree, or NULL in case of error
- */
-xmlNodePtr
-xsltCopyTree(xsltTransformContextPtr ctxt, xmlNodePtr node,
- xmlNodePtr insert, int literal)
-{
- return(xsltCopyTreeInternal(ctxt, node, node, insert, literal, 0));
-
-}
-
/************************************************************************
* *
* Error/fallback processing *
@@ -2020,6 +2014,9 @@ xsltDefaultProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
/*
* Handling of Elements: second pass, actual processing
+ *
+ * Note that params are passed to the next template. This matches
+ * XSLT 2.0 behavior but doesn't conform to XSLT 1.0.
*/
oldSize = ctxt->xpathCtxt->contextSize;
oldPos = ctxt->xpathCtxt->proximityPosition;
@@ -2299,30 +2296,28 @@ xsltReleaseLocalRVTs(xsltTransformContextPtr ctxt, xmlDocPtr base)
{
xmlDocPtr cur = ctxt->localRVT, tmp;
- while ((cur != NULL) && (cur != base)) {
- if (cur->psvi == (void *) ((long) 1)) {
- cur = (xmlDocPtr) cur->next;
- } else {
- tmp = cur;
- cur = (xmlDocPtr) cur->next;
-
- if (tmp == ctxt->localRVT)
- ctxt->localRVT = cur;
+ if (cur == base)
+ return;
+ if (cur->prev != NULL)
+ xsltTransformError(ctxt, NULL, NULL, "localRVT not head of list\n");
- /*
- * We need ctxt->localRVTBase for extension instructions
- * which return values (like EXSLT's function).
- */
- if (tmp == ctxt->localRVTBase)
- ctxt->localRVTBase = cur;
+ do {
+ tmp = cur;
+ cur = (xmlDocPtr) cur->next;
+ if (tmp->psvi == XSLT_RVT_LOCAL) {
+ xsltReleaseRVT(ctxt, tmp);
+ } else if (tmp->psvi == XSLT_RVT_GLOBAL) {
+ xsltRegisterPersistRVT(ctxt, tmp);
+ } else if (tmp->psvi != XSLT_RVT_FUNC_RESULT) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xsltReleaseLocalRVTs: Unexpected RVT flag %p\n",
+ tmp->psvi);
+ }
+ } while (cur != base);
- if (tmp->prev)
- tmp->prev->next = (xmlNodePtr) cur;
- if (cur)
- cur->prev = tmp->prev;
- xsltReleaseRVT(ctxt, tmp);
- }
- }
+ if (base != NULL)
+ base->prev = NULL;
+ ctxt->localRVT = base;
}
/**
@@ -2348,7 +2343,7 @@ xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,
xmlNodePtr oldInsert, oldInst, oldCurInst, oldContextNode;
xmlNodePtr cur, insert, copy = NULL;
int level = 0, oldVarsNr;
- xmlDocPtr oldLocalFragmentTop, oldLocalFragmentBase;
+ xmlDocPtr oldLocalFragmentTop;
#ifdef XSLT_REFACTORED
xsltStylePreCompPtr info;
@@ -2376,6 +2371,24 @@ xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,
return;
CHECK_STOPPED;
+ /*
+ * Check for infinite recursion: stop if the maximum of nested templates
+ * is excceeded. Adjust xsltMaxDepth if you need more.
+ */
+ if (ctxt->depth >= ctxt->maxTemplateDepth) {
+ xsltTransformError(ctxt, NULL, list,
+ "xsltApplySequenceConstructor: A potential infinite template "
+ "recursion was detected.\n"
+ "You can adjust xsltMaxDepth (--maxdepth) in order to "
+ "raise the maximum number of nested template calls and "
+ "variables/params (currently set to %d).\n",
+ ctxt->maxTemplateDepth);
+ xsltDebug(ctxt, contextNode, list, NULL);
+ ctxt->state = XSLT_STATE_STOPPED;
+ return;
+ }
+ ctxt->depth++;
+
oldLocalFragmentTop = ctxt->localRVT;
oldInsert = insert = ctxt->insert;
oldInst = oldCurInst = ctxt->inst;
@@ -2675,17 +2688,22 @@ xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,
"xsltApplySequenceConstructor: extension construct %s\n",
cur->name));
#endif
+ /*
+ * Disable the xsltCopyTextString optimization for
+ * extension elements. Extensions could append text using
+ * xmlAddChild which will free the buffer pointed to by
+ * 'lasttext'. This buffer could later be reallocated with
+ * a different size than recorded in 'lasttsize'. See bug
+ * #777432.
+ */
+ if (cur->psvi == xsltExtMarker) {
+ ctxt->lasttext = NULL;
+ }
+
ctxt->insert = insert;
- /*
- * We need the fragment base for extension instructions
- * which return values (like EXSLT's function).
- */
- oldLocalFragmentBase = ctxt->localRVTBase;
- ctxt->localRVTBase = NULL;
func(ctxt, contextNode, cur, cur->psvi);
- ctxt->localRVTBase = oldLocalFragmentBase;
/*
* Cleanup temporary tree fragments.
*/
@@ -2749,12 +2767,9 @@ xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,
oldCurInst = ctxt->inst;
ctxt->inst = cur;
ctxt->insert = insert;
- oldLocalFragmentBase = ctxt->localRVTBase;
- ctxt->localRVTBase = NULL;
info->func(ctxt, contextNode, cur, (xsltElemPreCompPtr) info);
- ctxt->localRVTBase = oldLocalFragmentBase;
/*
* Cleanup temporary tree fragments.
*/
@@ -2868,13 +2883,19 @@ xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,
cur->name));
#endif
+ /*
+ * Disable the xsltCopyTextString optimization for
+ * extension elements. Extensions could append text using
+ * xmlAddChild which will free the buffer pointed to by
+ * 'lasttext'. This buffer could later be reallocated with
+ * a different size than recorded in 'lasttsize'. See bug
+ * #777432.
+ */
+ if (cur->psvi == xsltExtMarker) {
+ ctxt->lasttext = NULL;
+ }
+
ctxt->insert = insert;
- /*
- * We need the fragment base for extension instructions
- * which return values (like EXSLT's function).
- */
- oldLocalFragmentBase = ctxt->localRVTBase;
- ctxt->localRVTBase = NULL;
function(ctxt, contextNode, cur, cur->psvi);
/*
@@ -2883,7 +2904,6 @@ xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,
if (oldLocalFragmentTop != ctxt->localRVT)
xsltReleaseLocalRVTs(ctxt, oldLocalFragmentTop);
- ctxt->localRVTBase = oldLocalFragmentBase;
ctxt->insert = oldInsert;
}
@@ -3025,6 +3045,8 @@ error:
ctxt->inst = oldInst;
ctxt->insert = oldInsert;
+ ctxt->depth--;
+
#ifdef WITH_DEBUGGER
if ((ctxt->debugStatus != XSLT_DEBUG_NONE) && (addCallResult)) {
xslDropCall();
@@ -3059,7 +3081,7 @@ xsltApplyXSLTTemplate(xsltTransformContextPtr ctxt,
long start = 0;
xmlNodePtr cur;
xsltStackElemPtr tmpParam = NULL;
- xmlDocPtr oldUserFragmentTop, oldLocalFragmentTop;
+ xmlDocPtr oldUserFragmentTop;
#ifdef XSLT_REFACTORED
xsltStyleItemParamPtr iparam;
@@ -3091,23 +3113,6 @@ xsltApplyXSLTTemplate(xsltTransformContextPtr ctxt,
return;
CHECK_STOPPED;
- /*
- * Check for infinite recursion: stop if the maximum of nested templates
- * is excceeded. Adjust xsltMaxDepth if you need more.
- */
- if (ctxt->templNr >= ctxt->maxTemplateDepth)
- {
- xsltTransformError(ctxt, NULL, list,
- "xsltApplyXSLTTemplate: A potential infinite template recursion "
- "was detected.\n"
- "You can adjust xsltMaxDepth (--maxdepth) in order to "
- "raise the maximum number of nested template calls and "
- "variables/params (currently set to %d).\n",
- ctxt->maxTemplateDepth);
- xsltDebug(ctxt, contextNode, list, NULL);
- return;
- }
-
if (ctxt->varsNr >= ctxt->maxTemplateVars)
{
xsltTransformError(ctxt, NULL, list,
@@ -3117,12 +3122,12 @@ xsltApplyXSLTTemplate(xsltTransformContextPtr ctxt,
"raise the maximum number of variables/params (currently set to %d).\n",
ctxt->maxTemplateVars);
xsltDebug(ctxt, contextNode, list, NULL);
+ ctxt->state = XSLT_STATE_STOPPED;
return;
}
oldUserFragmentTop = ctxt->tmpRVT;
ctxt->tmpRVT = NULL;
- oldLocalFragmentTop = ctxt->localRVT;
/*
* Initiate a distinct scope of local params/variables.
@@ -3224,31 +3229,6 @@ xsltApplyXSLTTemplate(xsltTransformContextPtr ctxt,
ctxt->varsBase = oldVarsBase;
/*
- * Clean up remaining local tree fragments.
- * This also frees fragments which are the result of
- * extension instructions. Should normally not be hit; but
- * just for the case xsltExtensionInstructionResultFinalize()
- * was not called by the extension author.
- */
- if (oldLocalFragmentTop != ctxt->localRVT) {
- xmlDocPtr curdoc = ctxt->localRVT, tmp;
-
- do {
- tmp = curdoc;
- curdoc = (xmlDocPtr) curdoc->next;
- /* Need to housekeep localRVTBase */
- if (tmp == ctxt->localRVTBase)
- ctxt->localRVTBase = curdoc;
- if (tmp->prev)
- tmp->prev->next = (xmlNodePtr) curdoc;
- if (curdoc)
- curdoc->prev = tmp->prev;
- xsltReleaseRVT(ctxt, tmp);
- } while (curdoc != oldLocalFragmentTop);
- }
- ctxt->localRVT = oldLocalFragmentTop;
-
- /*
* Release user-created fragments stored in the scope
* of xsl:template. Note that this mechanism is deprecated:
* user code should now use xsltRegisterLocalRVT() instead
@@ -3853,7 +3833,6 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
xsltTransformError(ctxt, NULL, inst,
"xsltDocumentElem: unable to save to %s\n",
filename);
- ctxt->state = XSLT_STATE_ERROR;
#ifdef WITH_XSLT_DEBUG_EXTRA
} else {
xsltGenericDebug(xsltGenericDebugContext,
@@ -4466,8 +4445,7 @@ xsltCopyOf(xsltTransformContextPtr ctxt, xmlNodePtr node,
xsltShallowCopyAttr(ctxt, inst,
ctxt->insert, (xmlAttrPtr) cur);
} else {
- xsltCopyTreeInternal(ctxt, inst,
- cur, ctxt->insert, 0, 0);
+ xsltCopyTree(ctxt, inst, cur, ctxt->insert, 0, 0);
}
}
}
@@ -4718,6 +4696,10 @@ xsltApplyImports(xsltTransformContextPtr ctxt, xmlNodePtr contextNode,
ctxt->currentTemplateRule = oldCurTemplRule;
}
+ else {
+ /* Use built-in templates. */
+ xsltDefaultProcessOneNode(ctxt, contextNode, NULL);
+ }
}
/**
@@ -5665,6 +5647,7 @@ typedef struct xsltHTMLVersion {
} xsltHTMLVersion;
static xsltHTMLVersion xsltHTMLVersions[] = {
+ { "5", NULL, "about:legacy-compat" },
{ "4.01frame", "-//W3C//DTD HTML 4.01 Frameset//EN",
"http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd"},
{ "4.01strict", "-//W3C//DTD HTML 4.01//EN",
@@ -5890,7 +5873,8 @@ xsltApplyStylesheetInternal(xsltStylesheetPtr style, xmlDocPtr doc,
*/
root = xmlDocGetRootElement(doc);
if (root != NULL) {
- if (((long) root->content) >= 0 && (xslDebugStatus == XSLT_DEBUG_NONE))
+ if (((ptrdiff_t) root->content >= 0) &&
+ (xslDebugStatus == XSLT_DEBUG_NONE))
xmlXPathOrderDocElems(doc);
}
@@ -6040,6 +6024,9 @@ xsltApplyStylesheetInternal(xsltStylesheetPtr style, xmlDocPtr doc,
xsltEvalGlobalVariables(ctxt);
+ /* Clean up any unused RVTs. */
+ xsltReleaseLocalRVTs(ctxt, NULL);
+
ctxt->node = (xmlNodePtr) doc;
ctxt->output = res;
ctxt->insert = (xmlNodePtr) res;
@@ -6184,7 +6171,7 @@ xsltApplyStylesheetInternal(xsltStylesheetPtr style, xmlDocPtr doc,
/*
* Be pedantic.
*/
- if ((ctxt != NULL) && (ctxt->state == XSLT_STATE_ERROR)) {
+ if ((ctxt != NULL) && (ctxt->state != XSLT_STATE_OK)) {
xmlFreeDoc(res);
res = NULL;
}
diff --git a/libxslt/variables.c b/libxslt/variables.c
index 345123d6..60b46eaf 100644
--- a/libxslt/variables.c
+++ b/libxslt/variables.c
@@ -40,11 +40,11 @@
const xmlChar *xsltDocFragFake = (const xmlChar *) " fake node libxslt";
#endif
-const xmlChar *xsltComputingGlobalVarMarker =
+static const xmlChar *xsltComputingGlobalVarMarker =
(const xmlChar *) " var/param being computed";
-#define XSLT_VAR_GLOBAL 1<<0
-#define XSLT_VAR_IN_SELECT 1<<1
+#define XSLT_VAR_GLOBAL (1<<0)
+#define XSLT_VAR_IN_SELECT (1<<1)
#define XSLT_TCTXT_VARIABLE(c) ((xsltStackElemPtr) (c)->contextVariable)
/************************************************************************
@@ -122,6 +122,9 @@ xsltRegisterTmpRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
if ((ctxt == NULL) || (RVT == NULL))
return(-1);
+ RVT->prev = NULL;
+ RVT->psvi = XSLT_RVT_VARIABLE;
+
/*
* We'll restrict the lifetime of user-created fragments
* insinde an xsl:variable and xsl:param to the lifetime of the
@@ -159,15 +162,18 @@ xsltRegisterLocalRVT(xsltTransformContextPtr ctxt,
if ((ctxt == NULL) || (RVT == NULL))
return(-1);
+ RVT->prev = NULL;
+
/*
* When evaluating "select" expressions of xsl:variable
* and xsl:param, we need to bind newly created tree fragments
- * to the variable itself; otherwise the tragment will be
+ * to the variable itself; otherwise the fragment will be
* freed before we leave the scope of a var.
*/
if ((ctxt->contextVariable != NULL) &&
(XSLT_TCTXT_VARIABLE(ctxt)->flags & XSLT_VAR_IN_SELECT))
{
+ RVT->psvi = XSLT_RVT_VARIABLE;
RVT->next = (xmlNodePtr) XSLT_TCTXT_VARIABLE(ctxt)->fragment;
XSLT_TCTXT_VARIABLE(ctxt)->fragment = RVT;
return(0);
@@ -177,19 +183,11 @@ xsltRegisterLocalRVT(xsltTransformContextPtr ctxt,
* If not reference by a returning instruction (like EXSLT's function),
* then this fragment will be freed, when the instruction exits.
*/
+ RVT->psvi = XSLT_RVT_LOCAL;
RVT->next = (xmlNodePtr) ctxt->localRVT;
if (ctxt->localRVT != NULL)
ctxt->localRVT->prev = (xmlNodePtr) RVT;
ctxt->localRVT = RVT;
- /*
- * We need to keep track of the first registered fragment
- * for extension instructions which return fragments
- * (e.g. EXSLT'S function), in order to let
- * xsltExtensionInstructionResultFinalize() clear the
- * preserving flag on the fragments.
- */
- if (ctxt->localRVTBase == NULL)
- ctxt->localRVTBase = RVT;
return(0);
}
@@ -204,26 +202,16 @@ xsltRegisterLocalRVT(xsltTransformContextPtr ctxt,
* collector will free them after the function-calling process exits.
*
* Returns 0 in case of success and -1 in case of API or internal errors.
+ *
+ * This function is unsupported in newer releases of libxslt.
*/
int
xsltExtensionInstructionResultFinalize(xsltTransformContextPtr ctxt)
{
- xmlDocPtr cur;
-
- if (ctxt == NULL)
- return(-1);
- if (ctxt->localRVTBase == NULL)
- return(0);
- /*
- * Enable remaining local tree fragments to be freed
- * by the fragment garbage collector.
- */
- cur = ctxt->localRVTBase;
- do {
- cur->psvi = NULL;
- cur = (xmlDocPtr) cur->next;
- } while (cur != NULL);
- return(0);
+ xmlGenericError(xmlGenericErrorContext,
+ "xsltExtensionInstructionResultFinalize is unsupported "
+ "in this release of libxslt.\n");
+ return(-1);
}
/**
@@ -238,11 +226,35 @@ xsltExtensionInstructionResultFinalize(xsltTransformContextPtr ctxt)
* tree fragments (via xsltCreateRVT()) with xsltRegisterLocalRVT().
*
* Returns 0 in case of success and -1 in case of error.
+ *
+ * It isn't necessary to call this function in newer releases of
+ * libxslt.
*/
int
xsltExtensionInstructionResultRegister(xsltTransformContextPtr ctxt,
xmlXPathObjectPtr obj)
{
+ return(0);
+}
+
+/**
+ * xsltFlagRVTs:
+ * @ctxt: an XSLT transformation context
+ * @obj: an XPath object to be inspected for result tree fragments
+ * @val: the flag value
+ *
+ * Updates ownership information of RVTs in @obj according to @val.
+ *
+ * @val = XSLT_RVT_FUNC_RESULT for the result of an extension function, so its
+ * RVTs won't be destroyed after leaving the returning scope.
+ * @val = XSLT_RVT_LOCAL for the result of an extension function to reset
+ * the state of its RVTs after it was returned to a new scope.
+ * @val = XSLT_RVT_GLOBAL for parts of global variables.
+ *
+ * Returns 0 in case of success and -1 in case of error.
+ */
+int
+xsltFlagRVTs(xsltTransformContextPtr ctxt, xmlXPathObjectPtr obj, void *val) {
int i;
xmlNodePtr cur;
xmlDocPtr doc;
@@ -275,36 +287,59 @@ xsltExtensionInstructionResultRegister(xsltTransformContextPtr ctxt,
doc = cur->doc;
} else {
xsltTransformError(ctxt, NULL, ctxt->inst,
- "Internal error in "
- "xsltExtensionInstructionResultRegister(): "
+ "Internal error in xsltFlagRVTs(): "
"Cannot retrieve the doc of a namespace node.\n");
- goto error;
+ return(-1);
}
} else {
doc = cur->doc;
}
if (doc == NULL) {
xsltTransformError(ctxt, NULL, ctxt->inst,
- "Internal error in "
- "xsltExtensionInstructionResultRegister(): "
+ "Internal error in xsltFlagRVTs(): "
"Cannot retrieve the doc of a node.\n");
- goto error;
+ return(-1);
}
- if (doc->name && (doc->name[0] == ' ')) {
+ if (doc->name && (doc->name[0] == ' ') &&
+ doc->psvi != XSLT_RVT_GLOBAL) {
/*
* This is a result tree fragment.
- * We'll use the @psvi field for reference counting.
- * TODO: How do we know if this is a value of a
- * global variable or a doc acquired via the
+ * We store ownership information in the @psvi field.
+ * TODO: How do we know if this is a doc acquired via the
* document() function?
*/
- doc->psvi = (void *) ((long) 1);
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+ XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+ "Flagging RVT %p: %p -> %p\n", doc, doc->psvi, val));
+#endif
+
+ if (val == XSLT_RVT_LOCAL) {
+ if (doc->psvi != XSLT_RVT_FUNC_RESULT) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xsltFlagRVTs: Invalid transition %p => LOCAL\n",
+ doc->psvi);
+ return(-1);
+ }
+
+ xsltRegisterLocalRVT(ctxt, doc);
+ } else if (val == XSLT_RVT_GLOBAL) {
+ if (doc->psvi != XSLT_RVT_LOCAL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xsltFlagRVTs: Invalid transition %p => GLOBAL\n",
+ doc->psvi);
+ doc->psvi = XSLT_RVT_GLOBAL;
+ return(-1);
+ }
+
+ /* Will be registered as persistant in xsltReleaseLocalRVTs. */
+ doc->psvi = XSLT_RVT_GLOBAL;
+ } else if (val == XSLT_RVT_FUNC_RESULT) {
+ doc->psvi = val;
+ }
}
}
return(0);
-error:
- return(-1);
}
/**
@@ -350,9 +385,9 @@ xsltReleaseRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
}
/*
- * Reset the reference counter.
+ * Reset the ownership information.
*/
- RVT->psvi = 0;
+ RVT->psvi = NULL;
RVT->next = (xmlNodePtr) ctxt->cache->RVT;
ctxt->cache->RVT = RVT;
@@ -391,6 +426,8 @@ xsltRegisterPersistRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
{
if ((ctxt == NULL) || (RVT == NULL)) return(-1);
+ RVT->psvi = XSLT_RVT_GLOBAL;
+ RVT->prev = NULL;
RVT->next = (xmlNodePtr) ctxt->persistRVT;
if (ctxt->persistRVT != NULL)
ctxt->persistRVT->prev = (xmlNodePtr) RVT;
@@ -541,35 +578,21 @@ xsltFreeStackElem(xsltStackElemPtr elem) {
/*
* Release the list of temporary Result Tree Fragments.
*/
- if (elem->fragment) {
+ if (elem->context) {
xmlDocPtr cur;
while (elem->fragment != NULL) {
cur = elem->fragment;
elem->fragment = (xmlDocPtr) cur->next;
- if (elem->context &&
- (cur->psvi == (void *) ((long) 1)))
- {
- /*
- * This fragment is a result of an extension instruction
- * (e.g. XSLT's function) and needs to be preserved until
- * the instruction exits.
- * Example: The fragment of the variable must not be freed
- * since it is returned by the EXSLT function:
- * <f:function name="foo">
- * <xsl:variable name="bar">
- * <bar/>
- * </xsl:variable>
- * <f:result select="$bar"/>
- * </f:function>
- *
- */
- xsltRegisterLocalRVT(elem->context, cur);
- } else {
+ if (cur->psvi == XSLT_RVT_VARIABLE) {
xsltReleaseRVT((xsltTransformContextPtr) elem->context,
cur);
- }
+ } else if (cur->psvi != XSLT_RVT_FUNC_RESULT) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xsltFreeStackElem: Unexpected RVT flag %p\n",
+ cur->psvi);
+ }
}
}
/*
@@ -963,6 +986,7 @@ xsltEvalVariable(xsltTransformContextPtr ctxt, xsltStackElemPtr variable,
* the Result Tree Fragment.
*/
variable->fragment = container;
+ container->psvi = XSLT_RVT_VARIABLE;
oldOutput = ctxt->output;
oldInsert = ctxt->insert;
@@ -1149,16 +1173,23 @@ xsltEvalGlobalVariable(xsltStackElemPtr elem, xsltTransformContextPtr ctxt)
xsltTransformError(ctxt, NULL, comp->inst,
"Evaluating global variable %s failed\n", elem->name);
ctxt->state = XSLT_STATE_STOPPED;
+ goto error;
+ }
+
+ /*
+ * Mark all RVTs that are referenced from result as part
+ * of this variable so they won't be freed too early.
+ */
+ xsltFlagRVTs(ctxt, result, XSLT_RVT_GLOBAL);
+
#ifdef WITH_XSLT_DEBUG_VARIABLE
#ifdef LIBXML_DEBUG_ENABLED
- } else {
- if ((xsltGenericDebugContext == stdout) ||
- (xsltGenericDebugContext == stderr))
- xmlXPathDebugDumpObject((FILE *)xsltGenericDebugContext,
- result, 0);
+ if ((xsltGenericDebugContext == stdout) ||
+ (xsltGenericDebugContext == stderr))
+ xmlXPathDebugDumpObject((FILE *)xsltGenericDebugContext,
+ result, 0);
#endif
#endif
- }
} else {
if (elem->tree == NULL) {
result = xmlXPathNewCString("");
@@ -1772,8 +1803,7 @@ xsltBuildVariable(xsltTransformContextPtr ctxt,
elem->tree = tree;
elem->value = xsltEvalVariable(ctxt, elem,
(xsltStylePreCompPtr) comp);
- if (elem->value != NULL)
- elem->computed = 1;
+ elem->computed = 1;
return(elem);
}
diff --git a/libxslt/variables.h b/libxslt/variables.h
index 17b4c6f6..24acf8d1 100644
--- a/libxslt/variables.h
+++ b/libxslt/variables.h
@@ -35,6 +35,41 @@ extern "C" {
(ctxt)->xpathCtxt->extra = ctxt
/*
+ * Flags for memory management of RVTs
+ */
+
+/**
+ * XSLT_RVT_LOCAL:
+ *
+ * RVT is destroyed after the current instructions ends.
+ */
+#define XSLT_RVT_LOCAL ((void *)1)
+
+/**
+ * XSLT_RVT_VARIABLE:
+ *
+ * RVT is part of a local variable and destroyed after the variable goes out
+ * of scope.
+ */
+#define XSLT_RVT_VARIABLE ((void *)2)
+
+/**
+ * XSLT_RVT_FUNC_RESULT:
+ *
+ * RVT is part of results returned with func:result. The RVT won't be
+ * destroyed after exiting a template and will be reset to XSLT_RVT_LOCAL or
+ * XSLT_RVT_VARIABLE in the template that receives the return value.
+ */
+#define XSLT_RVT_FUNC_RESULT ((void *)3)
+
+/**
+ * XSLT_RVT_GLOBAL:
+ *
+ * RVT is part of a global variable.
+ */
+#define XSLT_RVT_GLOBAL ((void *)4)
+
+/*
* Interfaces for the variable module.
*/
diff --git a/libxslt/xslt.c b/libxslt/xslt.c
index bca91ee7..54a39de9 100644
--- a/libxslt/xslt.c
+++ b/libxslt/xslt.c
@@ -42,6 +42,7 @@
#include "preproc.h"
#include "extra.h"
#include "security.h"
+#include "xsltlocale.h"
#ifdef WITH_XSLT_DEBUG
#define WITH_XSLT_DEBUG_PARSING
@@ -275,7 +276,7 @@ xsltIsBlank(xmlChar *str) {
* *
************************************************************************/
static xsltDecimalFormatPtr
-xsltNewDecimalFormat(xmlChar *name)
+xsltNewDecimalFormat(const xmlChar *nsUri, xmlChar *name)
{
xsltDecimalFormatPtr self;
/* UTF-8 for 0x2030 */
@@ -284,6 +285,7 @@ xsltNewDecimalFormat(xmlChar *name)
self = xmlMalloc(sizeof(xsltDecimalFormat));
if (self != NULL) {
self->next = NULL;
+ self->nsUri = nsUri;
self->name = name;
/* Default values */
@@ -369,7 +371,39 @@ xsltDecimalFormatGetByName(xsltStylesheetPtr style, xmlChar *name)
for (result = style->decimalFormat->next;
result != NULL;
result = result->next) {
- if (xmlStrEqual(name, result->name))
+ if ((result->nsUri == NULL) && xmlStrEqual(name, result->name))
+ return result;
+ }
+ style = xsltNextImport(style);
+ }
+ return result;
+}
+
+/**
+ * xsltDecimalFormatGetByQName:
+ * @style: the XSLT stylesheet
+ * @nsUri: the namespace URI of the QName
+ * @name: the local part of the QName
+ *
+ * Find decimal-format by QName
+ *
+ * Returns the xsltDecimalFormatPtr
+ */
+xsltDecimalFormatPtr
+xsltDecimalFormatGetByQName(xsltStylesheetPtr style, const xmlChar *nsUri,
+ const xmlChar *name)
+{
+ xsltDecimalFormatPtr result = NULL;
+
+ if (name == NULL)
+ return style->decimalFormat;
+
+ while (style != NULL) {
+ for (result = style->decimalFormat->next;
+ result != NULL;
+ result = result->next) {
+ if (xmlStrEqual(nsUri, result->nsUri) &&
+ xmlStrEqual(name, result->name))
return result;
}
style = xsltNextImport(style);
@@ -747,7 +781,7 @@ xsltNewStylesheet(void) {
ret->omitXmlDeclaration = -1;
ret->standalone = -1;
- ret->decimalFormat = xsltNewDecimalFormat(NULL);
+ ret->decimalFormat = xsltNewDecimalFormat(NULL, NULL);
ret->indent = -1;
ret->errors = 0;
ret->warnings = 0;
@@ -810,9 +844,8 @@ xsltAllocateExtraCtxt(xsltTransformContextPtr ctxt)
ctxt->extras = (xsltRuntimeExtraPtr)
xmlMalloc(ctxt->extrasMax * sizeof(xsltRuntimeExtra));
if (ctxt->extras == NULL) {
- xmlGenericError(xmlGenericErrorContext,
+ xsltTransformError(ctxt, NULL, NULL,
"xsltAllocateExtraCtxt: out of memory\n");
- ctxt->state = XSLT_STATE_ERROR;
return(0);
}
for (i = 0;i < ctxt->extrasMax;i++) {
@@ -828,9 +861,8 @@ xsltAllocateExtraCtxt(xsltTransformContextPtr ctxt)
tmp = (xsltRuntimeExtraPtr) xmlRealloc(ctxt->extras,
ctxt->extrasMax * sizeof(xsltRuntimeExtra));
if (tmp == NULL) {
- xmlGenericError(xmlGenericErrorContext,
+ xsltTransformError(ctxt, NULL, NULL,
"xsltAllocateExtraCtxt: out of memory\n");
- ctxt->state = XSLT_STATE_ERROR;
return(0);
}
ctxt->extras = tmp;
@@ -1209,6 +1241,7 @@ xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
xsltTransformError(NULL, style, cur,
"invalid value for method: %s\n", prop);
if (style != NULL) style->warnings++;
+ xmlFree(prop);
}
} else {
style->method = prop;
@@ -1386,18 +1419,37 @@ xsltParseStylesheetDecimalFormat(xsltStylesheetPtr style, xmlNodePtr cur)
prop = xmlGetNsProp(cur, BAD_CAST("name"), NULL);
if (prop != NULL) {
- format = xsltDecimalFormatGetByName(style, prop);
+ const xmlChar *nsUri;
+
+ if (xmlValidateQName(prop, 0) != 0) {
+ xsltTransformError(NULL, style, cur,
+ "xsl:decimal-format: Invalid QName '%s'.\n", prop);
+ style->warnings++;
+ xmlFree(prop);
+ return;
+ }
+ /*
+ * TODO: Don't use xsltGetQNameURI().
+ */
+ nsUri = xsltGetQNameURI(cur, &prop);
+ if (prop == NULL) {
+ style->warnings++;
+ return;
+ }
+ format = xsltDecimalFormatGetByQName(style, nsUri, prop);
if (format != NULL) {
xsltTransformError(NULL, style, cur,
"xsltParseStylestyleDecimalFormat: %s already exists\n", prop);
- if (style != NULL) style->warnings++;
+ style->warnings++;
+ xmlFree(prop);
return;
}
- format = xsltNewDecimalFormat(prop);
+ format = xsltNewDecimalFormat(nsUri, prop);
if (format == NULL) {
xsltTransformError(NULL, style, cur,
"xsltParseStylestyleDecimalFormat: failed creating new decimal-format\n");
- if (style != NULL) style->errors++;
+ style->errors++;
+ xmlFree(prop);
return;
}
/* Append new decimal-format structure */
@@ -3424,7 +3476,7 @@ internal_err:
#ifdef XSLT_REFACTORED
#else
static void
-xsltPrecomputeStylesheet(xsltStylesheetPtr style, xmlNodePtr cur)
+xsltPreprocessStylesheet(xsltStylesheetPtr style, xmlNodePtr cur)
{
xmlNodePtr deleteNode, styleelem;
int internalize = 0;
@@ -3455,7 +3507,7 @@ xsltPrecomputeStylesheet(xsltStylesheetPtr style, xmlNodePtr cur)
if (deleteNode != NULL) {
#ifdef WITH_XSLT_DEBUG_BLANKS
xsltGenericDebug(xsltGenericDebugContext,
- "xsltPrecomputeStylesheet: removing ignorable blank node\n");
+ "xsltPreprocessStylesheet: removing ignorable blank node\n");
#endif
xmlUnlinkNode(deleteNode);
xmlFreeNode(deleteNode);
@@ -3495,7 +3547,6 @@ xsltPrecomputeStylesheet(xsltStylesheetPtr style, xmlNodePtr cur)
}
if (IS_XSLT_ELEM(cur)) {
exclPrefixes = 0;
- xsltStylePreCompute(style, cur);
if (IS_XSLT_NAME(cur, "text")) {
for (;exclPrefixes > 0;exclPrefixes--)
exclPrefixPop(style);
@@ -3546,7 +3597,7 @@ xsltPrecomputeStylesheet(xsltStylesheetPtr style, xmlNodePtr cur)
* going back
*/
if (exclPrefixes > 0) {
- xsltPrecomputeStylesheet(style, cur->children);
+ xsltPreprocessStylesheet(style, cur->children);
for (;exclPrefixes > 0;exclPrefixes--)
exclPrefixPop(style);
goto skip_children;
@@ -3617,7 +3668,7 @@ skip_children:
if (deleteNode != NULL) {
#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
- "xsltPrecomputeStylesheet: removing ignorable blank node\n");
+ "xsltPreprocessStylesheet: removing ignorable blank node\n");
#endif
xmlUnlinkNode(deleteNode);
xmlFreeNode(deleteNode);
@@ -4862,10 +4913,12 @@ xsltParseTemplateContent(xsltStylesheetPtr style, xmlNodePtr templ) {
delete = NULL;
}
if (IS_XSLT_ELEM(cur)) {
+ xsltStylePreCompute(style, cur);
+
if (IS_XSLT_NAME(cur, "text")) {
/*
* TODO: Processing of xsl:text should be moved to
- * xsltPrecomputeStylesheet(), since otherwise this
+ * xsltPreprocessStylesheet(), since otherwise this
* will be performed for every multiply included
* stylesheet; i.e. this here is not skipped with
* the use of the style->nopreproc flag.
@@ -5395,6 +5448,7 @@ xsltParseStylesheetTemplate(xsltStylesheetPtr style, xmlNodePtr template) {
xsltTransformError(NULL, style, template,
"xsl:template : error invalid name '%s'\n", prop);
if (style != NULL) style->errors++;
+ xmlFree(prop);
goto error;
}
ret->name = xmlDictLookup(style->dict, BAD_CAST prop, -1);
@@ -6054,7 +6108,7 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
if ((!xmlStrEqual(prop, (const xmlChar *)"1.0")) &&
(!xmlStrEqual(prop, (const xmlChar *)"1.1"))) {
xsltTransformError(NULL, style, top,
- "xsl:version: only 1.0 features are supported\n");
+ "xsl:version: only 1.1 features are supported\n");
if (style != NULL) {
style->forwards_compatible = 1;
style->warnings++;
@@ -6125,31 +6179,31 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
xsltTransformError(NULL, style, cur,
"xsltParseStylesheetTop: ignoring misplaced import element\n");
if (style != NULL) style->errors++;
- } else if (IS_XSLT_NAME(cur, "include")) {
+ } else if (IS_XSLT_NAME(cur, "include")) {
if (xsltParseStylesheetInclude(style, cur) != 0)
if (style != NULL) style->errors++;
- } else if (IS_XSLT_NAME(cur, "strip-space")) {
+ } else if (IS_XSLT_NAME(cur, "strip-space")) {
xsltParseStylesheetStripSpace(style, cur);
- } else if (IS_XSLT_NAME(cur, "preserve-space")) {
+ } else if (IS_XSLT_NAME(cur, "preserve-space")) {
xsltParseStylesheetPreserveSpace(style, cur);
- } else if (IS_XSLT_NAME(cur, "output")) {
+ } else if (IS_XSLT_NAME(cur, "output")) {
xsltParseStylesheetOutput(style, cur);
- } else if (IS_XSLT_NAME(cur, "key")) {
+ } else if (IS_XSLT_NAME(cur, "key")) {
xsltParseStylesheetKey(style, cur);
- } else if (IS_XSLT_NAME(cur, "decimal-format")) {
+ } else if (IS_XSLT_NAME(cur, "decimal-format")) {
xsltParseStylesheetDecimalFormat(style, cur);
- } else if (IS_XSLT_NAME(cur, "attribute-set")) {
+ } else if (IS_XSLT_NAME(cur, "attribute-set")) {
xsltParseStylesheetAttributeSet(style, cur);
- } else if (IS_XSLT_NAME(cur, "variable")) {
+ } else if (IS_XSLT_NAME(cur, "variable")) {
xsltParseGlobalVariable(style, cur);
- } else if (IS_XSLT_NAME(cur, "param")) {
+ } else if (IS_XSLT_NAME(cur, "param")) {
xsltParseGlobalParam(style, cur);
- } else if (IS_XSLT_NAME(cur, "template")) {
+ } else if (IS_XSLT_NAME(cur, "template")) {
#ifdef WITH_XSLT_DEBUG_PARSING
templates++;
#endif
xsltParseStylesheetTemplate(style, cur);
- } else if (IS_XSLT_NAME(cur, "namespace-alias")) {
+ } else if (IS_XSLT_NAME(cur, "namespace-alias")) {
xsltNamespaceAlias(style, cur);
} else {
if ((style != NULL) && (style->forwards_compatible == 0)) {
@@ -6158,13 +6212,6 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
cur->name);
if (style != NULL) style->errors++;
}
- else {
- /* do Forwards-Compatible Processing */
- xsltTransformError(NULL, style, cur,
- "xsltParseStylesheetTop: ignoring unknown %s element\n",
- cur->name);
- if (style != NULL) style->warnings++;
- }
}
cur = cur->next;
}
@@ -6408,7 +6455,7 @@ xsltParseStylesheetProcess(xsltStylesheetPtr ret, xmlDocPtr doc) {
ret->literal_result = 1;
}
if (!ret->nopreproc) {
- xsltPrecomputeStylesheet(ret, cur);
+ xsltPreprocessStylesheet(ret, cur);
}
if (ret->literal_result == 0) {
xsltParseStylesheetTop(ret, cur);
@@ -6431,10 +6478,11 @@ xsltParseStylesheetProcess(xsltStylesheetPtr ret, xmlDocPtr doc) {
"xsltParseStylesheetProcess : document is stylesheet\n");
#endif
- if (!xmlStrEqual(prop, (const xmlChar *)"1.0")) {
+ if ((!xmlStrEqual(prop, (const xmlChar *)"1.0")) &&
+ (!xmlStrEqual(prop, (const xmlChar *)"1.1"))) {
xsltTransformError(NULL, ret, cur,
- "xsl:version: only 1.0 features are supported\n");
- /* TODO set up compatibility when not XSLT 1.0 */
+ "xsl:version: only 1.1 features are supported\n");
+ ret->forwards_compatible = 1;
ret->warnings++;
}
xmlFree(prop);
diff --git a/libxslt/xsltInternals.h b/libxslt/xsltInternals.h
index 7123acec..47125b36 100644
--- a/libxslt/xsltInternals.h
+++ b/libxslt/xsltInternals.h
@@ -324,6 +324,7 @@ struct _xsltDecimalFormat {
xmlChar *percent;
xmlChar *permille;
xmlChar *zeroDigit;
+ const xmlChar *nsUri;
};
/**
@@ -1754,8 +1755,8 @@ struct _xsltTransformContext {
* Speed optimization when coalescing text nodes
*/
const xmlChar *lasttext; /* last text node content */
- unsigned int lasttsize; /* last text node size */
- unsigned int lasttuse; /* last text node use */
+ int lasttsize; /* last text node size */
+ int lasttuse; /* last text node use */
/*
* Per Context Debugging
*/
@@ -1783,9 +1784,9 @@ struct _xsltTransformContext {
xmlDocPtr localRVT; /* list of local tree fragments; will be freed when
the instruction which created the fragment
exits */
- xmlDocPtr localRVTBase;
+ xmlDocPtr localRVTBase; /* Obsolete */
int keyInitLevel; /* Needed to catch recursive keys issues */
- int funcLevel; /* Needed to catch recursive functions issues */
+ int depth; /* Needed to catch recursions */
int maxTemplateDepth;
int maxTemplateVars;
};
@@ -1854,6 +1855,10 @@ XSLTPUBFUN void XSLTCALL
XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL
xsltDecimalFormatGetByName(xsltStylesheetPtr style,
xmlChar *name);
+XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL
+ xsltDecimalFormatGetByQName(xsltStylesheetPtr style,
+ const xmlChar *nsUri,
+ const xmlChar *name);
XSLTPUBFUN xsltStylesheetPtr XSLTCALL
xsltParseStylesheetProcess(xsltStylesheetPtr ret,
@@ -1906,6 +1911,11 @@ XSLTPUBFUN int XSLTCALL
XSLTPUBFUN int XSLTCALL
xsltExtensionInstructionResultFinalize(
xsltTransformContextPtr ctxt);
+XSLTPUBFUN int XSLTCALL
+ xsltFlagRVTs(
+ xsltTransformContextPtr ctxt,
+ xmlXPathObjectPtr obj,
+ void *val);
XSLTPUBFUN void XSLTCALL
xsltFreeRVTs (xsltTransformContextPtr ctxt);
XSLTPUBFUN void XSLTCALL
diff --git a/libxslt/xsltconfig.h.in b/libxslt/xsltconfig.h.in
index 6e4e3285..5fa5e589 100644
--- a/libxslt/xsltconfig.h.in
+++ b/libxslt/xsltconfig.h.in
@@ -124,19 +124,6 @@ extern "C" {
#endif
/**
- * Locale support
- */
-#if @XSLT_LOCALE_XLOCALE@
-#ifndef XSLT_LOCALE_XLOCALE
-#define XSLT_LOCALE_XLOCALE
-#endif
-#elif @XSLT_LOCALE_WINAPI@
-#ifndef XSLT_LOCALE_WINAPI
-#define XSLT_LOCALE_WINAPI
-#endif
-#endif
-
-/**
* ATTRIBUTE_UNUSED:
*
* This macro is used to flag unused function parameters to GCC
diff --git a/libxslt/xsltlocale.c b/libxslt/xsltlocale.c
index b5fe9863..c69735cd 100644
--- a/libxslt/xsltlocale.c
+++ b/libxslt/xsltlocale.c
@@ -19,13 +19,6 @@
#include "xsltlocale.h"
#include "xsltutils.h"
-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ <= 2
-#define newlocale __newlocale
-#define freelocale __freelocale
-#define strxfrm_l __strxfrm_l
-#define LC_COLLATE_MASK (1 << LC_COLLATE)
-#endif
-
#define TOUPPER(c) (c & ~0x20)
#define TOLOWER(c) (c | 0x20)
#define ISALPHA(c) ((unsigned)(TOUPPER(c) - 'A') < 26)
@@ -92,7 +85,7 @@ xsltFreeLocales(void) {
*/
xsltLocale
xsltNewLocale(const xmlChar *languageTag) {
-#ifdef XSLT_LOCALE_XLOCALE
+#ifdef XSLT_LOCALE_POSIX
xsltLocale locale;
char localeName[XSLTMAX_LANGTAGLEN+6]; /* 6 chars for ".utf8\0" */
const xmlChar *p = languageTag;
@@ -194,7 +187,7 @@ xsltNewLocale(const xmlChar *languageTag) {
region = xsltDefaultRegion(localeName);
if (region == NULL) goto end;
- strcpy(localeName + llen + 1, region);
+ strcpy((char *) localeName + llen + 1, (char *) region);
locale = xslt_locale_WINAPI(localeName);
end:
return(locale);
@@ -352,7 +345,7 @@ xsltDefaultRegion(const xmlChar *localeName) {
*/
void
xsltFreeLocale(xsltLocale locale) {
-#ifdef XSLT_LOCALE_XLOCALE
+#ifdef XSLT_LOCALE_POSIX
freelocale(locale);
#endif
}
@@ -376,7 +369,7 @@ xsltStrxfrm(xsltLocale locale, const xmlChar *string)
size_t xstrlen, r;
xsltLocaleChar *xstr;
-#ifdef XSLT_LOCALE_XLOCALE
+#ifdef XSLT_LOCALE_POSIX
xstrlen = strxfrm_l(NULL, (const char *)string, 0, locale) + 1;
xstr = (xsltLocaleChar *) xmlMalloc(xstrlen);
if (xstr == NULL) {
@@ -389,7 +382,7 @@ xsltStrxfrm(xsltLocale locale, const xmlChar *string)
#endif
#ifdef XSLT_LOCALE_WINAPI
- xstrlen = MultiByteToWideChar(CP_UTF8, 0, string, -1, NULL, 0);
+ xstrlen = MultiByteToWideChar(CP_UTF8, 0, (char *) string, -1, NULL, 0);
if (xstrlen == 0) {
xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : MultiByteToWideChar check failed\n");
return(NULL);
@@ -399,7 +392,7 @@ xsltStrxfrm(xsltLocale locale, const xmlChar *string)
xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : out of memory\n");
return(NULL);
}
- r = MultiByteToWideChar(CP_UTF8, 0, string, -1, xstr, xstrlen);
+ r = MultiByteToWideChar(CP_UTF8, 0, (char *) string, -1, xstr, xstrlen);
if (r == 0) {
xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : MultiByteToWideChar failed\n");
xmlFree(xstr);
@@ -486,9 +479,11 @@ xsltIterateSupportedLocales(LPSTR lcid) {
k = sscanf(lcid, "%lx", (long*)&p->lcid);
if (k < 1) goto end;
/*don't count terminating null character*/
- k = GetLocaleInfoA(p->lcid, LOCALE_SISO639LANGNAME , iso639lang , sizeof(iso639lang ));
+ k = GetLocaleInfoA(p->lcid, LOCALE_SISO639LANGNAME,
+ (char *) iso639lang, sizeof(iso639lang));
if (--k < 1) goto end;
- l = GetLocaleInfoA(p->lcid, LOCALE_SISO3166CTRYNAME, iso3136ctry, sizeof(iso3136ctry));
+ l = GetLocaleInfoA(p->lcid, LOCALE_SISO3166CTRYNAME,
+ (char *) iso3136ctry, sizeof(iso3136ctry));
if (--l < 1) goto end;
{ /*fill results*/
diff --git a/libxslt/xsltlocale.h b/libxslt/xsltlocale.h
index 8a9ca152..f3b9d6e0 100644
--- a/libxslt/xsltlocale.h
+++ b/libxslt/xsltlocale.h
@@ -14,20 +14,31 @@
#include <libxml/xmlstring.h>
#include "xsltexports.h"
-#ifdef XSLT_LOCALE_XLOCALE
+#ifdef HAVE_STRXFRM_L
+/*
+ * XSLT_LOCALE_POSIX:
+ * Macro indicating to use POSIX locale extensions
+ */
+#define XSLT_LOCALE_POSIX
+
+#ifdef HAVE_LOCALE_H
#include <locale.h>
+#endif
+#ifdef HAVE_XLOCALE_H
#include <xlocale.h>
+#endif
-#ifdef __GLIBC__
-/*locale_t is defined only if _GNU_SOURCE is defined*/
-typedef __locale_t xsltLocale;
-#else
typedef locale_t xsltLocale;
-#endif
typedef xmlChar xsltLocaleChar;
-#elif defined(XSLT_LOCALE_WINAPI)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
+
+/*
+ * XSLT_LOCALE_WINAPI:
+ * Macro indicating to use WinAPI for extended locale support
+ */
+#define XSLT_LOCALE_WINAPI
#include <windows.h>
#include <winnls.h>
@@ -39,11 +50,9 @@ typedef wchar_t xsltLocaleChar;
/*
* XSLT_LOCALE_NONE:
- * Macro indicating that locale are not supported
+ * Macro indicating that there's no extended locale support
*/
-#ifndef XSLT_LOCALE_NONE
#define XSLT_LOCALE_NONE
-#endif
typedef void *xsltLocale;
typedef xmlChar xsltLocaleChar;
diff --git a/libxslt/xsltutils.c b/libxslt/xsltutils.c
index 1646c449..41498e04 100644
--- a/libxslt/xsltutils.c
+++ b/libxslt/xsltutils.c
@@ -42,16 +42,9 @@
#include "imports.h"
#include "transform.h"
-/* gettimeofday on Windows ??? */
-#if defined(WIN32) && !defined(__CYGWIN__)
-#ifdef _MSC_VER
-#include <winsock2.h>
-#pragma comment(lib, "ws2_32.lib")
-#define gettimeofday(p1,p2)
-#define HAVE_GETTIMEOFDAY
+#if defined(_WIN32) && !defined(__CYGWIN__)
#define XSLT_WIN32_PERFORMANCE_COUNTER
-#endif /* _MS_VER */
-#endif /* WIN32 */
+#endif
/************************************************************************
* *
@@ -457,9 +450,8 @@ xsltMessage(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst) {
} else if (xmlStrEqual(prop, (const xmlChar *)"no")) {
terminate = 0;
} else {
- error(errctx,
+ xsltTransformError(ctxt, NULL, inst,
"xsl:message : terminate expecting 'yes' or 'no'\n");
- ctxt->state = XSLT_STATE_ERROR;
}
xmlFree(prop);
}
@@ -622,7 +614,8 @@ xsltPrintErrorContext(xsltTransformContextPtr ctxt,
void *errctx = xsltGenericErrorContext;
if (ctxt != NULL) {
- ctxt->state = XSLT_STATE_ERROR;
+ if (ctxt->state == XSLT_STATE_OK)
+ ctxt->state = XSLT_STATE_ERROR;
if (ctxt->error != NULL) {
error = ctxt->error;
errctx = ctxt->errctx;
@@ -715,7 +708,8 @@ xsltTransformError(xsltTransformContextPtr ctxt,
char * str;
if (ctxt != NULL) {
- ctxt->state = XSLT_STATE_ERROR;
+ if (ctxt->state == XSLT_STATE_OK)
+ ctxt->state = XSLT_STATE_ERROR;
if (ctxt->error != NULL) {
error = ctxt->error;
errctx = ctxt->errctx;
@@ -1248,6 +1242,8 @@ xsltDefaultSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts,
if (res[j] == NULL) {
if (res[j+incr] != NULL)
tst = 1;
+ } else if (res[j+incr] == NULL) {
+ tst = -1;
} else {
if (numb) {
/* We make NaN smaller than number in
@@ -1808,6 +1804,8 @@ static long calibration = -1;
*
* Returns the number of milliseconds used by xsltTimestamp()
*/
+#if !defined(XSLT_WIN32_PERFORMANCE_COUNTER) && \
+ (defined(HAVE_CLOCK_GETTIME) || defined(HAVE_GETTIMEOFDAY))
static long
xsltCalibrateTimestamps(void) {
register int i;
@@ -1816,6 +1814,7 @@ xsltCalibrateTimestamps(void) {
xsltTimestamp();
return(xsltTimestamp() / 1000);
}
+#endif
/**
* xsltCalibrateAdjust:
diff --git a/packaging/libxslt.spec b/packaging/libxslt.spec
index 51d757ca..c4f07460 100644
--- a/packaging/libxslt.spec
+++ b/packaging/libxslt.spec
@@ -1,11 +1,11 @@
-%define run_tests 0
-%if %{run_tests}
- # check is defined off at .rpmmacros file.
+
+%if "%{run_tests}" == "1"
+ %define __spec_check_pre %___build_pre
%define check %%check
%endif
Name: libxslt
-Version: 1.1.29
+Version: 1.1.31
Release: 0
Summary: XSL Transformation Library
License: MIT
@@ -60,13 +60,12 @@ This package contains xsltproc, a command line interface to the XSLT engine.
cp %{SOURCE1001} .
%build
+autoreconf -v --install --force
%configure --disable-static --with-pic --without-python
%__make %{?_smp_mflags}
%check
-%if %{run_tests}
- %__make check || exit 0
-%endif
+%__make check || exit 0
%install
%make_install
diff --git a/python/Makefile.in b/python/Makefile.in
index 5fe9ea72..58590f73 100644
--- a/python/Makefile.in
+++ b/python/Makefile.in
@@ -90,7 +90,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = python
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -322,7 +322,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -339,6 +338,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -348,12 +350,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -372,8 +372,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
diff --git a/python/libxslt.c b/python/libxslt.c
index 8dd6c788..b1fb18de 100644
--- a/python/libxslt.c
+++ b/python/libxslt.c
@@ -21,6 +21,7 @@
#include "libxslt-py.h"
#include <stdio.h>
+#include <stddef.h>
#if (defined(_MSC_VER) || defined(__MINGW32__)) && !defined(vsnprintf)
#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
@@ -105,7 +106,7 @@ libxslt_xsltGetTransformContextHashCode(PyObject *self ATTRIBUTE_UNUSED, PyObjec
return NULL;
tctxt = (xsltTransformContextPtr) PytransformCtxt_Get(py_tctxt);
- hash_code = (long) tctxt;
+ hash_code = (ptrdiff_t) tctxt;
ret = PyInt_FromLong(hash_code);
return ret;
@@ -142,7 +143,7 @@ libxslt_xsltGetStylesheetHashCode(PyObject *self ATTRIBUTE_UNUSED, PyObject *arg
return NULL;
style = (xsltStylesheetPtr) Pystylesheet_Get(py_style);
- hash_code = (long) style;
+ hash_code = (ptrdiff_t) style;
ret = PyInt_FromLong(hash_code);
return ret;
@@ -857,7 +858,7 @@ libxslt_xsltSaveResultToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
static PyObject *libxslt_xsltPythonErrorFuncHandler = NULL;
static PyObject *libxslt_xsltPythonErrorFuncCtxt = NULL;
-static void
+static void LIBXSLT_ATTR_FORMAT(2,3)
libxslt_xsltErrorFuncHandler(void *ctx ATTRIBUTE_UNUSED, const char *msg,
...)
{
@@ -1180,7 +1181,6 @@ extern void initlibxml2mod(void);
void initlibxsltmod(void) {
static int initialized = 0;
- PyObject *m;
#ifdef MERGED_MODULES
initlibxml2mod();
@@ -1188,7 +1188,7 @@ void initlibxsltmod(void) {
if (initialized != 0)
return;
- m = Py_InitModule((char *)"libxsltmod", libxsltMethods);
+ Py_InitModule((char *)"libxsltmod", libxsltMethods);
initialized = 1;
/*
* Specific XSLT initializations
diff --git a/python/tests/Makefile.in b/python/tests/Makefile.in
index 3eaaa422..55e5b523 100644
--- a/python/tests/Makefile.in
+++ b/python/tests/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = python/tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -325,9 +323,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu python/tests/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign python/tests/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu python/tests/Makefile
+ $(AUTOMAKE) --foreign python/tests/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 64b7c729..58e2b977 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -252,7 +252,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -269,6 +268,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -278,12 +280,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -302,8 +302,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -373,9 +371,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/Makefile
+ $(AUTOMAKE) --foreign tests/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/REC/Makefile.in b/tests/REC/Makefile.in
index fb63d8a8..895d32c9 100644
--- a/tests/REC/Makefile.in
+++ b/tests/REC/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/REC
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -390,9 +388,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/REC/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/REC/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/REC/Makefile
+ $(AUTOMAKE) --foreign tests/REC/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/REC/test-2.5-1.err b/tests/REC/test-2.5-1.err
index 7fbacdd7..141a1016 100644
--- a/tests/REC/test-2.5-1.err
+++ b/tests/REC/test-2.5-1.err
@@ -1,4 +1,2 @@
-compilation error: file ./test-2.5-1.xsl line 6 element exciting-new-1.8-feature
-xsltStylePreCompute: unknown xsl:exciting-new-1.8-feature
compilation error: file ./test-2.5-1.xsl line 2 element stylesheet
-xsl:version: only 1.0 features are supported
+xsl:version: only 1.1 features are supported
diff --git a/tests/REC1/Makefile.in b/tests/REC1/Makefile.in
index 0524e5f6..f1293e2c 100644
--- a/tests/REC1/Makefile.in
+++ b/tests/REC1/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/REC1
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -311,9 +309,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/REC1/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/REC1/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/REC1/Makefile
+ $(AUTOMAKE) --foreign tests/REC1/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/REC2/Makefile.in b/tests/REC2/Makefile.in
index e0c049de..9fb981a3 100644
--- a/tests/REC2/Makefile.in
+++ b/tests/REC2/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/REC2
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -311,9 +309,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/REC2/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/REC2/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/REC2/Makefile
+ $(AUTOMAKE) --foreign tests/REC2/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/XSLTMark/Makefile.in b/tests/XSLTMark/Makefile.in
index 944c0477..9e9ebb01 100644
--- a/tests/XSLTMark/Makefile.in
+++ b/tests/XSLTMark/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/XSLTMark
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -363,9 +361,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/XSLTMark/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/XSLTMark/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/XSLTMark/Makefile
+ $(AUTOMAKE) --foreign tests/XSLTMark/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/docbook/Makefile.am b/tests/docbook/Makefile.am
index 09e7239b..25f09ce9 100644
--- a/tests/docbook/Makefile.am
+++ b/tests/docbook/Makefile.am
@@ -1,9 +1,8 @@
## Process this file with automake to produce Makefile.in
tests:
- @echo '## Running docbook tests'
- $(MAKE) single
- $(MAKE) xtchunk
+ @$(MAKE) single
+ @$(MAKE) xtchunk
valgrind:
@echo '## Running the regression tests under Valgrind'
@@ -22,12 +21,12 @@ full: tests htmltests xhtmltests fotests
# a single tests to check that stuff ain't broken
#
single:
+ @echo '## Running single docbook tests'
@$(MKDIR_P) result/html
@$(MKDIR_P) result/fo
@$(MKDIR_P) result/xhtml
@(echo > .memdump)
@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
- echo -n "`basename $$i` : html " ; \
out=result/html/`basename $$i .xml`.tst; \
html=result/html/`basename $$i .xml`.html; \
log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
@@ -42,12 +41,10 @@ single:
fi ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f $$out ; \
- echo -n "fo " ; \
out=result/fo/`basename $$i .xml`.tst; \
fo=result/fo/`basename $$i .xml`.fo; \
msg=result/fo/`basename $$i .xml`.msg; \
@@ -63,12 +60,10 @@ single:
fi ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f $$out $$msg ; \
- echo -n "xhtml " ; \
out=result/xhtml/`basename $$i .xml`.tst; \
xhtml=result/xhtml/`basename $$i .xml`.xhtml; \
log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
@@ -83,19 +78,17 @@ single:
fi ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f $$out ; \
done )
- @echo
xtchunk:
+ @echo '## Running xtchunk docbook tests'
@$(MKDIR_P) result/html
@$(MKDIR_P) result/xtchunk
@(echo > .memdump)
- @echo -n html-chunking
@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
base=`basename $$i .xml` ; \
html=result/html/$$base.html; \
@@ -121,13 +114,11 @@ xtchunk:
done ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f result/xtchunk/html/gdp-handbook ; \
done )
- @echo
#
# The full set of tests
diff --git a/tests/docbook/Makefile.in b/tests/docbook/Makefile.in
index 7047918d..ec97f9cd 100644
--- a/tests/docbook/Makefile.in
+++ b/tests/docbook/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/docbook
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -311,9 +309,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docbook/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/docbook/Makefile
+ $(AUTOMAKE) --foreign tests/docbook/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -496,9 +494,8 @@ uninstall-am:
tests:
- @echo '## Running docbook tests'
- $(MAKE) single
- $(MAKE) xtchunk
+ @$(MAKE) single
+ @$(MAKE) xtchunk
valgrind:
@echo '## Running the regression tests under Valgrind'
@@ -513,12 +510,12 @@ full: tests htmltests xhtmltests fotests
# a single tests to check that stuff ain't broken
#
single:
+ @echo '## Running single docbook tests'
@$(MKDIR_P) result/html
@$(MKDIR_P) result/fo
@$(MKDIR_P) result/xhtml
@(echo > .memdump)
@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
- echo -n "`basename $$i` : html " ; \
out=result/html/`basename $$i .xml`.tst; \
html=result/html/`basename $$i .xml`.html; \
log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
@@ -533,12 +530,10 @@ single:
fi ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f $$out ; \
- echo -n "fo " ; \
out=result/fo/`basename $$i .xml`.tst; \
fo=result/fo/`basename $$i .xml`.fo; \
msg=result/fo/`basename $$i .xml`.msg; \
@@ -554,12 +549,10 @@ single:
fi ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f $$out $$msg ; \
- echo -n "xhtml " ; \
out=result/xhtml/`basename $$i .xml`.tst; \
xhtml=result/xhtml/`basename $$i .xml`.xhtml; \
log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
@@ -574,19 +567,17 @@ single:
fi ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f $$out ; \
done )
- @echo
xtchunk:
+ @echo '## Running xtchunk docbook tests'
@$(MKDIR_P) result/html
@$(MKDIR_P) result/xtchunk
@(echo > .memdump)
- @echo -n html-chunking
@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
base=`basename $$i .xml` ; \
html=result/html/$$base.html; \
@@ -612,13 +603,11 @@ xtchunk:
done ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
if [ -n "$$log" ] ; then \
- echo ; \
echo result ; \
echo "$$log" ; \
fi ; \
rm -f result/xtchunk/html/gdp-handbook ; \
done )
- @echo
#
# The full set of tests
diff --git a/tests/docs/Makefile.in b/tests/docs/Makefile.in
index 03e47325..e809e0fa 100644
--- a/tests/docs/Makefile.in
+++ b/tests/docs/Makefile.in
@@ -93,7 +93,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/docs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -196,7 +196,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -213,6 +212,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -222,12 +224,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -246,8 +246,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -501,9 +499,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docs/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docs/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/docs/Makefile
+ $(AUTOMAKE) --foreign tests/docs/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/documents/Makefile.in b/tests/documents/Makefile.in
index 3708011f..46a76f26 100644
--- a/tests/documents/Makefile.in
+++ b/tests/documents/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/documents
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -317,9 +315,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/documents/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/documents/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/documents/Makefile
+ $(AUTOMAKE) --foreign tests/documents/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/documents/message.result b/tests/documents/message.result
index 0dbde5b5..965a84b4 100644
--- a/tests/documents/message.result
+++ b/tests/documents/message.result
@@ -1,2 +1,3 @@
A simple message
A fatal message
+no result for ./message.xml
diff --git a/tests/exslt/Makefile.in b/tests/exslt/Makefile.in
index 7869a0d7..9e4e2ebc 100644
--- a/tests/exslt/Makefile.in
+++ b/tests/exslt/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -252,7 +252,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -269,6 +268,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -278,12 +280,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -302,8 +302,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -370,9 +368,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/exslt/common/Makefile.in b/tests/exslt/common/Makefile.in
index 014612ee..fca17106 100644
--- a/tests/exslt/common/Makefile.in
+++ b/tests/exslt/common/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/common
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -323,9 +321,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/common/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/common/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/common/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/common/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/exslt/crypto/Makefile.in b/tests/exslt/crypto/Makefile.in
index 84d3dc36..2fc6b44a 100644
--- a/tests/exslt/crypto/Makefile.in
+++ b/tests/exslt/crypto/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/crypto
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -314,9 +312,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/crypto/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/crypto/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/crypto/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/crypto/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/exslt/date/Makefile.am b/tests/exslt/date/Makefile.am
index ec1b896b..515f5496 100644
--- a/tests/exslt/date/Makefile.am
+++ b/tests/exslt/date/Makefile.am
@@ -38,23 +38,22 @@ CLEANFILES = .memdump
test-current:
@(echo > .memdump)
- @echo \<doc/\> >current.xml
- @echo "#"
- @echo "# Inspect the following for correctness"
- @echo "#"
- @(for i in $(srcdir)/current.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- done)
- @rm -f current.xml
+ @(if [ -z "$$CONTINUOUS_INTEGRATION" ]; then \
+ echo \<doc/\> >current.xml ; \
+ echo "#" ; \
+ echo "# Inspect the following for correctness" ; \
+ echo "#" ; \
+ for i in $(srcdir)/current.xsl ; do \
+ name=`basename $$i .xsl` ; \
+ if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+ $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
+ done ; \
+ rm -f current.xml ; \
+ fi)
-test-logall:
+test tests: $(top_builddir)/xsltproc/xsltproc test-current
@echo '## Running exslt date tests'
-
-test tests: $(top_builddir)/xsltproc/xsltproc test-logall test-current
- @echo '## Running exslt common tests'
@(echo > .memdump)
@(for i in $(srcdir)/*.xsl ; do \
name=`basename $$i .xsl` ; \
diff --git a/tests/exslt/date/Makefile.in b/tests/exslt/date/Makefile.in
index e901ea5b..0ae8fcda 100644
--- a/tests/exslt/date/Makefile.in
+++ b/tests/exslt/date/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/date
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -341,9 +339,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/date/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/date/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/date/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/date/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -527,23 +525,22 @@ $(top_builddir)/xsltproc/xsltproc:
test-current:
@(echo > .memdump)
- @echo \<doc/\> >current.xml
- @echo "#"
- @echo "# Inspect the following for correctness"
- @echo "#"
- @(for i in $(srcdir)/current.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- done)
- @rm -f current.xml
-
-test-logall:
+ @(if [ -z "$$CONTINUOUS_INTEGRATION" ]; then \
+ echo \<doc/\> >current.xml ; \
+ echo "#" ; \
+ echo "# Inspect the following for correctness" ; \
+ echo "#" ; \
+ for i in $(srcdir)/current.xsl ; do \
+ name=`basename $$i .xsl` ; \
+ if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+ $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
+ done ; \
+ rm -f current.xml ; \
+ fi)
+
+test tests: $(top_builddir)/xsltproc/xsltproc test-current
@echo '## Running exslt date tests'
-
-test tests: $(top_builddir)/xsltproc/xsltproc test-logall test-current
- @echo '## Running exslt common tests'
@(echo > .memdump)
@(for i in $(srcdir)/*.xsl ; do \
name=`basename $$i .xsl` ; \
diff --git a/tests/exslt/date/add.1.out b/tests/exslt/date/add.1.out
index 47394ae2..76c18651 100644
--- a/tests/exslt/date/add.1.out
+++ b/tests/exslt/date/add.1.out
@@ -21,6 +21,8 @@ add : -0001 + -PT59S
result : -0002-12-31T23:59:01Z
add : -0001 + P1Y
result : 0001
+add : -0001-01-01 + P2Y
+result : 0002-01-01
add : 2000-01 + -PT86400S
result : 1999-12-31
add : 2000-01 + -P1D
diff --git a/tests/exslt/date/add.1.xml b/tests/exslt/date/add.1.xml
index 5555747e..94cf1ad5 100644
--- a/tests/exslt/date/add.1.xml
+++ b/tests/exslt/date/add.1.xml
@@ -11,6 +11,7 @@
<date date='2000-01-01T00:00:00Z' dur='-PT59S'/>
<date date='-0001' dur='-PT59S'/>
<date date='-0001' dur='P1Y'/>
+ <date date='-0001-01-01' dur='P2Y'/>
<date date='2000-01' dur='-PT86400S'/>
<date date='2000-01' dur='-P1D'/>
<date date='1970-01-01T00:00:00-00:30' dur='-PT30S'/>
diff --git a/tests/exslt/date/date.1.out b/tests/exslt/date/date.1.out
index f22546c5..8296de53 100644
--- a/tests/exslt/date/date.1.out
+++ b/tests/exslt/date/date.1.out
@@ -73,8 +73,8 @@
minute-in-hour : NaN
second-in-minute : NaN
- Test Date : -0004-02-29
- year : -4
+ Test Date : -0005-02-29
+ year : -5
leap-year : true
month-in-year : 2
month-name : February
@@ -83,9 +83,9 @@
day-in-year : 60
day-in-month : 29
day-of-week-in-month : 5
- day-in-week : 1
- day-name : Sunday
- day-abbreviation : Sun
+ day-in-week : 5
+ day-name : Thursday
+ day-abbreviation : Thu
time :
hour-in-day : NaN
minute-in-hour : NaN
diff --git a/tests/exslt/date/date.1.xml b/tests/exslt/date/date.1.xml
index 562e08e8..7f3e9f50 100644
--- a/tests/exslt/date/date.1.xml
+++ b/tests/exslt/date/date.1.xml
@@ -5,7 +5,7 @@
<date date="3000-01-31"/>
<date date="2000-02-29"/>
<date date="9990001-12-31Z"/>
- <date date="-0004-02-29"/>
+ <date date="-0005-02-29"/>
<date date="1999-01-02"/>
<date date="1999-01-03"/>
<date date="2004-01-01"/>
diff --git a/tests/exslt/date/datetime.1.out b/tests/exslt/date/datetime.1.out
index c0b4c537..273130d5 100644
--- a/tests/exslt/date/datetime.1.out
+++ b/tests/exslt/date/datetime.1.out
@@ -39,12 +39,12 @@
Test Date : -0001-12-31T23:59:59-05:00
year : -1
- leap-year : false
+ leap-year : true
month-in-year : 12
month-name : December
month-abbreviation : Dec
week-in-year : 52
- day-in-year : 365
+ day-in-year : 366
day-in-month : 31
day-of-week-in-month : 5
day-in-week : 1
@@ -75,17 +75,17 @@
Test Date : -10000-12-31T23:59:59Z
year : -10000
- leap-year : true
+ leap-year : false
month-in-year : 12
month-name : December
month-abbreviation : Dec
week-in-year : 1
- day-in-year : 366
+ day-in-year : 365
day-in-month : 31
day-of-week-in-month : 5
- day-in-week : 4
- day-name : Wednesday
- day-abbreviation : Wed
+ day-in-week : 2
+ day-name : Monday
+ day-abbreviation : Mon
time : 23:59:59Z
hour-in-day : 23
minute-in-hour : 59
diff --git a/tests/exslt/date/difference.1.out b/tests/exslt/date/difference.1.out
index bcafa2ba..0329e150 100644
--- a/tests/exslt/date/difference.1.out
+++ b/tests/exslt/date/difference.1.out
@@ -14,7 +14,9 @@ result : -P366D
difference : 0002-05-05 - 0001-01
result : -P1Y4M
difference : -0002-01-05 - 0001-01-04
-result : P729D
+result : P730D
+difference : 0002 - -0001
+result : -P2Y
difference : 1970-01-01T05:04:03 - 1970-01-01T04:03:02
result : -PT1H1M1S
difference : 2000-01-01T05:00:03 - 2000-01-01T04:03:02
@@ -34,4 +36,8 @@ result : -PT2S
difference : 2000-01-02T05:00:03 - 2000-01-01T04:03:02
result : -P1DT57M1S
difference : 2016-04-28T17:59:30+02:00 - 2016-04-28T17:59:30+04:00
-result : -PT2H \ No newline at end of file
+result : -PT2H
+difference : 2000-01-05T01:00:00+11:00 - 2000-01-01T23:00:00-11:00
+result : -P2DT4H
+difference : 2000-01-01T23:00:00-11:00 - 2000-01-05T01:00:00+11:00
+result : P2DT4H \ No newline at end of file
diff --git a/tests/exslt/date/difference.1.xml b/tests/exslt/date/difference.1.xml
index ca897c09..cfc4759d 100644
--- a/tests/exslt/date/difference.1.xml
+++ b/tests/exslt/date/difference.1.xml
@@ -9,6 +9,7 @@
<date date1='0002-01-05' date2='0001-01-04'/>
<date date1='0002-05-05' date2='0001-01'/>
<date date1='-0002-01-05' date2='0001-01-04'/>
+ <date date1='0002' date2='-0001'/>
<date date1='1970-01-01T05:04:03' date2='1970-01-01T04:03:02'/>
<date date1='2000-01-01T05:00:03' date2='2000-01-01T04:03:02'/>
<date date1='2000-01-01T05:00:03' date2='1980-01-01T04:03:02'/>
@@ -23,5 +24,7 @@
<date date1='2000-01-02T05:00:03' date2='2000-01-01T04:03:02'/>
<!-- with timezone -->
<date date1='2016-04-28T17:59:30+02:00' date2='2016-04-28T17:59:30+04:00'/>
+ <date date1='2000-01-05T01:00:00+11:00' date2='2000-01-01T23:00:00-11:00'/>
+ <date date1='2000-01-01T23:00:00-11:00' date2='2000-01-05T01:00:00+11:00'/>
</page>
diff --git a/tests/exslt/date/gyear.1.out b/tests/exslt/date/gyear.1.out
index 9a7b2918..c5c517cd 100644
--- a/tests/exslt/date/gyear.1.out
+++ b/tests/exslt/date/gyear.1.out
@@ -73,8 +73,8 @@
minute-in-hour : NaN
second-in-minute : NaN
- Test Date : -0004
- year : -4
+ Test Date : -0005
+ year : -5
leap-year : true
month-in-year : NaN
month-name :
diff --git a/tests/exslt/date/gyear.1.xml b/tests/exslt/date/gyear.1.xml
index 95d776b0..fb1e5771 100644
--- a/tests/exslt/date/gyear.1.xml
+++ b/tests/exslt/date/gyear.1.xml
@@ -5,6 +5,6 @@
<date date="3000"/>
<date date="2000"/>
<date date="9990001"/>
- <date date="-0004"/>
+ <date date="-0005"/>
</page>
diff --git a/tests/exslt/date/gyearmonth.1.out b/tests/exslt/date/gyearmonth.1.out
index 57580c76..6ffef038 100644
--- a/tests/exslt/date/gyearmonth.1.out
+++ b/tests/exslt/date/gyearmonth.1.out
@@ -73,8 +73,8 @@
minute-in-hour : NaN
second-in-minute : NaN
- Test Date : -0004-02
- year : -4
+ Test Date : -0005-02
+ year : -5
leap-year : true
month-in-year : 2
month-name : February
diff --git a/tests/exslt/date/gyearmonth.1.xml b/tests/exslt/date/gyearmonth.1.xml
index 08a7d29b..3e3bdaf4 100644
--- a/tests/exslt/date/gyearmonth.1.xml
+++ b/tests/exslt/date/gyearmonth.1.xml
@@ -5,6 +5,6 @@
<date date="3000-01"/>
<date date="2000-02"/>
<date date="9990001-12"/>
- <date date="-0004-02"/>
+ <date date="-0005-02"/>
</page>
diff --git a/tests/exslt/date/seconds.1.out b/tests/exslt/date/seconds.1.out
index c0eb72c0..9044a312 100644
--- a/tests/exslt/date/seconds.1.out
+++ b/tests/exslt/date/seconds.1.out
@@ -17,6 +17,10 @@ seconds : -P0Y0M31DT10H10M10.09S
result : -2715010.09
seconds : PT100H100M100.001S
result : 366100.001
+seconds : PT10H10M.5S
+result : 36600.5
+seconds : PT10H10M5.S
+result : 36605
seconds : 2001
result : 978307200
seconds : 2001-10-29T10:31:07
@@ -34,7 +38,7 @@ result : 31536000
seconds : 0001-01-01T00:00:00
result : -6.21355968e+10
seconds : -0001-01-01T00:00:00
-result : -6.21671328e+10
+result : -6.21672192e+10
seconds : 1970-01-01
result : 0
seconds : 1970-01-01Z
diff --git a/tests/exslt/date/seconds.1.xml b/tests/exslt/date/seconds.1.xml
index 24d58fb2..6e33f5c8 100644
--- a/tests/exslt/date/seconds.1.xml
+++ b/tests/exslt/date/seconds.1.xml
@@ -10,6 +10,8 @@
<date duration="P0Y0M31DT10H10M10.09S"/>
<date duration="-P0Y0M31DT10H10M10.09S"/>
<date duration="PT100H100M100.001S"/>
+ <date duration="PT10H10M.5S"/>
+ <date duration="PT10H10M5.S"/>
<!-- date/times -->
<date duration="2001"/>
<date duration="2001-10-29T10:31:07"/>
diff --git a/tests/exslt/date/seconds.2.out b/tests/exslt/date/seconds.2.out
index e804d94c..944b7141 100644
--- a/tests/exslt/date/seconds.2.out
+++ b/tests/exslt/date/seconds.2.out
@@ -7,8 +7,6 @@ seconds : PT-10D
result : NaN
seconds : --PT10H
result : NaN
-seconds : PT10H10M.5S
-result : NaN
seconds : PYT0.00001S
result : NaN
seconds : PT49.00001
diff --git a/tests/exslt/date/seconds.2.xml b/tests/exslt/date/seconds.2.xml
index 276baef7..9052b8f2 100644
--- a/tests/exslt/date/seconds.2.xml
+++ b/tests/exslt/date/seconds.2.xml
@@ -5,7 +5,6 @@
<date duration="P-T10D"/>
<date duration="PT-10D"/>
<date duration="--PT10H"/>
- <date duration="PT10H10M.5S"/>
<date duration="PYT0.00001S"/>
<date duration="PT49.00001"/>
<date duration="P0Y0MDT10H10M10.09S"/>
diff --git a/tests/exslt/dynamic/Makefile.in b/tests/exslt/dynamic/Makefile.in
index 3d625ebc..f2ef251a 100644
--- a/tests/exslt/dynamic/Makefile.in
+++ b/tests/exslt/dynamic/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/dynamic
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -313,9 +311,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/dynamic/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/dynamic/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/dynamic/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/dynamic/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/exslt/functions/Makefile.am b/tests/exslt/functions/Makefile.am
index 303043a1..3241284e 100644
--- a/tests/exslt/functions/Makefile.am
+++ b/tests/exslt/functions/Makefile.am
@@ -13,7 +13,8 @@ EXTRA_DIST = \
function.7.out function.7.xml function.7.xsl \
function.8.out function.8.xml function.8.xsl \
function.9.out function.9.xml function.9.xsl \
- function.10.out function.10.xml function.10.xsl
+ function.10.out function.10.xml function.10.xsl \
+ function.11.out function.11.xml function.11.xsl
CLEANFILES = .memdump
diff --git a/tests/exslt/functions/Makefile.in b/tests/exslt/functions/Makefile.in
index 9087164b..e5422ba2 100644
--- a/tests/exslt/functions/Makefile.in
+++ b/tests/exslt/functions/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/functions
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -307,7 +305,8 @@ EXTRA_DIST = \
function.7.out function.7.xml function.7.xsl \
function.8.out function.8.xml function.8.xsl \
function.9.out function.9.xml function.9.xsl \
- function.10.out function.10.xml function.10.xsl
+ function.10.out function.10.xml function.10.xsl \
+ function.11.out function.11.xml function.11.xsl
CLEANFILES = .memdump
all: all-am
@@ -322,9 +321,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/functions/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/functions/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/functions/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/functions/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/exslt/functions/function.11.out b/tests/exslt/functions/function.11.out
new file mode 100644
index 00000000..6dde03e7
--- /dev/null
+++ b/tests/exslt/functions/function.11.out
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<a><b/></a>
diff --git a/tests/exslt/functions/function.11.xml b/tests/exslt/functions/function.11.xml
new file mode 100644
index 00000000..8e39ecbe
--- /dev/null
+++ b/tests/exslt/functions/function.11.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc/>
diff --git a/tests/exslt/functions/function.11.xsl b/tests/exslt/functions/function.11.xsl
new file mode 100644
index 00000000..7a3437a6
--- /dev/null
+++ b/tests/exslt/functions/function.11.xsl
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:func="http://exslt.org/functions"
+ xmlns:test="test"
+ extension-element-prefixes="func"
+>
+ <func:function name="test:fragment">
+ <func:result>
+ <a>
+ <b/>
+ </a>
+ </func:result>
+ </func:function>
+
+ <func:function name="test:func1">
+ <xsl:variable name="var" select="test:fragment()"/>
+ <func:result select="$var"/>
+ </func:function>
+
+ <func:function name="test:func2">
+ <xsl:variable name="var" select="test:func1()"/>
+ <func:result select="$var"/>
+ </func:function>
+
+ <xsl:template match="/">
+ <xsl:copy-of select="test:func2()"/>
+ </xsl:template>
+</xsl:stylesheet>
+
diff --git a/tests/exslt/math/Makefile.in b/tests/exslt/math/Makefile.in
index 1f7d7b7d..3b8ec9c2 100644
--- a/tests/exslt/math/Makefile.in
+++ b/tests/exslt/math/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/math
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -324,9 +322,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/math/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/math/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/math/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/math/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/exslt/saxon/Makefile.am b/tests/exslt/saxon/Makefile.am
index 9e7b3160..3ef3a2ca 100644
--- a/tests/exslt/saxon/Makefile.am
+++ b/tests/exslt/saxon/Makefile.am
@@ -29,15 +29,11 @@ test tests: $(top_builddir)/xsltproc/xsltproc
mv $$name.bad $(srcdir)/$$name.err ; \
fi ; \
else \
- if [ ! -s $$name.res ] ; then \
- echo "Fatal error, no $$name.res\n" ; \
- else \
- diff $(srcdir)/$$name.out $$name.res ; \
- if [ -s $(srcdir)/$$name.err ] ; then \
- diff $(srcdir)/$$name.err $$name.bad; \
- else \
- diff /dev/null $$name.bad; \
- fi ; \
+ diff $(srcdir)/$$name.out $$name.res ; \
+ if [ -s $(srcdir)/$$name.err ] ; then \
+ diff $(srcdir)/$$name.err $$name.bad; \
+ else \
+ diff /dev/null $$name.bad; \
fi ; \
fi; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
diff --git a/tests/exslt/saxon/Makefile.in b/tests/exslt/saxon/Makefile.in
index b200df3a..b1c2407c 100644
--- a/tests/exslt/saxon/Makefile.in
+++ b/tests/exslt/saxon/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/saxon
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -316,9 +314,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/saxon/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/saxon/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/saxon/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/saxon/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -518,15 +516,11 @@ test tests: $(top_builddir)/xsltproc/xsltproc
mv $$name.bad $(srcdir)/$$name.err ; \
fi ; \
else \
- if [ ! -s $$name.res ] ; then \
- echo "Fatal error, no $$name.res\n" ; \
- else \
- diff $(srcdir)/$$name.out $$name.res ; \
- if [ -s $(srcdir)/$$name.err ] ; then \
- diff $(srcdir)/$$name.err $$name.bad; \
- else \
- diff /dev/null $$name.bad; \
- fi ; \
+ diff $(srcdir)/$$name.out $$name.res ; \
+ if [ -s $(srcdir)/$$name.err ] ; then \
+ diff $(srcdir)/$$name.err $$name.bad; \
+ else \
+ diff /dev/null $$name.bad; \
fi ; \
fi; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
diff --git a/tests/exslt/saxon/eval.2.err b/tests/exslt/saxon/eval.2.err
index df8adfbc..7fdd4320 100644
--- a/tests/exslt/saxon/eval.2.err
+++ b/tests/exslt/saxon/eval.2.err
@@ -2,6 +2,6 @@ XPath error : Invalid expression
###
^
XPath error : Invalid expression
-xmlXPathCompiledEval: evaluation failed
runtime error: file ./eval.2.xsl line 11 element value-of
XPath evaluation returned no result.
+no result for ./eval.2.xml
diff --git a/tests/exslt/saxon/eval.2.out b/tests/exslt/saxon/eval.2.out
index 3048a905..e69de29b 100644
--- a/tests/exslt/saxon/eval.2.out
+++ b/tests/exslt/saxon/eval.2.out
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<results/>
diff --git a/tests/exslt/saxon/eval.3.err b/tests/exslt/saxon/eval.3.err
index 5a87793b..573d4f68 100644
--- a/tests/exslt/saxon/eval.3.err
+++ b/tests/exslt/saxon/eval.3.err
@@ -1,6 +1,5 @@
XPath error : Undefined namespace prefix
-xmlXPathCompiledEval: evaluation failed
XPath error : Invalid expression
-xmlXPathCompiledEval: evaluation failed
runtime error: file ./eval.3.xsl line 11 element value-of
XPath evaluation returned no result.
+no result for ./eval.3.xml
diff --git a/tests/exslt/saxon/eval.3.out b/tests/exslt/saxon/eval.3.out
index 3048a905..e69de29b 100644
--- a/tests/exslt/saxon/eval.3.out
+++ b/tests/exslt/saxon/eval.3.out
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<results/>
diff --git a/tests/exslt/sets/Makefile.in b/tests/exslt/sets/Makefile.in
index 75b52279..b4c9f02e 100644
--- a/tests/exslt/sets/Makefile.in
+++ b/tests/exslt/sets/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/sets
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -317,9 +315,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/sets/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/sets/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/sets/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/sets/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/exslt/strings/Makefile.in b/tests/exslt/strings/Makefile.in
index 2cd3bbde..6c3eb785 100644
--- a/tests/exslt/strings/Makefile.in
+++ b/tests/exslt/strings/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/exslt/strings
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -319,9 +317,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/exslt/strings/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exslt/strings/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/exslt/strings/Makefile
+ $(AUTOMAKE) --foreign tests/exslt/strings/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/extensions/Makefile.in b/tests/extensions/Makefile.in
index 49e753a6..7714f863 100644
--- a/tests/extensions/Makefile.in
+++ b/tests/extensions/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/extensions
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -315,9 +313,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/extensions/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/extensions/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/extensions/Makefile
+ $(AUTOMAKE) --foreign tests/extensions/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am
index 467b0507..8a56b7f5 100644
--- a/tests/general/Makefile.am
+++ b/tests/general/Makefile.am
@@ -219,7 +219,7 @@ test tests: $(top_builddir)/xsltproc/xsltproc
name=`basename $$j .xsl`; \
out=$(srcdir)/"$$name".out; \
err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+ log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --maxdepth 200 $$j $$i \
> result.$$name 2>err.$$name; \
if [ ! -f $$out ] ; then \
cp result.$$name $$out ; \
@@ -251,7 +251,7 @@ test tests: $(top_builddir)/xsltproc/xsltproc
name=`basename $$j .xsl`; \
out=$(srcdir)/"$$name".out; \
err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict $$j $$i \
+ log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict --maxdepth 200 $$j $$i \
> result.$$name 2>err.$$name; \
if [ ! -f $$out ] ; then \
cp result.$$name $$out ; \
diff --git a/tests/general/Makefile.in b/tests/general/Makefile.in
index 84d2fa81..c7f97f2e 100644
--- a/tests/general/Makefile.in
+++ b/tests/general/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/general
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -508,9 +506,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/general/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/general/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/general/Makefile
+ $(AUTOMAKE) --foreign tests/general/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -708,7 +706,7 @@ test tests: $(top_builddir)/xsltproc/xsltproc
name=`basename $$j .xsl`; \
out=$(srcdir)/"$$name".out; \
err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+ log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --maxdepth 200 $$j $$i \
> result.$$name 2>err.$$name; \
if [ ! -f $$out ] ; then \
cp result.$$name $$out ; \
@@ -740,7 +738,7 @@ test tests: $(top_builddir)/xsltproc/xsltproc
name=`basename $$j .xsl`; \
out=$(srcdir)/"$$name".out; \
err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict $$j $$i \
+ log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict --maxdepth 200 $$j $$i \
> result.$$name 2>err.$$name; \
if [ ! -f $$out ] ; then \
cp result.$$name $$out ; \
diff --git a/tests/general/bug-165.err b/tests/general/bug-165.err
index d7564e2c..dab9d7ef 100644
--- a/tests/general/bug-165.err
+++ b/tests/general/bug-165.err
@@ -1,4 +1,6 @@
runtime error: file ./bug-165.xsl line 6 element value-of
Variable 'pStyle' has not been declared.
+XPath error : Undefined variable
runtime error: file ./bug-165.xsl line 6 element value-of
XPath evaluation returned no result.
+no result for ./../docs/bug-165.xml
diff --git a/tests/general/bug-165.out b/tests/general/bug-165.out
index 0d7d44b4..e69de29b 100644
--- a/tests/general/bug-165.out
+++ b/tests/general/bug-165.out
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-
-
-
-
-
-
-
diff --git a/tests/general/bug-175.err b/tests/general/bug-175.err
index 70cddd5b..61f2edc7 100644
--- a/tests/general/bug-175.err
+++ b/tests/general/bug-175.err
@@ -1,6 +1,2 @@
-compilation error: file ./bug-175.xsl line 28 element function
-xsltStylePreCompute: unknown xsl:function
compilation error: file ./bug-175.xsl line 5 element transform
-xsl:version: only 1.0 features are supported
-compilation error: file ./bug-175.xsl line 28 element function
-xsltParseStylesheetTop: ignoring unknown function element
+xsl:version: only 1.1 features are supported
diff --git a/tests/general/bug-175.xsl b/tests/general/bug-175.xsl
index f25e4c94..8ab9f989 100644
--- a/tests/general/bug-175.xsl
+++ b/tests/general/bug-175.xsl
@@ -25,6 +25,9 @@
</html>
</xsl:template>
- <xsl:function name="test:test">YES</xsl:function>
+ <xsl:function name="test:test">
+ <xsl:param name="x"/>
+ <xsl:text>YES</xsl:text>
+ </xsl:function>
</xsl:transform>
diff --git a/tests/general/bug-180.err b/tests/general/bug-180.err
index e0e568ec..7b15044d 100644
--- a/tests/general/bug-180.err
+++ b/tests/general/bug-180.err
@@ -1,2 +1,4 @@
runtime error: file ./bug-180.xsl line 4 element copy-of
Variable 'xxx' has not been declared.
+XPath error : Undefined variable
+no result for ./../docs/bug-180.xml
diff --git a/tests/general/bug-184.err b/tests/general/bug-184.err
index ec5e9124..eaeb65bd 100644
--- a/tests/general/bug-184.err
+++ b/tests/general/bug-184.err
@@ -1,5 +1,6 @@
runtime error: file ./bug-184.xsl line 5 element value-of
Variable 'nonexistent' has not been declared.
-xmlXPathCompiledEval: 1 objects left on the stack.
+XPath error : Undefined variable
runtime error: file ./bug-184.xsl line 5 element value-of
XPath evaluation returned no result.
+no result for ./../docs/bug-184.xml
diff --git a/tests/general/bug-184.out b/tests/general/bug-184.out
index e829790a..e69de29b 100644
--- a/tests/general/bug-184.out
+++ b/tests/general/bug-184.out
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<result/>
diff --git a/tests/keys/Makefile.in b/tests/keys/Makefile.in
index cdd50f61..52be75f8 100644
--- a/tests/keys/Makefile.in
+++ b/tests/keys/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/keys
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -311,9 +309,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/keys/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/keys/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/keys/Makefile
+ $(AUTOMAKE) --foreign tests/keys/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/multiple/Makefile.in b/tests/multiple/Makefile.in
index 1ad5e437..a8aee803 100644
--- a/tests/multiple/Makefile.in
+++ b/tests/multiple/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/multiple
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -334,9 +332,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/multiple/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/multiple/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/multiple/Makefile
+ $(AUTOMAKE) --foreign tests/multiple/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/namespaces/Makefile.in b/tests/namespaces/Makefile.in
index 6351b095..e74bd2e6 100644
--- a/tests/namespaces/Makefile.in
+++ b/tests/namespaces/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/namespaces
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -323,9 +321,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/namespaces/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/namespaces/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/namespaces/Makefile
+ $(AUTOMAKE) --foreign tests/namespaces/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/numbers/Makefile.in b/tests/numbers/Makefile.in
index 74e93313..ead2bfbf 100644
--- a/tests/numbers/Makefile.in
+++ b/tests/numbers/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/numbers
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -311,9 +309,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/numbers/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/numbers/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/numbers/Makefile
+ $(AUTOMAKE) --foreign tests/numbers/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/plugins/Makefile.am b/tests/plugins/Makefile.am
index e0736ab9..0f8c3780 100644
--- a/tests/plugins/Makefile.am
+++ b/tests/plugins/Makefile.am
@@ -21,7 +21,7 @@ plugindir = $(abs_builddir)/.libs
xmlsoft_org_xslt_testplugin_la_CFLAGS = -DMODULE_COMPILE $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
xmlsoft_org_xslt_testplugin_la_SOURCES = testplugin.c
xmlsoft_org_xslt_testplugin_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS)
-xmlsoft_org_xslt_testplugin_la_LDFLAGS = -module -avoid-version -rpath $(plugindir)
+xmlsoft_org_xslt_testplugin_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -module -avoid-version -rpath $(plugindir)
test-logall:
@echo '## Running plugin tests'
diff --git a/tests/plugins/Makefile.in b/tests/plugins/Makefile.in
index c51070e2..fab25580 100644
--- a/tests/plugins/Makefile.in
+++ b/tests/plugins/Makefile.in
@@ -90,7 +90,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/plugins
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -251,7 +251,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -268,6 +267,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -277,12 +279,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -301,8 +301,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -367,7 +365,7 @@ CLEANFILES = *.res
@WITH_MODULES_TRUE@xmlsoft_org_xslt_testplugin_la_CFLAGS = -DMODULE_COMPILE $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
@WITH_MODULES_TRUE@xmlsoft_org_xslt_testplugin_la_SOURCES = testplugin.c
@WITH_MODULES_TRUE@xmlsoft_org_xslt_testplugin_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS)
-@WITH_MODULES_TRUE@xmlsoft_org_xslt_testplugin_la_LDFLAGS = -module -avoid-version -rpath $(plugindir)
+@WITH_MODULES_TRUE@xmlsoft_org_xslt_testplugin_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -module -avoid-version -rpath $(plugindir)
all: all-am
.SUFFIXES:
@@ -381,9 +379,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/plugins/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/plugins/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/plugins/Makefile
+ $(AUTOMAKE) --foreign tests/plugins/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/reports/Makefile.in b/tests/reports/Makefile.in
index 1813704f..dcd0efc0 100644
--- a/tests/reports/Makefile.in
+++ b/tests/reports/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/reports
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -318,9 +316,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/reports/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/reports/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/reports/Makefile
+ $(AUTOMAKE) --foreign tests/reports/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/xinclude/Makefile.in b/tests/xinclude/Makefile.in
index 7043d72b..e5a94993 100644
--- a/tests/xinclude/Makefile.in
+++ b/tests/xinclude/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/xinclude
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -318,9 +316,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/xinclude/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/xinclude/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/xinclude/Makefile
+ $(AUTOMAKE) --foreign tests/xinclude/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/tests/xmlspec/Makefile.in b/tests/xmlspec/Makefile.in
index 30963db9..f78ef95b 100644
--- a/tests/xmlspec/Makefile.in
+++ b/tests/xmlspec/Makefile.in
@@ -89,7 +89,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = tests/xmlspec
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -192,7 +192,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -209,6 +208,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -218,12 +220,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -242,8 +242,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -314,9 +312,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/xmlspec/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/xmlspec/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/xmlspec/Makefile
+ $(AUTOMAKE) --foreign tests/xmlspec/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw
index 5b102b38..4fc42fe3 100644
--- a/win32/Makefile.mingw
+++ b/win32/Makefile.mingw
@@ -155,37 +155,37 @@ libexslta : $(BINDIR)\$(EXSLT_A)
utils : $(UTILS)
clean :
- cmd.exe /C if exist $(XSLT_INTDIR) rmdir /S /Q $(XSLT_INTDIR)
- cmd.exe /C if exist $(XSLT_INTDIR_A) rmdir /S /Q $(XSLT_INTDIR_A)
- cmd.exe /C if exist $(EXSLT_INTDIR) rmdir /S /Q $(EXSLT_INTDIR)
- cmd.exe /C if exist $(EXSLT_INTDIR_A) rmdir /S /Q $(EXSLT_INTDIR_A)
- cmd.exe /C if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
- cmd.exe /C if exist $(BINDIR) rmdir /S /Q $(BINDIR)
- cmd.exe /C if exist depends.mingw del depends.mingw
+ cmd.exe /C "if exist $(XSLT_INTDIR) rmdir /S /Q $(XSLT_INTDIR)"
+ cmd.exe /C "if exist $(XSLT_INTDIR_A) rmdir /S /Q $(XSLT_INTDIR_A)"
+ cmd.exe /C "if exist $(EXSLT_INTDIR) rmdir /S /Q $(EXSLT_INTDIR)"
+ cmd.exe /C "if exist $(EXSLT_INTDIR_A) rmdir /S /Q $(EXSLT_INTDIR_A)"
+ cmd.exe /C "if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)"
+ cmd.exe /C "if exist $(BINDIR) rmdir /S /Q $(BINDIR)"
+ cmd.exe /C "if exist depends.mingw del depends.mingw"
rebuild : clean all
distclean : clean
- cmd.exe /C if exist config.* del config.*
- cmd.exe /C if exist depends.* del depends.*
- cmd.exe /C if exist Makefile del Makefile
+ cmd.exe /C "if exist config.* del config.*"
+ cmd.exe /C "if exist depends.* del depends.*"
+ cmd.exe /C "if exist Makefile del Makefile"
install-libs : all
- cmd.exe /C if not exist $(INCPREFIX)\$(XSLT_BASENAME) mkdir $(INCPREFIX)\$(XSLT_BASENAME)
- cmd.exe /C if not exist $(INCPREFIX)\$(EXSLT_BASENAME) mkdir $(INCPREFIX)\$(EXSLT_BASENAME)
- cmd.exe /C if not exist $(BINPREFIX) mkdir $(BINPREFIX)
- cmd.exe /C if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
- cmd.exe /C copy $(XSLT_SRCDIR)\*.h $(INCPREFIX)\$(XSLT_BASENAME)
- cmd.exe /C copy $(EXSLT_SRCDIR)\*.h $(INCPREFIX)\$(EXSLT_BASENAME)
- cmd.exe /C copy $(BINDIR)\$(XSLT_SO) $(SOPREFIX)
- cmd.exe /C copy $(BINDIR)\$(XSLT_A) $(LIBPREFIX)
- cmd.exe /C copy $(BINDIR)\$(XSLT_IMP) $(LIBPREFIX)
- cmd.exe /C copy $(BINDIR)\$(EXSLT_SO) $(SOPREFIX)
- cmd.exe /C copy $(BINDIR)\$(EXSLT_A) $(LIBPREFIX)
- cmd.exe /C copy $(BINDIR)\$(EXSLT_IMP) $(LIBPREFIX)
+ cmd.exe /C "if not exist $(INCPREFIX)\$(XSLT_BASENAME) mkdir $(INCPREFIX)\$(XSLT_BASENAME)"
+ cmd.exe /C "if not exist $(INCPREFIX)\$(EXSLT_BASENAME) mkdir $(INCPREFIX)\$(EXSLT_BASENAME)"
+ cmd.exe /C "if not exist $(BINPREFIX) mkdir $(BINPREFIX)"
+ cmd.exe /C "if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)"
+ cmd.exe /C "copy $(XSLT_SRCDIR)\*.h $(INCPREFIX)\$(XSLT_BASENAME)"
+ cmd.exe /C "copy $(EXSLT_SRCDIR)\*.h $(INCPREFIX)\$(EXSLT_BASENAME)"
+ cmd.exe /C "copy $(BINDIR)\$(XSLT_SO) $(SOPREFIX)"
+ cmd.exe /C "copy $(BINDIR)\$(XSLT_A) $(LIBPREFIX)"
+ cmd.exe /C "copy $(BINDIR)\$(XSLT_IMP) $(LIBPREFIX)"
+ cmd.exe /C "copy $(BINDIR)\$(EXSLT_SO) $(SOPREFIX)"
+ cmd.exe /C "copy $(BINDIR)\$(EXSLT_A) $(LIBPREFIX)"
+ cmd.exe /C "copy $(BINDIR)\$(EXSLT_IMP) $(LIBPREFIX)"
install : install-libs
- cmd.exe /C copy $(BINDIR)\*.exe $(BINPREFIX)
+ cmd.exe /C "copy $(BINDIR)\*.exe $(BINPREFIX)"
install-dist : install
@@ -205,16 +205,16 @@ dep :
# Makes the compiler output directory.
$(BINDIR) :
- cmd.exe /C if not exist $(BINDIR) mkdir $(BINDIR)
+ cmd.exe /C "if not exist $(BINDIR) mkdir $(BINDIR)"
# Makes the libxslt intermediate directory.
$(XSLT_INTDIR) :
- cmd.exe /C if not exist $(XSLT_INTDIR) mkdir $(XSLT_INTDIR)
+ cmd.exe /C "if not exist $(XSLT_INTDIR) mkdir $(XSLT_INTDIR)"
# Makes the static libxslt intermediate directory.
$(XSLT_INTDIR_A) :
- cmd.exe /C if not exist $(XSLT_INTDIR_A) mkdir $(XSLT_INTDIR_A)
+ cmd.exe /C "if not exist $(XSLT_INTDIR_A) mkdir $(XSLT_INTDIR_A)"
# An implicit rule for libxslt compilation.
$(XSLT_INTDIR)/%.o : $(XSLT_SRCDIR)/%.c
@@ -244,11 +244,11 @@ $(BINDIR)\$(XSLT_A) : $(BINDIR) $(XSLT_OBJS_A)
# Creates the libexslt intermediate directory.
$(EXSLT_INTDIR) :
- cmd.exe /C if not exist $(EXSLT_INTDIR) mkdir $(EXSLT_INTDIR)
+ cmd.exe /C "if not exist $(EXSLT_INTDIR) mkdir $(EXSLT_INTDIR)"
# Creates the static libexslt intermediate directory.
$(EXSLT_INTDIR_A) :
- cmd.exe /C if not exist $(EXSLT_INTDIR_A) mkdir $(EXSLT_INTDIR_A)
+ cmd.exe /C "if not exist $(EXSLT_INTDIR_A) mkdir $(EXSLT_INTDIR_A)"
# An implicit rule for libexslt compilation.
$(EXSLT_INTDIR)/%.o : $(EXSLT_SRCDIR)/%.c
@@ -279,7 +279,7 @@ $(BINDIR)\$(EXSLT_A) : $(BINDIR) $(EXSLT_OBJS_A) libxslta
# Creates the utils intermediate directory.
$(UTILS_INTDIR) :
- cmd.exe /C if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
+ cmd.exe /C "if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)"
# An implicit rule for xsltproc and friends.
APPLIBS = $(LIBS)
diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc
index 23a02d27..a6d57a12 100644
--- a/win32/Makefile.msvc
+++ b/win32/Makefile.msvc
@@ -51,7 +51,7 @@ CPPFLAGS = /nologo
# The compiler and its options.
CC = cl.exe
-CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W3 $(CRUNTIME) /D "_REENTRANT"
+CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /W3 /wd4244 /wd4267 $(CRUNTIME) /D "_REENTRANT"
CFLAGS = $(CFLAGS) /I$(BASEDIR) /I$(XSLT_SRCDIR) /I$(INCPREFIX)
CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
diff --git a/win32/configure.js b/win32/configure.js
index 7f2f8548..56694cce 100644
--- a/win32/configure.js
+++ b/win32/configure.js
@@ -19,7 +19,7 @@ var baseNameXslt = "libxslt";
var baseNameExslt = "libexslt";
/* Configure file which contains the version and the output file where
we can store our build configuration. */
-var configFile = baseDir + "\\configure.in";
+var configFile = baseDir + "\\configure.ac";
var versionFile = ".\\config.msvc";
/* Input and output files regarding the lib(e)xml features. The second
output file is there for the compatibility reasons, otherwise it
@@ -47,7 +47,6 @@ var withIconv = true;
var withZlib = false;
var withCrypto = true;
var withModules = false;
-var withLocale = true;
/* Win32 build options. */
var dirSep = "\\";
var compiler = "msvc";
@@ -107,7 +106,6 @@ function usage()
txt += " zlib: Use zlib library (" + (withZlib? "yes" : "no") + ")\n";
txt += " crypto: Enable Crypto support (" + (withCrypto? "yes" : "no") + ")\n";
txt += " modules: Enable Module support (" + (withModules? "yes" : "no") + ")\n";
- txt += " locale: Enable Locale support, requires unicode OS support (" + (withLocale? "yes" : "no") + ")\n";
txt += "\nWin32 build options, default value given in parentheses:\n\n";
txt += " compiler: Compiler to be used [msvc|mingw] (" + compiler + ")\n";
txt += " cruntime: C-runtime compiler option (only msvc) (" + cruntime + ")\n";
@@ -165,15 +163,15 @@ function discoverVersion()
while (cf.AtEndOfStream != true) {
ln = cf.ReadLine();
s = new String(ln);
- if (s.search(/^LIBXSLT_MAJOR_VERSION=/) != -1) {
- vf.WriteLine(s);
- verMajorXslt = s.substring(s.indexOf("=") + 1, s.length)
- } else if(s.search(/^LIBXSLT_MINOR_VERSION=/) != -1) {
- vf.WriteLine(s);
- verMinorXslt = s.substring(s.indexOf("=") + 1, s.length)
- } else if(s.search(/^LIBXSLT_MICRO_VERSION=/) != -1) {
- vf.WriteLine(s);
- verMicroXslt = s.substring(s.indexOf("=") + 1, s.length)
+ if (m = s.match(/^m4_define\(\[MAJOR_VERSION\], \[(.*)\]\)/)) {
+ vf.WriteLine("LIBXSLT_MAJOR_VERSION=" + m[1]);
+ verMajorXslt = m[1];
+ } else if(m = s.match(/^m4_define\(\[MINOR_VERSION\], \[(.*)\]\)/)) {
+ vf.WriteLine("LIBXSLT_MINOR_VERSION=" + m[1]);
+ verMinorXslt = m[1];
+ } else if(m = s.match(/^m4_define\(\[MICRO_VERSION\], \[(.*)\]\)/)) {
+ vf.WriteLine("LIBXSLT_MICRO_VERSION=" + m[1]);
+ verMicroXslt = m[1];
} else if (s.search(/^LIBEXSLT_MAJOR_VERSION=/) != -1) {
vf.WriteLine(s);
verMajorExslt = s.substring(s.indexOf("=") + 1, s.length)
@@ -242,10 +240,6 @@ function configureXslt()
of.WriteLine(s.replace(/\@WITH_DEBUGGER\@/, withDebugger? "1" : "0"));
} else if (s.search(/\@WITH_MODULES\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0"));
- } else if (s.search(/\@XSLT_LOCALE_XLOCALE\@/) != -1) {
- of.WriteLine(s.replace(/\@XSLT_LOCALE_XLOCALE\@/, "0"));
- } else if (s.search(/\@XSLT_LOCALE_WINAPI\@/) != -1) {
- of.WriteLine(s.replace(/\@XSLT_LOCALE_WINAPI\@/, withLocale? "1" : "0"));
} else if (s.search(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/) != -1) {
of.WriteLine(s.replace(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/, "NULL"));
} else
@@ -349,8 +343,6 @@ for (i = 0; (i < WScript.Arguments.length) && (error == 0); i++) {
withCrypto = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "modules")
withModules = strToBool(arg.substring(opt.length + 1, arg.length));
- else if (opt == "locale")
- withLocale = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "compiler")
compiler = arg.substring(opt.length + 1, arg.length);
else if (opt == "cruntime")
@@ -424,7 +416,7 @@ if (buildIncPrefix == "")
if (buildLibPrefix == "")
buildLibPrefix = "$(PREFIX)" + dirSep + "lib";
if (buildSoPrefix == "")
- buildSoPrefix = "$(PREFIX)" + dirSep + "lib";
+ buildSoPrefix = "$(PREFIX)" + dirSep + "bin";
// Discover the version.
discoverVersion();
@@ -485,7 +477,6 @@ txtOut += " Use iconv: " + boolToStr(withIconv) + "\n";
txtOut += " With zlib: " + boolToStr(withZlib) + "\n";
txtOut += " Crypto: " + boolToStr(withCrypto) + "\n";
txtOut += " Modules: " + boolToStr(withModules) + "\n";
-txtOut += " Locale: " + boolToStr(withLocale) + "\n";
txtOut += "\n";
txtOut += "Win32 build configuration\n";
txtOut += "-------------------------\n";
diff --git a/win32/libxslt.def.src b/win32/libxslt.def.src
index 653d3a17..fe7e767c 100644
--- a/win32/libxslt.def.src
+++ b/win32/libxslt.def.src
@@ -58,6 +58,7 @@ xsltDebugDumpExtensions
xsltDebugGetDefaultTrace
xsltDebugSetDefaultTrace
xsltDecimalFormatGetByName
+xsltDecimalFormatGetByQName
xsltDefaultSortFunction
xsltDoSortFunction
xsltDocumentComp
@@ -86,6 +87,7 @@ xsltExtensionInstructionResultRegister
xsltFindDocument
xsltFindElemSpaceHandling
xsltFindTemplate
+xsltFlagRVTs
xsltForEach
xsltFormatNumberConversion
xsltFormatNumberFunction
diff --git a/win32/libxslt/libxslt_so.dsp b/win32/libxslt/libxslt_so.dsp
index 6cbd578b..4bc6cad1 100644
--- a/win32/libxslt/libxslt_so.dsp
+++ b/win32/libxslt/libxslt_so.dsp
@@ -42,8 +42,8 @@ RSC=rc.exe
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /Yu"stdafx.h" /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\gnome-xml" /I "..\..\..\gnome-xml\include" /I "..\.." /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /D "WIN32" /FD /c
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\gnome-xml" /I "..\..\..\gnome-xml\include" /I "..\.." /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -68,8 +68,8 @@ LINK32=link.exe
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /FD /GZ /c
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
diff --git a/win32/libxslt/xsltproc.dsp b/win32/libxslt/xsltproc.dsp
index 5413732b..92938412 100644
--- a/win32/libxslt/xsltproc.dsp
+++ b/win32/libxslt/xsltproc.dsp
@@ -41,8 +41,8 @@ RSC=rc.exe
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
@@ -65,8 +65,8 @@ LINK32=link.exe
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
diff --git a/win32/runtests.py b/win32/runtests.py
index 4d9aabb7..f20c946d 100644
--- a/win32/runtests.py
+++ b/win32/runtests.py
@@ -26,7 +26,7 @@ def runtests(xsl_dir, xml_dir="."):
if not path.isfile(xml_path):
continue
- args = [ xsltproc, xsl_path, xml_path ]
+ args = [ xsltproc, "--maxdepth", "200", xsl_path, xml_path ]
p = Popen(args, stdout=PIPE, stderr=PIPE)
out_path = path.join(xml_dir, name + ".out")
err_path = path.join(xml_dir, name + ".err")
diff --git a/xsltproc/Makefile.am b/xsltproc/Makefile.am
index ad1c3dce..1a8804fc 100644
--- a/xsltproc/Makefile.am
+++ b/xsltproc/Makefile.am
@@ -41,4 +41,4 @@ xsltproc.dv: xsltproc.o
tests: testThreads
@echo > .memdump
@echo '## Running testThreads'
- @($(CHECKER) ./testThreads ; grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true)
+ @($(CHECKER) ./testThreads > /dev/null; grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true)
diff --git a/xsltproc/Makefile.in b/xsltproc/Makefile.in
index 15fb77bb..bd5caf9c 100644
--- a/xsltproc/Makefile.in
+++ b/xsltproc/Makefile.in
@@ -93,7 +93,7 @@ bin_PROGRAMS = xsltproc$(EXEEXT) $(XSLTPROCDV)
noinst_PROGRAMS = testThreads$(EXEEXT)
subdir = xsltproc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -257,7 +257,6 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
-MV = @MV@
M_LIBS = @M_LIBS@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -274,6 +273,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PYTHON = @PYTHON@
PYTHONSODV = @PYTHONSODV@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
@@ -283,12 +285,10 @@ PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RELDATE = @RELDATE@
-RM = @RM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-TAR = @TAR@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
VERSION_SCRIPT_FLAGS = @VERSION_SCRIPT_FLAGS@
@@ -307,8 +307,6 @@ XSLTPROCDV = @XSLTPROCDV@
XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
XSLT_LIBDIR = @XSLT_LIBDIR@
XSLT_LIBS = @XSLT_LIBS@
-XSLT_LOCALE_WINAPI = @XSLT_LOCALE_WINAPI@
-XSLT_LOCALE_XLOCALE = @XSLT_LOCALE_XLOCALE@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -396,9 +394,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xsltproc/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign xsltproc/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu xsltproc/Makefile
+ $(AUTOMAKE) --foreign xsltproc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -742,7 +740,7 @@ xsltproc.dv: xsltproc.o
tests: testThreads
@echo > .memdump
@echo '## Running testThreads'
- @($(CHECKER) ./testThreads ; grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true)
+ @($(CHECKER) ./testThreads > /dev/null; grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/xsltproc/testThreads.c b/xsltproc/testThreads.c
index 05f0039c..7c226446 100644
--- a/xsltproc/testThreads.c
+++ b/xsltproc/testThreads.c
@@ -16,7 +16,9 @@
#include <stdlib.h>
#include <stdio.h>
+#ifndef _REENTRANT
#define _REENTRANT
+#endif
#include <libxml/xmlversion.h>
#if defined(LIBXML_THREAD_ENABLED) && defined(HAVE_PTHREAD_H)
diff --git a/xsltproc/xsltproc.c b/xsltproc/xsltproc.c
index 3c83abda..d8d26698 100644
--- a/xsltproc/xsltproc.c
+++ b/xsltproc/xsltproc.c
@@ -31,6 +31,9 @@
#ifdef HAVE_STDARG_H
#include <stdarg.h>
#endif
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#include <fcntl.h>
+#endif
#include <libxml/xmlmemory.h>
#include <libxml/debugXML.h>
#include <libxml/HTMLtree.h>
@@ -54,18 +57,11 @@
#include <libexslt/exsltconfig.h>
-#if defined(WIN32) && !defined (__CYGWIN__)
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#include <winsock2.h>
-#define gettimeofday(p1,p2)
-#endif /* _MS_VER */
-#else /* WIN32 */
#if defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#elif defined(HAVE_TIME_H)
#include <time.h>
#endif
-#endif /* WIN32 */
#ifdef HAVE_SYS_TIMEB_H
#include <sys/timeb.h>
@@ -564,6 +560,10 @@ main(int argc, char **argv)
srand(time(NULL));
xmlInitMemory();
+#if defined(_WIN32) && !defined(__CYGINW__)
+ setmode(fileno(stdout), O_BINARY);
+ setmode(fileno(stderr), O_BINARY);
+#endif
#if defined(_MSC_VER) && _MSC_VER < 1900
_set_output_format(_TWO_DIGIT_EXPONENT);
#endif
@@ -594,8 +594,8 @@ main(int argc, char **argv)
(!strcmp(argv[i], "-output")) ||
(!strcmp(argv[i], "--output"))) {
i++;
-#if defined(WIN32) || defined (__CYGWIN__)
- output = xmlCanonicPath(argv[i]);
+#if defined(_WIN32) || defined (__CYGWIN__)
+ output = (char *) xmlCanonicPath((xmlChar *) argv[i]);
if (output == NULL)
#endif
output = (char *) xmlStrdup((xmlChar *) argv[i]);