*.o
*.la
*.lo
+*.pyc
tags
*/tags
.deps/
libxslt.spec.in.orig
libxslt/xsltconfig.h
ltmain.sh
-m4/
+m4/libtool*
+m4/lt*
missing
py-compile
-python/*.pyc
python/gen_prog
python/libxslt-export.c
python/libxslt-py.c
python/libxslt.py
python/libxsltclass.py
python/libxsltclass.txt
-python/tests/foo
+python/setup.py
stamp-h1
+tests/runtest
tests/xmlspec/debug
xslt-config
xsltConf.sh
# Reuse libxml2 image
image: registry.gitlab.gnome.org/gnome/libxml2
script:
- - |
- git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git
- cd libxml2
- sh autogen.sh $CONFIG
- make -j$(nproc)
- cd ..
- sh autogen.sh $CONFIG --with-libxml-src=libxml2
- # Don't run make in "doc" directory
- for target in libxslt libexslt xsltproc python tests/plugins; do
- make -j$(nproc) -C $target V=1 CFLAGS="$CFLAGS -Werror"
- done
- make -j$(nproc) -C tests/fuzz V=1 CFLAGS="$CFLAGS -Werror" testTargets
- make -s -C tests tests | tee test.log
- make -s -C xsltproc tests | tee -a test.log
- ! grep -qv '^## Running' test.log
- make -s -C python tests
+ - sh .gitlab-ci/test.sh
gcc:
extends: .test
gcc:python3:
extends: .test
variables:
- # TODO: Re-enable the warning after libxml2 #208 is fixed.
- CFLAGS: "-O2 -Wno-error=deprecated-declarations"
+ CONFIG: "--without-crypto --without-debug --without-debugger --without-plugins"
+ CFLAGS: "-O2"
PYTHON: "/usr/bin/python3"
gcc:static:
clang:asan:
extends: .test
+ tags:
+ - asan
variables:
CONFIG: "--without-python"
CC: clang
- CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=all -Wimplicit-int-conversion -Wno-error=cast-align"
- # LeakSanitizer requires SYS_CAP_PTRACE
- ASAN_OPTIONS: "detect_leaks=0"
+ CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,unsigned-integer-overflow,implicit-conversion -fno-sanitize-recover=all -Wno-error=cast-align"
UBSAN_OPTIONS: "print_stacktrace=1"
+ ASAN_SYMBOLIZER_PATH: "$CI_PROJECT_DIR/.gitlab-ci/llvm-symbolizer"
clang:msan:
extends: .test
- only:
- - schedules
variables:
CONFIG: "--without-python --without-zlib --without-lzma --without-crypto"
CC: clang
- CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wimplicit-int-conversion -Wno-error=cast-align"
+ CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wno-error=cast-align"
+ MSAN_SYMBOLIZER_PATH: "$CI_PROJECT_DIR/.gitlab-ci/llvm-symbolizer"
+
+.mingw:
+ tags:
+ - win32-ps
+ variables:
+ CONFIG: "--without-crypto"
+ CHERE_INVOKING: "yes"
+ before_script:
+ - $Env:Path="C:\msys64\usr\bin;$Env:Path"
+ - bash -lc 'sh .gitlab-ci/setup_mingw.sh autotools'
+ script:
+ - bash -lc 'sh .gitlab-ci/test.sh'
+
+mingw:w64-x86_64:shared:
+ extends: .mingw
+ variables:
+ CFLAGS: "-O2"
+ MSYSTEM: MINGW64
+
+# Disabled, GCC missing?
+.mingw:msys:shared:
+ extends: .mingw
+ variables:
+ CFLAGS: "-O2"
+ MSYSTEM: MSYS
.cmake:linux:
image: registry.gitlab.gnome.org/gnome/libxml2
- before_script:
- - git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git libxml2-source
- - cmake -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBXML2_WITH_TESTS=OFF -S libxml2-source -B libxml2-build
- - cmake --build libxml2-build --target install
- - mkdir -p libxml2-install/share/libxml2
- - cp libxml2-source/Copyright libxml2-install/share/libxml2
- - export CMAKE_PREFIX_PATH=$CI_PROJECT_DIR/libxml2-install:$CMAKE_PREFIX_PATH
- - export PATH=$CI_PROJECT_DIR/libxml2-install/bin:$PATH
- - export LD_LIBRARY_PATH=$CI_PROJECT_DIR/libxml2-install/bin:$LD_LIBRARY_PATH
script:
- - cmake -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxslt-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxslt-build
- - cmake --build libxslt-build --target install
- - mkdir -p libxslt-install/share/libxslt
- - cp Copyright libxslt-install/share/libxslt
- after_script:
- - cd libxslt-install
- - tar -czf ../libxslt-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz *
+ - sh .gitlab-ci/test_cmake.sh
artifacts:
paths:
- - libxslt-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz
+ - libxslt-$CI_COMMIT_SHORT_SHA-$SUFFIX.tar.gz
expire_in: 1 day
cmake:linux:gcc:shared:
extends: .cmake:linux
- only:
- - schedules
variables:
BUILD_SHARED_LIBS: "ON"
CC: gcc
- SUFFIX: shared
+ SUFFIX: linux-gcc-shared
cmake:linux:gcc:static:
extends: .cmake:linux
variables:
BUILD_SHARED_LIBS: "OFF"
CC: gcc
- SUFFIX: static
+ SUFFIX: linux-gcc-static
cmake:linux:clang:shared:
extends: .cmake:linux
variables:
BUILD_SHARED_LIBS: "ON"
CC: clang
- SUFFIX: shared
+ SUFFIX: linux-clang-shared
cmake:linux:clang:static:
extends: .cmake:linux
variables:
BUILD_SHARED_LIBS: "OFF"
CC: clang
- SUFFIX: static
+ SUFFIX: linux-clang-static
.cmake:mingw:
tags:
- win32-ps
+ variables:
+ CHERE_INVOKING: "yes"
before_script:
- - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12"
- - $Env:Path="C:\msys64\$Env:MINGW_PATH\bin;C:\msys64\usr\bin;$Env:Path"
- - pacman --noconfirm -Syu
- - pacman --noconfirm -S
- $Env:MINGW_PACKAGE_PREFIX-cmake
- $Env:MINGW_PACKAGE_PREFIX-libiconv
- $Env:MINGW_PACKAGE_PREFIX-ninja
- $Env:MINGW_PACKAGE_PREFIX-python
- $Env:MINGW_PACKAGE_PREFIX-python2
- $Env:MINGW_PACKAGE_PREFIX-xz
- $Env:MINGW_PACKAGE_PREFIX-zlib
- - if (-not (Test-Path 7za.exe)) {
- Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ;
- cmake -E tar xf 7z1900-extra.7z 7za.exe
- }
- - git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git libxml2-source
- - cmake -G Ninja -DBUILD_SHARED_LIBS=$Env:BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DLIBXML2_WITH_TESTS=OFF -S libxml2-source -B libxml2-build
- - cmake --build libxml2-build --config RelWithDebInfo --target install
- - New-Item -ItemType Directory libxml2-install\share\libxml2
- - Copy-Item libxml2-source\Copyright libxml2-install\share\libxml2
- - $Env:CMAKE_PREFIX_PATH="$Env:CI_PROJECT_DIR\libxml2-install;$Env:CMAKE_PREFIX_PATH"
- - $Env:Path="$Env:CI_PROJECT_DIR\libxml2-install\bin;$Env:Path"
+ - $Env:Path="C:\msys64\usr\bin;$Env:Path"
+ - bash -lc 'sh .gitlab-ci/setup_mingw.sh cmake ninja'
script:
- - cmake -G Ninja -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxslt-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxslt-build
- - cmake --build libxslt-build --target install
- - New-Item -ItemType Directory libxslt-install\share\libxslt
- - Copy-Item Copyright libxslt-install\share\libxslt
- after_script:
- - .\7za.exe a libxslt-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z .\libxslt-install\*
- cache:
- key: "$MINGW_PACKAGE_PREFIX"
- paths:
- - 7za.exe
+ - bash -lc 'sh .gitlab-ci/test_cmake.sh -G Ninja'
artifacts:
paths:
- - libxslt-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z
+ - libxslt-$Env:CI_COMMIT_SHORT_SHA-$Env:SUFFIX.tar.gz
expire_in: 1 day
cmake:mingw:w64-i686:shared:
- schedules
variables:
BUILD_SHARED_LIBS: "ON"
- MINGW_PACKAGE_PREFIX: mingw-w64-i686
- MINGW_PATH: mingw32
- SUFFIX: shared
+ MSYSTEM: MINGW32
+ SUFFIX: mingw-w64-i686-shared
cmake:mingw:w64-i686:static:
extends: .cmake:mingw
- schedules
variables:
BUILD_SHARED_LIBS: "OFF"
- MINGW_PACKAGE_PREFIX: mingw-w64-i686
- MINGW_PATH: mingw32
- SUFFIX: static
+ MSYSTEM: MINGW32
+ SUFFIX: mingw-w64-i686-static
cmake:mingw:w64-x86_64:shared:
extends: .cmake:mingw
variables:
BUILD_SHARED_LIBS: "ON"
- MINGW_PACKAGE_PREFIX: mingw-w64-x86_64
- MINGW_PATH: mingw64
- SUFFIX: shared
+ MSYSTEM: MINGW64
+ SUFFIX: mingw-w64-x86_64-shared
cmake:mingw:w64-x86_64:static:
extends: .cmake:mingw
- schedules
variables:
BUILD_SHARED_LIBS: "OFF"
- MINGW_PACKAGE_PREFIX: mingw-w64-x86_64
- MINGW_PATH: mingw64
- SUFFIX: static
+ MSYSTEM: MINGW64
+ SUFFIX: mingw-w64-x86_64-static
.cmake:msvc:
tags:
- cmake -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_ZLIB=OFF -S libxml2-source -B libxml2-build
- cmake --build libxml2-build --config Debug --target install
- cmake --build libxml2-build --config Release --target install
- - New-Item -ItemType Directory libxml2-install\share\libxml2
- - Copy-Item libxml2-source\Copyright libxml2-install\share\libxml2
- $Env:CMAKE_PREFIX_PATH="$Env:CI_PROJECT_DIR\libxml2-install;$Env:CMAKE_PREFIX_PATH"
- $Env:Path="$Env:CI_PROJECT_DIR\libxml2-install\bin;$Env:Path"
script:
--- /dev/null
+#!/bin/sh
+
+# Newer versions of llvm-symbolizer require libxml2 themselves. Running
+# a test program with LD_LIBRARY_PATH set to .libs makes llvm-symbolizer
+# pick up the tested development version of libxml2 which breaks
+# completely if the build is instrumented with ASan. This wrapper script
+# invokes llvm-symbolizer with an empty LD_LIBRARY_PATH.
+
+LD_LIBRARY_PATH='' llvm-symbolizer "$@"
--- /dev/null
+#!/bin/sh
+
+pacman --noconfirm -Syu
+
+prefix=
+if [ -n "$MINGW_PACKAGE_PREFIX" ]; then
+ prefix="${MINGW_PACKAGE_PREFIX}-"
+fi
+for module in libiconv python xz zlib "$@"; do
+ pacman --noconfirm -S --needed ${prefix}$module
+done
--- /dev/null
+#!/bin/sh
+
+set -e
+
+git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git
+cd libxml2
+sh autogen.sh $CONFIG
+make -j$(nproc)
+cd ..
+
+mkdir -p libxslt-build
+cd libxslt-build
+sh ../autogen.sh $CONFIG --with-libxml-src=../libxml2
+make -j$(nproc) V=1 CFLAGS="$CFLAGS -Werror"
+make -s CFLAGS="$CFLAGS -Werror" check
--- /dev/null
+#!/bin/sh
+
+set -e
+
+git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git libxml2-source
+cmake "$@" \
+ -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS \
+ -DCMAKE_INSTALL_PREFIX=libxml2-install \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DLIBXML2_WITH_TESTS=OFF \
+ -S libxml2-source -B libxml2-build
+cmake --build libxml2-build --target install
+export CMAKE_PREFIX_PATH="$CI_PROJECT_DIR/libxml2-install;$CMAKE_PREFIX_PATH"
+export PATH="$CI_PROJECT_DIR/libxml2-install/bin:$PATH"
+export LD_LIBRARY_PATH="$CI_PROJECT_DIR/libxml2-install/lib:$LD_LIBRARY_PATH"
+
+cmake "$@" \
+ -DBUILD_SHARED_LIBS="$BUILD_SHARED_LIBS" \
+ -DCMAKE_INSTALL_PREFIX=libxslt-install \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_C_FLAGS='-Werror' \
+ -S . -B libxslt-build
+cmake --build libxslt-build --target install
+
+(cd libxslt-build && ctest -VV)
+
+mkdir -p libxslt-install/share/libxslt
+cp Copyright libxslt-install/share/libxslt
+(cd libxslt-install &&
+ tar -czf ../libxslt-$CI_COMMIT_SHORT_SHA-$SUFFIX.tar.gz *)
-cmake_minimum_required(VERSION 3.15)
+cmake_minimum_required(VERSION 3.18)
+
+file(STRINGS "configure.ac" CONFIGURE_AC_LINES)
+foreach(line ${CONFIGURE_AC_LINES})
+ if(line MATCHES [[^m4_define\(\[(MAJOR|MINOR|MICRO)_VERSION\],[ \t]*\[([0-9]+)\]\)$]])
+ set(LIBXSLT_${CMAKE_MATCH_1}_VERSION ${CMAKE_MATCH_2})
+ elseif(line MATCHES "^LIBEXSLT_(MAJOR|MINOR|MICRO)_VERSION=([0-9]+)$")
+ set(LIBEXSLT_${CMAKE_MATCH_1}_VERSION ${CMAKE_MATCH_2})
+ endif()
+endforeach()
+
+set(LIBXSLT_DOTTED_VERSION "${LIBXSLT_MAJOR_VERSION}.${LIBXSLT_MINOR_VERSION}.${LIBXSLT_MICRO_VERSION}")
+math(EXPR LIBXSLT_VERSION_NUMBER "${LIBXSLT_MAJOR_VERSION} * 10000 + ${LIBXSLT_MINOR_VERSION} * 100 + ${LIBXSLT_MICRO_VERSION}")
+set(LIBXSLT_VERSION_EXTRA "")
-project(libxslt1 VERSION 1.1.35 LANGUAGES C)
+set(LIBEXSLT_DOTTED_VERSION ${LIBEXSLT_MAJOR_VERSION}.${LIBEXSLT_MINOR_VERSION}.${LIBEXSLT_MICRO_VERSION})
+math(EXPR LIBEXSLT_VERSION_NUMBER "${LIBEXSLT_MAJOR_VERSION} * 10000 + ${LIBEXSLT_MINOR_VERSION} * 100 + ${LIBEXSLT_MICRO_VERSION}")
+set(LIBEXSLT_VERSION_EXTRA "")
+
+set(VERSION ${LIBXSLT_DOTTED_VERSION})
+set(LIBEXSLT_VERSION ${LIBEXSLT_DOTTED_VERSION})
+
+project(libxslt1 VERSION ${VERSION} LANGUAGES C)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include(CheckFunctionExists)
include(CheckIncludeFiles)
include(CheckLibraryExists)
+include(CheckLinkerFlag)
include(CheckSymbolExists)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
-find_package(LibXml2 CONFIG REQUIRED)
+if(NOT TARGET LibXml2)
+ find_package(LibXml2 CONFIG REQUIRED)
+endif()
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(LIBXSLT_WITH_DEBUGGER "Add the debugging support" ON)
set(LIBXSLT_WITH_TRIO OFF)
option(LIBXSLT_WITH_XSLT_DEBUG "Add the debugging code" ON)
+if(NOT BUILD_SHARED_LIBS)
+ set(LIBXSLT_WITH_MODULES OFF)
+endif()
+
if(LIBXSLT_WITH_CRYPTO AND NOT WIN32)
find_package(Gcrypt REQUIRED)
endif()
if(LIBXSLT_WITH_PYTHON)
check_include_files(unistd.h HAVE_UNISTD_H)
check_symbol_exists(F_GETFL fcntl.h HAVE_F_GETFL)
- if(HAVE_UNISTD_H AND HAVE_F_GETFL)
+ if(WIN32 OR (HAVE_UNISTD_H AND HAVE_F_GETFL))
find_package(Python COMPONENTS Interpreter Development REQUIRED)
else()
find_package(Python2 COMPONENTS Interpreter Development REQUIRED)
set(Python_EXECUTABLE ${Python2_EXECUTABLE})
set(Python_SITEARCH ${Python2_SITEARCH})
endif()
- set(LIBXSLT_PYTHON_INSTALL_DIR ${Python_SITEARCH} CACHE PATH "Python bindings install directory")
+ #set(LIBXSLT_PYTHON_INSTALL_DIR ${Python_SITEARCH} CACHE PATH "Python bindings install directory")
+ set(LIBXSLT_PYTHON_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/python" CACHE PATH "Python bindings install directory")
endif()
if(LIBXSLT_WITH_THREADS)
endif()
endforeach()
-set(LIBEXSLT_MAJOR_VERSION 0)
-set(LIBEXSLT_MINOR_VERSION 8)
-set(LIBEXSLT_MICRO_VERSION 20)
-
-set(LIBEXSLT_DOTTED_VERSION ${LIBEXSLT_MAJOR_VERSION}.${LIBEXSLT_MINOR_VERSION}.${LIBEXSLT_MICRO_VERSION})
-math(EXPR LIBEXSLT_VERSION_NUMBER "${LIBEXSLT_MAJOR_VERSION} * 10000 + ${LIBEXSLT_MINOR_VERSION} * 100 + ${LIBEXSLT_MICRO_VERSION}")
-set(LIBEXSLT_VERSION_EXTRA "")
-
-set(LIBXSLT_MAJOR_VERSION ${PROJECT_VERSION_MAJOR})
-set(LIBXSLT_MINOR_VERSION ${PROJECT_VERSION_MINOR})
-set(LIBXSLT_MICRO_VERSION ${PROJECT_VERSION_PATCH})
-
-set(LIBXSLT_DOTTED_VERSION "${LIBXSLT_MAJOR_VERSION}.${LIBXSLT_MINOR_VERSION}.${LIBXSLT_MICRO_VERSION}")
-math(EXPR LIBXSLT_VERSION_NUMBER "${LIBXSLT_MAJOR_VERSION} * 10000 + ${LIBXSLT_MINOR_VERSION} * 100 + ${LIBXSLT_MICRO_VERSION}")
-set(LIBXSLT_VERSION_EXTRA "")
-
-set(VERSION ${LIBXSLT_DOTTED_VERSION})
-set(LIBEXSLT_VERSION ${LIBEXSLT_DOTTED_VERSION})
-
set(MODULE_EXTENSION "${CMAKE_SHARED_LIBRARY_SUFFIX}")
if(LIBXSLT_WITH_CRYPTO AND NOT WIN32)
target_compile_definitions(LibXslt INTERFACE LIBXSLT_STATIC)
endif()
+if(CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wshadow \
+-Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return \
+-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline \
+-Wredundant-decls -Wno-long-long -Wno-format-extra-args")
+
+ if(BUILD_SHARED_LIBS AND UNIX AND NOT APPLE)
+ check_linker_flag(C "LINKER:--undefined-version" FLAG_UNDEFINED_VERSION)
+ if (FLAG_UNDEFINED_VERSION)
+ target_link_options(LibXslt PRIVATE "LINKER:--undefined-version")
+ endif()
+ target_link_options(LibXslt PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libxslt/libxslt.syms")
+ endif()
+endif()
+
target_include_directories(
LibXslt
PUBLIC
POSITION_INDEPENDENT_CODE ON
PREFIX lib
VERSION ${PROJECT_VERSION}
+ SOVERSION ${LIBXSLT_MAJOR_VERSION}
)
if(MSVC)
set(LIBGCRYPT_LIBS "-lgcrypt")
endif()
+if(UNIX)
+ target_link_libraries(LibExslt PRIVATE m)
+ set(LIBM "-lm")
+endif()
+
target_link_libraries(LibExslt PUBLIC LibXslt LibXml2::LibXml2)
set_target_properties(
POSITION_INDEPENDENT_CODE ON
PREFIX lib
VERSION ${LIBEXSLT_VERSION}
+ SOVERSION ${LIBEXSLT_MAJOR_VERSION}
)
if(MSVC)
if(LIBXSLT_WITH_TESTS)
enable_testing()
+
+ add_executable(runtest tests/runtest.c)
+ target_link_libraries(runtest LibXslt LibExslt)
+ add_test(
+ NAME runtest COMMAND runtest
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests"
+ )
+
+ if (LIBXSLT_WITH_MODULES)
+ add_library(testplugin SHARED tests/testplugin.c)
+ target_link_libraries(testplugin LibExslt LibXslt)
+ set_target_properties(
+ testplugin PROPERTIES
+ PREFIX ""
+ OUTPUT_NAME xmlsoft_org_xslt_testplugin
+ )
+ # There must be an easier way...
+ get_cmake_property(MULTI_CONFIG GENERATOR_IS_MULTI_CONFIG)
+ if (MULTI_CONFIG)
+ set(PLUGINS_PATH ${PROJECT_BINARY_DIR}/$<CONFIG>)
+ else()
+ set(PLUGINS_PATH ${PROJECT_BINARY_DIR})
+ endif()
+ set_tests_properties(
+ runtest PROPERTIES
+ ENVIRONMENT LIBXSLT_PLUGINS_PATH=${PLUGINS_PATH}
+ )
+ endif()
+
if(Threads_FOUND)
add_executable(testThreads xsltproc/testThreads.c)
target_link_libraries(testThreads LibXslt LibExslt Threads::Threads)
- add_test(NAME testThreads COMMAND testThreads WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ add_test(NAME testThreads COMMAND testThreads)
endif()
endif()
PREFIX lib
VERSION ${PROJECT_VERSION}
)
+ if (WIN32)
+ set_target_properties(LibXsltMod PROPERTIES SUFFIX ".pyd")
+ endif()
install(
TARGETS LibXsltMod
ARCHIVE DESTINATION ${LIBXSLT_PYTHON_INSTALL_DIR} COMPONENT development
set(EXSLT_INCLUDEDIR "-I\${includedir}")
set(EXSLT_LIBDIR "-L\${libdir}")
-set(EXSLT_PRIVATE_LIBS "${XSLT_PRIVATE_LIBS} ${LIBGCRYPT_LIBS}")
+set(EXSLT_PRIVATE_LIBS "${XSLT_PRIVATE_LIBS} ${LIBGCRYPT_LIBS} ${LIBM}")
file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig" "${CMAKE_INSTALL_PREFIX}")
string(REGEX REPLACE "/$" "" PACKAGE_RELATIVE_PATH "${PACKAGE_RELATIVE_PATH}")
CLEANFILES = xsltConf.sh
-check-local: tests
-
-dummy:
-
-tests: dummy
- @echo '## Running the regression test suite'
- @(cd tests ; $(MAKE) -s tests)
- @(cd xsltproc ; $(MAKE) -s tests)
-if WITH_PYTHON
- @cd python && $(MAKE) tests
-endif
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- @echo '## Go get a cup of coffee it is gonna take a while ...'
- @(cd tests ; $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests)
- @(cd xsltproc ; $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests)
-
cleanup:
-@(find . -name .\#\* -exec rm {} \;)
NEWS file for libxslt
+v1.1.39: Nov 16 2023
+
+### Bug fixes
+
+- extensions: Don't search imports for extension prefixes
+
+### Improvements
+
+- transform: Check maximum depth when processing default templates
+- build: Add more missing includes
+- python: Don't set deprecated global
+- build: Add missing includes
+- imports: Limit nesting depth
+- extensions: Report top-level elements in xsltDebugDumpExtensions
+- Add extern "C" { } block to xsltlocale.h (David Kilzer)
+
+### Portability
+
+- python: Make it compatible with python3.12 (Daniel Garcia Moreno)
+- date: Fix check for localtime_s
+- date: Fix check for gmtime_s
+
+### Build systems
+
+- pkg-config files include cflags for static builds (Mike Dalessio)
+- Handle NOCONFIG case when setting locations from CMake target properties (Markus
+ Rickert)
+- autotools: Make xslt-config executable
+
+### Tests
+
+- tests: Structured error handler now passes a const xmlError
+- python: Fix tests on MinGW
+- fuzz: Fix xmlFuzzEntityLoader after recent libxml2 changes
+
+
+v1.1.38: May 8 2023
+
+### Major changes
+
+About 40 memory errors in code paths handling malloc failures have been fixed.
+While these issues shouldn't impact security, this improves robustness under
+memory pressure.
+
+The result of generate-id() is now deterministic across multiple
+transformations fixing many issues with reproducible builds.
+
+Most of the test suite has been ported to C.
+
+### Bug fixes
+
+- Fix memory errors in code handling malloc failures
+- imports: Fix import/include cycle check
+- xsltlocale: Fix xsltNewLocale on macOS
+- Make xsl:sort thread-safe
+- Make generate-id() deterministic
+
+### Improvements
+
+- Stop using xmlStringCurrentChar
+- attributes.h needs to include xsltInternals.h (David Kilzer)
+- transform: Avoid null deref on documents without root node
+- numbers: Fix floating point overflows
+- date: Fix integer overflow in exsltDateFormatDuration
+- numbers: Fix harmless integer sign change
+- date: Add more overflow checks to formatting code (David Kilzer)
+- date: Fix rounding to make Windows tests pass
+- date: Rewrite duration and seconds formatting
+- xsltlocale: Make API platform-independent
+- Also accept application/xslt+xml media type in stylesheet PIs
+- warnings: Fix strict prototypes warning
+- xsltEvalUserParams() and xsltQuoteUserParams() are susceptible to integer
+ overflow when iterating through const char** array (David Kilzer)
+- xslt: Return NULL stylesheet on attribute set errors
+- xsltproc: Fix unused variable warning
+- xslt: Remove declaration for old libxml2
+- Fix various compiler warnings
+- Fix compiler warnings in xsltGenerateIdFunction
+- Disable Python bindings for debugger
+- Don't declare disabled functions
+- Migrate from PyEval_ to PyObject_
+
+### Build system
+
+- cmake: Use version script
+- autotools: Link with --undefined-version
+- win32: Remove broken libxslt.def.src
+- Stop updating version script
+- add support for Windows time functions (Rosen Penev)
+- cmake: link against libm on UNIX systems (Alex Richardson)
+- build: Add a distutils-based build system for the Python bits (Chun-wei Fan)
+- CMake: Relax check for Python 3.x support on Windows (Chun-wei Fan)
+- python/types.c: Fix building against older libxml2 (Chun-wei Fan)
+- python/libxslt.c: Replace ssize_t with Py_ssize_t (Chun-wei Fan)
+- cmake: Fix build with libxslt and libxml2 as subprojects
+- cmake: Set SOVERSION
+- cmake: Extract version from configure.ac
+- Fix classic Windows configuration for libexslt (Christoph M. Becker)
+- autotools: Fix Python tests in VPATH builds
+- autotools: Disable parallel Python build
+- autotools: Use AM_CFLAGS consistently
+- autotools: Link with -no-undefined
+- cmake: Fix Python installation
+- cmake: Don't check for Python 2
+- python: Don't output missing generators during build
+- python: Create .pyd on Windows
+- python: Fix build on Windows
+- python: Support Python 3 on Windows
+- cmake: Enable GCC compiler warnings
+- Update GCC compiler warnings
+
+### Tests
+
+- python: Remove temp file when running tests/basic.py
+- fuzz: Improve fuzzers
+- xsltlocale: Add test
+- gitlab-ci: Reenable MSan and LeakSanitizer
+- tests: Remove unused files
+- tests: Enable runtest.exe under MSVC
+- tests: Fix LIBXSLT_PLUGINS_PATH for multi-config CMake
+- tests: Remove unused leak statistics
+- tests: Skip some tests if iconv/ICU is disabled
+- gitlab-ci: Run Autotools tests with out-of-tree (VPATH) builds
+- tests: Port most of the test suite to C
+- tests: Fix out-of-tree Python tests
+- tests: Fix source directory for reports tests
+- gitlab-ci: Consolidate CMake test scripts
+- gitlab-ci: Only install cmake MinGW package if needed
+- gitlab-ci: Install 7-Zip using the .msi
+- gitlab-ci: Add CI job for MinGW/Autotools
+- gitlab-ci: Disable MSan for now
+- Run CI tests with -fsanitize=integer
+- Fix EXSLT functions tests when libxml2 is built --without-debug
+- Make CI tests exit on failure
+- Run Python 3 CI job with minimal configuration
+- Set library path when running Python tests
+
+### Documentation
+
+- doc: Remove unused cross-reference data
+- doc: Update apibuild.py
+
+
v1.1.37: Aug 29 2022
### Improvements
+++ /dev/null
-
- XSLT support for libxml2 (XML toolkit from the GNOME project)
-
-Full documentation is available on-line at
- https://gitlab.gnome.org/GNOME/libxslt/-/wikis
-
-This code is released under the MIT Licence see the Copyright file.
-
-To report bugs, follow the instructions at:
- https://gitlab.gnome.org/GNOME/libxslt/-/issues
-
-A mailing-list xslt@gnome.org is available, to subscribe:
- http://mail.gnome.org/mailman/listinfo/xslt
-
-The list archive is at:
- http://mail.gnome.org/archives/xslt/
-
-All technical answers asked privately will be automatically answered on
-the list and archived for public access unless pricacy is explicitely
-required and justified.
-
-Daniel Veillard
--- /dev/null
+# libxslt
+
+libxslt is an XSLT processor based on libxml2.
+
+Official releases can be downloaded from
+<https://download.gnome.org/sources/libxslt/>
+
+The git repository is hosted on GNOME's GitLab server:
+<https://gitlab.gnome.org/GNOME/libxslt>
+
+Bugs should be reported at
+<https://gitlab.gnome.org/GNOME/libxslt/-/issues>
+
+Documentation is available at
+<https://gitlab.gnome.org/GNOME/libxslt/-/wikis>
+
+The build system is similar to libxml2. Refer to libxml2's README for
+build instructions.
+
m4_define([MAJOR_VERSION], [1])
m4_define([MINOR_VERSION], [1])
-m4_define([MICRO_VERSION], [37])
+m4_define([MICRO_VERSION], [39])
AC_INIT([libxslt], [MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION])
AC_CONFIG_SRCDIR([libxslt/xslt.c])
LIBXSLT_MICRO_VERSION=MICRO_VERSION
LIBEXSLT_MAJOR_VERSION=0
LIBEXSLT_MINOR_VERSION=8
-LIBEXSLT_MICRO_VERSION=20
+LIBEXSLT_MICRO_VERSION=21
LIBXML_REQUIRED_VERSION=2.6.27
AC_MSG_CHECKING([how to pass version script to the linker ($LD)])
VERSION_SCRIPT_FLAGS=none
if $LD --help 2>&1 | grep "version-script" >/dev/null 2>/dev/null; then
- VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+ dnl lld 16 defaults to --no-undefined-version but the version script
+ dnl can contain symbols disabled by configuration options.
+ VERSION_SCRIPT_FLAGS=''
+ AX_APPEND_LINK_FLAGS([-Wl,--undefined-version], [VERSION_SCRIPT_FLAGS])
+ AX_APPEND_FLAG([-Wl,--version-script=], [VERSION_SCRIPT_FLAGS])
elif $LD --help 2>&1 | grep "M mapfile" >/dev/null 2>/dev/null; then
VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
fi
AS_IF([test "x$with_python" != "xno"], [
AM_PATH_PYTHON
PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}])
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-msys* )
+ PYTHON_LDFLAGS="-no-undefined -shrext .pyd"
+ ;;
+ esac
])
+AC_SUBST(PYTHON_LDFLAGS)
AM_CONDITIONAL([WITH_PYTHON], [test "x$with_python" != "xno"])
AC_ARG_WITH(crypto, [ --with-crypto Add crypto support to exslt (on)])
if test "${GCC}" != "yes" ; then
case "${host}" in
*-*-hpux* )
- CFLAGS="${CFLAGS} -Wp,-H30000"
+ AM_CFLAGS="${AM_CFLAGS} -Wp,-H30000"
;;
*-dec-osf* )
- CFLAGS="${CFLAGS} -ieee"
+ AM_CFLAGS="${AM_CFLAGS} -ieee"
;;
esac
else
- CFLAGS="${CFLAGS} -Wall -Wextra -Wformat=2 -Wmissing-format-attribute -Wshadow"
+ AM_CFLAGS="${AM_CFLAGS} -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
case "${host}" in
alpha*-*-linux* )
- CFLAGS="${CFLAGS} -mieee"
+ AM_CFLAGS="${AM_CFLAGS} -mieee"
;;
alpha*-*-osf* )
- CFLAGS="${CFLAGS} -mieee"
+ AM_CFLAGS="${AM_CFLAGS} -mieee"
;;
esac
fi
AC_MSG_ERROR([Could not find libxml2 anywhere.])
fi
+AM_CFLAGS="$AM_CFLAGS $LIBXML_CFLAGS"
+
AC_ARG_WITH(plugins,
[ --with-plugins Add plugin extension support (on)])
LIBXSLT_DEFAULT_PLUGINS_PATH="$expanded_libdir/libxslt-plugins"
AC_SUBST(LIBXSLT_DEFAULT_PLUGINS_PATH)
-case "$host" in
- *-*-cygwin*|*-*-mingw*)
- LDFLAGS="$LDFLAGS -no-undefined"
- ;;
-esac
-
-
AC_SUBST(XML_CONFIG)
AC_SUBST(LIBXML_LIBS)
AC_SUBST(LIBXML_CFLAGS)
AC_SUBST(XSLT_PRIVATE_LIBS)
LIBXSLT_CFLAGS=""
+LIBEXSLT_CFLAGS=""
case ${host} in
*-*-mingw* | *-*-cygwin* | *-*-msvc* )
# If the host is Windows, and shared libraries are disabled, we
- # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
+ # need to add -DLIBXML_STATIC to AM_CFLAGS in order for linking to
# work properly (without it, xmlexports.h would force the use of
# DLL imports, which obviously aren't present in a static
# library).
if test "x$enable_shared" = "xno"; then
- LIBXSLT_CFLAGS="$LIBXSLT_CFLAGS -DLIBXSLT_STATIC -DLIBEXSLT_STATIC"
+ LIBXSLT_CFLAGS="$LIBXSLT_CFLAGS -DLIBXSLT_STATIC"
+ LIBEXSLT_CFLAGS="$LIBEXSLT_CFLAGS -DLIBEXSLT_STATIC"
+ AM_CFLAGS="$AM_CFLAGS -DLIBXSLT_STATIC -DLIBEXSLT_STATIC"
fi
;;
esac
AC_SUBST(LIBXSLT_CFLAGS)
+AC_SUBST(LIBEXSLT_CFLAGS)
+
+AC_SUBST(AM_CFLAGS)
EXSLT_LIBDIR='-L${libdir}'
EXSLT_INCLUDEDIR='-I${includedir}'
libexslt/exsltconfig.h
xsltproc/Makefile
python/Makefile
+python/setup.py
python/tests/Makefile
tests/Makefile
-tests/docs/Makefile
-tests/REC1/Makefile
-tests/REC2/Makefile
-tests/REC/Makefile
-tests/general/Makefile
-tests/reports/Makefile
-tests/extensions/Makefile
-tests/namespaces/Makefile
-tests/keys/Makefile
-tests/numbers/Makefile
-tests/documents/Makefile
tests/xmlspec/Makefile
tests/multiple/Makefile
tests/xinclude/Makefile
tests/XSLTMark/Makefile
tests/docbook/Makefile
-tests/exslt/Makefile
-tests/exslt/common/Makefile
-tests/exslt/functions/Makefile
-tests/exslt/math/Makefile
-tests/exslt/saxon/Makefile
-tests/exslt/sets/Makefile
-tests/exslt/strings/Makefile
-tests/exslt/date/Makefile
-tests/exslt/dynamic/Makefile
-tests/exslt/crypto/Makefile
-tests/plugins/Makefile
tests/fuzz/Makefile
doc/Makefile
doc/devhelp/Makefile
doc/EXSLT/devhelp/Makefile
-xslt-config
libxslt.spec
])
-AC_CONFIG_LINKS([tests/fuzz/xpath.xml:tests/fuzz/xpath.xml])
-AC_CONFIG_LINKS([tests/fuzz/xslt.xml:tests/fuzz/xslt.xml])
+AC_CONFIG_FILES([xslt-config], [chmod +x xslt-config])
AC_OUTPUT
<p>Author(s): </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a>;
-#define <a href="#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a>;
-#define <a href="#SAXON_NAMESPACE">SAXON_NAMESPACE</a>;
-#define <a href="#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a>;
-#define <a href="#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a>;
-#define <a href="#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a>;
-#define <a href="#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a>;
+ <pre class="synopsis">#define <a href="#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a>;
#define <a href="#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a>;
+#define <a href="#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a>;
+#define <a href="#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a>;
+#define <a href="#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a>;
#define <a href="#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a>;
-void <a href="#exsltDynRegister">exsltDynRegister</a> (void);
+#define <a href="#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a>;
+#define <a href="#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a>;
+#define <a href="#SAXON_NAMESPACE">SAXON_NAMESPACE</a>;
void <a href="#exsltCommonRegister">exsltCommonRegister</a> (void);
-void <a href="#exsltRegisterAll">exsltRegisterAll</a> (void);
-int <a href="#exsltStrXpathCtxtRegister">exsltStrXpathCtxtRegister</a> (xmlXPathContextPtr ctxt, <br/> const xmlChar * prefix);
-int <a href="#exsltSetsXpathCtxtRegister">exsltSetsXpathCtxtRegister</a> (xmlXPathContextPtr ctxt, <br/> const xmlChar * prefix);
-void <a href="#exsltFuncRegister">exsltFuncRegister</a> (void);
-void <a href="#exsltStrRegister">exsltStrRegister</a> (void);
-void <a href="#exsltSetsRegister">exsltSetsRegister</a> (void);
-void <a href="#exsltDateRegister">exsltDateRegister</a> (void);
void <a href="#exsltCryptoRegister">exsltCryptoRegister</a> (void);
+void <a href="#exsltDateRegister">exsltDateRegister</a> (void);
+int <a href="#exsltDateXpathCtxtRegister">exsltDateXpathCtxtRegister</a> (xmlXPathContextPtr ctxt, <br/> const xmlChar * prefix);
+void <a href="#exsltDynRegister">exsltDynRegister</a> (void);
+void <a href="#exsltFuncRegister">exsltFuncRegister</a> (void);
void <a href="#exsltMathRegister">exsltMathRegister</a> (void);
int <a href="#exsltMathXpathCtxtRegister">exsltMathXpathCtxtRegister</a> (xmlXPathContextPtr ctxt, <br/> const xmlChar * prefix);
+void <a href="#exsltRegisterAll">exsltRegisterAll</a> (void);
void <a href="#exsltSaxonRegister">exsltSaxonRegister</a> (void);
-int <a href="#exsltDateXpathCtxtRegister">exsltDateXpathCtxtRegister</a> (xmlXPathContextPtr ctxt, <br/> const xmlChar * prefix);
+void <a href="#exsltSetsRegister">exsltSetsRegister</a> (void);
+int <a href="#exsltSetsXpathCtxtRegister">exsltSetsXpathCtxtRegister</a> (xmlXPathContextPtr ctxt, <br/> const xmlChar * prefix);
+void <a href="#exsltStrRegister">exsltStrRegister</a> (void);
+int <a href="#exsltStrXpathCtxtRegister">exsltStrXpathCtxtRegister</a> (xmlXPathContextPtr ctxt, <br/> const xmlChar * prefix);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#LIBEXSLT_PUBLIC">LIBEXSLT_PUBLIC</a>;
-#define <a href="#EXSLTPUBLIC">EXSLTPUBLIC</a>;
-#define <a href="#EXSLTCALL">EXSLTCALL</a>;
+ <pre class="synopsis">#define <a href="#EXSLTCALL">EXSLTCALL</a>;
#define <a href="#EXSLTPUBFUN">EXSLTPUBFUN</a>;
+#define <a href="#EXSLTPUBLIC">EXSLTPUBLIC</a>;
#define <a href="#EXSLTPUBVAR">EXSLTPUBVAR</a>;
+#define <a href="#LIBEXSLT_PUBLIC">LIBEXSLT_PUBLIC</a>;
</pre>
</div>
<div class="refsect1" lang="en">
<files>
<file name='exslt'>
<summary>main header file </summary>
- <exports symbol='EXSLT_DATE_NAMESPACE' type='macro'/>
- <exports symbol='EXSLT_STRINGS_NAMESPACE' type='macro'/>
- <exports symbol='SAXON_NAMESPACE' type='macro'/>
<exports symbol='EXSLT_COMMON_NAMESPACE' type='macro'/>
- <exports symbol='EXSLT_FUNCTIONS_NAMESPACE' type='macro'/>
- <exports symbol='EXSLT_SETS_NAMESPACE' type='macro'/>
- <exports symbol='EXSLT_DYNAMIC_NAMESPACE' type='macro'/>
<exports symbol='EXSLT_CRYPTO_NAMESPACE' type='macro'/>
+ <exports symbol='EXSLT_DATE_NAMESPACE' type='macro'/>
+ <exports symbol='EXSLT_DYNAMIC_NAMESPACE' type='macro'/>
+ <exports symbol='EXSLT_FUNCTIONS_NAMESPACE' type='macro'/>
<exports symbol='EXSLT_MATH_NAMESPACE' type='macro'/>
- <exports symbol='exsltLibxmlVersion' type='variable'/>
+ <exports symbol='EXSLT_SETS_NAMESPACE' type='macro'/>
+ <exports symbol='EXSLT_STRINGS_NAMESPACE' type='macro'/>
+ <exports symbol='SAXON_NAMESPACE' type='macro'/>
<exports symbol='exsltLibexsltVersion' type='variable'/>
<exports symbol='exsltLibraryVersion' type='variable'/>
+ <exports symbol='exsltLibxmlVersion' type='variable'/>
<exports symbol='exsltLibxsltVersion' type='variable'/>
- <exports symbol='exsltDynRegister' type='function'/>
<exports symbol='exsltCommonRegister' type='function'/>
- <exports symbol='exsltRegisterAll' type='function'/>
- <exports symbol='exsltStrXpathCtxtRegister' type='function'/>
- <exports symbol='exsltSetsXpathCtxtRegister' type='function'/>
- <exports symbol='exsltFuncRegister' type='function'/>
- <exports symbol='exsltStrRegister' type='function'/>
- <exports symbol='exsltSetsRegister' type='function'/>
- <exports symbol='exsltDateRegister' type='function'/>
<exports symbol='exsltCryptoRegister' type='function'/>
+ <exports symbol='exsltDateRegister' type='function'/>
+ <exports symbol='exsltDateXpathCtxtRegister' type='function'/>
+ <exports symbol='exsltDynRegister' type='function'/>
+ <exports symbol='exsltFuncRegister' type='function'/>
<exports symbol='exsltMathRegister' type='function'/>
<exports symbol='exsltMathXpathCtxtRegister' type='function'/>
+ <exports symbol='exsltRegisterAll' type='function'/>
<exports symbol='exsltSaxonRegister' type='function'/>
- <exports symbol='exsltDateXpathCtxtRegister' type='function'/>
+ <exports symbol='exsltSetsRegister' type='function'/>
+ <exports symbol='exsltSetsXpathCtxtRegister' type='function'/>
+ <exports symbol='exsltStrRegister' type='function'/>
+ <exports symbol='exsltStrXpathCtxtRegister' type='function'/>
</file>
<file name='exsltexports'>
<summary>macros for marking symbols as exportable/importable. </summary>
- <exports symbol='LIBEXSLT_PUBLIC' type='macro'/>
- <exports symbol='EXSLTPUBLIC' type='macro'/>
<exports symbol='EXSLTCALL' type='macro'/>
<exports symbol='EXSLTPUBFUN' type='macro'/>
+ <exports symbol='EXSLTPUBLIC' type='macro'/>
<exports symbol='EXSLTPUBVAR' type='macro'/>
+ <exports symbol='LIBEXSLT_PUBLIC' type='macro'/>
</file>
</files>
<symbols>
<variable name='exsltLibraryVersion' file='exslt' type='const char *'/>
<variable name='exsltLibxmlVersion' file='exslt' type='const int'/>
<variable name='exsltLibxsltVersion' file='exslt' type='const int'/>
- <function name='exsltCommonRegister' file='exslt'>
+ <function name='exsltCommonRegister' file='exslt' module='common'>
<info>Registers the EXSLT - Common module</info>
<return type='void'/>
</function>
- <function name='exsltCryptoRegister' file='exslt'>
+ <function name='exsltCryptoRegister' file='exslt' module='crypto'>
+ <cond>defined(EXSLT_CRYPTO_ENABLED)</cond>
<info>Registers the EXSLT - Crypto module</info>
<return type='void'/>
</function>
- <function name='exsltDateRegister' file='exslt'>
+ <function name='exsltDateRegister' file='exslt' module='date'>
<info>Registers the EXSLT - Dates and Times module</info>
<return type='void'/>
</function>
- <function name='exsltDateXpathCtxtRegister' file='exslt'>
+ <function name='exsltDateXpathCtxtRegister' file='exslt' module='date'>
<info>Registers the EXSLT - Dates and Times module for use outside XSLT</info>
<return type='int' info=''/>
<arg name='ctxt' type='xmlXPathContextPtr' info=''/>
<arg name='prefix' type='const xmlChar *' info=''/>
</function>
- <function name='exsltDynRegister' file='exslt'>
+ <function name='exsltDynRegister' file='exslt' module='dynamic'>
<info>Registers the EXSLT - Dynamic module</info>
<return type='void'/>
</function>
- <function name='exsltFuncRegister' file='exslt'>
+ <function name='exsltFuncRegister' file='exslt' module='functions'>
<info>Registers the EXSLT - Functions module</info>
<return type='void'/>
</function>
- <function name='exsltMathRegister' file='exslt'>
+ <function name='exsltMathRegister' file='exslt' module='math'>
<info>Registers the EXSLT - Math module</info>
<return type='void'/>
</function>
- <function name='exsltMathXpathCtxtRegister' file='exslt'>
+ <function name='exsltMathXpathCtxtRegister' file='exslt' module='math'>
<info>Registers the EXSLT - Math module for use outside XSLT</info>
<return type='int' info=''/>
<arg name='ctxt' type='xmlXPathContextPtr' info=''/>
<arg name='prefix' type='const xmlChar *' info=''/>
</function>
- <function name='exsltRegisterAll' file='exslt'>
+ <function name='exsltRegisterAll' file='exslt' module='exslt'>
<info>Registers all available EXSLT extensions</info>
<return type='void'/>
</function>
- <function name='exsltSaxonRegister' file='exslt'>
+ <function name='exsltSaxonRegister' file='exslt' module='saxon'>
<info>Registers the SAXON extension module</info>
<return type='void'/>
</function>
- <function name='exsltSetsRegister' file='exslt'>
+ <function name='exsltSetsRegister' file='exslt' module='sets'>
<info>Registers the EXSLT - Sets module</info>
<return type='void'/>
</function>
- <function name='exsltSetsXpathCtxtRegister' file='exslt'>
+ <function name='exsltSetsXpathCtxtRegister' file='exslt' module='sets'>
<info>Registers the EXSLT - Sets module for use outside XSLT</info>
<return type='int' info=''/>
<arg name='ctxt' type='xmlXPathContextPtr' info=''/>
<arg name='prefix' type='const xmlChar *' info=''/>
</function>
- <function name='exsltStrRegister' file='exslt'>
+ <function name='exsltStrRegister' file='exslt' module='strings'>
<info>Registers the EXSLT - Strings module</info>
<return type='void'/>
</function>
- <function name='exsltStrXpathCtxtRegister' file='exslt'>
+ <function name='exsltStrXpathCtxtRegister' file='exslt' module='strings'>
<info>Registers the EXSLT - Strings module for use outside XSLT</info>
<return type='int' info=''/>
<arg name='ctxt' type='xmlXPathContextPtr' info=''/>
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<apirefs name='libexslt'>
- <references>
- <reference name='EXSLTCALL' href='html/libexslt-exsltexports.html#EXSLTCALL'/>
- <reference name='EXSLTPUBFUN' href='html/libexslt-exsltexports.html#EXSLTPUBFUN'/>
- <reference name='EXSLTPUBLIC' href='html/libexslt-exsltexports.html#EXSLTPUBLIC'/>
- <reference name='EXSLTPUBVAR' href='html/libexslt-exsltexports.html#EXSLTPUBVAR'/>
- <reference name='EXSLT_COMMON_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE'/>
- <reference name='EXSLT_CRYPTO_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE'/>
- <reference name='EXSLT_DATE_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE'/>
- <reference name='EXSLT_DYNAMIC_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE'/>
- <reference name='EXSLT_FUNCTIONS_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE'/>
- <reference name='EXSLT_MATH_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE'/>
- <reference name='EXSLT_SETS_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE'/>
- <reference name='EXSLT_STRINGS_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE'/>
- <reference name='LIBEXSLT_PUBLIC' href='html/libexslt-exsltexports.html#LIBEXSLT_PUBLIC'/>
- <reference name='SAXON_NAMESPACE' href='html/libexslt-exslt.html#SAXON_NAMESPACE'/>
- <reference name='exsltCommonRegister' href='html/libexslt-exslt.html#exsltCommonRegister'/>
- <reference name='exsltCryptoRegister' href='html/libexslt-exslt.html#exsltCryptoRegister'/>
- <reference name='exsltDateRegister' href='html/libexslt-exslt.html#exsltDateRegister'/>
- <reference name='exsltDateXpathCtxtRegister' href='html/libexslt-exslt.html#exsltDateXpathCtxtRegister'/>
- <reference name='exsltDynRegister' href='html/libexslt-exslt.html#exsltDynRegister'/>
- <reference name='exsltFuncRegister' href='html/libexslt-exslt.html#exsltFuncRegister'/>
- <reference name='exsltLibexsltVersion' href='html/libexslt-exslt.html#exsltLibexsltVersion'/>
- <reference name='exsltLibraryVersion' href='html/libexslt-exslt.html#exsltLibraryVersion'/>
- <reference name='exsltLibxmlVersion' href='html/libexslt-exslt.html#exsltLibxmlVersion'/>
- <reference name='exsltLibxsltVersion' href='html/libexslt-exslt.html#exsltLibxsltVersion'/>
- <reference name='exsltMathRegister' href='html/libexslt-exslt.html#exsltMathRegister'/>
- <reference name='exsltMathXpathCtxtRegister' href='html/libexslt-exslt.html#exsltMathXpathCtxtRegister'/>
- <reference name='exsltRegisterAll' href='html/libexslt-exslt.html#exsltRegisterAll'/>
- <reference name='exsltSaxonRegister' href='html/libexslt-exslt.html#exsltSaxonRegister'/>
- <reference name='exsltSetsRegister' href='html/libexslt-exslt.html#exsltSetsRegister'/>
- <reference name='exsltSetsXpathCtxtRegister' href='html/libexslt-exslt.html#exsltSetsXpathCtxtRegister'/>
- <reference name='exsltStrRegister' href='html/libexslt-exslt.html#exsltStrRegister'/>
- <reference name='exsltStrXpathCtxtRegister' href='html/libexslt-exslt.html#exsltStrXpathCtxtRegister'/>
- </references>
- <alpha>
- <letter name='E'>
- <ref name='EXSLTCALL'/>
- <ref name='EXSLTPUBFUN'/>
- <ref name='EXSLTPUBLIC'/>
- <ref name='EXSLTPUBVAR'/>
- <ref name='EXSLT_COMMON_NAMESPACE'/>
- <ref name='EXSLT_CRYPTO_NAMESPACE'/>
- <ref name='EXSLT_DATE_NAMESPACE'/>
- <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
- <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
- <ref name='EXSLT_MATH_NAMESPACE'/>
- <ref name='EXSLT_SETS_NAMESPACE'/>
- <ref name='EXSLT_STRINGS_NAMESPACE'/>
- </letter>
- <letter name='L'>
- <ref name='LIBEXSLT_PUBLIC'/>
- </letter>
- <letter name='S'>
- <ref name='SAXON_NAMESPACE'/>
- </letter>
- <letter name='e'>
- <ref name='exsltCommonRegister'/>
- <ref name='exsltCryptoRegister'/>
- <ref name='exsltDateRegister'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltDynRegister'/>
- <ref name='exsltFuncRegister'/>
- <ref name='exsltLibexsltVersion'/>
- <ref name='exsltLibraryVersion'/>
- <ref name='exsltLibxmlVersion'/>
- <ref name='exsltLibxsltVersion'/>
- <ref name='exsltMathRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltRegisterAll'/>
- <ref name='exsltSaxonRegister'/>
- <ref name='exsltSetsRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </letter>
- </alpha>
- <constructors>
- </constructors>
- <functions>
- <type name='const xmlChar *'>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </type>
- <type name='xmlXPathContextPtr'>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </type>
- </functions>
- <files>
- <file name='exslt'>
- <ref name='EXSLT_COMMON_NAMESPACE'/>
- <ref name='EXSLT_CRYPTO_NAMESPACE'/>
- <ref name='EXSLT_DATE_NAMESPACE'/>
- <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
- <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
- <ref name='EXSLT_MATH_NAMESPACE'/>
- <ref name='EXSLT_SETS_NAMESPACE'/>
- <ref name='EXSLT_STRINGS_NAMESPACE'/>
- <ref name='SAXON_NAMESPACE'/>
- <ref name='exsltCommonRegister'/>
- <ref name='exsltCryptoRegister'/>
- <ref name='exsltDateRegister'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltDynRegister'/>
- <ref name='exsltFuncRegister'/>
- <ref name='exsltLibexsltVersion'/>
- <ref name='exsltLibraryVersion'/>
- <ref name='exsltLibxmlVersion'/>
- <ref name='exsltLibxsltVersion'/>
- <ref name='exsltMathRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltRegisterAll'/>
- <ref name='exsltSaxonRegister'/>
- <ref name='exsltSetsRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </file>
- <file name='exsltexports'>
- <ref name='EXSLTCALL'/>
- <ref name='EXSLTPUBFUN'/>
- <ref name='EXSLTPUBLIC'/>
- <ref name='EXSLTPUBVAR'/>
- <ref name='LIBEXSLT_PUBLIC'/>
- </file>
- </files>
- <index>
- <chunk name='chunk0'>
- <letter name='C'>
- <word name='Common'>
- <ref name='exsltCommonRegister'/>
- </word>
- <word name='Crypto'>
- <ref name='exsltCryptoRegister'/>
- </word>
- </letter>
- <letter name='D'>
- <word name='Dates'>
- <ref name='exsltDateRegister'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- </word>
- <word name='Dynamic'>
- <ref name='exsltDynRegister'/>
- </word>
- </letter>
- <letter name='E'>
- <word name='EXSLT'>
- <ref name='EXSLT_COMMON_NAMESPACE'/>
- <ref name='EXSLT_CRYPTO_NAMESPACE'/>
- <ref name='EXSLT_DATE_NAMESPACE'/>
- <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
- <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
- <ref name='EXSLT_MATH_NAMESPACE'/>
- <ref name='EXSLT_SETS_NAMESPACE'/>
- <ref name='EXSLT_STRINGS_NAMESPACE'/>
- <ref name='exsltCommonRegister'/>
- <ref name='exsltCryptoRegister'/>
- <ref name='exsltDateRegister'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltDynRegister'/>
- <ref name='exsltFuncRegister'/>
- <ref name='exsltMathRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltRegisterAll'/>
- <ref name='exsltSetsRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='F'>
- <word name='Functions'>
- <ref name='exsltFuncRegister'/>
- </word>
- </letter>
- <letter name='M'>
- <word name='Macro'>
- <ref name='EXSLTCALL'/>
- <ref name='EXSLTPUBFUN'/>
- <ref name='EXSLTPUBLIC'/>
- <ref name='EXSLTPUBVAR'/>
- </word>
- <word name='Math'>
- <ref name='exsltMathRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='N'>
- <word name='Namespace'>
- <ref name='EXSLT_COMMON_NAMESPACE'/>
- <ref name='EXSLT_CRYPTO_NAMESPACE'/>
- <ref name='EXSLT_DATE_NAMESPACE'/>
- <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
- <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
- <ref name='EXSLT_MATH_NAMESPACE'/>
- <ref name='EXSLT_SETS_NAMESPACE'/>
- <ref name='EXSLT_STRINGS_NAMESPACE'/>
- <ref name='SAXON_NAMESPACE'/>
- </word>
- </letter>
- <letter name='R'>
- <word name='Registers'>
- <ref name='exsltCommonRegister'/>
- <ref name='exsltCryptoRegister'/>
- <ref name='exsltDateRegister'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltDynRegister'/>
- <ref name='exsltFuncRegister'/>
- <ref name='exsltMathRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltRegisterAll'/>
- <ref name='exsltSaxonRegister'/>
- <ref name='exsltSetsRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='S'>
- <word name='SAXON'>
- <ref name='SAXON_NAMESPACE'/>
- <ref name='exsltSaxonRegister'/>
- </word>
- <word name='Sets'>
- <ref name='exsltSetsRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- </word>
- <word name='Strings'>
- <ref name='exsltStrRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='T'>
- <word name='Times'>
- <ref name='exsltDateRegister'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='X'>
- <word name='XSLT'>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='a'>
- <word name='all'>
- <ref name='exsltRegisterAll'/>
- </word>
- <word name='available'>
- <ref name='exsltRegisterAll'/>
- </word>
- </letter>
- <letter name='c'>
- <word name='calling'>
- <ref name='EXSLTCALL'/>
- </word>
- <word name='common'>
- <ref name='EXSLT_COMMON_NAMESPACE'/>
- </word>
- <word name='convention'>
- <ref name='EXSLTCALL'/>
- </word>
- <word name='crypto'>
- <ref name='EXSLT_CRYPTO_NAMESPACE'/>
- </word>
- </letter>
- <letter name='d'>
- <word name='date'>
- <ref name='EXSLT_DATE_NAMESPACE'/>
- </word>
- <word name='declares'>
- <ref name='EXSLTCALL'/>
- <ref name='EXSLTPUBFUN'/>
- <ref name='EXSLTPUBLIC'/>
- <ref name='EXSLTPUBVAR'/>
- </word>
- <word name='dynamic'>
- <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
- </word>
- </letter>
- <letter name='e'>
- <word name='exportable'>
- <ref name='EXSLTPUBFUN'/>
- <ref name='EXSLTPUBVAR'/>
- </word>
- <word name='exported'>
- <ref name='EXSLTCALL'/>
- </word>
- <word name='extension'>
- <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
- <ref name='exsltSaxonRegister'/>
- </word>
- <word name='extensions'>
- <ref name='SAXON_NAMESPACE'/>
- <ref name='exsltRegisterAll'/>
- </word>
- </letter>
- <letter name='f'>
- <word name='for'>
- <ref name='EXSLTCALL'/>
- <ref name='EXSLT_COMMON_NAMESPACE'/>
- <ref name='EXSLT_CRYPTO_NAMESPACE'/>
- <ref name='EXSLT_DATE_NAMESPACE'/>
- <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
- <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
- <ref name='EXSLT_MATH_NAMESPACE'/>
- <ref name='EXSLT_SETS_NAMESPACE'/>
- <ref name='EXSLT_STRINGS_NAMESPACE'/>
- <ref name='SAXON_NAMESPACE'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- <word name='function'>
- <ref name='EXSLTPUBFUN'/>
- </word>
- <word name='functions'>
- <ref name='EXSLTCALL'/>
- <ref name='EXSLT_COMMON_NAMESPACE'/>
- <ref name='EXSLT_CRYPTO_NAMESPACE'/>
- <ref name='EXSLT_DATE_NAMESPACE'/>
- <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
- <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
- <ref name='EXSLT_MATH_NAMESPACE'/>
- <ref name='EXSLT_SETS_NAMESPACE'/>
- <ref name='EXSLT_STRINGS_NAMESPACE'/>
- <ref name='SAXON_NAMESPACE'/>
- </word>
- </letter>
- <letter name='m'>
- <word name='math'>
- <ref name='EXSLT_MATH_NAMESPACE'/>
- </word>
- <word name='module'>
- <ref name='exsltCommonRegister'/>
- <ref name='exsltCryptoRegister'/>
- <ref name='exsltDateRegister'/>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltDynRegister'/>
- <ref name='exsltFuncRegister'/>
- <ref name='exsltMathRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltSaxonRegister'/>
- <ref name='exsltSetsRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='o'>
- <word name='outside'>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='p'>
- <word name='public'>
- <ref name='EXSLTPUBLIC'/>
- </word>
- </letter>
- <letter name='s'>
- <word name='set'>
- <ref name='EXSLT_SETS_NAMESPACE'/>
- </word>
- <word name='strings'>
- <ref name='EXSLT_STRINGS_NAMESPACE'/>
- </word>
- <word name='symbol'>
- <ref name='EXSLTPUBLIC'/>
- </word>
- </letter>
- <letter name='u'>
- <word name='use'>
- <ref name='exsltDateXpathCtxtRegister'/>
- <ref name='exsltMathXpathCtxtRegister'/>
- <ref name='exsltSetsXpathCtxtRegister'/>
- <ref name='exsltStrXpathCtxtRegister'/>
- </word>
- </letter>
- <letter name='v'>
- <word name='variable'>
- <ref name='EXSLTPUBVAR'/>
- </word>
- </letter>
- <letter name='w'>
- <word name='which'>
- <ref name='EXSLTCALL'/>
- <ref name='EXSLTPUBFUN'/>
- <ref name='EXSLTPUBLIC'/>
- <ref name='EXSLTPUBVAR'/>
- </word>
- </letter>
- </chunk>
- <chunks>
- <chunk name='chunk0' start='C' end='w'/>
- </chunks>
- </index>
-</apirefs>
EXTRA_DIST = \
EXSLT/libexslt-api.xml \
- EXSLT/libexslt-refs.xml \
apibuild.py \
- checkapisym.xsl \
libxslt-api.xml \
- libxslt-refs.xml \
- symbols.xml \
- syms.xsl \
tutorial/libxslttutorial.xml \
tutorial2/libxslt_pipes.xml \
xsltproc.xml
rebuild:
cd $(srcdir) && ./apibuild.py
- cd $(srcdir) && $(XSLTPROC) checkapisym.xsl libxslt-api.xml
- cd $(srcdir) && $(XSLTPROC) -o ../libxslt/libxslt.syms syms.xsl symbols.xml
cd $(srcdir) && $(XSLTPROC) --nonet xsltproc.xml
cd $(srcdir) && $(XSLTPROC) --nonet -o xsltproc.html $(DOCBOOK_HTML) xsltproc.xml
- cd $(srcdir) && $(XSLTPROC) -o $(WIN32_DIR)/libxslt.def.src \
- --nonet $(WIN32_DIR)/defgen.xsl libxslt-api.xml
- cd $(srcdir) && $(XSLTPROC) -o $(WIN32_DIR)/libexslt.def.src \
- --nonet $(WIN32_DIR)/defgen.xsl EXSLT/libexslt-api.xml
cd devhelp && $(MAKE) rebuild
cd EXSLT/devhelp && $(MAKE) rebuild
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# This is the API builder, it parses the C sources and build the
# API formal description in XML.
import glob
debug=0
+#debugsym='ignorableWhitespaceSAXFunc'
+debugsym=None
#
# C parser analysis code
"trio.c": "too many non standard macros",
"trionan.c": "too many non standard macros",
"triostr.c": "too many non standard macros",
- "acconfig.h": "generated portability layer",
"config.h": "generated portability layer",
"libxml.h": "internal only",
"testOOM.c": "out of memory tester",
"testOOMlib.h": "out of memory tester",
"testOOMlib.c": "out of memory tester",
+ "rngparser.c": "not yet integrated",
+ "testModule.c": "test tool",
+ "testThreads.c": "test tool",
+ "testapi.c": "generated regression tests",
+ "runtest.c": "regression tests program",
+ "runsuite.c": "regression tests program",
+ "tst.c": "not part of the library",
+ "test.c": "not part of the library",
+ "testdso.c": "test for dynamid shared libraries",
+ "testrecurse.c": "test for entities recursions",
+ "timsort.h": "Internal header only for xpath.c 2.9.0",
}
ignored_words = {
"XMLPUBFUN": (0, "Special macro for extern funcs for win32"),
"XSLTPUBFUN": (0, "Special macro for extern funcs for win32"),
"EXSLTPUBFUN": (0, "Special macro for extern funcs for win32"),
- "XMLCALL": (0, "Special macro for win32 calls"),
"XSLTCALL": (0, "Special macro for win32 calls"),
"EXSLTCALL": (0, "Special macro for win32 calls"),
"__declspec": (3, "Windows keyword"),
+ "__stdcall": (0, "Windows keyword"),
"ATTRIBUTE_UNUSED": (0, "macro keyword"),
+ "ATTRIBUTE_DESTRUCTOR": (0, "macro keyword"),
"LIBEXSLT_PUBLIC": (0, "macro keyword"),
"X_IN_Y": (5, "macro function builder"),
"XSLT_ITEM_COMMON_FIELDS": (0, "Special macro"),
"CALLBACK": (0, "macro keyword"),
+ "ATTRIBUTE_ALLOC_SIZE": (3, "macro for gcc checking extension"),
+ "ATTRIBUTE_PRINTF": (5, "macro for gcc printf args checking extension"),
+ "LIBXML_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"),
+ "LIBXML_ATTR_ALLOC_SIZE": (3, "macro for gcc checking extension"),
"LIBXSLT_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"),
+ "ATTRIBUTE_NO_SANITIZE": (3, "macro keyword"),
+ "XML_DEPRECATED": (0, "macro keyword"),
}
def escape(raw):
- raw = string.replace(raw, '&', '&')
- raw = string.replace(raw, '<', '<')
- raw = string.replace(raw, '>', '>')
- raw = string.replace(raw, "'", ''')
- raw = string.replace(raw, '"', '"')
+ raw = raw.replace('&', '&')
+ raw = raw.replace('<', '<')
+ raw = raw.replace('>', '>')
+ raw = raw.replace("'", ''')
+ raw = raw.replace('"', '"')
return raw
-def uniq(items):
- d = {}
- for item in items:
- d[item]=1
- return d.keys()
-
class identifier:
- def __init__(self, name, module=None, type=None, lineno = 0,
- info=None, extra=None):
+ def __init__(self, name, header=None, module=None, type=None, lineno = 0,
+ info=None, extra=None, conditionals = None):
self.name = name
- self.module = module
- self.type = type
- self.info = info
- self.extra = extra
- self.lineno = lineno
- self.static = 0
+ self.header = header
+ self.module = module
+ self.type = type
+ self.info = info
+ self.extra = extra
+ self.lineno = lineno
+ self.static = 0
+ if conditionals == None or len(conditionals) == 0:
+ self.conditionals = None
+ else:
+ self.conditionals = conditionals[:]
+ if self.name == debugsym:
+ print("=> define %s : %s" % (debugsym, (module, type, info,
+ extra, conditionals)))
def __repr__(self):
r = "%s %s:" % (self.type, self.name)
- if self.static:
- r = r + " static"
- if self.module != None:
- r = r + " from %s" % (self.module)
- if self.info != None:
- r = r + " " + `self.info`
- if self.extra != None:
- r = r + " " + `self.extra`
- return r
-
-
+ if self.static:
+ r = r + " static"
+ if self.module != None:
+ r = r + " from %s" % (self.module)
+ if self.info != None:
+ r = r + " " + repr(self.info)
+ if self.extra != None:
+ r = r + " " + repr(self.extra)
+ if self.conditionals != None:
+ r = r + " " + repr(self.conditionals)
+ return r
+
+
+ def set_header(self, header):
+ self.header = header
def set_module(self, module):
self.module = module
def set_type(self, type):
self.lineno = lineno
def set_static(self, static):
self.static = static
+ def set_conditionals(self, conditionals):
+ if conditionals == None or len(conditionals) == 0:
+ self.conditionals = None
+ else:
+ self.conditionals = conditionals[:]
def get_name(self):
return self.name
+ def get_header(self):
+ return self.module
def get_module(self):
return self.module
def get_type(self):
return self.extra
def get_static(self):
return self.static
-
- def update(self, module, type = None, info = None, extra=None):
- if module != None and self.module == None:
- self.set_module(module)
+ def get_conditionals(self):
+ return self.conditionals
+
+ def update(self, header, module, type = None, info = None, extra=None,
+ conditionals=None):
+ if self.name == debugsym:
+ print("=> update %s : %s" % (debugsym, (module, type, info,
+ extra, conditionals)))
+ if header != None and self.header == None:
+ self.set_header(module)
+ if module != None and (self.module == None or self.header == self.module):
+ self.set_module(module)
if type != None and self.type == None:
- self.set_type(type)
+ self.set_type(type)
if info != None:
- self.set_info(info)
+ self.set_info(info)
if extra != None:
- self.set_extra(extra)
-
+ self.set_extra(extra)
+ if conditionals != None:
+ self.set_conditionals(conditionals)
class index:
def __init__(self, name = "noname"):
self.name = name
self.identifiers = {}
self.functions = {}
- self.variables = {}
- self.includes = {}
- self.structs = {}
- self.enums = {}
- self.typedefs = {}
- self.macros = {}
- self.references = {}
- self.info = {}
-
- def add_ref(self, name, module, static, type, lineno, info=None, extra=None):
+ self.variables = {}
+ self.includes = {}
+ self.structs = {}
+ self.enums = {}
+ self.typedefs = {}
+ self.macros = {}
+ self.references = {}
+ self.info = {}
+
+ def add_ref(self, name, header, module, static, type, lineno, info=None, extra=None, conditionals = None):
if name[0:2] == '__':
- return None
+ return None
d = None
- try:
- d = self.identifiers[name]
- d.update(module, type, lineno, info, extra)
- except:
- d = identifier(name, module, type, lineno, info, extra)
- self.identifiers[name] = d
+ if name in self.identifiers:
+ d = self.identifiers[name]
+ d.update(header, module, type, info, extra, conditionals)
+ else:
+ d = identifier(name, header, module, type, lineno, info, extra, conditionals)
+ self.identifiers[name] = d
+
+ if d != None and static == 1:
+ d.set_static(1)
- if d != None and static == 1:
- d.set_static(1)
+ if d != None and name != None and type != None:
+ self.references[name] = d
- if d != None and name != None and type != None:
- self.references[name] = d
+ if name == debugsym:
+ print("New ref: %s" % (d))
- def add(self, name, module, static, type, lineno, info=None, extra=None):
+ return d
+
+ def add(self, name, header, module, static, type, lineno, info=None, extra=None, conditionals = None):
if name[0:2] == '__':
- return None
+ return None
d = None
- try:
- d = self.identifiers[name]
- d.update(module, type, lineno, info, extra)
- except:
- d = identifier(name, module, type, lineno, info, extra)
- self.identifiers[name] = d
-
- if d != None and static == 1:
- d.set_static(1)
-
- if d != None and name != None and type != None:
- if type == "function":
- self.functions[name] = d
- elif type == "functype":
- self.functions[name] = d
- elif type == "variable":
- self.variables[name] = d
- elif type == "include":
- self.includes[name] = d
- elif type == "struct":
- self.structs[name] = d
- elif type == "enum":
- self.enums[name] = d
- elif type == "typedef":
- self.typedefs[name] = d
- elif type == "macro":
- self.macros[name] = d
- else:
- print "Unable to register type ", type
- return d
+ if name in self.identifiers:
+ d = self.identifiers[name]
+ d.update(header, module, type, info, extra, conditionals)
+ else:
+ d = identifier(name, header, module, type, lineno, info, extra, conditionals)
+ self.identifiers[name] = d
+
+ if d != None and static == 1:
+ d.set_static(1)
+
+ if d != None and name != None and type != None:
+ if type == "function":
+ self.functions[name] = d
+ elif type == "functype":
+ self.functions[name] = d
+ elif type == "variable":
+ self.variables[name] = d
+ elif type == "include":
+ self.includes[name] = d
+ elif type == "struct":
+ self.structs[name] = d
+ elif type == "enum":
+ self.enums[name] = d
+ elif type == "typedef":
+ self.typedefs[name] = d
+ elif type == "macro":
+ self.macros[name] = d
+ else:
+ print("Unable to register type ", type)
+
+ if name == debugsym:
+ print("New symbol: %s" % (d))
+
+ return d
def merge(self, idx):
- for id in idx.functions.keys():
+ for id in list(idx.functions.keys()):
#
# macro might be used to override functions or variables
# definitions
#
- if self.macros.has_key(id):
- del self.macros[id]
- if self.functions.has_key(id):
- print "function %s from %s redeclared in %s" % (
- id, self.functions[id].module, idx.functions[id].module)
- else:
- self.functions[id] = idx.functions[id]
- self.identifiers[id] = idx.functions[id]
- for id in idx.variables.keys():
+ if id in self.macros:
+ del self.macros[id]
+ if id in self.functions:
+ print("function %s from %s redeclared in %s" % (
+ id, self.functions[id].header, idx.functions[id].header))
+ else:
+ self.functions[id] = idx.functions[id]
+ self.identifiers[id] = idx.functions[id]
+ for id in list(idx.variables.keys()):
#
# macro might be used to override functions or variables
# definitions
#
- if self.macros.has_key(id):
- del self.macros[id]
- if self.variables.has_key(id):
- print "variable %s from %s redeclared in %s" % (
- id, self.variables[id].module, idx.variables[id].module)
- else:
- self.variables[id] = idx.variables[id]
- self.identifiers[id] = idx.variables[id]
- for id in idx.structs.keys():
- if self.structs.has_key(id):
- print "struct %s from %s redeclared in %s" % (
- id, self.structs[id].module, idx.structs[id].module)
- else:
- self.structs[id] = idx.structs[id]
- self.identifiers[id] = idx.structs[id]
- for id in idx.typedefs.keys():
- if self.typedefs.has_key(id):
- print "typedef %s from %s redeclared in %s" % (
- id, self.typedefs[id].module, idx.typedefs[id].module)
- else:
- self.typedefs[id] = idx.typedefs[id]
- self.identifiers[id] = idx.typedefs[id]
- for id in idx.macros.keys():
+ if id in self.macros:
+ del self.macros[id]
+ if id in self.variables:
+ print("variable %s from %s redeclared in %s" % (
+ id, self.variables[id].header, idx.variables[id].header))
+ else:
+ self.variables[id] = idx.variables[id]
+ self.identifiers[id] = idx.variables[id]
+ for id in list(idx.structs.keys()):
+ if id in self.structs:
+ print("struct %s from %s redeclared in %s" % (
+ id, self.structs[id].header, idx.structs[id].header))
+ else:
+ self.structs[id] = idx.structs[id]
+ self.identifiers[id] = idx.structs[id]
+ for id in list(idx.typedefs.keys()):
+ if id in self.typedefs:
+ print("typedef %s from %s redeclared in %s" % (
+ id, self.typedefs[id].header, idx.typedefs[id].header))
+ else:
+ self.typedefs[id] = idx.typedefs[id]
+ self.identifiers[id] = idx.typedefs[id]
+ for id in list(idx.macros.keys()):
#
# macro might be used to override functions or variables
# definitions
#
- if self.variables.has_key(id):
+ if id in self.variables:
continue
- if self.functions.has_key(id):
+ if id in self.functions:
continue
- if self.enums.has_key(id):
+ if id in self.enums:
continue
- if self.macros.has_key(id):
- print "macro %s from %s redeclared in %s" % (
- id, self.macros[id].module, idx.macros[id].module)
- else:
- self.macros[id] = idx.macros[id]
- self.identifiers[id] = idx.macros[id]
- for id in idx.enums.keys():
- if self.enums.has_key(id):
- print "enum %s from %s redeclared in %s" % (
- id, self.enums[id].module, idx.enums[id].module)
- else:
- self.enums[id] = idx.enums[id]
- self.identifiers[id] = idx.enums[id]
+ if id in self.macros:
+ print("macro %s from %s redeclared in %s" % (
+ id, self.macros[id].header, idx.macros[id].header))
+ else:
+ self.macros[id] = idx.macros[id]
+ self.identifiers[id] = idx.macros[id]
+ for id in list(idx.enums.keys()):
+ if id in self.enums:
+ print("enum %s from %s redeclared in %s" % (
+ id, self.enums[id].header, idx.enums[id].header))
+ else:
+ self.enums[id] = idx.enums[id]
+ self.identifiers[id] = idx.enums[id]
def merge_public(self, idx):
- for id in idx.functions.keys():
- if self.functions.has_key(id):
- up = idx.functions[id]
- self.functions[id].update(None, up.type, up.info, up.extra)
- # else:
- # print "Function %s from %s is not declared in headers" % (
- # id, idx.functions[id].module)
- # TODO: do the same for variables.
+ for id in list(idx.functions.keys()):
+ if id in self.functions:
+ # check that function condition agrees with header
+ if idx.functions[id].conditionals != \
+ self.functions[id].conditionals:
+ print("Header condition differs from Function for %s:" \
+ % id)
+ print(" H: %s" % self.functions[id].conditionals)
+ print(" C: %s" % idx.functions[id].conditionals)
+ up = idx.functions[id]
+ self.functions[id].update(None, up.module, up.type, up.info, up.extra)
+ # else:
+ # print "Function %s from %s is not declared in headers" % (
+ # id, idx.functions[id].module)
+
+ for id in list(idx.variables.keys()):
+ if id in self.variables:
+ # check that variable condition agrees with header
+ # TODO: produces many false positives
+ #if idx.variables[id].conditionals != \
+ # self.variables[id].conditionals:
+ # print("Header condition differs from Variable for %s:" \
+ # % id)
+ # print(" H: %s" % self.variables[id].conditionals)
+ # print(" C: %s" % idx.variables[id].conditionals)
+ up = idx.variables[id]
+ self.variables[id].update(None, up.module, up.type, up.info, up.extra)
def analyze_dict(self, type, dict):
count = 0
- public = 0
- for name in dict.keys():
- id = dict[name]
- count = count + 1
- if id.static == 0:
- public = public + 1
+ public = 0
+ for name in list(dict.keys()):
+ id = dict[name]
+ count = count + 1
+ if id.static == 0:
+ public = public + 1
if count != public:
- print " %d %s , %d public" % (count, type, public)
- elif count != 0:
- print " %d public %s" % (count, type)
+ print(" %d %s , %d public" % (count, type, public))
+ elif count != 0:
+ print(" %d public %s" % (count, type))
def analyze(self):
- self.analyze_dict("functions", self.functions)
- self.analyze_dict("variables", self.variables)
- self.analyze_dict("structs", self.structs)
- self.analyze_dict("typedefs", self.typedefs)
- self.analyze_dict("macros", self.macros)
-
+ self.analyze_dict("functions", self.functions)
+ self.analyze_dict("variables", self.variables)
+ self.analyze_dict("structs", self.structs)
+ self.analyze_dict("typedefs", self.typedefs)
+ self.analyze_dict("macros", self.macros)
+
class CLexer:
"""A lexer for the C language, tokenize the input by reading and
analyzing it line by line"""
def __init__(self, input):
self.input = input
- self.tokens = []
- self.line = ""
- self.lineno = 0
+ self.tokens = []
+ self.line = ""
+ self.lineno = 0
def getline(self):
line = ''
- while line == '':
- line = self.input.readline()
- if not line:
- return None
- self.lineno = self.lineno + 1
- line = string.lstrip(line)
- line = string.rstrip(line)
- if line == '':
- continue
- while line[-1] == '\\':
- line = line[:-1]
- n = self.input.readline()
- self.lineno = self.lineno + 1
- n = string.lstrip(n)
- n = string.rstrip(n)
- if not n:
- break
- else:
- line = line + n
+ while line == '':
+ line = self.input.readline()
+ if not line:
+ return None
+ self.lineno = self.lineno + 1
+ line = line.lstrip()
+ line = line.rstrip()
+ if line == '':
+ continue
+ while line[-1] == '\\':
+ line = line[:-1]
+ n = self.input.readline()
+ self.lineno = self.lineno + 1
+ n = n.lstrip()
+ n = n.rstrip()
+ if not n:
+ break
+ else:
+ line = line + n
return line
-
+
def getlineno(self):
return self.lineno
self.tokens.insert(0, token);
def debug(self):
- print "Last token: ", self.last
- print "Token queue: ", self.tokens
- print "Line %d end: " % (self.lineno), self.line
+ print("Last token: ", self.last)
+ print("Token queue: ", self.tokens)
+ print("Line %d end: " % (self.lineno), self.line)
def token(self):
while self.tokens == []:
- if self.line == "":
- line = self.getline()
- else:
- line = self.line
- self.line = ""
- if line == None:
- return None
-
- if line[0] == '#':
- self.tokens = map((lambda x: ('preproc', x)),
- string.split(line))
- break;
- l = len(line)
- if line[0] == '"' or line[0] == "'":
- end = line[0]
- line = line[1:]
- found = 0
- tok = ""
- while found == 0:
- i = 0
- l = len(line)
- while i < l:
- if line[i] == end:
- self.line = line[i+1:]
- line = line[:i]
- l = i
- found = 1
- break
- if line[i] == '\\':
- i = i + 1
- i = i + 1
- tok = tok + line
- if found == 0:
- line = self.getline()
- if line == None:
- return None
- self.last = ('string', tok)
- return self.last
-
- if l >= 2 and line[0] == '/' and line[1] == '*':
- line = line[2:]
- found = 0
- tok = ""
- while found == 0:
- i = 0
- l = len(line)
- while i < l:
- if line[i] == '*' and i+1 < l and line[i+1] == '/':
- self.line = line[i+2:]
- line = line[:i-1]
- l = i
- found = 1
- break
- i = i + 1
- if tok != "":
- tok = tok + "\n"
- tok = tok + line
- if found == 0:
- line = self.getline()
- if line == None:
- return None
- self.last = ('comment', tok)
- return self.last
- if l >= 2 and line[0] == '/' and line[1] == '/':
- line = line[2:]
- self.last = ('comment', line)
- return self.last
- i = 0
- while i < l:
- if line[i] == '/' and i+1 < l and line[i+1] == '/':
- self.line = line[i:]
- line = line[:i]
- break
- if line[i] == '/' and i+1 < l and line[i+1] == '*':
- self.line = line[i:]
- line = line[:i]
- break
- if line[i] == '"' or line[i] == "'":
- self.line = line[i:]
- line = line[:i]
- break
- i = i + 1
- l = len(line)
- i = 0
- while i < l:
- if line[i] == ' ' or line[i] == '\t':
- i = i + 1
- continue
- o = ord(line[i])
- if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
- (o >= 48 and o <= 57):
- s = i
- while i < l:
- o = ord(line[i])
- if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
- (o >= 48 and o <= 57) or string.find(
- " \t(){}:;,+-*/%&!|[]=><", line[i]) == -1:
- i = i + 1
- else:
- break
- self.tokens.append(('name', line[s:i]))
- continue
- if string.find("(){}:;,[]", line[i]) != -1:
+ if self.line == "":
+ line = self.getline()
+ else:
+ line = self.line
+ self.line = ""
+ if line == None:
+ return None
+
+ if line[0] == '#':
+ self.tokens = list(map((lambda x: ('preproc', x)),
+ line.split()))
+ break;
+ l = len(line)
+ if line[0] == '"' or line[0] == "'":
+ end = line[0]
+ line = line[1:]
+ found = 0
+ tok = ""
+ while found == 0:
+ i = 0
+ l = len(line)
+ while i < l:
+ if line[i] == end:
+ self.line = line[i+1:]
+ line = line[:i]
+ l = i
+ found = 1
+ break
+ if line[i] == '\\':
+ i = i + 1
+ i = i + 1
+ tok = tok + line
+ if found == 0:
+ line = self.getline()
+ if line == None:
+ return None
+ self.last = ('string', tok)
+ return self.last
+
+ if l >= 2 and line[0] == '/' and line[1] == '*':
+ line = line[2:]
+ found = 0
+ tok = ""
+ while found == 0:
+ i = 0
+ l = len(line)
+ while i < l:
+ if line[i] == '*' and i+1 < l and line[i+1] == '/':
+ self.line = line[i+2:]
+ line = line[:i-1]
+ l = i
+ found = 1
+ break
+ i = i + 1
+ if tok != "":
+ tok = tok + "\n"
+ tok = tok + line
+ if found == 0:
+ line = self.getline()
+ if line == None:
+ return None
+ self.last = ('comment', tok)
+ return self.last
+ if l >= 2 and line[0] == '/' and line[1] == '/':
+ line = line[2:]
+ self.last = ('comment', line)
+ return self.last
+ i = 0
+ while i < l:
+ if line[i] == '/' and i+1 < l and line[i+1] == '/':
+ self.line = line[i:]
+ line = line[:i]
+ break
+ if line[i] == '/' and i+1 < l and line[i+1] == '*':
+ self.line = line[i:]
+ line = line[:i]
+ break
+ if line[i] == '"' or line[i] == "'":
+ self.line = line[i:]
+ line = line[:i]
+ break
+ i = i + 1
+ l = len(line)
+ i = 0
+ while i < l:
+ if line[i] == ' ' or line[i] == '\t':
+ i = i + 1
+ continue
+ o = ord(line[i])
+ if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+ (o >= 48 and o <= 57):
+ s = i
+ while i < l:
+ o = ord(line[i])
+ if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+ (o >= 48 and o <= 57) or \
+ (" \t(){}:;,+-*/%&!|[]=><".find(line[i])) == -1:
+ i = i + 1
+ else:
+ break
+ self.tokens.append(('name', line[s:i]))
+ continue
+ if "(){}:;,[]".find(line[i]) != -1:
# if line[i] == '(' or line[i] == ')' or line[i] == '{' or \
-# line[i] == '}' or line[i] == ':' or line[i] == ';' or \
-# line[i] == ',' or line[i] == '[' or line[i] == ']':
- self.tokens.append(('sep', line[i]))
- i = i + 1
- continue
- if string.find("+-*><=/%&!|.", line[i]) != -1:
+# line[i] == '}' or line[i] == ':' or line[i] == ';' or \
+# line[i] == ',' or line[i] == '[' or line[i] == ']':
+ self.tokens.append(('sep', line[i]))
+ i = i + 1
+ continue
+ if "+-*><=/%&!|.".find(line[i]) != -1:
# if line[i] == '+' or line[i] == '-' or line[i] == '*' or \
-# line[i] == '>' or line[i] == '<' or line[i] == '=' or \
-# line[i] == '/' or line[i] == '%' or line[i] == '&' or \
-# line[i] == '!' or line[i] == '|' or line[i] == '.':
- if line[i] == '.' and i + 2 < l and \
- line[i+1] == '.' and line[i+2] == '.':
- self.tokens.append(('name', '...'))
- i = i + 3
- continue
-
- j = i + 1
- if j < l and (
- string.find("+-*><=/%&!|", line[j]) != -1):
-# line[j] == '+' or line[j] == '-' or line[j] == '*' or \
-# line[j] == '>' or line[j] == '<' or line[j] == '=' or \
-# line[j] == '/' or line[j] == '%' or line[j] == '&' or \
-# line[j] == '!' or line[j] == '|'):
- self.tokens.append(('op', line[i:j+1]))
- i = j + 1
- else:
- self.tokens.append(('op', line[i]))
- i = i + 1
- continue
- s = i
- while i < l:
- o = ord(line[i])
- if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
- (o >= 48 and o <= 57) or (
- string.find(" \t(){}:;,+-*/%&!|[]=><", line[i]) == -1):
-# line[i] != ' ' and line[i] != '\t' and
-# line[i] != '(' and line[i] != ')' and
-# line[i] != '{' and line[i] != '}' and
-# line[i] != ':' and line[i] != ';' and
-# line[i] != ',' and line[i] != '+' and
-# line[i] != '-' and line[i] != '*' and
-# line[i] != '/' and line[i] != '%' and
-# line[i] != '&' and line[i] != '!' and
-# line[i] != '|' and line[i] != '[' and
-# line[i] != ']' and line[i] != '=' and
-# line[i] != '*' and line[i] != '>' and
-# line[i] != '<'):
- i = i + 1
- else:
- break
- self.tokens.append(('name', line[s:i]))
-
- tok = self.tokens[0]
- self.tokens = self.tokens[1:]
- self.last = tok
- return tok
-
+# line[i] == '>' or line[i] == '<' or line[i] == '=' or \
+# line[i] == '/' or line[i] == '%' or line[i] == '&' or \
+# line[i] == '!' or line[i] == '|' or line[i] == '.':
+ if line[i] == '.' and i + 2 < l and \
+ line[i+1] == '.' and line[i+2] == '.':
+ self.tokens.append(('name', '...'))
+ i = i + 3
+ continue
+
+ j = i + 1
+ if j < l and (
+ "+-*><=/%&!|".find(line[j]) != -1):
+# line[j] == '+' or line[j] == '-' or line[j] == '*' or \
+# line[j] == '>' or line[j] == '<' or line[j] == '=' or \
+# line[j] == '/' or line[j] == '%' or line[j] == '&' or \
+# line[j] == '!' or line[j] == '|'):
+ self.tokens.append(('op', line[i:j+1]))
+ i = j + 1
+ else:
+ self.tokens.append(('op', line[i]))
+ i = i + 1
+ continue
+ s = i
+ while i < l:
+ o = ord(line[i])
+ if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+ (o >= 48 and o <= 57) or (
+ " \t(){}:;,+-*/%&!|[]=><".find(line[i]) == -1):
+# line[i] != ' ' and line[i] != '\t' and
+# line[i] != '(' and line[i] != ')' and
+# line[i] != '{' and line[i] != '}' and
+# line[i] != ':' and line[i] != ';' and
+# line[i] != ',' and line[i] != '+' and
+# line[i] != '-' and line[i] != '*' and
+# line[i] != '/' and line[i] != '%' and
+# line[i] != '&' and line[i] != '!' and
+# line[i] != '|' and line[i] != '[' and
+# line[i] != ']' and line[i] != '=' and
+# line[i] != '*' and line[i] != '>' and
+# line[i] != '<'):
+ i = i + 1
+ else:
+ break
+ self.tokens.append(('name', line[s:i]))
+
+ tok = self.tokens[0]
+ self.tokens = self.tokens[1:]
+ self.last = tok
+ return tok
+
class CParser:
"""The C module parser"""
def __init__(self, filename, idx = None):
self.filename = filename
- if len(filename) > 2 and filename[-2:] == '.h':
- self.is_header = 1
- else:
- self.is_header = 0
+ if len(filename) > 2 and filename[-2:] == '.h':
+ self.is_header = 1
+ else:
+ self.is_header = 0
self.input = open(filename)
- self.lexer = CLexer(self.input)
- if idx == None:
- self.index = index()
- else:
- self.index = idx
- self.top_comment = ""
- self.last_comment = ""
- self.comment = None
- self.collect_ref = 0
- self.no_error = 0
+ self.lexer = CLexer(self.input)
+ if idx == None:
+ self.index = index()
+ else:
+ self.index = idx
+ self.top_comment = ""
+ self.last_comment = ""
+ self.comment = None
+ self.collect_ref = 0
+ self.doc_disable = 0
+ self.conditionals = []
+ self.defines = []
def collect_references(self):
self.collect_ref = 1
- def stop_error(self):
- self.no_error = 1
+ def disable(self):
+ self.doc_disable = 1
- def start_error(self):
- self.no_error = 0
+ def enable(self):
+ self.doc_disable = 0
def lineno(self):
return self.lexer.getlineno()
def index_add(self, name, module, static, type, info=None, extra = None):
- self.index.add(name, module, static, type, self.lineno(),
- info, extra)
+ if self.doc_disable:
+ return
+ if self.is_header == 1:
+ self.index.add(name, module, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
+ else:
+ self.index.add(name, None, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
def index_add_ref(self, name, module, static, type, info=None,
extra = None):
- self.index.add_ref(name, module, static, type, self.lineno(),
- info, extra)
+ if self.is_header == 1:
+ self.index.add_ref(name, module, module, static, type,
+ self.lineno(), info, extra, self.conditionals)
+ else:
+ self.index.add_ref(name, None, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
def warning(self, msg):
- if self.no_error:
- return
- print msg
+ if self.doc_disable:
+ return
+ print(msg)
def error(self, msg, token=-1):
- if self.no_error:
- return
+ if self.doc_disable:
+ return
- print "Parse Error: " + msg
- if token != -1:
- print "Got token ", token
- self.lexer.debug()
- sys.exit(1)
+ print("Parse Error: " + msg)
+ if token != -1:
+ print("Got token ", token)
+ self.lexer.debug()
+ sys.exit(1)
def debug(self, msg, token=-1):
- print "Debug: " + msg
- if token != -1:
- print "Got token ", token
- self.lexer.debug()
+ print("Debug: " + msg)
+ if token != -1:
+ print("Got token ", token)
+ self.lexer.debug()
def parseTopComment(self, comment):
- res = {}
- lines = string.split(comment, "\n")
- item = None
- for line in lines:
- while line != "" and (line[0] == ' ' or line[0] == '\t'):
- line = line[1:]
- while line != "" and line[0] == '*':
- line = line[1:]
- while line != "" and (line[0] == ' ' or line[0] == '\t'):
- line = line[1:]
- try:
- (it, line) = string.split(line, ":", 1)
- item = it
- while line != "" and (line[0] == ' ' or line[0] == '\t'):
- line = line[1:]
- if res.has_key(item):
- res[item] = res[item] + " " + line
- else:
- res[item] = line
- except:
- if item != None:
- if res.has_key(item):
- res[item] = res[item] + " " + line
- else:
- res[item] = line
- self.index.info = res
+ res = {}
+ lines = comment.split("\n")
+ item = None
+ for line in lines:
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ while line != "" and line[0] == '*':
+ line = line[1:]
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ try:
+ (it, line) = line.split(":", 1)
+ item = it
+ while line != "" and (line[0] == ' ' or line[0] == '\t'):
+ line = line[1:]
+ if item in res:
+ res[item] = res[item] + " " + line
+ else:
+ res[item] = line
+ except:
+ if item != None:
+ if item in res:
+ res[item] = res[item] + " " + line
+ else:
+ res[item] = line
+ self.index.info = res
def parseComment(self, token):
if self.top_comment == "":
- self.top_comment = token[1]
- if self.comment == None or token[1][0] == '*':
- self.comment = token[1];
- else:
- self.comment = self.comment + token[1]
- token = self.lexer.token()
+ self.top_comment = token[1]
+ if self.comment == None or token[1][0] == '*':
+ self.comment = token[1];
+ else:
+ self.comment = self.comment + token[1]
+ token = self.lexer.token()
- if string.find(self.comment, "DOC_DISABLE") != -1:
- self.stop_error()
+ if self.comment.find("DOC_DISABLE") != -1:
+ self.disable()
- if string.find(self.comment, "DOC_ENABLE") != -1:
- self.start_error()
+ if self.comment.find("DOC_ENABLE") != -1:
+ self.enable()
- return token
+ return token
- #
- # Parse a comment block associate to a macro
- #
+ #
+ # Parse a simple comment block for typedefs or global variables
+ #
+ def parseSimpleComment(self, name, quiet = False):
+ if name[0:2] == '__':
+ quiet = 1
+
+ args = []
+ desc = ""
+
+ if self.comment == None:
+ if not quiet:
+ self.warning("Missing comment for %s" % (name))
+ return(None)
+ if self.comment[0] != '*':
+ if not quiet:
+ self.warning("Missing * in comment for %s" % (name))
+ return(None)
+ lines = self.comment.split('\n')
+ if lines[0] == '*':
+ del lines[0]
+ if lines[0] != "* %s:" % (name):
+ if not quiet:
+ self.warning("Misformatted comment for %s" % (name))
+ self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
+ return(None)
+ del lines[0]
+ while len(lines) > 0 and lines[0] == '*':
+ del lines[0]
+ desc = ""
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ desc = desc + " " + l
+ del lines[0]
+
+ desc = desc.strip()
+
+ if quiet == 0:
+ if desc == "":
+ self.warning("Comment for %s lacks description" % (name))
+
+ return(desc)
+ #
+ # Parse a comment block associate to a macro
+ #
def parseMacroComment(self, name, quiet = 0):
if name[0:2] == '__':
- quiet = 1
+ quiet = 1
args = []
- desc = ""
+ desc = ""
if self.comment == None:
- if not quiet:
- self.warning("Missing comment for macro %s" % (name))
- return((args, desc))
+ if not quiet:
+ self.warning("Missing comment for macro %s" % (name))
+ return((args, desc))
if self.comment[0] != '*':
- if not quiet:
- self.warning("Missing * in macro comment for %s" % (name))
- return((args, desc))
- lines = string.split(self.comment, '\n')
- if lines[0] == '*':
- del lines[0]
- if lines[0] != "* %s:" % (name):
- if not quiet:
- self.warning("Misformatted macro comment for %s" % (name))
- self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
- return((args, desc))
- del lines[0]
- while lines[0] == '*':
- del lines[0]
- while len(lines) > 0 and lines[0][0:3] == '* @':
- l = lines[0][3:]
- try:
- (arg, desc) = string.split(l, ':', 1)
- desc=string.strip(desc)
- arg=string.strip(arg)
+ if not quiet:
+ self.warning("Missing * in macro comment for %s" % (name))
+ return((args, desc))
+ lines = self.comment.split('\n')
+ if lines[0] == '*':
+ del lines[0]
+ if lines[0] != "* %s:" % (name):
+ if not quiet:
+ self.warning("Misformatted macro comment for %s" % (name))
+ self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
+ return((args, desc))
+ del lines[0]
+ while lines[0] == '*':
+ del lines[0]
+ while len(lines) > 0 and lines[0][0:3] == '* @':
+ l = lines[0][3:]
+ try:
+ (arg, desc) = l.split(':', 1)
+ desc=desc.strip()
+ arg=arg.strip()
except:
- if not quiet:
- self.warning("Misformatted macro comment for %s" % (name))
- self.warning(" problem with '%s'" % (lines[0]))
- del lines[0]
- continue
- del lines[0]
- l = string.strip(lines[0])
- while len(l) > 2 and l[0:3] != '* @':
- while l[0] == '*':
- l = l[1:]
- desc = desc + ' ' + string.strip(l)
- del lines[0]
- if len(lines) == 0:
- break
- l = lines[0]
+ if not quiet:
+ self.warning("Misformatted macro comment for %s" % (name))
+ self.warning(" problem with '%s'" % (lines[0]))
+ del lines[0]
+ continue
+ del lines[0]
+ l = lines[0].strip()
+ while len(l) > 2 and l[0:3] != '* @':
+ while l[0] == '*':
+ l = l[1:]
+ desc = desc + ' ' + l.strip()
+ del lines[0]
+ if len(lines) == 0:
+ break
+ l = lines[0]
args.append((arg, desc))
- while len(lines) > 0 and lines[0] == '*':
- del lines[0]
- desc = ""
- while len(lines) > 0:
- l = lines[0]
- while len(l) > 0 and l[0] == '*':
- l = l[1:]
- l = string.strip(l)
- desc = desc + " " + l
- del lines[0]
-
- desc = string.strip(desc)
-
- if quiet == 0:
- if desc == "":
- self.warning("Macro comment for %s lack description of the macro" % (name))
-
- return((args, desc))
+ while len(lines) > 0 and lines[0] == '*':
+ del lines[0]
+ desc = ""
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ desc = desc + " " + l
+ del lines[0]
+
+ desc = desc.strip()
+
+ if quiet == 0:
+ if desc == "":
+ self.warning("Macro comment for %s lack description of the macro" % (name))
+
+ return((args, desc))
#
# Parse a comment block and merge the information found in the
#
def mergeFunctionComment(self, name, description, quiet = 0):
if name == 'main':
- quiet = 1
+ quiet = 1
if name[0:2] == '__':
- quiet = 1
+ quiet = 1
- (ret, args) = description
- desc = ""
- retdesc = ""
+ (ret, args) = description
+ desc = ""
+ retdesc = ""
if self.comment == None:
- if not quiet:
- self.warning("Missing comment for function %s" % (name))
- return(((ret[0], retdesc), args, desc))
+ if not quiet:
+ self.warning("Missing comment for function %s" % (name))
+ return(((ret[0], retdesc), args, desc))
if self.comment[0] != '*':
- if not quiet:
- self.warning("Missing * in function comment for %s" % (name))
- return(((ret[0], retdesc), args, desc))
- lines = string.split(self.comment, '\n')
- if lines[0] == '*':
- del lines[0]
- if lines[0] != "* %s:" % (name):
- if not quiet:
- self.warning("Misformatted function comment for %s" % (name))
- self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
- return(((ret[0], retdesc), args, desc))
- del lines[0]
- while len(lines) > 0 and lines[0] == '*':
- del lines[0]
- nbargs = len(args)
- while len(lines) > 0 and lines[0][0:3] == '* @':
- l = lines[0][3:]
- try:
- (arg, desc) = string.split(l, ':', 1)
- desc=string.strip(desc)
- arg=string.strip(arg)
+ if not quiet:
+ self.warning("Missing * in function comment for %s" % (name))
+ return(((ret[0], retdesc), args, desc))
+ lines = self.comment.split('\n')
+ if lines[0] == '*':
+ del lines[0]
+ if lines[0] != "* %s:" % (name):
+ if not quiet:
+ self.warning("Misformatted function comment for %s" % (name))
+ self.warning(" Expecting '* %s:' got '%s'" % (name, lines[0]))
+ return(((ret[0], retdesc), args, desc))
+ del lines[0]
+ while lines[0] == '*':
+ del lines[0]
+ nbargs = len(args)
+ while len(lines) > 0 and lines[0][0:3] == '* @':
+ l = lines[0][3:]
+ try:
+ (arg, desc) = l.split(':', 1)
+ desc=desc.strip()
+ arg=arg.strip()
except:
- if not quiet:
- self.warning("Misformatted function comment for %s" % (name))
- self.warning(" problem with '%s'" % (lines[0]))
- del lines[0]
- continue
- del lines[0]
- l = string.strip(lines[0])
- while len(l) > 2 and l[0:3] != '* @':
- while l[0] == '*':
- l = l[1:]
- desc = desc + ' ' + string.strip(l)
- del lines[0]
- if len(lines) == 0:
- break
- l = lines[0]
- i = 0
- while i < nbargs:
- if args[i][1] == arg:
- args[i] = (args[i][0], arg, desc)
- break;
- i = i + 1
- if i >= nbargs:
- if not quiet:
- self.warning("Unable to find arg %s from function comment for %s" % (
- arg, name))
- while len(lines) > 0 and lines[0] == '*':
- del lines[0]
- desc = ""
- while len(lines) > 0:
- l = lines[0]
- while len(l) > 0 and l[0] == '*':
- l = l[1:]
- l = string.strip(l)
- if len(l) >= 6 and l[0:6] == "return" or l[0:6] == "Return":
- try:
- l = string.split(l, ' ', 1)[1]
- except:
- l = ""
- retdesc = string.strip(l)
- del lines[0]
- while len(lines) > 0:
- l = lines[0]
- while len(l) > 0 and l[0] == '*':
- l = l[1:]
- l = string.strip(l)
- retdesc = retdesc + " " + l
- del lines[0]
- else:
- desc = desc + " " + l
- del lines[0]
-
- retdesc = string.strip(retdesc)
- desc = string.strip(desc)
-
- if quiet == 0:
- #
- # report missing comments
- #
- i = 0
- while i < nbargs:
- if args[i][2] == None and args[i][0] != "void" and args[i][1] != None:
- self.warning("Function comment for %s lack description of arg %s" % (name, args[i][1]))
- i = i + 1
- if retdesc == "" and ret[0] != "void":
- self.warning("Function comment for %s lack description of return value" % (name))
- if desc == "":
- self.warning("Function comment for %s lack description of the function" % (name))
-
-
- return(((ret[0], retdesc), args, desc))
+ if not quiet:
+ self.warning("Misformatted function comment for %s" % (name))
+ self.warning(" problem with '%s'" % (lines[0]))
+ del lines[0]
+ continue
+ del lines[0]
+ l = lines[0].strip()
+ while len(l) > 2 and l[0:3] != '* @':
+ while l[0] == '*':
+ l = l[1:]
+ desc = desc + ' ' + l.strip()
+ del lines[0]
+ if len(lines) == 0:
+ break
+ l = lines[0]
+ i = 0
+ while i < nbargs:
+ if args[i][1] == arg:
+ args[i] = (args[i][0], arg, desc)
+ break;
+ i = i + 1
+ if i >= nbargs:
+ if not quiet:
+ self.warning("Unable to find arg %s from function comment for %s" % (
+ arg, name))
+ while len(lines) > 0 and lines[0] == '*':
+ del lines[0]
+ desc = ""
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ if len(l) >= 6 and l[0:6] == "return" or l[0:6] == "Return":
+ try:
+ l = l.split(' ', 1)[1]
+ except:
+ l = ""
+ retdesc = l.strip()
+ del lines[0]
+ while len(lines) > 0:
+ l = lines[0]
+ while len(l) > 0 and l[0] == '*':
+ l = l[1:]
+ l = l.strip()
+ retdesc = retdesc + " " + l
+ del lines[0]
+ else:
+ desc = desc + " " + l
+ del lines[0]
+
+ retdesc = retdesc.strip()
+ desc = desc.strip()
+
+ if quiet == 0:
+ #
+ # report missing comments
+ #
+ i = 0
+ while i < nbargs:
+ if args[i][2] == None and args[i][0] != "void" and \
+ ((args[i][1] != None) or (args[i][1] == '')):
+ self.warning("Function comment for %s lacks description of arg %s" % (name, args[i][1]))
+ i = i + 1
+ if retdesc == "" and ret[0] != "void":
+ self.warning("Function comment for %s lacks description of return value" % (name))
+ if desc == "":
+ self.warning("Function comment for %s lacks description of the function" % (name))
+
+ return(((ret[0], retdesc), args, desc))
def parsePreproc(self, token):
+ if debug:
+ print("=> preproc ", token, self.lexer.tokens)
name = token[1]
- if name == "#include":
- token = self.lexer.token()
- if token == None:
- return None
- if token[0] == 'preproc':
- self.index_add(token[1], self.filename, not self.is_header,
- "include")
- return self.lexer.token()
- return token
- if name == "#define":
- token = self.lexer.token()
- if token == None:
- return None
- if token[0] == 'preproc':
- # TODO macros with arguments
- name = token[1]
- lst = []
- token = self.lexer.token()
- while token != None and token[0] == 'preproc' and \
- token[1][0] != '#':
- lst.append(token[1])
- token = self.lexer.token()
+ if name == "#include":
+ token = self.lexer.token()
+ if token == None:
+ return None
+ if token[0] == 'preproc':
+ self.index_add(token[1], self.filename, not self.is_header,
+ "include")
+ return self.lexer.token()
+ return token
+ if name == "#define":
+ token = self.lexer.token()
+ if token == None:
+ return None
+ if token[0] == 'preproc':
+ # TODO macros with arguments
+ name = token[1]
+ lst = []
+ token = self.lexer.token()
+ while token != None and token[0] == 'preproc' and \
+ token[1][0] != '#':
+ lst.append(token[1])
+ token = self.lexer.token()
try:
- name = string.split(name, '(') [0]
+ name = name.split('(') [0]
except:
pass
- info = self.parseMacroComment(name, not self.is_header)
- self.index_add(name, self.filename, not self.is_header,
- "macro", info)
- return token
- token = self.lexer.token()
- while token != None and token[0] == 'preproc' and \
- token[1][0] != '#':
- token = self.lexer.token()
- return token
+ info = self.parseMacroComment(name, True)
+ self.index_add(name, self.filename, not self.is_header,
+ "macro", info)
+ return token
+
+ #
+ # Processing of conditionals modified by Bill 1/1/05
+ #
+ # We process conditionals (i.e. tokens from #ifdef, #ifndef,
+ # #if, #else and #endif) for headers and mainline code,
+ # store the ones from the header in libxml2-api.xml, and later
+ # (in the routine merge_public) verify that the two (header and
+ # mainline code) agree.
+ #
+ # There is a small problem with processing the headers. Some of
+ # the variables are not concerned with enabling / disabling of
+ # library functions (e.g. '__XML_PARSER_H__'), and we don't want
+ # them to be included in libxml2-api.xml, or involved in
+ # the check between the header and the mainline code. To
+ # accomplish this, we ignore any conditional which doesn't include
+ # the string 'ENABLED'
+ #
+ if name == "#ifdef":
+ apstr = self.lexer.tokens[0][1]
+ try:
+ self.defines.append(apstr)
+ if apstr.find('ENABLED') != -1:
+ self.conditionals.append("defined(%s)" % apstr)
+ except:
+ pass
+ elif name == "#ifndef":
+ apstr = self.lexer.tokens[0][1]
+ try:
+ self.defines.append(apstr)
+ if apstr.find('ENABLED') != -1:
+ self.conditionals.append("!defined(%s)" % apstr)
+ except:
+ pass
+ elif name == "#if":
+ apstr = ""
+ for tok in self.lexer.tokens:
+ if apstr != "":
+ apstr = apstr + " "
+ apstr = apstr + tok[1]
+ try:
+ self.defines.append(apstr)
+ if apstr.find('ENABLED') != -1:
+ self.conditionals.append(apstr)
+ except:
+ pass
+ elif name == "#else":
+ if self.conditionals != [] and \
+ self.defines[-1].find('ENABLED') != -1:
+ self.conditionals[-1] = "!(%s)" % self.conditionals[-1]
+ elif name == "#endif":
+ if self.conditionals != [] and \
+ self.defines[-1].find('ENABLED') != -1:
+ self.conditionals = self.conditionals[:-1]
+ self.defines = self.defines[:-1]
+ token = self.lexer.token()
+ while token != None and token[0] == 'preproc' and \
+ token[1][0] != '#':
+ token = self.lexer.token()
+ return token
#
# token acquisition on top of the lexer, it handle internally
global ignored_words
token = self.lexer.token()
- while token != None:
- if token[0] == 'comment':
- token = self.parseComment(token)
- continue
- elif token[0] == 'preproc':
- token = self.parsePreproc(token)
- continue
- elif token[0] == "name" and ignored_words.has_key(token[1]):
- (n, info) = ignored_words[token[1]]
- i = 0
- while i < n:
- token = self.lexer.token()
- i = i + 1
- token = self.lexer.token()
- continue
- else:
- if debug:
- print "=> ", token
- return token
- return None
+ while token != None:
+ if token[0] == 'comment':
+ token = self.parseComment(token)
+ continue
+ elif token[0] == 'preproc':
+ token = self.parsePreproc(token)
+ continue
+ elif token[0] == "name" and token[1] == "__const":
+ token = ("name", "const")
+ return token
+ elif token[0] == "name" and token[1] == "__attribute":
+ token = self.lexer.token()
+ while token != None and token[1] != ";":
+ token = self.lexer.token()
+ return token
+ elif token[0] == "name" and token[1] in ignored_words:
+ (n, info) = ignored_words[token[1]]
+ i = 0
+ while i < n:
+ token = self.lexer.token()
+ i = i + 1
+ token = self.lexer.token()
+ continue
+ else:
+ if debug:
+ print("=> ", token)
+ return token
+ return None
#
# Parse a typedef, it records the type and its name.
#
def parseTypedef(self, token):
if token == None:
- return None
- token = self.parseType(token)
- if token == None:
- self.error("parsing typedef")
- return None
- base_type = self.type
- type = base_type
- #self.debug("end typedef type", token)
- while token != None:
- if token[0] == "name":
- name = token[1]
- signature = self.signature
- if signature != None:
- type = string.split(type, '(')[0]
- d = self.mergeFunctionComment(name,
- ((type, None), signature), 1)
- self.index_add(name, self.filename, not self.is_header,
- "functype", d)
- else:
- if base_type == "struct":
- self.index_add(name, self.filename, not self.is_header,
- "struct", type)
- base_type = "struct " + name
- else:
- self.index_add(name, self.filename, not self.is_header,
- "typedef", type)
- token = self.token()
- else:
- self.error("parsing typedef: expecting a name")
- return token
- #self.debug("end typedef", token)
- if token != None and token[0] == 'sep' and token[1] == ',':
- type = base_type
- token = self.token()
- while token != None and token[0] == "op":
- type = type + token[1]
- token = self.token()
- elif token != None and token[0] == 'sep' and token[1] == ';':
- break;
- elif token != None and token[0] == 'name':
- type = base_type
- continue;
- else:
- self.error("parsing typedef: expecting ';'", token)
- return token
- token = self.token()
- return token
-
+ return None
+ token = self.parseType(token)
+ if token == None:
+ self.error("parsing typedef")
+ return None
+ base_type = self.type
+ type = base_type
+ #self.debug("end typedef type", token)
+ while token != None:
+ if token[0] == "name":
+ name = token[1]
+ signature = self.signature
+ if signature != None:
+ type = type.split('(')[0]
+ d = self.mergeFunctionComment(name,
+ ((type, None), signature), 1)
+ self.index_add(name, self.filename, not self.is_header,
+ "functype", d)
+ else:
+ if base_type == "struct":
+ self.index_add(name, self.filename, not self.is_header,
+ "struct", type)
+ base_type = "struct " + name
+ else:
+ # TODO report missing or misformatted comments
+ info = self.parseSimpleComment(name, True)
+ self.index_add(name, self.filename, not self.is_header,
+ "typedef", type, info)
+ token = self.token()
+ else:
+ self.error("parsing typedef: expecting a name")
+ return token
+ #self.debug("end typedef", token)
+ if token != None and token[0] == 'sep' and token[1] == ',':
+ type = base_type
+ token = self.token()
+ while token != None and token[0] == "op":
+ type = type + token[1]
+ token = self.token()
+ elif token != None and token[0] == 'sep' and token[1] == ';':
+ break;
+ elif token != None and token[0] == 'name':
+ type = base_type
+ continue;
+ else:
+ self.error("parsing typedef: expecting ';'", token)
+ return token
+ token = self.token()
+ return token
+
#
# Parse a C code block, used for functions it parse till
# the balancing } included
#
def parseBlock(self, token):
while token != None:
- if token[0] == "sep" and token[1] == "{":
- token = self.token()
- token = self.parseBlock(token)
- elif token[0] == "sep" and token[1] == "}":
- self.comment = None
- token = self.token()
- return token
- else:
- if self.collect_ref == 1:
- oldtok = token
- token = self.token()
- if oldtok[0] == "name" and oldtok[1][0:3] == "xml":
- if token[0] == "sep" and token[1] == "(":
- self.index_add_ref(oldtok[1], self.filename,
- 0, "function")
- token = self.token()
- elif token[0] == "name":
- token = self.token()
- if token[0] == "sep" and (token[1] == ";" or
- token[1] == "," or token[1] == "="):
- self.index_add_ref(oldtok[1], self.filename,
- 0, "type")
- elif oldtok[0] == "name" and oldtok[1][0:4] == "XML_":
- self.index_add_ref(oldtok[1], self.filename,
- 0, "typedef")
- elif oldtok[0] == "name" and oldtok[1][0:7] == "LIBXML_":
- self.index_add_ref(oldtok[1], self.filename,
- 0, "typedef")
-
- else:
- token = self.token()
- return token
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ token = self.token()
+ return token
+ else:
+ if self.collect_ref == 1:
+ oldtok = token
+ token = self.token()
+ if oldtok[0] == "name" and oldtok[1][0:3] == "xml":
+ if token[0] == "sep" and token[1] == "(":
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "function")
+ token = self.token()
+ elif token[0] == "name":
+ token = self.token()
+ if token[0] == "sep" and (token[1] == ";" or
+ token[1] == "," or token[1] == "="):
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "type")
+ elif oldtok[0] == "name" and oldtok[1][0:4] == "XML_":
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "typedef")
+ elif oldtok[0] == "name" and oldtok[1][0:7] == "LIBXML_":
+ self.index_add_ref(oldtok[1], self.filename,
+ 0, "typedef")
+
+ else:
+ token = self.token()
+ return token
#
# Parse a C struct definition till the balancing }
#
def parseStruct(self, token):
fields = []
- #self.debug("start parseStruct", token)
+ #self.debug("start parseStruct", token)
while token != None:
- if token[0] == "sep" and token[1] == "{":
- token = self.token()
- token = self.parseTypeBlock(token)
- elif token[0] == "sep" and token[1] == "}":
- self.struct_fields = fields
- #self.debug("end parseStruct", token)
- #print fields
- token = self.token()
- return token
- else:
- base_type = self.type
- #self.debug("before parseType", token)
- token = self.parseType(token)
- #self.debug("after parseType", token)
- if token != None and token[0] == "name":
- fname = token[1]
- token = self.token()
- if token[0] == "sep" and token[1] == ";":
- self.comment = None
- token = self.token()
- fields.append((self.type, fname, self.comment))
- self.comment = None
- else:
- self.error("parseStruct: expecting ;", token)
- elif token != None and token[0] == "sep" and token[1] == "{":
- token = self.token()
- token = self.parseTypeBlock(token)
- if token != None and token[0] == "name":
- token = self.token()
- if token != None and token[0] == "sep" and token[1] == ";":
- token = self.token()
- else:
- self.error("parseStruct: expecting ;", token)
- else:
- self.error("parseStruct: name", token)
- token = self.token()
- self.type = base_type;
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ self.struct_fields = fields
+ #self.debug("end parseStruct", token)
+ #print fields
+ token = self.token()
+ return token
+ else:
+ base_type = self.type
+ #self.debug("before parseType", token)
+ token = self.parseType(token)
+ #self.debug("after parseType", token)
+ if token != None and token[0] == "name":
+ fname = token[1]
+ token = self.token()
+ if token[0] == "sep" and token[1] == ";":
+ self.comment = None
+ token = self.token()
+ fields.append((self.type, fname, self.comment))
+ self.comment = None
+ else:
+ self.error("parseStruct: expecting ;", token)
+ elif token != None and token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ if token != None and token[0] == "name":
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == ";":
+ token = self.token()
+ else:
+ self.error("parseStruct: expecting ;", token)
+ else:
+ self.error("parseStruct: name", token)
+ token = self.token()
+ self.type = base_type;
self.struct_fields = fields
- #self.debug("end parseStruct", token)
- #print fields
- return token
+ #self.debug("end parseStruct", token)
+ #print fields
+ return token
#
# Parse a C enum block, parse till the balancing }
#
def parseEnumBlock(self, token):
self.enums = []
- name = None
- self.comment = None
- comment = ""
- value = "0"
+ name = None
+ self.comment = None
+ comment = ""
+ value = "0"
while token != None:
- if token[0] == "sep" and token[1] == "{":
- token = self.token()
- token = self.parseTypeBlock(token)
- elif token[0] == "sep" and token[1] == "}":
- if name != None:
- if self.comment != None:
- comment = self.comment
- self.comment = None
- self.enums.append((name, value, comment))
- token = self.token()
- return token
- elif token[0] == "name":
- if name != None:
- if self.comment != None:
- comment = string.strip(self.comment)
- self.comment = None
- self.enums.append((name, value, comment))
- name = token[1]
- comment = ""
- token = self.token()
- if token[0] == "op" and token[1][0] == "=":
- value = ""
- if len(token[1]) > 1:
- value = token[1][1:]
- token = self.token()
- while token[0] != "sep" or (token[1] != ',' and
- token[1] != '}'):
- value = value + token[1]
- token = self.token()
- else:
- try:
- value = "%d" % (int(value) + 1)
- except:
- self.warning("Failed to compute value of enum %s" % (name))
- value=""
- if token[0] == "sep" and token[1] == ",":
- token = self.token()
- else:
- token = self.token()
- return token
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ if name != None:
+ if self.comment != None:
+ comment = self.comment
+ self.comment = None
+ self.enums.append((name, value, comment))
+ token = self.token()
+ return token
+ elif token[0] == "name":
+ if name != None:
+ if self.comment != None:
+ comment = self.comment.strip()
+ self.comment = None
+ self.enums.append((name, value, comment))
+ name = token[1]
+ comment = ""
+ token = self.token()
+ if token[0] == "op" and token[1][0] == "=":
+ value = ""
+ if len(token[1]) > 1:
+ value = token[1][1:]
+ token = self.token()
+ while token[0] != "sep" or (token[1] != ',' and
+ token[1] != '}'):
+ value = value + token[1]
+ token = self.token()
+ else:
+ try:
+ value = "%d" % (int(value) + 1)
+ except:
+ self.warning("Failed to compute value of enum %s" % (name))
+ value=""
+ if token[0] == "sep" and token[1] == ",":
+ token = self.token()
+ else:
+ token = self.token()
+ return token
#
# Parse a C definition block, used for structs it parse till
#
def parseTypeBlock(self, token):
while token != None:
- if token[0] == "sep" and token[1] == "{":
- token = self.token()
- token = self.parseTypeBlock(token)
- elif token[0] == "sep" and token[1] == "}":
- token = self.token()
- return token
- else:
- token = self.token()
- return token
+ if token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseTypeBlock(token)
+ elif token[0] == "sep" and token[1] == "}":
+ token = self.token()
+ return token
+ else:
+ token = self.token()
+ return token
#
# Parse a type: the fact that the type name can either occur after
#
def parseType(self, token):
self.type = ""
- self.struct_fields = []
+ self.struct_fields = []
self.signature = None
- if token == None:
- return token
-
- while token[0] == "name" and (
- token[1] == "const" or token[1] == "unsigned" or
- token[1] == "signed"):
- if self.type == "":
- self.type = token[1]
- else:
- self.type = self.type + " " + token[1]
- token = self.token()
+ if token == None:
+ return token
+
+ while token[0] == "name" and (
+ token[1] == "const" or \
+ token[1] == "unsigned" or \
+ token[1] == "signed"):
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ token = self.token()
if token[0] == "name" and (token[1] == "long" or token[1] == "short"):
- if self.type == "":
- self.type = token[1]
- else:
- self.type = self.type + " " + token[1]
- if token[0] == "name" and token[1] == "int":
- if self.type == "":
- self.type = tmp[1]
- else:
- self.type = self.type + " " + tmp[1]
-
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ if token[0] == "name" and token[1] == "int":
+ if self.type == "":
+ self.type = tmp[1]
+ else:
+ self.type = self.type + " " + tmp[1]
+
elif token[0] == "name" and token[1] == "struct":
- if self.type == "":
- self.type = token[1]
- else:
- self.type = self.type + " " + token[1]
- token = self.token()
- nametok = None
- if token[0] == "name":
- nametok = token
- token = self.token()
- if token != None and token[0] == "sep" and token[1] == "{":
- token = self.token()
- token = self.parseStruct(token)
- elif token != None and token[0] == "op" and token[1] == "*":
- self.type = self.type + " " + nametok[1] + " *"
- token = self.token()
- while token != None and token[0] == "op" and token[1] == "*":
- self.type = self.type + " *"
- token = self.token()
- if token[0] == "name":
- nametok = token
- token = self.token()
- else:
- self.error("struct : expecting name", token)
- return token
- elif token != None and token[0] == "name" and nametok != None:
- self.type = self.type + " " + nametok[1]
- return token
-
- if nametok != None:
- self.lexer.push(token)
- token = nametok
- return token
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ token = self.token()
+ nametok = None
+ if token[0] == "name":
+ nametok = token
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseStruct(token)
+ elif token != None and token[0] == "op" and token[1] == "*":
+ self.type = self.type + " " + nametok[1] + " *"
+ token = self.token()
+ while token != None and token[0] == "op" and token[1] == "*":
+ self.type = self.type + " *"
+ token = self.token()
+ if token[0] == "name":
+ nametok = token
+ token = self.token()
+ else:
+ self.error("struct : expecting name", token)
+ return token
+ elif token != None and token[0] == "name" and nametok != None:
+ self.type = self.type + " " + nametok[1]
+ return token
+
+ if nametok != None:
+ self.lexer.push(token)
+ token = nametok
+ return token
elif token[0] == "name" and token[1] == "enum":
- if self.type == "":
- self.type = token[1]
- else:
- self.type = self.type + " " + token[1]
- self.enums = []
- token = self.token()
- if token != None and token[0] == "sep" and token[1] == "{":
- token = self.token()
- token = self.parseEnumBlock(token)
- else:
- self.error("parsing enum: expecting '{'", token)
- enum_type = None
- if token != None and token[0] != "name":
- self.lexer.push(token)
- token = ("name", "enum")
- else:
- enum_type = token[1]
- for enum in self.enums:
- self.index_add(enum[0], self.filename,
- not self.is_header, "enum",
- (enum[1], enum[2], enum_type))
- return token
-
- elif token[0] == "name":
- if self.type == "":
- self.type = token[1]
- else:
- self.type = self.type + " " + token[1]
- else:
- self.error("parsing type %s: expecting a name" % (self.type),
- token)
- return token
- token = self.token()
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ self.enums = []
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == "{":
+ token = self.token()
+ token = self.parseEnumBlock(token)
+ else:
+ self.error("parsing enum: expecting '{'", token)
+ enum_type = None
+ if token != None and token[0] != "name":
+ self.lexer.push(token)
+ token = ("name", "enum")
+ else:
+ enum_type = token[1]
+ for enum in self.enums:
+ self.index_add(enum[0], self.filename,
+ not self.is_header, "enum",
+ (enum[1], enum[2], enum_type))
+ return token
+
+ elif token[0] == "name":
+ if self.type == "":
+ self.type = token[1]
+ else:
+ self.type = self.type + " " + token[1]
+ else:
+ self.error("parsing type %s: expecting a name" % (self.type),
+ token)
+ return token
+ token = self.token()
while token != None and (token[0] == "op" or
- token[0] == "name" and token[1] == "const"):
- self.type = self.type + " " + token[1]
- token = self.token()
-
- #
- # if there is a parenthesis here, this means a function type
- #
- if token != None and token[0] == "sep" and token[1] == '(':
- self.type = self.type + token[1]
- token = self.token()
- while token != None and token[0] == "op" and token[1] == '*':
- self.type = self.type + token[1]
- token = self.token()
- if token == None or token[0] != "name" :
- self.error("parsing function type, name expected", token);
- return token
- self.type = self.type + token[1]
- nametok = token
- token = self.token()
- if token != None and token[0] == "sep" and token[1] == ')':
- self.type = self.type + token[1]
- token = self.token()
- if token != None and token[0] == "sep" and token[1] == '(':
- token = self.token()
- type = self.type;
- token = self.parseSignature(token);
- self.type = type;
- else:
- self.error("parsing function type, '(' expected", token);
- return token
- else:
- self.error("parsing function type, ')' expected", token);
- return token
- self.lexer.push(token)
- token = nametok
- return token
+ token[0] == "name" and token[1] == "const"):
+ self.type = self.type + " " + token[1]
+ token = self.token()
+
+ #
+ # if there is a parenthesis here, this means a function type
+ #
+ if token != None and token[0] == "sep" and token[1] == '(':
+ self.type = self.type + token[1]
+ token = self.token()
+ while token != None and token[0] == "op" and token[1] == '*':
+ self.type = self.type + token[1]
+ token = self.token()
+ if token == None or token[0] != "name" :
+ self.error("parsing function type, name expected", token);
+ return token
+ self.type = self.type + token[1]
+ nametok = token
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == ')':
+ self.type = self.type + token[1]
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == '(':
+ token = self.token()
+ type = self.type;
+ token = self.parseSignature(token);
+ self.type = type;
+ else:
+ self.error("parsing function type, '(' expected", token);
+ return token
+ else:
+ self.error("parsing function type, ')' expected", token);
+ return token
+ self.lexer.push(token)
+ token = nametok
+ return token
#
- # do some lookahead for arrays
- #
- if token != None and token[0] == "name":
- nametok = token
- token = self.token()
- if token != None and token[0] == "sep" and token[1] == '[':
- self.type = self.type + nametok[1]
- while token != None and token[0] == "sep" and token[1] == '[':
- self.type = self.type + token[1]
- token = self.token()
- while token != None and token[0] != 'sep' and \
- token[1] != ']' and token[1] != ';':
- self.type = self.type + token[1]
- token = self.token()
- if token != None and token[0] == 'sep' and token[1] == ']':
- self.type = self.type + token[1]
- token = self.token()
- else:
- self.error("parsing array type, ']' expected", token);
- return token
- elif token != None and token[0] == "sep" and token[1] == ':':
- # remove :12 in case it's a limited int size
- token = self.token()
- token = self.token()
- self.lexer.push(token)
- token = nametok
-
- return token
+ # do some lookahead for arrays
+ #
+ if token != None and token[0] == "name":
+ nametok = token
+ token = self.token()
+ if token != None and token[0] == "sep" and token[1] == '[':
+ self.type = self.type + nametok[1]
+ while token != None and token[0] == "sep" and token[1] == '[':
+ self.type = self.type + token[1]
+ token = self.token()
+ while token != None and token[0] != 'sep' and \
+ token[1] != ']' and token[1] != ';':
+ self.type = self.type + token[1]
+ token = self.token()
+ if token != None and token[0] == 'sep' and token[1] == ']':
+ self.type = self.type + token[1]
+ token = self.token()
+ else:
+ self.error("parsing array type, ']' expected", token);
+ return token
+ elif token != None and token[0] == "sep" and token[1] == ':':
+ # remove :12 in case it's a limited int size
+ token = self.token()
+ token = self.token()
+ self.lexer.push(token)
+ token = nametok
+
+ return token
#
# Parse a signature: '(' has been parsed and we scan the type definition
# up to the ')' included
def parseSignature(self, token):
signature = []
- if token != None and token[0] == "sep" and token[1] == ')':
- self.signature = []
- token = self.token()
- return token
- while token != None:
- token = self.parseType(token)
- if token != None and token[0] == "name":
- signature.append((self.type, token[1], None))
- token = self.token()
- elif token != None and token[0] == "sep" and token[1] == ',':
- token = self.token()
- continue
- elif token != None and token[0] == "sep" and token[1] == ')':
- # only the type was provided
- if self.type == "...":
- signature.append((self.type, "...", None))
- else:
- signature.append((self.type, None, None))
- if token != None and token[0] == "sep":
- if token[1] == ',':
- token = self.token()
- continue
- elif token[1] == ')':
- token = self.token()
- break
- self.signature = signature
- return token
+ if token != None and token[0] == "sep" and token[1] == ')':
+ self.signature = []
+ token = self.token()
+ return token
+ while token != None:
+ token = self.parseType(token)
+ if token != None and token[0] == "name":
+ signature.append((self.type, token[1], None))
+ token = self.token()
+ elif token != None and token[0] == "sep" and token[1] == ',':
+ token = self.token()
+ continue
+ elif token != None and token[0] == "sep" and token[1] == ')':
+ # only the type was provided
+ if self.type == "...":
+ signature.append((self.type, "...", None))
+ else:
+ signature.append((self.type, None, None))
+ if token != None and token[0] == "sep":
+ if token[1] == ',':
+ token = self.token()
+ continue
+ elif token[1] == ')':
+ token = self.token()
+ break
+ self.signature = signature
+ return token
#
# Parse a global definition, be it a type, variable or function
def parseGlobal(self, token):
static = 0
if token[1] == 'extern':
- token = self.token()
- if token == None:
- return token
- if token[0] == 'string':
- if token[1] == 'C':
- token = self.token()
- if token == None:
- return token
- if token[0] == 'sep' and token[1] == "{":
- token = self.token()
-# print 'Entering extern "C line ', self.lineno()
- while token != None and (token[0] != 'sep' or
- token[1] != "}"):
- if token[0] == 'name':
- token = self.parseGlobal(token)
- else:
- self.error(
- "token %s %s unexpected at the top level" % (
- token[0], token[1]))
- token = self.parseGlobal(token)
-# print 'Exiting extern "C" line', self.lineno()
- token = self.token()
- return token
- else:
- return token
- elif token[1] == 'static':
- static = 1
- token = self.token()
- if token == None or token[0] != 'name':
- return token
-
- if token[1] == 'typedef':
- token = self.token()
- return self.parseTypedef(token)
- else:
- token = self.parseType(token)
- type_orig = self.type
- if token == None or token[0] != "name":
- return token
- type = type_orig
- self.name = token[1]
- token = self.token()
- while token != None and (token[0] == "sep" or token[0] == "op"):
- if token[0] == "sep":
- if token[1] == "[":
- type = type + token[1]
- token = self.token()
- while token != None and (token[0] != "sep" or \
- token[1] != ";"):
- type = type + token[1]
- token = self.token()
-
- if token != None and token[0] == "op" and token[1] == "=":
- #
- # Skip the initialization of the variable
- #
- token = self.token()
- if token[0] == 'sep' and token[1] == '{':
- token = self.token()
- token = self.parseBlock(token)
- else:
- self.comment = None
- while token != None and (token[0] != "sep" or \
- (token[1] != ';' and token[1] != ',')):
- token = self.token()
- self.comment = None
- if token == None or token[0] != "sep" or (token[1] != ';' and
- token[1] != ','):
- self.error("missing ';' or ',' after value")
-
- if token != None and token[0] == "sep":
- if token[1] == ";":
- self.comment = None
- token = self.token()
- if type == "struct":
- self.index_add(self.name, self.filename,
- not self.is_header, "struct", self.struct_fields)
- else:
- self.index_add(self.name, self.filename,
- not self.is_header, "variable", type)
- break
- elif token[1] == "(":
- token = self.token()
- token = self.parseSignature(token)
- if token == None:
- return None
- if token[0] == "sep" and token[1] == ";":
- d = self.mergeFunctionComment(self.name,
- ((type, None), self.signature), 1)
- self.index_add(self.name, self.filename, static,
- "function", d)
- token = self.token()
- elif token[0] == "sep" and token[1] == "{":
- d = self.mergeFunctionComment(self.name,
- ((type, None), self.signature), static)
- self.index_add(self.name, self.filename, static,
- "function", d)
- token = self.token()
- token = self.parseBlock(token);
- elif token[1] == ',':
- self.comment = None
- self.index_add(self.name, self.filename, static,
- "variable", type)
- type = type_orig
- token = self.token()
- while token != None and token[0] == "sep":
- type = type + token[1]
- token = self.token()
- if token != None and token[0] == "name":
- self.name = token[1]
- token = self.token()
- else:
- break
-
- return token
+ token = self.token()
+ if token == None:
+ return token
+ if token[0] == 'string':
+ if token[1] == 'C':
+ token = self.token()
+ if token == None:
+ return token
+ if token[0] == 'sep' and token[1] == "{":
+ token = self.token()
+# print 'Entering extern "C line ', self.lineno()
+ while token != None and (token[0] != 'sep' or
+ token[1] != "}"):
+ if token[0] == 'name':
+ token = self.parseGlobal(token)
+ else:
+ self.error(
+ "token %s %s unexpected at the top level" % (
+ token[0], token[1]))
+ token = self.parseGlobal(token)
+# print 'Exiting extern "C" line', self.lineno()
+ token = self.token()
+ return token
+ else:
+ return token
+ elif token[1] == 'static':
+ static = 1
+ token = self.token()
+ if token == None or token[0] != 'name':
+ return token
+
+ if token[1] == 'typedef':
+ token = self.token()
+ return self.parseTypedef(token)
+ else:
+ token = self.parseType(token)
+ type_orig = self.type
+ if token == None or token[0] != "name":
+ return token
+ type = type_orig
+ self.name = token[1]
+ token = self.token()
+ while token != None and (token[0] == "sep" or token[0] == "op"):
+ if token[0] == "sep":
+ if token[1] == "[":
+ type = type + token[1]
+ token = self.token()
+ while token != None and (token[0] != "sep" or \
+ token[1] != ";"):
+ type = type + token[1]
+ token = self.token()
+
+ if token != None and token[0] == "op" and token[1] == "=":
+ #
+ # Skip the initialization of the variable
+ #
+ token = self.token()
+ if token[0] == 'sep' and token[1] == '{':
+ token = self.token()
+ token = self.parseBlock(token)
+ else:
+ while token != None and (token[0] != "sep" or \
+ (token[1] != ';' and token[1] != ',')):
+ token = self.token()
+ if token == None or token[0] != "sep" or (token[1] != ';' and
+ token[1] != ','):
+ self.error("missing ';' or ',' after value")
+
+ if token != None and token[0] == "sep":
+ if token[1] == ";":
+ if type == "struct":
+ self.index_add(self.name, self.filename,
+ not self.is_header, "struct", self.struct_fields)
+ else:
+ info = self.parseSimpleComment(self.name, True)
+ self.index_add(self.name, self.filename,
+ not self.is_header, "variable", type, info)
+ self.comment = None
+ token = self.token()
+ break
+ elif token[1] == "(":
+ token = self.token()
+ token = self.parseSignature(token)
+ if token == None:
+ return None
+ if token[0] == "sep" and token[1] == ";":
+ d = self.mergeFunctionComment(self.name,
+ ((type, None), self.signature), 1)
+ self.index_add(self.name, self.filename, static,
+ "function", d)
+ self.comment = None
+ token = self.token()
+ elif token[0] == "sep" and token[1] == "{":
+ d = self.mergeFunctionComment(self.name,
+ ((type, None), self.signature), static)
+ self.index_add(self.name, self.filename, static,
+ "function", d)
+ self.comment = None
+ token = self.token()
+ token = self.parseBlock(token);
+ elif token[1] == ',':
+ self.index_add(self.name, self.filename, static,
+ "variable", type)
+ self.comment = None
+ type = type_orig
+ token = self.token()
+ while token != None and token[0] == "sep":
+ type = type + token[1]
+ token = self.token()
+ if token != None and token[0] == "name":
+ self.name = token[1]
+ token = self.token()
+ else:
+ break
+
+ return token
def parse(self):
self.warning("Parsing %s" % (self.filename))
token = self.token()
- while token != None:
+ while token != None:
if token[0] == 'name':
- token = self.parseGlobal(token)
+ token = self.parseGlobal(token)
else:
- self.error("token %s %s unexpected at the top level" % (
- token[0], token[1]))
- token = self.parseGlobal(token)
- return
- self.parseTopComment(self.top_comment)
+ self.error("token %s %s unexpected at the top level" % (
+ token[0], token[1]))
+ token = self.parseGlobal(token)
+ return
+ self.parseTopComment(self.top_comment)
return self.index
-
+
class docBuilder:
"""A documentation builder"""
def __init__(self, name, directories=['.'], excludes=[]):
self.name = name
self.directories = directories
- self.excludes = excludes + ignored_files.keys()
- self.modules = {}
- self.headers = {}
- self.idx = index()
- self.xref = {}
- self.index = {}
- if name == 'libxml2':
- self.basename = 'libxml'
- else:
- self.basename = name
-
- def indexString(self, id, str):
- if str == None:
- return
- str = string.replace(str, "'", ' ')
- str = string.replace(str, '"', ' ')
- str = string.replace(str, "/", ' ')
- str = string.replace(str, '*', ' ')
- str = string.replace(str, "[", ' ')
- str = string.replace(str, "]", ' ')
- str = string.replace(str, "(", ' ')
- str = string.replace(str, ")", ' ')
- str = string.replace(str, "<", ' ')
- str = string.replace(str, '>', ' ')
- str = string.replace(str, "&", ' ')
- str = string.replace(str, '#', ' ')
- str = string.replace(str, ",", ' ')
- str = string.replace(str, '.', ' ')
- str = string.replace(str, ';', ' ')
- tokens = string.split(str)
- for token in tokens:
- try:
- c = token[0]
- if string.find(string.letters, c) < 0:
- pass
- elif len(token) < 3:
- pass
- else:
- lower = string.lower(token)
- # TODO: generalize this a bit
- if lower == 'and' or lower == 'the':
- pass
- elif self.xref.has_key(token):
- self.xref[token].append(id)
- else:
- self.xref[token] = [id]
- except:
- pass
+ self.excludes = excludes + list(ignored_files.keys())
+ self.modules = {}
+ self.headers = {}
+ self.idx = index()
+ self.index = {}
+ if name == 'libxml2':
+ self.basename = 'libxml'
+ else:
+ self.basename = name
+ self.outdir = None
def analyze(self):
- print "Project %s : %d headers, %d modules" % (self.name, len(self.headers.keys()), len(self.modules.keys()))
- self.idx.analyze()
+ print("Project %s : %d headers, %d modules" % (self.name, len(list(self.headers.keys())), len(list(self.modules.keys()))))
+ self.idx.analyze()
def scanHeaders(self):
- for header in self.headers.keys():
- parser = CParser(header)
- idx = parser.parse()
- self.headers[header] = idx;
- self.idx.merge(idx)
+ for header in list(self.headers.keys()):
+ parser = CParser(header)
+ idx = parser.parse()
+ self.headers[header] = idx;
+ self.idx.merge(idx)
def scanModules(self):
- for module in self.modules.keys():
- parser = CParser(module)
- idx = parser.parse()
- # idx.analyze()
- self.modules[module] = idx
- self.idx.merge_public(idx)
+ for module in list(self.modules.keys()):
+ parser = CParser(module)
+ idx = parser.parse()
+ # idx.analyze()
+ self.modules[module] = idx
+ self.idx.merge_public(idx)
def scan(self):
for directory in self.directories:
- files = glob.glob(directory + "/*.c")
- for file in files:
- skip = 0
- for excl in self.excludes:
- if string.find(file, excl) != -1:
- skip = 1;
- break
- if skip == 0:
- self.modules[file] = None;
- files = glob.glob(directory + "/*.h")
- for file in files:
- skip = 0
- for excl in self.excludes:
- if string.find(file, excl) != -1:
- skip = 1;
- break
- if skip == 0:
- self.headers[file] = None;
- self.scanHeaders()
- self.scanModules()
-
+ files = glob.glob(directory + "/*.c")
+ for file in files:
+ skip = 0
+ for excl in self.excludes:
+ if file.find(excl) != -1:
+ print("Skipping %s" % file)
+ skip = 1
+ break
+ if skip == 0:
+ self.modules[file] = None;
+ files = glob.glob(directory + "/*.h")
+ for file in files:
+ skip = 0
+ for excl in self.excludes:
+ if file.find(excl) != -1:
+ print("Skipping %s" % file)
+ skip = 1
+ break
+ if skip == 0:
+ self.headers[file] = None;
+ self.scanHeaders()
+ self.scanModules()
+
def modulename_file(self, file):
module = os.path.basename(file)
- if module[-2:] == '.h':
- module = module[:-2]
- return module
+ if module[-2:] == '.h':
+ module = module[:-2]
+ elif module[-2:] == '.c':
+ module = module[:-2]
+ return module
def serialize_enum(self, output, name):
id = self.idx.enums[name]
output.write(" <enum name='%s' file='%s'" % (name,
- self.modulename_file(id.module)))
- if id.info != None:
- info = id.info
- if info[0] != None and info[0] != '':
- try:
- val = eval(info[0])
- except:
- val = info[0]
- output.write(" value='%s'" % (val));
- if info[2] != None and info[2] != '':
- output.write(" type='%s'" % info[2]);
- if info[1] != None and info[1] != '':
- output.write(" info='%s'" % escape(info[1]));
+ self.modulename_file(id.header)))
+ if id.info != None:
+ info = id.info
+ if info[0] != None and info[0] != '':
+ try:
+ val = eval(info[0])
+ except:
+ val = info[0]
+ output.write(" value='%s'" % (val));
+ if info[2] != None and info[2] != '':
+ output.write(" type='%s'" % info[2]);
+ if info[1] != None and info[1] != '':
+ output.write(" info='%s'" % escape(info[1]));
output.write("/>\n")
def serialize_macro(self, output, name):
id = self.idx.macros[name]
output.write(" <macro name='%s' file='%s'>\n" % (name,
- self.modulename_file(id.module)))
- if id.info != None:
+ self.modulename_file(id.header)))
+ if id.info != None:
try:
- (args, desc) = id.info
- if desc != None and desc != "":
- output.write(" <info>%s</info>\n" % (escape(desc)))
- self.indexString(name, desc)
- for arg in args:
- (name, desc) = arg
- if desc != None and desc != "":
- output.write(" <arg name='%s' info='%s'/>\n" % (
- name, escape(desc)))
- self.indexString(name, desc)
- else:
- output.write(" <arg name='%s'/>\n" % (name))
+ (args, desc) = id.info
+ if desc != None and desc != "":
+ output.write(" <info>%s</info>\n" % (escape(desc)))
+ for arg in args:
+ (name, desc) = arg
+ if desc != None and desc != "":
+ output.write(" <arg name='%s' info='%s'/>\n" % (
+ name, escape(desc)))
+ else:
+ output.write(" <arg name='%s'/>\n" % (name))
except:
pass
output.write(" </macro>\n")
def serialize_typedef(self, output, name):
id = self.idx.typedefs[name]
- if id.info[0:7] == 'struct ':
- output.write(" <struct name='%s' file='%s' type='%s'" % (
- name, self.modulename_file(id.module), id.info))
- name = id.info[7:]
- if self.idx.structs.has_key(name) and ( \
- type(self.idx.structs[name].info) == type(()) or
- type(self.idx.structs[name].info) == type([])):
- output.write(">\n");
- try:
- for field in self.idx.structs[name].info:
- desc = field[2]
- self.indexString(name, desc)
- if desc == None:
- desc = ''
- else:
- desc = escape(desc)
- output.write(" <field name='%s' type='%s' info='%s'/>\n" % (field[1] , field[0], desc))
- except:
- print "Failed to serialize struct %s" % (name)
- output.write(" </struct>\n")
- else:
- output.write("/>\n");
- else :
- output.write(" <typedef name='%s' file='%s' type='%s'/>\n" % (
- name, self.modulename_file(id.module), id.info))
+ if id.info[0:7] == 'struct ':
+ output.write(" <struct name='%s' file='%s' type='%s'" % (
+ name, self.modulename_file(id.header), id.info))
+ name = id.info[7:]
+ if name in self.idx.structs and ( \
+ type(self.idx.structs[name].info) == type(()) or
+ type(self.idx.structs[name].info) == type([])):
+ output.write(">\n");
+ try:
+ for field in self.idx.structs[name].info:
+ desc = field[2]
+ if desc == None:
+ desc = ''
+ else:
+ desc = escape(desc)
+ output.write(" <field name='%s' type='%s' info='%s'/>\n" % (field[1] , field[0], desc))
+ except:
+ print("Failed to serialize struct %s" % (name))
+ output.write(" </struct>\n")
+ else:
+ output.write("/>\n");
+ else :
+ output.write(" <typedef name='%s' file='%s' type='%s'" % (
+ name, self.modulename_file(id.header), id.info))
+ try:
+ desc = id.extra
+ if desc != None and desc != "":
+ output.write(">\n <info>%s</info>\n" % (escape(desc)))
+ output.write(" </typedef>\n")
+ else:
+ output.write("/>\n")
+ except:
+ output.write("/>\n")
def serialize_variable(self, output, name):
id = self.idx.variables[name]
- if id.info != None:
- output.write(" <variable name='%s' file='%s' type='%s'/>\n" % (
- name, self.modulename_file(id.module), id.info))
- else:
- output.write(" <variable name='%s' file='%s'/>\n" % (
- name, self.modulename_file(id.module)))
-
+ if id.info != None:
+ output.write(" <variable name='%s' file='%s' type='%s'" % (
+ name, self.modulename_file(id.header), id.info))
+ else:
+ output.write(" <variable name='%s' file='%s'" % (
+ name, self.modulename_file(id.header)))
+ desc = id.extra
+ if desc != None and desc != "":
+ output.write(">\n <info>%s</info>\n" % (escape(desc)))
+ output.write(" </variable>\n")
+ else:
+ output.write("/>\n")
+
def serialize_function(self, output, name):
id = self.idx.functions[name]
- output.write(" <%s name='%s' file='%s'>\n" % (id.type, name,
- self.modulename_file(id.module)))
- try:
- (ret, params, desc) = id.info
- output.write(" <info>%s</info>\n" % (escape(desc)))
- self.indexString(name, desc)
- if ret[0] != None:
- if ret[0] == "void":
- output.write(" <return type='void'/>\n")
- else:
- output.write(" <return type='%s' info='%s'/>\n" % (
- ret[0], escape(ret[1])))
- self.indexString(name, ret[1])
- for param in params:
- if param[0] == 'void':
- continue
- if param[2] == None:
- output.write(" <arg name='%s' type='%s' info=''/>\n" % (param[1], param[0]))
- else:
- output.write(" <arg name='%s' type='%s' info='%s'/>\n" % (param[1], param[0], escape(param[2])))
- self.indexString(name, param[2])
- except:
- print "Failed to save function %s info: " % name, `id.info`
+ if name == debugsym:
+ print("=>", id)
+
+ output.write(" <%s name='%s' file='%s' module='%s'>\n" % (id.type,
+ name, self.modulename_file(id.header),
+ self.modulename_file(id.module)))
+ #
+ # Processing of conditionals modified by Bill 1/1/05
+ #
+ if id.conditionals != None:
+ apstr = ""
+ for cond in id.conditionals:
+ if apstr != "":
+ apstr = apstr + " && "
+ apstr = apstr + cond
+ output.write(" <cond>%s</cond>\n"% (apstr));
+ try:
+ (ret, params, desc) = id.info
+ if (desc == None or desc == '') and \
+ name[0:9] != "xmlThrDef" and name != "xmlDllMain":
+ print("%s %s from %s has no description" % (id.type, name,
+ self.modulename_file(id.module)))
+
+ output.write(" <info>%s</info>\n" % (escape(desc)))
+ if ret[0] != None:
+ if ret[0] == "void":
+ output.write(" <return type='void'/>\n")
+ else:
+ output.write(" <return type='%s' info='%s'/>\n" % (
+ ret[0], escape(ret[1])))
+ for param in params:
+ if param[0] == 'void':
+ continue
+ if param[2] == None:
+ output.write(" <arg name='%s' type='%s' info=''/>\n" % (param[1], param[0]))
+ else:
+ output.write(" <arg name='%s' type='%s' info='%s'/>\n" % (param[1], param[0], escape(param[2])))
+ except:
+ print("Failed to save function %s info: " % name, repr(id.info))
output.write(" </%s>\n" % (id.type))
def serialize_exports(self, output, file):
module = self.modulename_file(file)
- output.write(" <file name='%s'>\n" % (module))
- dict = self.headers[file]
- if dict.info != None:
- for data in ('Summary', 'Description', 'Author'):
- try:
- output.write(" <%s>%s</%s>\n" % (
- string.lower(data),
- escape(dict.info[data]),
- string.lower(data)))
- except:
- print "Header %s lacks a %s description" % (module, data)
- if dict.info.has_key('Description'):
- desc = dict.info['Description']
- if string.find(desc, "DEPRECATED") != -1:
- output.write(" <deprecated/>\n")
-
- ids = dict.macros.keys()
- ids.sort()
- for id in uniq(ids):
- # Macros are sometime used to masquerade other types.
- if dict.functions.has_key(id):
- continue
- if dict.variables.has_key(id):
- continue
- if dict.typedefs.has_key(id):
- continue
- if dict.structs.has_key(id):
- continue
- if dict.enums.has_key(id):
- continue
- output.write(" <exports symbol='%s' type='macro'/>\n" % (id))
- ids = dict.enums.keys()
- ids.sort()
- for id in uniq(ids):
- output.write(" <exports symbol='%s' type='enum'/>\n" % (id))
- ids = dict.typedefs.keys()
- ids.sort()
- for id in uniq(ids):
- output.write(" <exports symbol='%s' type='typedef'/>\n" % (id))
- ids = dict.structs.keys()
- ids.sort()
- for id in uniq(ids):
- output.write(" <exports symbol='%s' type='struct'/>\n" % (id))
- ids = dict.variables.keys()
- ids.sort()
- for id in uniq(ids):
- output.write(" <exports symbol='%s' type='variable'/>\n" % (id))
- ids = dict.functions.keys()
- ids.sort()
- for id in uniq(ids):
- output.write(" <exports symbol='%s' type='function'/>\n" % (id))
- output.write(" </file>\n")
-
- def serialize_xrefs_files(self, output):
- headers = self.headers.keys()
- headers.sort()
- for file in headers:
- module = self.modulename_file(file)
- output.write(" <file name='%s'>\n" % (module))
- dict = self.headers[file]
- ids = uniq(dict.functions.keys() + dict.variables.keys() + \
- dict.macros.keys() + dict.typedefs.keys() + \
- dict.structs.keys() + dict.enums.keys())
- ids.sort()
- for id in ids:
- output.write(" <ref name='%s'/>\n" % (id))
- output.write(" </file>\n")
- pass
-
- def serialize_xrefs_functions(self, output):
- funcs = {}
- for name in self.idx.functions.keys():
- id = self.idx.functions[name]
- try:
- (ret, params, desc) = id.info
- for param in params:
- if param[0] == 'void':
- continue
- if funcs.has_key(param[0]):
- funcs[param[0]].append(name)
- else:
- funcs[param[0]] = [name]
- except:
- pass
- typ = funcs.keys()
- typ.sort()
- for type in typ:
- if type == '' or type == 'void' or type == "int" or \
- type == "char *" or type == "const char *" :
- continue
- output.write(" <type name='%s'>\n" % (type))
- ids = funcs[type]
- ids.sort()
- pid = '' # not sure why we have dups, but get rid of them!
- for id in ids:
- if id != pid:
- output.write(" <ref name='%s'/>\n" % (id))
- pid = id
- output.write(" </type>\n")
-
- def serialize_xrefs_constructors(self, output):
- funcs = {}
- for name in self.idx.functions.keys():
- id = self.idx.functions[name]
- try:
- (ret, params, desc) = id.info
- if ret[0] == "void":
- continue
- if funcs.has_key(ret[0]):
- funcs[ret[0]].append(name)
- else:
- funcs[ret[0]] = [name]
- except:
- pass
- typ = funcs.keys()
- typ.sort()
- for type in typ:
- if type == '' or type == 'void' or type == "int" or \
- type == "char *" or type == "const char *" :
- continue
- output.write(" <type name='%s'>\n" % (type))
- ids = funcs[type]
- ids.sort()
- for id in ids:
- output.write(" <ref name='%s'/>\n" % (id))
- output.write(" </type>\n")
-
- def serialize_xrefs_alpha(self, output):
- letter = None
- ids = self.idx.identifiers.keys()
- ids.sort()
- for id in ids:
- if id[0] != letter:
- if letter != None:
- output.write(" </letter>\n")
- letter = id[0]
- output.write(" <letter name='%s'>\n" % (letter))
- output.write(" <ref name='%s'/>\n" % (id))
- if letter != None:
- output.write(" </letter>\n")
-
- def serialize_xrefs_references(self, output):
- typ = self.idx.identifiers.keys()
- typ.sort()
- for id in typ:
- idf = self.idx.identifiers[id]
- module = idf.module
- output.write(" <reference name='%s' href='%s'/>\n" % (id,
- 'html/' + self.basename + '-' +
- self.modulename_file(module) + '.html#' +
- id))
-
- def serialize_xrefs_index(self, output):
- index = self.xref
- typ = index.keys()
- typ.sort()
- letter = None
- count = 0
- chunk = 0
- chunks = []
- for id in typ:
- if len(index[id]) > 30:
- continue
- if id[0] != letter:
- if letter == None or count > 200:
- if letter != None:
- output.write(" </letter>\n")
- output.write(" </chunk>\n")
- count = 0
- chunks.append(["chunk%s" % (chunk -1), first_letter, letter])
- output.write(" <chunk name='chunk%s'>\n" % (chunk))
- first_letter = id[0]
- chunk = chunk + 1
- elif letter != None:
- output.write(" </letter>\n")
- letter = id[0]
- output.write(" <letter name='%s'>\n" % (letter))
- output.write(" <word name='%s'>\n" % (id))
- tokens = index[id];
- tokens.sort()
- tok = None
- for token in tokens:
- if tok == token:
- continue
- tok = token
- output.write(" <ref name='%s'/>\n" % (token))
- count = count + 1
- output.write(" </word>\n")
- if letter != None:
- output.write(" </letter>\n")
- output.write(" </chunk>\n")
- if count != 0:
- chunks.append(["chunk%s" % (chunk -1), first_letter, letter])
- output.write(" <chunks>\n")
- for ch in chunks:
- output.write(" <chunk name='%s' start='%s' end='%s'/>\n" % (
- ch[0], ch[1], ch[2]))
- output.write(" </chunks>\n")
-
- def serialize_xrefs(self, output):
- output.write(" <references>\n")
- self.serialize_xrefs_references(output)
- output.write(" </references>\n")
- output.write(" <alpha>\n")
- self.serialize_xrefs_alpha(output)
- output.write(" </alpha>\n")
- output.write(" <constructors>\n")
- self.serialize_xrefs_constructors(output)
- output.write(" </constructors>\n")
- output.write(" <functions>\n")
- self.serialize_xrefs_functions(output)
- output.write(" </functions>\n")
- output.write(" <files>\n")
- self.serialize_xrefs_files(output)
- output.write(" </files>\n")
- output.write(" <index>\n")
- self.serialize_xrefs_index(output)
- output.write(" </index>\n")
-
- def serialize(self, outdir):
- filename = outdir + "%s-api.xml" % self.name
- print "Saving XML description %s" % (filename)
+ output.write(" <file name='%s'>\n" % (module))
+ dict = self.headers[file]
+ if dict.info != None:
+ for data in ('Summary', 'Description', 'Author'):
+ try:
+ output.write(" <%s>%s</%s>\n" % (
+ data.lower(),
+ escape(dict.info[data]),
+ data.lower()))
+ except:
+ print("Header %s lacks a %s description" % (module, data))
+ if 'Description' in dict.info:
+ desc = dict.info['Description']
+ if desc.find("DEPRECATED") != -1:
+ output.write(" <deprecated/>\n")
+
+ ids = list(dict.macros.keys())
+ ids.sort()
+ for id in ids:
+ # Macros are sometime used to masquerade other types.
+ if id in dict.functions:
+ continue
+ if id in dict.variables:
+ continue
+ if id in dict.typedefs:
+ continue
+ if id in dict.structs:
+ continue
+ if id in dict.enums:
+ continue
+ output.write(" <exports symbol='%s' type='macro'/>\n" % (id))
+ ids = list(dict.enums.keys())
+ ids.sort()
+ for id in ids:
+ output.write(" <exports symbol='%s' type='enum'/>\n" % (id))
+ ids = list(dict.typedefs.keys())
+ ids.sort()
+ for id in ids:
+ output.write(" <exports symbol='%s' type='typedef'/>\n" % (id))
+ ids = list(dict.structs.keys())
+ ids.sort()
+ for id in ids:
+ output.write(" <exports symbol='%s' type='struct'/>\n" % (id))
+ ids = list(dict.variables.keys())
+ ids.sort()
+ for id in ids:
+ output.write(" <exports symbol='%s' type='variable'/>\n" % (id))
+ ids = list(dict.functions.keys())
+ ids.sort()
+ for id in ids:
+ output.write(" <exports symbol='%s' type='function'/>\n" % (id))
+ output.write(" </file>\n")
+
+ def serialize(self):
+ filename = "%s-api.xml" % self.name
+ if self.outdir:
+ filename = "%s/%s" % (self.outdir, filename)
+ print("Saving XML description %s" % (filename))
output = open(filename, "w")
output.write('<?xml version="1.0" encoding="ISO-8859-1"?>\n')
output.write("<api name='%s'>\n" % self.name)
output.write(" <files>\n")
- headers = self.headers.keys()
+ headers = list(self.headers.keys())
headers.sort()
for file in headers:
self.serialize_exports(output, file)
output.write(" </files>\n")
output.write(" <symbols>\n")
- macros = self.idx.macros.keys()
+ macros = list(self.idx.macros.keys())
macros.sort()
for macro in macros:
self.serialize_macro(output, macro)
- enums = self.idx.enums.keys()
+ enums = list(self.idx.enums.keys())
enums.sort()
for enum in enums:
self.serialize_enum(output, enum)
- typedefs = self.idx.typedefs.keys()
+ typedefs = list(self.idx.typedefs.keys())
typedefs.sort()
for typedef in typedefs:
self.serialize_typedef(output, typedef)
- variables = self.idx.variables.keys()
+ variables = list(self.idx.variables.keys())
variables.sort()
for variable in variables:
self.serialize_variable(output, variable)
- functions = self.idx.functions.keys()
+ functions = list(self.idx.functions.keys())
functions.sort()
for function in functions:
self.serialize_function(output, function)
output.write("</api>\n")
output.close()
- filename = outdir + "%s-refs.xml" % self.name
- print "Saving XML Cross References %s" % (filename)
- output = open(filename, "w")
- output.write('<?xml version="1.0" encoding="ISO-8859-1"?>\n')
- output.write("<apirefs name='%s'>\n" % self.name)
- self.serialize_xrefs(output)
- output.write("</apirefs>\n")
- output.close()
-
def rebuild():
builder = None
if glob.glob("parser.c") != [] :
- print "Rebuilding API description for libxml2"
- builder = docBuilder("libxml2", [".", "."],
- ["xmlwin32version.h", "tst.c"])
+ print("Rebuilding API description for libxml2")
+ builder = docBuilder("libxml2", [".", "."],
+ ["tst.c"])
elif glob.glob("../parser.c") != [] :
- print "Rebuilding API description for libxml2"
- builder = docBuilder("libxml2", ["..", "../include/libxml"],
- ["xmlwin32version.h", "tst.c"])
+ print("Rebuilding API description for libxml2")
+ builder = docBuilder("libxml2", ["..", "../include/libxml"],
+ ["tst.c"])
elif glob.glob("../libxslt/transform.c") != [] :
- print "Rebuilding API description for libxslt"
- builder = docBuilder("libxslt", ["../libxslt"],
- ["win32config.h", "libxslt.h", "tst.c"])
+ print("Rebuilding API description for libxslt")
+ builder = docBuilder("libxslt", ["../libxslt"],
+ ["win32config.h", "libxslt.h", "tst.c"])
else:
- print "rebuild() failed, unable to guess the module"
- return None
+ print("rebuild() failed, unable to guess the module")
+ return None
builder.scan()
builder.analyze()
- builder.serialize("./")
+ builder.serialize()
if glob.glob("../libexslt/exslt.c") != [] :
extra = docBuilder("libexslt", ["../libexslt"], ["libexslt.h"])
- extra.scan()
- extra.analyze()
- extra.serialize("EXSLT/")
+ extra.outdir = "EXSLT"
+ extra.scan()
+ extra.analyze()
+ extra.serialize()
return builder
#
return idx
if __name__ == "__main__":
- rebuild()
+ if len(sys.argv) > 1:
+ debug = 1
+ parse(sys.argv[1])
+ else:
+ rebuild()
+++ /dev/null
-<?xml version="1.0"?>
-<!-- This stylesheet is used to check that symbols exported
- from libxml2-api.xml are also present in the symbol file
- symbols.xml which is used to generate libxml2.syms setting
- up the allowed access point to the shared libraries -->
-
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version="1.0">
- <xsl:output method="text" encoding="UTF-8"/>
-
- <xsl:variable name="syms" select="document('symbols.xml')"/>
-
- <xsl:template match="/">
- <xsl:message terminate="no">
- <xsl:text>Looking for functions in symbols.xml</xsl:text>
- </xsl:message>
- <xsl:apply-templates select="/api/symbols/function"/>
- <xsl:message terminate="no">
- <xsl:text>Found </xsl:text>
- <xsl:value-of select="count(/api/symbols/function)"/>
- <xsl:text> functions</xsl:text>
- </xsl:message>
- <xsl:message terminate="no">
- <xsl:text>Looking for variables in symbols.xml</xsl:text>
- </xsl:message>
- <xsl:apply-templates select="/api/symbols/variable"/>
- <xsl:message terminate="no">
- <xsl:text>Found </xsl:text>
- <xsl:value-of select="count(/api/symbols/variable)"/>
- <xsl:text> variables</xsl:text>
- </xsl:message>
- </xsl:template>
-
- <xsl:template match="function|variable">
- <xsl:variable name="name" select="@name"/>
- <xsl:variable name="symbol"
- select="$syms/symbols/release/symbol[. = $name]"/>
- <xsl:if test="string($symbol) != $name">
- <xsl:message terminate="yes">
- <xsl:text>Failed to find export in symbols.xml: </xsl:text>
- <xsl:value-of select="$name"/>
- </xsl:message>
- </xsl:if>
- </xsl:template>
-
-</xsl:stylesheet>
-
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">void <a href="#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-void <a href="#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
-void <a href="#xsltApplyAttributeSet">xsltApplyAttributeSet</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> const xmlChar * attrSets);
+ <pre class="synopsis">void <a href="#xsltApplyAttributeSet">xsltApplyAttributeSet</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> const xmlChar * attrSets);
void <a href="#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void <a href="#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
+void <a href="#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
</pre>
</div>
<div class="refsect1" lang="en">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">typedef enum <a href="#xsltLoadType">xsltLoadType</a>;
-void <a href="#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
typedef xmlDocPtr <a href="#xsltDocLoaderFunc">xsltDocLoaderFunc</a> (const xmlChar * URI, <br/> xmlDictPtr dict, <br/> int options, <br/> void * ctxt, <br/> <a href="libxslt-documents.html#xsltLoadType">xsltLoadType</a> type);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltFindDocument">xsltFindDocument</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr doc);
+void <a href="#xsltFreeDocuments">xsltFreeDocuments</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltLoadDocument">xsltLoadDocument</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltLoadStyleDocument">xsltLoadStyleDocument</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltNewDocument">xsltNewDocument</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr doc);
<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltNewStyleDocument">xsltNewStyleDocument</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc);
void <a href="#xsltSetLoaderFunc">xsltSetLoaderFunc</a> (<a href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> f);
-void <a href="#xsltFreeDocuments">xsltFreeDocuments</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltNewDocument">xsltNewDocument</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr doc);
-<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltLoadStyleDocument">xsltLoadStyleDocument</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
-<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> <a href="#xsltFindDocument">xsltFindDocument</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr doc);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">int <a href="#xsltRegisterExtFunction">xsltRegisterExtFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * URI, <br/> xmlXPathFunction function);
-int <a href="#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a> (const xmlChar * name, <br/> const xmlChar * URI, <br/> <a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> transform);
-int <a href="#xsltInitCtxtExts">xsltInitCtxtExts</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-void * <a href="#xsltGetExtData">xsltGetExtData</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URI);
-void * <a href="#xsltStyleGetExtData">xsltStyleGetExtData</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
-typedef void * <a href="#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
-void <a href="#xsltInitGlobals">xsltInitGlobals</a> (void);
-void <a href="#xsltShutdownExts">xsltShutdownExts</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-<a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> <a href="#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a> (const xmlChar * name, <br/> const xmlChar * URI);
-void <a href="#xsltRegisterTestModule">xsltRegisterTestModule</a> (void);
-void * <a href="#xsltStyleStylesheetLevelGetExtData">xsltStyleStylesheetLevelGetExtData</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
-<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> <a href="#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a> (const xmlChar * name, <br/> const xmlChar * URI);
-typedef void <a href="#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI, <br/> void * data);
-void <a href="#xsltInitElemPreComp">xsltInitElemPreComp</a> (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc);
+ <pre class="synopsis">int <a href="#xsltCheckExtPrefix">xsltCheckExtPrefix</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+int <a href="#xsltCheckExtURI">xsltCheckExtURI</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
void <a href="#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a> (FILE * output);
-xmlHashTablePtr <a href="#xsltGetExtInfo">xsltGetExtInfo</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> <a href="#xsltExtElementLookup">xsltExtElementLookup</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * URI);
+typedef void * <a href="#xsltExtInitFunction">xsltExtInitFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> <a href="#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a> (const xmlChar * name, <br/> const xmlChar * URI);
+<a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> <a href="#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a> (const xmlChar * name, <br/> const xmlChar * URI);
+xmlXPathFunction <a href="#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a> (const xmlChar * name, <br/> const xmlChar * URI);
<a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> <a href="#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a> (const xmlChar * name, <br/> const xmlChar * URI);
+typedef void <a href="#xsltExtShutdownFunction">xsltExtShutdownFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URI, <br/> void * data);
+void <a href="#xsltFreeCtxtExts">xsltFreeCtxtExts</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
void <a href="#xsltFreeExts">xsltFreeExts</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-int <a href="#xsltCheckExtURI">xsltCheckExtURI</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
-xmlXPathFunction <a href="#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a> (const xmlChar * name, <br/> const xmlChar * URI);
+void * <a href="#xsltGetExtData">xsltGetExtData</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URI);
+xmlHashTablePtr <a href="#xsltGetExtInfo">xsltGetExtInfo</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+int <a href="#xsltInitCtxtExts">xsltInitCtxtExts</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltInitElemPreComp">xsltInitElemPreComp</a> (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc);
+void <a href="#xsltInitGlobals">xsltInitGlobals</a> (void);
+<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a href="#xsltNewElemPreComp">xsltNewElemPreComp</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a href="#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst);
-int <a href="#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a> (const xmlChar * name, <br/> const xmlChar * URI, <br/> <a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function);
typedef <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a href="#xsltPreComputeFunction">xsltPreComputeFunction</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
-typedef void <a href="#xsltTopLevelFunction">xsltTopLevelFunction</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst);
-void <a href="#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> <a href="#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a> (xmlXPathParserContextPtr ctxt);
int <a href="#xsltRegisterExtElement">xsltRegisterExtElement</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * URI, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
-typedef void * <a href="#xsltExtInitFunction">xsltExtInitFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URI);
-void <a href="#xsltFreeCtxtExts">xsltFreeCtxtExts</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-int <a href="#xsltUnregisterExtModule">xsltUnregisterExtModule</a> (const xmlChar * URI);
-int <a href="#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a> (const xmlChar * URI, <br/> <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/> <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc, <br/> <a href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br/> <a href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> styleShutdownFunc);
-int <a href="#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a> (const xmlChar * name, <br/> const xmlChar * URI);
-<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a href="#xsltNewElemPreComp">xsltNewElemPreComp</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
-int <a href="#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a> (const xmlChar * name, <br/> const xmlChar * URI);
-int <a href="#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a> (const xmlChar * name, <br/> const xmlChar * URI);
-int <a href="#xsltCheckExtPrefix">xsltCheckExtPrefix</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+int <a href="#xsltRegisterExtFunction">xsltRegisterExtFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * URI, <br/> xmlXPathFunction function);
int <a href="#xsltRegisterExtModule">xsltRegisterExtModule</a> (const xmlChar * URI, <br/> <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/> <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc);
-<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> <a href="#xsltExtElementLookup">xsltExtElementLookup</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * URI);
+int <a href="#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a> (const xmlChar * name, <br/> const xmlChar * URI, <br/> <a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> transform);
+int <a href="#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a> (const xmlChar * URI, <br/> <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/> <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc, <br/> <a href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br/> <a href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> styleShutdownFunc);
int <a href="#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a> (const xmlChar * name, <br/> const xmlChar * URI, <br/> xmlXPathFunction function);
+int <a href="#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a> (const xmlChar * name, <br/> const xmlChar * URI, <br/> <a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function);
int <a href="#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * prefix, <br/> const xmlChar * URI);
-typedef void <a href="#xsltExtShutdownFunction">xsltExtShutdownFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URI, <br/> void * data);
+void <a href="#xsltRegisterTestModule">xsltRegisterTestModule</a> (void);
+void <a href="#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltShutdownExts">xsltShutdownExts</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+typedef void * <a href="#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+typedef void <a href="#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI, <br/> void * data);
+void * <a href="#xsltStyleGetExtData">xsltStyleGetExtData</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+void * <a href="#xsltStyleStylesheetLevelGetExtData">xsltStyleStylesheetLevelGetExtData</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * URI);
+typedef void <a href="#xsltTopLevelFunction">xsltTopLevelFunction</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst);
+int <a href="#xsltUnregisterExtModule">xsltUnregisterExtModule</a> (const xmlChar * URI);
+int <a href="#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a> (const xmlChar * name, <br/> const xmlChar * URI);
+int <a href="#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a> (const xmlChar * name, <br/> const xmlChar * URI);
+int <a href="#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a> (const xmlChar * name, <br/> const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> <a href="#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a> (xmlXPathParserContextPtr ctxt);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a>;
-#define <a href="#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a>;
+ <pre class="synopsis">#define <a href="#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a>;
#define <a href="#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a>;
-#define <a href="#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a>;
-void <a href="#xsltFunctionNodeSet">xsltFunctionNodeSet</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
-void <a href="#xsltRegisterExtras">xsltRegisterExtras</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+#define <a href="#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a>;
+#define <a href="#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a>;
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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void <a href="#xsltFunctionNodeSet">xsltFunctionNodeSet</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
void <a href="#xsltRegisterAllExtras">xsltRegisterAllExtras</a> (void);
+void <a href="#xsltRegisterExtras">xsltRegisterExtras</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
</pre>
</div>
<div class="refsect1" lang="en">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">#define <a href="#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a>;
-xmlXPathFunction <a href="#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a> (void * vctxt, <br/> const xmlChar * name, <br/> const xmlChar * ns_uri);
-void <a href="#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
-void <a href="#xsltFormatNumberFunction">xsltFormatNumberFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
-void <a href="#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a> (xmlXPathContextPtr ctxt);
-void <a href="#xsltKeyFunction">xsltKeyFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
-void <a href="#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
void <a href="#xsltDocumentFunction">xsltDocumentFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
-void <a href="#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
void <a href="#xsltElementAvailableFunction">xsltElementAvailableFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
+void <a href="#xsltFormatNumberFunction">xsltFormatNumberFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
+void <a href="#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
void <a href="#xsltGenerateIdFunction">xsltGenerateIdFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
+void <a href="#xsltKeyFunction">xsltKeyFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
+void <a href="#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a> (xmlXPathContextPtr ctxt);
+void <a href="#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
+void <a href="#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a> (xmlXPathParserContextPtr ctxt, <br/> int nargs);
+xmlXPathFunction <a href="#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a> (void * vctxt, <br/> const xmlChar * name, <br/> const xmlChar * ns_uri);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a>;
-#define <a href="#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a>;
+ <pre class="synopsis">#define <a href="#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a>;
+#define <a href="#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a>;
+int <a href="#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node);
<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> <a href="#xsltFindTemplate">xsltFindTemplate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * nameURI);
-<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltNextImport">xsltNextImport</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> cur);
-int <a href="#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
int <a href="#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-int <a href="#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltNextImport">xsltNextImport</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> cur);
int <a href="#xsltParseStylesheetImport">xsltParseStylesheetImport</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
+int <a href="#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
</pre>
</div>
<div class="refsect1" lang="en">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">#define <a href="#NODE_IS_KEYED">NODE_IS_KEYED</a>;
-void <a href="#xsltInitCtxtKeys">xsltInitCtxtKeys</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc);
+int <a href="#xsltAddKey">xsltAddKey</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * name, <br/> const xmlChar * nameURI, <br/> const xmlChar * match, <br/> const xmlChar * use, <br/> xmlNodePtr inst);
+void <a href="#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a> (<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc);
void <a href="#xsltFreeKeys">xsltFreeKeys</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
xmlNodeSetPtr <a href="#xsltGetKey">xsltGetKey</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * nameURI, <br/> const xmlChar * value);
-void <a href="#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a> (<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc);
-int <a href="#xsltAddKey">xsltAddKey</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * name, <br/> const xmlChar * nameURI, <br/> const xmlChar * match, <br/> const xmlChar * use, <br/> xmlNodePtr inst);
+void <a href="#xsltInitCtxtKeys">xsltInitCtxtKeys</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc);
</pre>
</div>
<div class="refsect1" lang="en">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">#define <a href="#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a>;
-void <a href="#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
xmlNsPtr <a href="#xsltCopyNamespace">xsltCopyNamespace</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr elem, <br/> xmlNsPtr ns);
xmlNsPtr <a href="#xsltCopyNamespaceList">xsltCopyNamespaceList</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNsPtr cur);
+void <a href="#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
xmlNsPtr <a href="#xsltGetNamespace">xsltGetNamespace</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr cur, <br/> xmlNsPtr ns, <br/> xmlNodePtr out);
xmlNsPtr <a href="#xsltGetPlainNamespace">xsltGetPlainNamespace</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr cur, <br/> xmlNsPtr ns, <br/> xmlNodePtr out);
xmlNsPtr <a href="#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr invocNode, <br/> const xmlChar * nsName, <br/> const xmlChar * nsPrefix, <br/> xmlNodePtr target);
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">typedef struct _xsltFormatNumberInfo <a href="#xsltFormatNumberInfo">xsltFormatNumberInfo</a>;
+typedef <a href="libxslt-numbersInternals.html#xsltFormatNumberInfo">xsltFormatNumberInfo</a> * <a href="#xsltFormatNumberInfoPtr">xsltFormatNumberInfoPtr</a>;
typedef struct _xsltNumberData <a href="#xsltNumberData">xsltNumberData</a>;
typedef <a href="libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a> * <a href="#xsltNumberDataPtr">xsltNumberDataPtr</a>;
-typedef <a href="libxslt-numbersInternals.html#xsltFormatNumberInfo">xsltFormatNumberInfo</a> * <a href="#xsltFormatNumberInfoPtr">xsltFormatNumberInfoPtr</a>;
</pre>
</div>
<div class="refsect1" lang="en">
<h2>Synopsis</h2>
<pre class="synopsis">typedef struct _xsltCompMatch <a href="#xsltCompMatch">xsltCompMatch</a>;
typedef <a href="libxslt-pattern.html#xsltCompMatch">xsltCompMatch</a> * <a href="#xsltCompMatchPtr">xsltCompMatchPtr</a>;
-void <a href="#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a> (void * payload, <br/> void * data, <br/> const xmlChar * name);
int <a href="#xsltAddTemplate">xsltAddTemplate</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> cur, <br/> const xmlChar * mode, <br/> const xmlChar * modeURI);
-<a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> <a href="#xsltCompilePattern">xsltCompilePattern</a> (const xmlChar * pattern, <br/> xmlDocPtr doc, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> runtime);
-int <a href="#xsltMatchPattern">xsltMatchPattern</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> const xmlChar * pattern, <br/> xmlDocPtr ctxtdoc, <br/> xmlNodePtr ctxtnode);
-<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> <a href="#xsltGetTemplate">xsltGetTemplate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void <a href="#xsltCleanupTemplates">xsltCleanupTemplates</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
void <a href="#xsltCompMatchClearCache">xsltCompMatchClearCache</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp);
-int <a href="#xsltTestCompMatchList">xsltTestCompMatchList</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> <a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp);
+<a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> <a href="#xsltCompilePattern">xsltCompilePattern</a> (const xmlChar * pattern, <br/> xmlDocPtr doc, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> runtime);
void <a href="#xsltFreeCompMatchList">xsltFreeCompMatchList</a> (<a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp);
void <a href="#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-void <a href="#xsltCleanupTemplates">xsltCleanupTemplates</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> <a href="#xsltGetTemplate">xsltGetTemplate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+int <a href="#xsltMatchPattern">xsltMatchPattern</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> const xmlChar * pattern, <br/> xmlDocPtr ctxtdoc, <br/> xmlNodePtr ctxtnode);
+void <a href="#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a> (void * payload, <br/> void * data, <br/> const xmlChar * name);
+int <a href="#xsltTestCompMatchList">xsltTestCompMatchList</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> <a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">void <a href="#xsltFreeStylePreComps">xsltFreeStylePreComps</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a href="#xsltDocumentComp">xsltDocumentComp</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
+ <pre class="synopsis"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a href="#xsltDocumentComp">xsltDocumentComp</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
+void <a href="#xsltFreeStylePreComps">xsltFreeStylePreComps</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
void <a href="#xsltStylePreCompute">xsltStylePreCompute</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst);
</pre>
</div>
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">typedef struct _xsltSecurityPrefs <a href="#xsltSecurityPrefs">xsltSecurityPrefs</a>;
+ <pre class="synopsis">typedef enum <a href="#xsltSecurityOption">xsltSecurityOption</a>;
+typedef struct _xsltSecurityPrefs <a href="#xsltSecurityPrefs">xsltSecurityPrefs</a>;
typedef <a href="libxslt-security.html#xsltSecurityPrefs">xsltSecurityPrefs</a> * <a href="#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>;
-typedef enum <a href="#xsltSecurityOption">xsltSecurityOption</a>;
-<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> <a href="#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a> (void);
-typedef int <a href="#xsltSecurityCheck">xsltSecurityCheck</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char * value);
-int <a href="#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option, <br/> <a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a> func);
-<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> <a href="#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a> (void);
+int <a href="#xsltCheckRead">xsltCheckRead</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URL);
+int <a href="#xsltCheckWrite">xsltCheckWrite</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URL);
void <a href="#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec);
-void <a href="#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec);
-int <a href="#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> <a href="#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a> (void);
<a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a> <a href="#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option);
+<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> <a href="#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a> (void);
int <a href="#xsltSecurityAllow">xsltSecurityAllow</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char * value);
-int <a href="#xsltCheckWrite">xsltCheckWrite</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URL);
-int <a href="#xsltCheckRead">xsltCheckRead</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * URL);
+typedef int <a href="#xsltSecurityCheck">xsltSecurityCheck</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char * value);
int <a href="#xsltSecurityForbid">xsltSecurityForbid</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char * value);
+int <a href="#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec);
+int <a href="#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a> (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/> <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option, <br/> <a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a> func);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">const xmlChar * <a href="#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> const xmlChar * name, <br/> const xmlChar * ns, <br/> int * found);
-xmlAttrPtr <a href="#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr target, <br/> xmlAttrPtr attrs);
-xmlChar * <a href="#xsltEvalTemplateString">xsltEvalTemplateString</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr inst);
-xmlChar * <a href="#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * str);
+ <pre class="synopsis">xmlAttrPtr <a href="#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr target, <br/> xmlAttrPtr attrs);
xmlAttrPtr <a href="#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr target, <br/> xmlAttrPtr attr);
+xmlChar * <a href="#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * str);
+xmlChar * <a href="#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * str, <br/> xmlNodePtr inst);
xmlChar * <a href="#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr inst, <br/> const xmlChar * name, <br/> const xmlChar * ns);
+const xmlChar * <a href="#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr inst, <br/> const xmlChar * name, <br/> const xmlChar * ns, <br/> int * found);
+xmlChar * <a href="#xsltEvalTemplateString">xsltEvalTemplateString</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr inst);
int <a href="#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathCompExprPtr comp, <br/> xmlNsPtr * nsList, <br/> int nsNr);
-xmlChar * <a href="#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * str, <br/> xmlNodePtr inst);
-xmlNodePtr * <a href="#xsltTemplateProcess">xsltTemplateProcess</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node);
-xmlChar * <a href="#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathCompExprPtr comp, <br/> int nsNr, <br/> xmlNsPtr * nsList);
xmlChar * <a href="#xsltEvalXPathString">xsltEvalXPathString</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathCompExprPtr comp);
+xmlChar * <a href="#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathCompExprPtr comp, <br/> int nsNr, <br/> xmlNsPtr * nsList);
+xmlNodePtr * <a href="#xsltTemplateProcess">xsltTemplateProcess</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">void <a href="#xsltValueOf">xsltValueOf</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-void <a href="#xsltRegisterAllElement">xsltRegisterAllElement</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-void <a href="#xsltSort">xsltSort</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
-void <a href="#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a> (int xinclude);
-void <a href="#xsltCopyOf">xsltCopyOf</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+ <pre class="synopsis">void <a href="#xslHandleDebugger">xslHandleDebugger</a> (xmlNodePtr cur, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltApplyImports">xsltApplyImports</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void <a href="#xsltApplyOneTemplate">xsltApplyOneTemplate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr list, <br/> <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> params);
+void <a href="#xsltApplyStripSpaces">xsltApplyStripSpaces</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node);
+xmlDocPtr <a href="#xsltApplyStylesheet">xsltApplyStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params);
+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);
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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-void <a href="#xsltIf">xsltIf</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-xmlDocPtr <a href="#xsltApplyStylesheet">xsltApplyStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params);
-void <a href="#xsltApplyStripSpaces">xsltApplyStripSpaces</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node);
-int <a href="#xsltLocalVariablePush">xsltLocalVariablePush</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> variable, <br/> int level);
-void <a href="#xsltFreeTransformContext">xsltFreeTransformContext</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-int <a href="#xsltRunStylesheet">xsltRunStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params, <br/> const char * output, <br/> xmlSAXHandlerPtr SAX, <br/> xmlOutputBufferPtr IObuf);
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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
-xmlNodePtr <a href="#xsltCopyTextString">xsltCopyTextString</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr target, <br/> const xmlChar * string, <br/> int noescape);
-void <a href="#xsltText">xsltText</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
-void <a href="#xsltProcessOneNode">xsltProcessOneNode</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> withParams);
-void <a href="#xsltLocalVariablePop">xsltLocalVariablePop</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> int limitNr, <br/> int level);
-void <a href="#xsltNumber">xsltNumber</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-int <a href="#xsltRunStylesheetUser">xsltRunStylesheetUser</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params, <br/> const char * output, <br/> xmlSAXHandlerPtr SAX, <br/> xmlOutputBufferPtr IObuf, <br/> FILE * profile, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt);
-<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> <a href="#xsltNewTransformContext">xsltNewTransformContext</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc);
-int <a href="#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a> (void);
-void <a href="#xsltApplyOneTemplate">xsltApplyOneTemplate</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr list, <br/> <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> params);
-void <a href="#xslHandleDebugger">xslHandleDebugger</a> (xmlNodePtr cur, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
void <a href="#xsltCopy">xsltCopy</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+void <a href="#xsltCopyOf">xsltCopyOf</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+xmlNodePtr <a href="#xsltCopyTextString">xsltCopyTextString</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr target, <br/> const xmlChar * string, <br/> int noescape);
void <a href="#xsltDocumentElem">xsltDocumentElem</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-void <a href="#xsltApplyImports">xsltApplyImports</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
void <a href="#xsltElement">xsltElement</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-xmlDocPtr <a href="#xsltProfileStylesheet">xsltProfileStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params, <br/> FILE * output);
void <a href="#xsltForEach">xsltForEach</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-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);
+void <a href="#xsltFreeTransformContext">xsltFreeTransformContext</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int <a href="#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a> (void);
+void <a href="#xsltIf">xsltIf</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+void <a href="#xsltLocalVariablePop">xsltLocalVariablePop</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> int limitNr, <br/> int level);
+int <a href="#xsltLocalVariablePush">xsltLocalVariablePush</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> variable, <br/> int level);
+<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> <a href="#xsltNewTransformContext">xsltNewTransformContext</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc);
+void <a href="#xsltNumber">xsltNumber</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+void <a href="#xsltProcessOneNode">xsltProcessOneNode</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr contextNode, <br/> <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> withParams);
void <a href="#xsltProcessingInstruction">xsltProcessingInstruction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
-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#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+xmlDocPtr <a href="#xsltProfileStylesheet">xsltProfileStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params, <br/> FILE * output);
+void <a href="#xsltRegisterAllElement">xsltRegisterAllElement</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int <a href="#xsltRunStylesheet">xsltRunStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params, <br/> const char * output, <br/> xmlSAXHandlerPtr SAX, <br/> xmlOutputBufferPtr IObuf);
+int <a href="#xsltRunStylesheetUser">xsltRunStylesheetUser</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc, <br/> const char ** params, <br/> const char * output, <br/> xmlSAXHandlerPtr SAX, <br/> xmlOutputBufferPtr IObuf, <br/> FILE * profile, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt);
+void <a href="#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a> (int xinclude);
+void <a href="#xsltSort">xsltSort</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void <a href="#xsltText">xsltText</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void <a href="#xsltValueOf">xsltValueOf</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
</pre>
</div>
<div class="refsect1" lang="en">
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltFreeTransformContext"/>xsltFreeTransformContext ()</h3><pre class="programlisting">void xsltFreeTransformContext (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
</pre><p>Free up the memory allocated by @ctxt</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 parser context</td></tr></tbody></table></div></div>
+<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 transform context</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltGetXIncludeDefault"/>xsltGetXIncludeDefault ()</h3><pre class="programlisting">int xsltGetXIncludeDefault (void)<br/>
</pre><p>Provides the default state for XInclude processing</p>
#define <a href="#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a>;
#define <a href="#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a>;
#define <a href="#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a>;
-void <a href="#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-int <a href="#xsltQuoteUserParams">xsltQuoteUserParams</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char ** params);
-xmlXPathObjectPtr <a href="#xsltXPathVariableLookup">xsltXPathVariableLookup</a> (void * ctxt, <br/> const xmlChar * name, <br/> const xmlChar * ns_uri);
-int <a href="#xsltEvalUserParams">xsltEvalUserParams</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char ** params);
-<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> <a href="#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr inst);
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);
-void <a href="#xsltParseGlobalVariable">xsltParseGlobalVariable</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
-int <a href="#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * value);
-void <a href="#xsltParseGlobalParam">xsltParseGlobalParam</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
-void <a href="#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr inst);
int <a href="#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
int <a href="#xsltEvalOneUserParam">xsltEvalOneUserParam</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * value);
+int <a href="#xsltEvalUserParams">xsltEvalUserParams</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char ** params);
+void <a href="#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltParseGlobalParam">xsltParseGlobalParam</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
+void <a href="#xsltParseGlobalVariable">xsltParseGlobalVariable</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
+<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> <a href="#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr inst);
void <a href="#xsltParseStylesheetParam">xsltParseStylesheetParam</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr cur);
+void <a href="#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr inst);
+int <a href="#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * value);
+int <a href="#xsltQuoteUserParams">xsltQuoteUserParams</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const char ** params);
xmlXPathObjectPtr <a href="#xsltVariableLookup">xsltVariableLookup</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> const xmlChar * name, <br/> const xmlChar * ns_uri);
+xmlXPathObjectPtr <a href="#xsltXPathVariableLookup">xsltXPathVariableLookup</a> (void * ctxt, <br/> const xmlChar * name, <br/> const xmlChar * ns_uri);
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a>;
+ <pre class="synopsis">#define <a href="#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a>;
#define <a href="#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a>;
-#define <a href="#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a>;
-#define <a href="#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a>;
+#define <a href="#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a>;
#define <a href="#XSLT_NAMESPACE">XSLT_NAMESPACE</a>;
+#define <a href="#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a>;
void <a href="#xsltCleanupGlobals">xsltCleanupGlobals</a> (void);
void <a href="#xsltInit">xsltInit</a> (void);
</pre>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltEngineVersion">Variable </a>xsltEngineVersion</h3><pre class="programlisting">const char * xsltEngineVersion;
-</pre><p/>
+</pre><p>The version string for libxslt.</p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltLibxmlVersion">Variable </a>xsltLibxmlVersion</h3><pre class="programlisting">const int xsltLibxmlVersion;
-</pre><p/>
+</pre><p>The version of libxml libxslt was compiled against.</p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltLibxsltVersion">Variable </a>xsltLibxsltVersion</h3><pre class="programlisting">const int xsltLibxsltVersion;
-</pre><p/>
+</pre><p>The version of libxslt compiled.</p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltMaxDepth">Variable </a>xsltMaxDepth</h3><pre class="programlisting">int xsltMaxDepth;
-</pre><p/>
+</pre><p>This value is used to detect templates loops.</p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltMaxVars">Variable </a>xsltMaxVars</h3><pre class="programlisting">int xsltMaxVars;
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#CHECK_STOPPED0">CHECK_STOPPED0</a>;
-#define <a href="#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a>;
-#define <a href="#XSLT_ITEM_NSINSCOPE_FIELDS">XSLT_ITEM_NSINSCOPE_FIELDS</a>;
-#define <a href="#XSLT_IS_TEXT_NODE">XSLT_IS_TEXT_NODE</a>;
-#define <a href="#IS_XSLT_ELEM_FAST">IS_XSLT_ELEM_FAST</a>;
-#define <a href="#XSLT_REFACTORED_VARS">XSLT_REFACTORED_VARS</a>;
-#define <a href="#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a>(ctxt, nr);
-#define <a href="#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a>;
+ <pre class="synopsis">#define <a href="#CHECK_STOPPED">CHECK_STOPPED</a>;
+#define <a href="#CHECK_STOPPED0">CHECK_STOPPED0</a>;
+#define <a href="#CHECK_STOPPEDE">CHECK_STOPPEDE</a>;
#define <a href="#IS_XSLT_ATTR_FAST">IS_XSLT_ATTR_FAST</a>;
-#define <a href="#XSLT_HAS_INTERNAL_NSMAP">XSLT_HAS_INTERNAL_NSMAP</a>;
+#define <a href="#IS_XSLT_ELEM_FAST">IS_XSLT_ELEM_FAST</a>;
+#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr);
+#define <a href="#XSLT_CCTXT">XSLT_CCTXT</a>;
#define <a href="#XSLT_FAST_IF">XSLT_FAST_IF</a>;
-#define <a href="#XSLT_MARK_RES_TREE_FRAG">XSLT_MARK_RES_TREE_FRAG</a>;
#define <a href="#XSLT_GET_INTERNAL_NSMAP">XSLT_GET_INTERNAL_NSMAP</a>;
-#define <a href="#XSLT_REFACTORED_KEYCOMP">XSLT_REFACTORED_KEYCOMP</a>;
+#define <a href="#XSLT_HAS_INTERNAL_NSMAP">XSLT_HAS_INTERNAL_NSMAP</a>;
+#define <a href="#XSLT_IS_RES_TREE_FRAG">XSLT_IS_RES_TREE_FRAG</a>;
+#define <a href="#XSLT_IS_TEXT_NODE">XSLT_IS_TEXT_NODE</a>;
+#define <a href="#XSLT_ITEM_COMMON_FIELDS">XSLT_ITEM_COMMON_FIELDS</a>;
+#define <a href="#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a>;
#define <a href="#XSLT_ITEM_NAVIGATION_FIELDS">XSLT_ITEM_NAVIGATION_FIELDS</a>;
+#define <a href="#XSLT_ITEM_NSINSCOPE_FIELDS">XSLT_ITEM_NSINSCOPE_FIELDS</a>;
+#define <a href="#XSLT_MARK_RES_TREE_FRAG">XSLT_MARK_RES_TREE_FRAG</a>;
#define <a href="#XSLT_MAX_SORT">XSLT_MAX_SORT</a>;
+#define <a href="#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a>;
+#define <a href="#XSLT_REFACTORED_KEYCOMP">XSLT_REFACTORED_KEYCOMP</a>;
+#define <a href="#XSLT_REFACTORED_VARS">XSLT_REFACTORED_VARS</a>;
#define <a href="#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a>(ctxt, nr);
-#define <a href="#XSLT_IS_RES_TREE_FRAG">XSLT_IS_RES_TREE_FRAG</a>;
-#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr);
-#define <a href="#XSLT_ITEM_COMMON_FIELDS">XSLT_ITEM_COMMON_FIELDS</a>;
-#define <a href="#CHECK_STOPPED">CHECK_STOPPED</a>;
#define <a href="#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a>(ctxt, nr);
-#define <a href="#XSLT_CCTXT">XSLT_CCTXT</a>;
-#define <a href="#CHECK_STOPPEDE">CHECK_STOPPEDE</a>;
-typedef struct _xsltElemPreComp <a href="#xsltElemPreComp">xsltElemPreComp</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemPI">xsltStyleItemPI</a> * <a href="#xsltStyleItemPIPtr">xsltStyleItemPIPtr</a>;
-typedef struct _xsltDocument <a href="#xsltDocument">xsltDocument</a>;
-typedef struct _xsltStyleItemDocument <a href="#xsltStyleItemDocument">xsltStyleItemDocument</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemMessage">xsltStyleItemMessage</a> * <a href="#xsltStyleItemMessagePtr">xsltStyleItemMessagePtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemNumber">xsltStyleItemNumber</a> * <a href="#xsltStyleItemNumberPtr">xsltStyleItemNumberPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> * <a href="#xsltStyleBasicItemVariablePtr">xsltStyleBasicItemVariablePtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemForEach">xsltStyleItemForEach</a> * <a href="#xsltStyleItemForEachPtr">xsltStyleItemForEachPtr</a>;
-typedef enum <a href="#xsltTransformState">xsltTransformState</a>;
+#define <a href="#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a>(ctxt, nr);
+typedef struct _xsltCompilerCtxt <a href="#xsltCompilerCtxt">xsltCompilerCtxt</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltCompilerCtxt">xsltCompilerCtxt</a> * <a href="#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a>;
+typedef struct _xsltCompilerNodeInfo <a href="#xsltCompilerNodeInfo">xsltCompilerNodeInfo</a>;
typedef <a href="libxslt-xsltInternals.html#xsltCompilerNodeInfo">xsltCompilerNodeInfo</a> * <a href="#xsltCompilerNodeInfoPtr">xsltCompilerNodeInfoPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemLRElementInfo">xsltStyleItemLRElementInfo</a> * <a href="#xsltStyleItemLRElementInfoPtr">xsltStyleItemLRElementInfoPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a> * <a href="#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>;
-typedef struct _xsltStyleItemLRElementInfo <a href="#xsltStyleItemLRElementInfo">xsltStyleItemLRElementInfo</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemWithParam">xsltStyleItemWithParam</a> * <a href="#xsltStyleItemWithParamPtr">xsltStyleItemWithParamPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemComment">xsltStyleItemComment</a> * <a href="#xsltStyleItemCommentPtr">xsltStyleItemCommentPtr</a>;
-typedef struct _xsltStyleItemMessage <a href="#xsltStyleItemMessage">xsltStyleItemMessage</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemParam">xsltStyleItemParam</a> * <a href="#xsltStyleItemParamPtr">xsltStyleItemParamPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> <a href="#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCallTemplate">xsltStyleItemCallTemplate</a> * <a href="#xsltStyleItemCallTemplatePtr">xsltStyleItemCallTemplatePtr</a>;
-typedef struct _xsltTransformCache <a href="#xsltTransformCache">xsltTransformCache</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a> * <a href="#xsltStyleItemCopyOfPtr">xsltStyleItemCopyOfPtr</a>;
-typedef struct _xsltNsMap <a href="#xsltNsMap">xsltNsMap</a>;
-typedef struct _xsltEffectiveNs <a href="#xsltEffectiveNs">xsltEffectiveNs</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemApplyImports">xsltStyleItemApplyImports</a> * <a href="#xsltStyleItemApplyImportsPtr">xsltStyleItemApplyImportsPtr</a>;
-typedef struct _xsltStylesheet <a href="#xsltStylesheet">xsltStylesheet</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a> * <a href="#xsltStylePreCompPtr">xsltStylePreCompPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltNsMap">xsltNsMap</a> * <a href="#xsltNsMapPtr">xsltNsMapPtr</a>;
+typedef struct _xsltDecimalFormat <a href="#xsltDecimalFormat">xsltDecimalFormat</a>;
typedef <a href="libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a> * <a href="#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemInclude">xsltStyleItemInclude</a> * <a href="#xsltStyleItemIncludePtr">xsltStyleItemIncludePtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltKeyTable">xsltKeyTable</a> * <a href="#xsltKeyTablePtr">xsltKeyTablePtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemText">xsltStyleItemText</a> * <a href="#xsltStyleItemTextPtr">xsltStyleItemTextPtr</a>;
-typedef struct _xsltCompilerNodeInfo <a href="#xsltCompilerNodeInfo">xsltCompilerNodeInfo</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a> * <a href="#xsltStylesheetPtr">xsltStylesheetPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a> * <a href="#xsltTemplatePtr">xsltTemplatePtr</a>;
-typedef struct _xsltStyleBasicEmptyItem <a href="#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a>;
-typedef struct _xsltStackElem <a href="#xsltStackElem">xsltStackElem</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemIf">xsltStyleItemIf</a> * <a href="#xsltStyleItemIfPtr">xsltStyleItemIfPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemWhen">xsltStyleItemWhen</a> * <a href="#xsltStyleItemWhenPtr">xsltStyleItemWhenPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemElement">xsltStyleItemElement</a> * <a href="#xsltStyleItemElementPtr">xsltStyleItemElementPtr</a>;
-typedef struct _xsltStyleItemOtherwise <a href="#xsltStyleItemOtherwise">xsltStyleItemOtherwise</a>;
-typedef struct _xsltStyleItemCopy <a href="#xsltStyleItemCopy">xsltStyleItemCopy</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltKeyDef">xsltKeyDef</a> * <a href="#xsltKeyDefPtr">xsltKeyDefPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltVarInfo">xsltVarInfo</a> * <a href="#xsltVarInfoPtr">xsltVarInfoPtr</a>;
-typedef struct _xsltStyleItemSort <a href="#xsltStyleItemSort">xsltStyleItemSort</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltTransformCache">xsltTransformCache</a> * <a href="#xsltTransformCachePtr">xsltTransformCachePtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemExtElement">xsltStyleItemExtElement</a> * <a href="#xsltStyleItemExtElementPtr">xsltStyleItemExtElementPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltNsAlias">xsltNsAlias</a> * <a href="#xsltNsAliasPtr">xsltNsAliasPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemValueOf">xsltStyleItemValueOf</a> * <a href="#xsltStyleItemValueOfPtr">xsltStyleItemValueOfPtr</a>;
+typedef struct _xsltDocument <a href="#xsltDocument">xsltDocument</a>;
typedef <a href="libxslt-xsltInternals.html#xsltDocument">xsltDocument</a> * <a href="#xsltDocumentPtr">xsltDocumentPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltPointerList">xsltPointerList</a> * <a href="#xsltPointerListPtr">xsltPointerListPtr</a>;
-typedef struct _xsltTemplate <a href="#xsltTemplate">xsltTemplate</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> * <a href="#xsltStyleBasicExpressionItemPtr">xsltStyleBasicExpressionItemPtr</a>;
-typedef struct _xsltRuntimeExtra <a href="#xsltRuntimeExtra">xsltRuntimeExtra</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemAttribute">xsltStyleItemAttribute</a> * <a href="#xsltStyleItemAttributePtr">xsltStyleItemAttributePtr</a>;
-typedef struct _xsltTransformContext <a href="#xsltTransformContext">xsltTransformContext</a>;
-typedef struct _xsltPointerList <a href="#xsltPointerList">xsltPointerList</a>;
-typedef struct _xsltStyleItemUknown <a href="#xsltStyleItemUknown">xsltStyleItemUknown</a>;
-typedef enum <a href="#xsltErrorSeverityType">xsltErrorSeverityType</a>;
+typedef struct _xsltEffectiveNs <a href="#xsltEffectiveNs">xsltEffectiveNs</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltEffectiveNs">xsltEffectiveNs</a> * <a href="#xsltEffectiveNsPtr">xsltEffectiveNsPtr</a>;
+typedef struct _xsltElemPreComp <a href="#xsltElemPreComp">xsltElemPreComp</a>;
typedef <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a> * <a href="#xsltElemPreCompPtr">xsltElemPreCompPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a href="#xsltStyleItemFallback">xsltStyleItemFallback</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemOtherwise">xsltStyleItemOtherwise</a> * <a href="#xsltStyleItemOtherwisePtr">xsltStyleItemOtherwisePtr</a>;
-typedef struct _xsltStyleItemWhen <a href="#xsltStyleItemWhen">xsltStyleItemWhen</a>;
-typedef struct _xsltStyleItemIf <a href="#xsltStyleItemIf">xsltStyleItemIf</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a> * <a href="#xsltTransformContextPtr">xsltTransformContextPtr</a>;
+typedef enum <a href="#xsltErrorSeverityType">xsltErrorSeverityType</a>;
+typedef struct _xsltKeyDef <a href="#xsltKeyDef">xsltKeyDef</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltKeyDef">xsltKeyDef</a> * <a href="#xsltKeyDefPtr">xsltKeyDefPtr</a>;
+typedef struct _xsltKeyTable <a href="#xsltKeyTable">xsltKeyTable</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltKeyTable">xsltKeyTable</a> * <a href="#xsltKeyTablePtr">xsltKeyTablePtr</a>;
+typedef struct _xsltNsAlias <a href="#xsltNsAlias">xsltNsAlias</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsAlias">xsltNsAlias</a> * <a href="#xsltNsAliasPtr">xsltNsAliasPtr</a>;
typedef struct _xsltNsList <a href="#xsltNsList">xsltNsList</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> <a href="#xsltStyleItemForEach">xsltStyleItemForEach</a>;
-typedef struct _xsltStyleItemExtElement <a href="#xsltStyleItemExtElement">xsltStyleItemExtElement</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltNsListContainer">xsltNsListContainer</a> * <a href="#xsltNsListContainerPtr">xsltNsListContainerPtr</a>;
-typedef struct _xsltStyleBasicExpressionItem <a href="#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> <a href="#xsltStyleItemWithParam">xsltStyleItemWithParam</a>;
-typedef struct _xsltStyleItemElement <a href="#xsltStyleItemElement">xsltStyleItemElement</a>;
-typedef struct _xsltCompilerCtxt <a href="#xsltCompilerCtxt">xsltCompilerCtxt</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a href="#xsltStyleItemComment">xsltStyleItemComment</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltEffectiveNs">xsltEffectiveNs</a> * <a href="#xsltEffectiveNsPtr">xsltEffectiveNsPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> <a href="#xsltStyleItemVariable">xsltStyleItemVariable</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemVariable">xsltStyleItemVariable</a> * <a href="#xsltStyleItemVariablePtr">xsltStyleItemVariablePtr</a>;
-typedef struct _xsltStyleItemParam <a href="#xsltStyleItemParam">xsltStyleItemParam</a>;
typedef struct _xsltNsListContainer <a href="#xsltNsListContainer">xsltNsListContainer</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a> * <a href="#xsltStackElemPtr">xsltStackElemPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> * <a href="#xsltStyleBasicEmptyItemPtr">xsltStyleBasicEmptyItemPtr</a>;
-typedef struct _xsltStyleItemText <a href="#xsltStyleItemText">xsltStyleItemText</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCopy">xsltStyleItemCopy</a> * <a href="#xsltStyleItemCopyPtr">xsltStyleItemCopyPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemSort">xsltStyleItemSort</a> * <a href="#xsltStyleItemSortPtr">xsltStyleItemSortPtr</a>;
-typedef struct _xsltPrincipalStylesheetData <a href="#xsltPrincipalStylesheetData">xsltPrincipalStylesheetData</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsListContainer">xsltNsListContainer</a> * <a href="#xsltNsListContainerPtr">xsltNsListContainerPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsList">xsltNsList</a> * <a href="#xsltNsListPtr">xsltNsListPtr</a>;
+typedef struct _xsltNsMap <a href="#xsltNsMap">xsltNsMap</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsMap">xsltNsMap</a> * <a href="#xsltNsMapPtr">xsltNsMapPtr</a>;
typedef enum <a href="#xsltOutputType">xsltOutputType</a>;
+typedef struct _xsltPointerList <a href="#xsltPointerList">xsltPointerList</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltPointerList">xsltPointerList</a> * <a href="#xsltPointerListPtr">xsltPointerListPtr</a>;
+typedef struct _xsltPrincipalStylesheetData <a href="#xsltPrincipalStylesheetData">xsltPrincipalStylesheetData</a>;
typedef <a href="libxslt-xsltInternals.html#xsltPrincipalStylesheetData">xsltPrincipalStylesheetData</a> * <a href="#xsltPrincipalStylesheetDataPtr">xsltPrincipalStylesheetDataPtr</a>;
+typedef struct _xsltRuntimeExtra <a href="#xsltRuntimeExtra">xsltRuntimeExtra</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a> * <a href="#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>;
+typedef struct _xsltStackElem <a href="#xsltStackElem">xsltStackElem</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a> * <a href="#xsltStackElemPtr">xsltStackElemPtr</a>;
+typedef struct _xsltStyleBasicEmptyItem <a href="#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> * <a href="#xsltStyleBasicEmptyItemPtr">xsltStyleBasicEmptyItemPtr</a>;
+typedef struct _xsltStyleBasicExpressionItem <a href="#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> * <a href="#xsltStyleBasicExpressionItemPtr">xsltStyleBasicExpressionItemPtr</a>;
typedef struct _xsltStyleBasicItemVariable <a href="#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemChoose">xsltStyleItemChoose</a> * <a href="#xsltStyleItemChoosePtr">xsltStyleItemChoosePtr</a>;
-typedef struct _xsltNsAlias <a href="#xsltNsAlias">xsltNsAlias</a>;
-typedef struct _xsltVarInfo <a href="#xsltVarInfo">xsltVarInfo</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> * <a href="#xsltStyleBasicItemVariablePtr">xsltStyleBasicItemVariablePtr</a>;
typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a href="#xsltStyleItemApplyImports">xsltStyleItemApplyImports</a>;
-typedef struct _xsltKeyTable <a href="#xsltKeyTable">xsltKeyTable</a>;
-typedef struct _xsltStylePreComp <a href="#xsltStylePreComp">xsltStylePreComp</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltNsList">xsltNsList</a> * <a href="#xsltNsListPtr">xsltNsListPtr</a>;
-typedef struct _xsltKeyDef <a href="#xsltKeyDef">xsltKeyDef</a>;
-typedef struct _xsltDecimalFormat <a href="#xsltDecimalFormat">xsltDecimalFormat</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemApplyImports">xsltStyleItemApplyImports</a> * <a href="#xsltStyleItemApplyImportsPtr">xsltStyleItemApplyImportsPtr</a>;
+typedef struct _xsltStyleItemApplyTemplates <a href="#xsltStyleItemApplyTemplates">xsltStyleItemApplyTemplates</a>;
typedef <a href="libxslt-xsltInternals.html#xsltStyleItemApplyTemplates">xsltStyleItemApplyTemplates</a> * <a href="#xsltStyleItemApplyTemplatesPtr">xsltStyleItemApplyTemplatesPtr</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemUknown">xsltStyleItemUknown</a> * <a href="#xsltStyleItemUknownPtr">xsltStyleItemUknownPtr</a>;
-typedef struct _xsltStyleItemValueOf <a href="#xsltStyleItemValueOf">xsltStyleItemValueOf</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltCompilerCtxt">xsltCompilerCtxt</a> * <a href="#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a>;
typedef struct _xsltStyleItemAttribute <a href="#xsltStyleItemAttribute">xsltStyleItemAttribute</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleItemDocument">xsltStyleItemDocument</a> * <a href="#xsltStyleItemDocumentPtr">xsltStyleItemDocumentPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemAttribute">xsltStyleItemAttribute</a> * <a href="#xsltStyleItemAttributePtr">xsltStyleItemAttributePtr</a>;
typedef struct _xsltStyleItemCallTemplate <a href="#xsltStyleItemCallTemplate">xsltStyleItemCallTemplate</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCallTemplate">xsltStyleItemCallTemplate</a> * <a href="#xsltStyleItemCallTemplatePtr">xsltStyleItemCallTemplatePtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a href="#xsltStyleItemChoose">xsltStyleItemChoose</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemChoose">xsltStyleItemChoose</a> * <a href="#xsltStyleItemChoosePtr">xsltStyleItemChoosePtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a href="#xsltStyleItemComment">xsltStyleItemComment</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemComment">xsltStyleItemComment</a> * <a href="#xsltStyleItemCommentPtr">xsltStyleItemCommentPtr</a>;
+typedef struct _xsltStyleItemCopy <a href="#xsltStyleItemCopy">xsltStyleItemCopy</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> <a href="#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a> * <a href="#xsltStyleItemCopyOfPtr">xsltStyleItemCopyOfPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCopy">xsltStyleItemCopy</a> * <a href="#xsltStyleItemCopyPtr">xsltStyleItemCopyPtr</a>;
+typedef struct _xsltStyleItemDocument <a href="#xsltStyleItemDocument">xsltStyleItemDocument</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemDocument">xsltStyleItemDocument</a> * <a href="#xsltStyleItemDocumentPtr">xsltStyleItemDocumentPtr</a>;
+typedef struct _xsltStyleItemElement <a href="#xsltStyleItemElement">xsltStyleItemElement</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemElement">xsltStyleItemElement</a> * <a href="#xsltStyleItemElementPtr">xsltStyleItemElementPtr</a>;
+typedef struct _xsltStyleItemExtElement <a href="#xsltStyleItemExtElement">xsltStyleItemExtElement</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemExtElement">xsltStyleItemExtElement</a> * <a href="#xsltStyleItemExtElementPtr">xsltStyleItemExtElementPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a href="#xsltStyleItemFallback">xsltStyleItemFallback</a>;
typedef <a href="libxslt-xsltInternals.html#xsltStyleItemFallback">xsltStyleItemFallback</a> * <a href="#xsltStyleItemFallbackPtr">xsltStyleItemFallbackPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> <a href="#xsltStyleItemForEach">xsltStyleItemForEach</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemForEach">xsltStyleItemForEach</a> * <a href="#xsltStyleItemForEachPtr">xsltStyleItemForEachPtr</a>;
+typedef struct _xsltStyleItemIf <a href="#xsltStyleItemIf">xsltStyleItemIf</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemIf">xsltStyleItemIf</a> * <a href="#xsltStyleItemIfPtr">xsltStyleItemIfPtr</a>;
+typedef struct _xsltStyleItemInclude <a href="#xsltStyleItemInclude">xsltStyleItemInclude</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemInclude">xsltStyleItemInclude</a> * <a href="#xsltStyleItemIncludePtr">xsltStyleItemIncludePtr</a>;
+typedef struct _xsltStyleItemLRElementInfo <a href="#xsltStyleItemLRElementInfo">xsltStyleItemLRElementInfo</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemLRElementInfo">xsltStyleItemLRElementInfo</a> * <a href="#xsltStyleItemLRElementInfoPtr">xsltStyleItemLRElementInfoPtr</a>;
+typedef struct _xsltStyleItemMessage <a href="#xsltStyleItemMessage">xsltStyleItemMessage</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemMessage">xsltStyleItemMessage</a> * <a href="#xsltStyleItemMessagePtr">xsltStyleItemMessagePtr</a>;
typedef struct _xsltStyleItemNumber <a href="#xsltStyleItemNumber">xsltStyleItemNumber</a>;
-typedef struct _xsltStyleItemApplyTemplates <a href="#xsltStyleItemApplyTemplates">xsltStyleItemApplyTemplates</a>;
-typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a href="#xsltStyleItemChoose">xsltStyleItemChoose</a>;
-typedef enum <a href="#xsltStyleType">xsltStyleType</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemNumber">xsltStyleItemNumber</a> * <a href="#xsltStyleItemNumberPtr">xsltStyleItemNumberPtr</a>;
+typedef struct _xsltStyleItemOtherwise <a href="#xsltStyleItemOtherwise">xsltStyleItemOtherwise</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemOtherwise">xsltStyleItemOtherwise</a> * <a href="#xsltStyleItemOtherwisePtr">xsltStyleItemOtherwisePtr</a>;
typedef struct _xsltStyleItemPI <a href="#xsltStyleItemPI">xsltStyleItemPI</a>;
-typedef struct _xsltStyleItemInclude <a href="#xsltStyleItemInclude">xsltStyleItemInclude</a>;
-typedef void <a href="#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
-int <a href="#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
-<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a> (xmlDocPtr doc, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> parentStyle);
-void <a href="#xsltFreeStackElemList">xsltFreeStackElemList</a> (<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem);
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemPI">xsltStyleItemPI</a> * <a href="#xsltStyleItemPIPtr">xsltStyleItemPIPtr</a>;
+typedef struct _xsltStyleItemParam <a href="#xsltStyleItemParam">xsltStyleItemParam</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemParam">xsltStyleItemParam</a> * <a href="#xsltStyleItemParamPtr">xsltStyleItemParamPtr</a>;
+typedef struct _xsltStyleItemSort <a href="#xsltStyleItemSort">xsltStyleItemSort</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemSort">xsltStyleItemSort</a> * <a href="#xsltStyleItemSortPtr">xsltStyleItemSortPtr</a>;
+typedef struct _xsltStyleItemText <a href="#xsltStyleItemText">xsltStyleItemText</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemText">xsltStyleItemText</a> * <a href="#xsltStyleItemTextPtr">xsltStyleItemTextPtr</a>;
+typedef struct _xsltStyleItemUknown <a href="#xsltStyleItemUknown">xsltStyleItemUknown</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemUknown">xsltStyleItemUknown</a> * <a href="#xsltStyleItemUknownPtr">xsltStyleItemUknownPtr</a>;
+typedef struct _xsltStyleItemValueOf <a href="#xsltStyleItemValueOf">xsltStyleItemValueOf</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemValueOf">xsltStyleItemValueOf</a> * <a href="#xsltStyleItemValueOfPtr">xsltStyleItemValueOfPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> <a href="#xsltStyleItemVariable">xsltStyleItemVariable</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemVariable">xsltStyleItemVariable</a> * <a href="#xsltStyleItemVariablePtr">xsltStyleItemVariablePtr</a>;
+typedef struct _xsltStyleItemWhen <a href="#xsltStyleItemWhen">xsltStyleItemWhen</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemWhen">xsltStyleItemWhen</a> * <a href="#xsltStyleItemWhenPtr">xsltStyleItemWhenPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> <a href="#xsltStyleItemWithParam">xsltStyleItemWithParam</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemWithParam">xsltStyleItemWithParam</a> * <a href="#xsltStyleItemWithParamPtr">xsltStyleItemWithParamPtr</a>;
+typedef struct _xsltStylePreComp <a href="#xsltStylePreComp">xsltStylePreComp</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a> * <a href="#xsltStylePreCompPtr">xsltStylePreCompPtr</a>;
+typedef enum <a href="#xsltStyleType">xsltStyleType</a>;
+typedef struct _xsltStylesheet <a href="#xsltStylesheet">xsltStylesheet</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a> * <a href="#xsltStylesheetPtr">xsltStylesheetPtr</a>;
+typedef struct _xsltTemplate <a href="#xsltTemplate">xsltTemplate</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a> * <a href="#xsltTemplatePtr">xsltTemplatePtr</a>;
+typedef struct _xsltTransformCache <a href="#xsltTransformCache">xsltTransformCache</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltTransformCache">xsltTransformCache</a> * <a href="#xsltTransformCachePtr">xsltTransformCachePtr</a>;
+typedef struct _xsltTransformContext <a href="#xsltTransformContext">xsltTransformContext</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a> * <a href="#xsltTransformContextPtr">xsltTransformContextPtr</a>;
+typedef enum <a href="#xsltTransformState">xsltTransformState</a>;
+typedef struct _xsltVarInfo <a href="#xsltVarInfo">xsltVarInfo</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltVarInfo">xsltVarInfo</a> * <a href="#xsltVarInfoPtr">xsltVarInfoPtr</a>;
int <a href="#xsltAllocateExtra">xsltAllocateExtra</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-int <a href="#xsltFlagRVTs">xsltFlagRVTs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathObjectPtr obj, <br/> void * val);
-void <a href="#xsltParseSequenceConstructor">xsltParseSequenceConstructor</a> (<a href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/> xmlNodePtr cur);
-int <a href="#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
-int <a href="#xsltInitAllDocKeys">xsltInitAllDocKeys</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int <a href="#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltCompileAttr">xsltCompileAttr</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlAttrPtr attr);
+xmlDocPtr <a href="#xsltCreateRVT">xsltCreateRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
<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);
+<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);
+typedef void <a href="#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+xmlChar * <a href="#xsltEvalAVT">xsltEvalAVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> void * avt, <br/> xmlNodePtr node);
int <a href="#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-int <a href="#xsltParseStylesheetUser">xsltParseStylesheetUser</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc);
-void <a href="#xsltPointerListFree">xsltPointerListFree</a> (<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list);
-int <a href="#xsltIsBlank">xsltIsBlank</a> (xmlChar * str);
+int <a href="#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathObjectPtr obj);
+int <a href="#xsltFlagRVTs">xsltFlagRVTs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathObjectPtr obj, <br/> int val);
xmlXPathError <a href="#xsltFormatNumberConversion">xsltFormatNumberConversion</a> (<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br/> xmlChar * format, <br/> double number, <br/> xmlChar ** result);
-int <a href="#xsltPointerListAddSize">xsltPointerListAddSize</a> (<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list, <br/> void * item, <br/> int initialSize);
-typedef void <a href="#xsltSortFunc">xsltSortFunc</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr * sorts, <br/> int nbsorts);
-void <a href="#xsltUninit">xsltUninit</a> (void);
+void <a href="#xsltFreeAVTList">xsltFreeAVTList</a> (void * avt);
+typedef void <a href="#xsltFreeLocaleFunc">xsltFreeLocaleFunc</a> (void * locale);
+void <a href="#xsltFreeRVTs">xsltFreeRVTs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltFreeStackElemList">xsltFreeStackElemList</a> (<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem);
void <a href="#xsltFreeStylesheet">xsltFreeStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-xmlDocPtr <a href="#xsltCreateRVT">xsltCreateRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+typedef xmlChar * <a href="#xsltGenSortKeyFunc">xsltGenSortKeyFunc</a> (void * locale, <br/> const xmlChar * lang);
+int <a href="#xsltInitAllDocKeys">xsltInitAllDocKeys</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int <a href="#xsltInitCtxtKey">xsltInitCtxtKey</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc, <br/> <a href="libxslt-xsltInternals.html#xsltKeyDefPtr">xsltKeyDefPtr</a> keyDef);
+int <a href="#xsltIsBlank">xsltIsBlank</a> (xmlChar * str);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a> (xmlDocPtr doc);
+typedef void * <a href="#xsltNewLocaleFunc">xsltNewLocaleFunc</a> (const xmlChar * lang, <br/> int lowerFirst);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltNewStylesheet">xsltNewStylesheet</a> (void);
+void <a href="#xsltNumberFormat">xsltNumberFormat</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data, <br/> xmlNodePtr node);
+int <a href="#xsltParseAnyXSLTElem">xsltParseAnyXSLTElem</a> (<a href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/> xmlNodePtr elem);
+void <a href="#xsltParseSequenceConstructor">xsltParseSequenceConstructor</a> (<a href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/> xmlNodePtr cur);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a> (xmlDocPtr doc);
<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltParseStylesheetFile">xsltParseStylesheetFile</a> (const xmlChar * filename);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a> (xmlDocPtr doc, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> parentStyle);
void <a href="#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr cur);
-int <a href="#xsltParseAnyXSLTElem">xsltParseAnyXSLTElem</a> (<a href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/> xmlNodePtr elem);
-void <a href="#xsltCompileAttr">xsltCompileAttr</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlAttrPtr attr);
-int <a href="#xsltRestoreDocumentNamespaces">xsltRestoreDocumentNamespaces</a> (<a href="libxslt-xsltInternals.html#xsltNsMapPtr">xsltNsMapPtr</a> ns, <br/> xmlDocPtr doc);
-void <a href="#xsltNumberFormat">xsltNumberFormat</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data, <br/> xmlNodePtr node);
-void <a href="#xsltReleaseRVT">xsltReleaseRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
-void <a href="#xsltFreeRVTs">xsltFreeRVTs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-int <a href="#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathObjectPtr obj);
-<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> <a href="#xsltPointerListCreate">xsltPointerListCreate</a> (int initialSize);
-void <a href="#xsltFreeAVTList">xsltFreeAVTList</a> (void * avt);
-int <a href="#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-void <a href="#xsltParseTemplateContent">xsltParseTemplateContent</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr templ);
-<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltNewStylesheet">xsltNewStylesheet</a> (void);
<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret, <br/> xmlDocPtr doc);
-<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);
-typedef void <a href="#xsltTransformFunction">xsltTransformFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
-int <a href="#xsltRegisterLocalRVT">xsltRegisterLocalRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
-<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a> (xmlDocPtr doc);
-int <a href="#xsltInitCtxtKey">xsltInitCtxtKey</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc, <br/> <a href="libxslt-xsltInternals.html#xsltKeyDefPtr">xsltKeyDefPtr</a> keyDef);
-xmlChar * <a href="#xsltEvalAVT">xsltEvalAVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> void * avt, <br/> xmlNodePtr node);
+int <a href="#xsltParseStylesheetUser">xsltParseStylesheetUser</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlDocPtr doc);
+void <a href="#xsltParseTemplateContent">xsltParseTemplateContent</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr templ);
+int <a href="#xsltPointerListAddSize">xsltPointerListAddSize</a> (<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list, <br/> void * item, <br/> int initialSize);
void <a href="#xsltPointerListClear">xsltPointerListClear</a> (<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list);
-<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a> (xmlDocPtr doc);
+<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> <a href="#xsltPointerListCreate">xsltPointerListCreate</a> (int initialSize);
+void <a href="#xsltPointerListFree">xsltPointerListFree</a> (<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list);
+int <a href="#xsltRegisterLocalRVT">xsltRegisterLocalRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
+int <a href="#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
+int <a href="#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
+void <a href="#xsltReleaseRVT">xsltReleaseRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlDocPtr RVT);
+int <a href="#xsltRestoreDocumentNamespaces">xsltRestoreDocumentNamespaces</a> (<a href="libxslt-xsltInternals.html#xsltNsMapPtr">xsltNsMapPtr</a> ns, <br/> xmlDocPtr doc);
+typedef void <a href="#xsltSortFunc">xsltSortFunc</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr * sorts, <br/> int nbsorts);
+typedef void <a href="#xsltTransformFunction">xsltTransformFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst, <br/> <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void <a href="#xsltUninit">xsltUninit</a> (void);
</pre>
</div>
<div class="refsect1" lang="en">
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemApplyImports">Typedef </a>xsltStyleItemApplyImports</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> xsltStyleItemApplyImports;
-</pre><p/>
+</pre><p><!-- Category: instruction --> <xsl:apply-imports /></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemApplyImportsPtr">Typedef </a>xsltStyleItemApplyImportsPtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemApplyImports">xsltStyleItemApplyImports</a> * xsltStyleItemApplyImportsPtr;
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemChoose">Typedef </a>xsltStyleItemChoose</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> xsltStyleItemChoose;
-</pre><p/>
+</pre><p><!-- Category: instruction --> <xsl:choose> <!-- Content: (xsl:when+, xsl:otherwise?) --> </xsl:choose></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemChoosePtr">Typedef </a>xsltStyleItemChoosePtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemChoose">xsltStyleItemChoose</a> * xsltStyleItemChoosePtr;
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemComment">Typedef </a>xsltStyleItemComment</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> xsltStyleItemComment;
-</pre><p/>
+</pre><p><!-- Category: instruction --> <xsl:comment> <!-- Content: template --> </xsl:comment></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemCommentPtr">Typedef </a>xsltStyleItemCommentPtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemComment">xsltStyleItemComment</a> * xsltStyleItemCommentPtr;
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemCopyOf">Typedef </a>xsltStyleItemCopyOf</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> xsltStyleItemCopyOf;
-</pre><p/>
+</pre><p><!-- Category: instruction --> <xsl:copy-of select = expression /></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemCopyOfPtr">Typedef </a>xsltStyleItemCopyOfPtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a> * xsltStyleItemCopyOfPtr;
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemFallback">Typedef </a>xsltStyleItemFallback</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> xsltStyleItemFallback;
-</pre><p/>
+</pre><p><!-- Category: instruction --> <xsl:fallback> <!-- Content: template --> </xsl:fallback></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemFallbackPtr">Typedef </a>xsltStyleItemFallbackPtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemFallback">xsltStyleItemFallback</a> * xsltStyleItemFallbackPtr;
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemForEach">Typedef </a>xsltStyleItemForEach</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> xsltStyleItemForEach;
-</pre><p/>
+</pre><p><!-- Category: instruction --> <xsl:for-each select = node-set-expression> <!-- Content: (xsl:sort*, template) --> </xsl:for-each></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemForEachPtr">Typedef </a>xsltStyleItemForEachPtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemForEach">xsltStyleItemForEach</a> * xsltStyleItemForEachPtr;
int descending : sort
const xmlChar * lang : sort
int has_lang : sort
- <a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale : sort
const xmlChar * case_order : sort
int lower_first : sort
const xmlChar * use
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemVariable">Typedef </a>xsltStyleItemVariable</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> xsltStyleItemVariable;
-</pre><p/>
+</pre><p><!-- Category: top-level-element --> <xsl:param name = qname select = expression> <!-- Content: template --> </xsl:param></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemVariablePtr">Typedef </a>xsltStyleItemVariablePtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemVariable">xsltStyleItemVariable</a> * xsltStyleItemVariablePtr;
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemWithParam">Typedef </a>xsltStyleItemWithParam</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> xsltStyleItemWithParam;
-</pre><p/>
+</pre><p><xsl:with-param name = qname select = expression> <!-- Content: template --> </xsl:with-param></p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltStyleItemWithParamPtr">Typedef </a>xsltStyleItemWithParamPtr</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStyleItemWithParam">xsltStyleItemWithParam</a> * xsltStyleItemWithParamPtr;
int descending : sort
const xmlChar * lang : sort
int has_lang : sort
- <a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale : sort
const xmlChar * case_order : sort
int lower_first : sort
const xmlChar * use : copy, element
int maxTemplateVars
unsigned long opLimit
unsigned long opCount
+ int sourceDocDirty
+ unsigned long currentId : For generate-id()
+ <a href="libxslt-xsltInternals.html#xsltNewLocaleFunc">xsltNewLocaleFunc</a> newLocale
+ <a href="libxslt-xsltInternals.html#xsltFreeLocaleFunc">xsltFreeLocaleFunc</a> freeLocale
+ <a href="libxslt-xsltInternals.html#xsltGenSortKeyFunc">xsltGenSortKeyFunc</a> genSortKey
} xsltTransformContext;
</pre><p/>
</div>
</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></div>
<hr/>
+ <div class="refsect2" lang="en"><h3><a name="xsltFreeLocaleFunc"/>Function type xsltFreeLocaleFunc</h3><pre class="programlisting">void xsltFreeLocaleFunc (void * locale)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>locale</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xsltGenSortKeyFunc"/>Function type xsltGenSortKeyFunc</h3><pre class="programlisting">xmlChar * xsltGenSortKeyFunc (void * locale, <br/> const xmlChar * lang)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>locale</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xsltNewLocaleFunc"/>Function type xsltNewLocaleFunc</h3><pre class="programlisting">void * xsltNewLocaleFunc (const xmlChar * lang, <br/> int lowerFirst)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>lowerFirst</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+ <hr/>
<div class="refsect2" lang="en"><h3><a name="xsltSortFunc"/>Function type xsltSortFunc</h3><pre class="programlisting">void xsltSortFunc (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr * sorts, <br/> int nbsorts)<br/>
</pre><p>Signature of the function to use during sorting</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 transformation context</td></tr><tr><td><span class="term"><i><tt>sorts</tt></i>:</span></td><td>the node-set to sort</td></tr><tr><td><span class="term"><i><tt>nbsorts</tt></i>:</span></td><td>the number of sorts</td></tr></tbody></table></div></div>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltXSLTAttrMarker">Variable </a>xsltXSLTAttrMarker</h3><pre class="programlisting">const xmlChar * xsltXSLTAttrMarker;
-</pre><p/>
+</pre><p>Marker for XSLT attribute on Literal Result Elements.</p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltAllocateExtra"/>xsltAllocateExtra ()</h3><pre class="programlisting">int xsltAllocateExtra (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<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. It isn't necessary to call this function in newer releases of libxslt.</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xsltFlagRVTs"/>xsltFlagRVTs ()</h3><pre class="programlisting">int xsltFlagRVTs (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathObjectPtr obj, <br/> void * val)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xsltFlagRVTs"/>xsltFlagRVTs ()</h3><pre class="programlisting">int xsltFlagRVTs (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlXPathObjectPtr obj, <br/> int 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></div>
<hr/>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetDoc"/>xsltParseStylesheetDoc ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltParseStylesheetDoc (xmlDocPtr doc)<br/>
</pre><p>parse an XSLT stylesheet, building the associated structures. doc is kept as a reference within the returned stylesheet, so changes to doc after the parsing will be reflected when the stylesheet is applied, and the doc is automatically freed when the stylesheet is closed.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>and xmlDoc parsed XML</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet structure.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an xmlDoc parsed XML</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet structure.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetFile"/>xsltParseStylesheetFile ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltParseStylesheetFile (const xmlChar * filename)<br/>
</pre><p>Load and parse an XSLT stylesheet</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">#define <a href="#LIBXSLT_PUBLIC">LIBXSLT_PUBLIC</a>;
+#define <a href="#XSLTCALL">XSLTCALL</a>;
#define <a href="#XSLTPUBFUN">XSLTPUBFUN</a>;
-#define <a href="#XSLTPUBVAR">XSLTPUBVAR</a>;
#define <a href="#XSLTPUBLIC">XSLTPUBLIC</a>;
-#define <a href="#XSLTCALL">XSLTCALL</a>;
+#define <a href="#XSLTPUBVAR">XSLTPUBVAR</a>;
</pre>
</div>
<div class="refsect1" lang="en">
<p>Author(s): Nick Wellnhofer </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a>;
-#define <a href="#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a>;
-#define <a href="#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a>;
-typedef void * <a href="#xsltLocale">xsltLocale</a>;
+ <pre class="synopsis">typedef void * <a href="#xsltLocale">xsltLocale</a>;
typedef xmlChar <a href="#xsltLocaleChar">xsltLocaleChar</a>;
-<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> <a href="#xsltNewLocale">xsltNewLocale</a> (const xmlChar * languageTag);
-int <a href="#xsltLocaleStrcmp">xsltLocaleStrcmp</a> (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, <br/> const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str1, <br/> const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str2);
-void <a href="#xsltFreeLocale">xsltFreeLocale</a> (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale);
-<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);
+void <a href="#xsltFreeLocale">xsltFreeLocale</a> (void * locale);
void <a href="#xsltFreeLocales">xsltFreeLocales</a> (void);
+int <a href="#xsltLocaleStrcmp">xsltLocaleStrcmp</a> (void * locale, <br/> const xmlChar * str1, <br/> const xmlChar * str2);
+void * <a href="#xsltNewLocale">xsltNewLocale</a> (const xmlChar * languageTag, <br/> int lowerFirst);
+xmlChar * <a href="#xsltStrxfrm">xsltStrxfrm</a> (void * vlocale, <br/> const xmlChar * string);
</pre>
</div>
<div class="refsect1" lang="en">
<div class="refsect1" lang="en">
<h2>Details</h2>
<div class="refsect2" lang="en">
- <div class="refsect2" lang="en"><h3><a name="XSLT_LOCALE_NONE">Macro </a>XSLT_LOCALE_NONE</h3><pre class="programlisting">#define <a href="#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a>;
-</pre><p>Macro indicating that there's no extended locale support</p>
-</div>
- <hr/>
- <div class="refsect2" lang="en"><h3><a name="XSLT_LOCALE_POSIX">Macro </a>XSLT_LOCALE_POSIX</h3><pre class="programlisting">#define <a href="#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a>;
-</pre><p>Macro indicating to use POSIX locale extensions</p>
-</div>
- <hr/>
- <div class="refsect2" lang="en"><h3><a name="XSLT_LOCALE_WINAPI">Macro </a>XSLT_LOCALE_WINAPI</h3><pre class="programlisting">#define <a href="#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a>;
-</pre><p>Macro indicating to use WinAPI for extended locale support</p>
-</div>
- <hr/>
<div class="refsect2" lang="en"><h3><a name="xsltLocale">Typedef </a>xsltLocale</h3><pre class="programlisting">void * xsltLocale;
</pre><p/>
</div>
</pre><p/>
</div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xsltFreeLocale"/>xsltFreeLocale ()</h3><pre class="programlisting">void xsltFreeLocale (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xsltFreeLocale"/>xsltFreeLocale ()</h3><pre class="programlisting">void xsltFreeLocale (void * 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></div>
<hr/>
</pre><p>Cleanup function for the locale support on shutdown</p>
</div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xsltLocaleStrcmp"/>xsltLocaleStrcmp ()</h3><pre class="programlisting">int xsltLocaleStrcmp (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, <br/> const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str1, <br/> const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str2)<br/>
-</pre><p>Compares two strings transformed with <a href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</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>a locale identifier</td></tr><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>a string transformed with <a href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a></td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>a string transformed with <a href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a value < 0 if str1 sorts before str2, a value > 0 if str1 sorts after str2, 0 if str1 and str2 are equal wrt sorting</td></tr></tbody></table></div></div>
+ <div class="refsect2" lang="en"><h3><a name="xsltLocaleStrcmp"/>xsltLocaleStrcmp ()</h3><pre class="programlisting">int xsltLocaleStrcmp (void * locale, <br/> const xmlChar * str1, <br/> const xmlChar * str2)<br/>
+</pre><p>DEPRECATED: Same as xmlStrcmp. Compares two strings transformed with xsltStrxfrm.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>locale</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>a string transformed with <a href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a></td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>a string transformed with <a href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a value < 0 if str1 sorts before str2, a value > 0 if str1 sorts after str2, 0 if str1 and str2 are equal wrt sorting</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xsltNewLocale"/>xsltNewLocale ()</h3><pre class="programlisting"><a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> xsltNewLocale (const xmlChar * languageTag)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xsltNewLocale"/>xsltNewLocale ()</h3><pre class="programlisting">void * xsltNewLocale (const xmlChar * languageTag, <br/> int lowerFirst)<br/>
</pre><p>Creates a new locale of an opaque system dependent type based on the language tag.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>languageTag</tt></i>:</span></td><td>RFC 3066 language tag</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the locale or NULL on error or if no matching locale was found</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>languageTag</tt></i>:</span></td><td>RFC 3066 language tag</td></tr><tr><td><span class="term"><i><tt>lowerFirst</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the locale or NULL on error or if no matching locale was found</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xsltStrxfrm"/>xsltStrxfrm ()</h3><pre class="programlisting"><a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * xsltStrxfrm (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, <br/> const xmlChar * string)<br/>
-</pre><p>Transforms a string according to locale. The transformed string must then be compared with <a href="libxslt-xsltlocale.html#xsltLocaleStrcmp">xsltLocaleStrcmp</a> and freed with xmlFree.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>locale</tt></i>:</span></td><td>locale created with <a href="libxslt-xsltlocale.html#xsltNewLocale">xsltNewLocale</a></td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>UTF-8 string to transform</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the transformed string or NULL on error</td></tr></tbody></table></div></div>
+ <div class="refsect2" lang="en"><h3><a name="xsltStrxfrm"/>xsltStrxfrm ()</h3><pre class="programlisting">xmlChar * xsltStrxfrm (void * vlocale, <br/> const xmlChar * string)<br/>
+</pre><p>Transforms a string according to locale. The transformed string must be freed with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>vlocale</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>UTF-8 string to transform</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the transformed string or NULL on error</td></tr></tbody></table></div></div>
<hr/>
</div>
</div>
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">#define <a href="#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a>;
-#define <a href="#IS_XSLT_ELEM">IS_XSLT_ELEM</a>;
+ <pre class="synopsis">#define <a href="#IS_XSLT_ELEM">IS_XSLT_ELEM</a>;
#define <a href="#IS_XSLT_NAME">IS_XSLT_NAME</a>;
-#define <a href="#XSLT_TODO">XSLT_TODO</a>;
+#define <a href="#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a>;
#define <a href="#XSLT_STRANGE">XSLT_STRANGE</a>;
#define <a href="#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a>;
+#define <a href="#XSLT_TODO">XSLT_TODO</a>;
#define <a href="#XSLT_TRACE">XSLT_TRACE</a>;
-typedef enum <a href="#xsltDebugTraceCodes">xsltDebugTraceCodes</a>;
typedef enum <a href="#xsltDebugStatusCodes">xsltDebugStatusCodes</a>;
-int <a href="#xsltSaveResultToFile">xsltSaveResultToFile</a> (FILE * file, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-void <a href="#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a> (void * ctx, <br/> xmlGenericErrorFunc handler);
-int <a href="#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a> (int no, <br/> void * block);
-int <a href="#xsltSaveResultTo">xsltSaveResultTo</a> (xmlOutputBufferPtr buf, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-void <a href="#xsltTransformError">xsltTransformError</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr node, <br/> const char * msg, <br/> ... ...);
+typedef enum <a href="#xsltDebugTraceCodes">xsltDebugTraceCodes</a>;
int <a href="#xslAddCall">xslAddCall</a> (<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> xmlNodePtr source);
-void <a href="#xsltDocumentSortFunction">xsltDocumentSortFunction</a> (xmlNodeSetPtr list);
-const xmlChar * <a href="#xsltGetQNameURI2">xsltGetQNameURI2</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr node, <br/> const xmlChar ** name);
+void <a href="#xslDropCall">xslDropCall</a> (void);
+typedef int <a href="#xsltAddCallCallback">xsltAddCallCallback</a> (<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> xmlNodePtr source);
+void <a href="#xsltCalibrateAdjust">xsltCalibrateAdjust</a> (long delta);
xmlXPathObjectPtr * <a href="#xsltComputeSortResult">xsltComputeSortResult</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr sort);
-void <a href="#xsltPrintErrorContext">xsltPrintErrorContext</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr node);
-int <a href="#xsltGetUTF8Char">xsltGetUTF8Char</a> (const unsigned char * utf, <br/> int * len);
+<a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> <a href="#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a> (void);
+void <a href="#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a> (<a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> val);
void <a href="#xsltDefaultSortFunction">xsltDefaultSortFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr * sorts, <br/> int nbsorts);
-int <a href="#xsltSaveResultToFd">xsltSaveResultToFd</a> (int fd, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
-void <a href="#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler);
-xmlChar * <a href="#xsltGetNsProp">xsltGetNsProp</a> (xmlNodePtr node, <br/> const xmlChar * name, <br/> const xmlChar * nameSpace);
+void <a href="#xsltDoSortFunction">xsltDoSortFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr * sorts, <br/> int nbsorts);
+void <a href="#xsltDocumentSortFunction">xsltDocumentSortFunction</a> (xmlNodeSetPtr list);
+typedef void <a href="#xsltDropCallCallback">xsltDropCallCallback</a> (void);
const xmlChar * <a href="#xsltGetCNsProp">xsltGetCNsProp</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr node, <br/> const xmlChar * name, <br/> const xmlChar * nameSpace);
+int <a href="#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a> (void);
+xmlChar * <a href="#xsltGetNsProp">xsltGetNsProp</a> (xmlNodePtr node, <br/> const xmlChar * name, <br/> const xmlChar * nameSpace);
+xmlDocPtr <a href="#xsltGetProfileInformation">xsltGetProfileInformation</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
const xmlChar * <a href="#xsltGetQNameURI">xsltGetQNameURI</a> (xmlNodePtr node, <br/> xmlChar ** name);
-typedef int <a href="#xsltAddCallCallback">xsltAddCallCallback</a> (<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> xmlNodePtr source);
-void <a href="#xsltCalibrateAdjust">xsltCalibrateAdjust</a> (long delta);
+const xmlChar * <a href="#xsltGetQNameURI2">xsltGetQNameURI2</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr node, <br/> const xmlChar ** name);
+int <a href="#xsltGetUTF8Char">xsltGetUTF8Char</a> (const unsigned char * utf, <br/> int * len);
+typedef void <a href="#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a> (xmlNodePtr cur, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void <a href="#xsltMessage">xsltMessage</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst);
+void <a href="#xsltPrintErrorContext">xsltPrintErrorContext</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr node);
void <a href="#xsltSaveProfiling">xsltSaveProfiling</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> FILE * output);
+int <a href="#xsltSaveResultTo">xsltSaveResultTo</a> (xmlOutputBufferPtr buf, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+int <a href="#xsltSaveResultToFd">xsltSaveResultToFd</a> (int fd, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+int <a href="#xsltSaveResultToFile">xsltSaveResultToFile</a> (FILE * file, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+int <a href="#xsltSaveResultToFilename">xsltSaveResultToFilename</a> (const char * URL, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> int compression);
int <a href="#xsltSaveResultToString">xsltSaveResultToString</a> (xmlChar ** doc_txt_ptr, <br/> int * doc_txt_len, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void <a href="#xsltSetCtxtLocaleHandlers">xsltSetCtxtLocaleHandlers</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltNewLocaleFunc">xsltNewLocaleFunc</a> newLocale, <br/> <a href="libxslt-xsltInternals.html#xsltFreeLocaleFunc">xsltFreeLocaleFunc</a> freeLocale, <br/> <a href="libxslt-xsltInternals.html#xsltGenSortKeyFunc">xsltGenSortKeyFunc</a> genSortKey);
+int <a href="#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> int options);
+void <a href="#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler);
+int <a href="#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a> (int no, <br/> void * block);
+void <a href="#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a> (int value);
+void <a href="#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a> (void * ctx, <br/> xmlGenericErrorFunc handler);
+void <a href="#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a> (void * ctx, <br/> xmlGenericErrorFunc handler);
+void <a href="#xsltSetSortFunc">xsltSetSortFunc</a> (<a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler);
+void <a href="#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> void * ctx, <br/> xmlGenericErrorFunc handler);
const xmlChar * <a href="#xsltSplitQName">xsltSplitQName</a> (xmlDictPtr dict, <br/> const xmlChar * name, <br/> const xmlChar ** prefix);
-void <a href="#xsltDoSortFunction">xsltDoSortFunction</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr * sorts, <br/> int nbsorts);
-<a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> <a href="#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a> (void);
-void <a href="#xsltMessage">xsltMessage</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> xmlNodePtr node, <br/> xmlNodePtr inst);
-int <a href="#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a> (void);
long <a href="#xsltTimestamp">xsltTimestamp</a> (void);
-void <a href="#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> void * ctx, <br/> xmlGenericErrorFunc handler);
+void <a href="#xsltTransformError">xsltTransformError</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> xmlNodePtr node, <br/> const char * msg, <br/> ... ...);
xmlXPathCompExprPtr <a href="#xsltXPathCompile">xsltXPathCompile</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * str);
-void <a href="#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a> (<a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> val);
-void <a href="#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a> (void * ctx, <br/> xmlGenericErrorFunc handler);
xmlXPathCompExprPtr <a href="#xsltXPathCompileFlags">xsltXPathCompileFlags</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> const xmlChar * str, <br/> int flags);
-int <a href="#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> int options);
-void <a href="#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a> (int value);
-void <a href="#xslDropCall">xslDropCall</a> (void);
-void <a href="#xsltSetSortFunc">xsltSetSortFunc</a> (<a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler);
-typedef void <a href="#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a> (xmlNodePtr cur, <br/> xmlNodePtr node, <br/> <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/> <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
-int <a href="#xsltSaveResultToFilename">xsltSaveResultToFilename</a> (const char * URL, <br/> xmlDocPtr result, <br/> <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/> int compression);
-typedef void <a href="#xsltDropCallCallback">xsltDropCallCallback</a> (void);
-xmlDocPtr <a href="#xsltGetProfileInformation">xsltGetProfileInformation</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
</pre>
</div>
<div class="refsect1" lang="en">
</pre><p>Save the result @result obtained by applying the @style stylesheet to a new allocated string.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>Memory pointer for allocated XML text</td></tr><tr><td><span class="term"><i><tt>doc_txt_len</tt></i>:</span></td><td>Length of the generated XML text</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
+ <div class="refsect2" lang="en"><h3><a name="xsltSetCtxtLocaleHandlers"/>xsltSetCtxtLocaleHandlers ()</h3><pre class="programlisting">void xsltSetCtxtLocaleHandlers (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltNewLocaleFunc">xsltNewLocaleFunc</a> newLocale, <br/> <a href="libxslt-xsltInternals.html#xsltFreeLocaleFunc">xsltFreeLocaleFunc</a> freeLocale, <br/> <a href="libxslt-xsltInternals.html#xsltGenSortKeyFunc">xsltGenSortKeyFunc</a> genSortKey)<br/>
+</pre><p>Set the locale handlers.</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 transform context</td></tr><tr><td><span class="term"><i><tt>newLocale</tt></i>:</span></td><td>locale constructor</td></tr><tr><td><span class="term"><i><tt>freeLocale</tt></i>:</span></td><td>locale destructor</td></tr><tr><td><span class="term"><i><tt>genSortKey</tt></i>:</span></td><td>sort key generator</td></tr></tbody></table></div></div>
+ <hr/>
<div class="refsect2" lang="en"><h3><a name="xsltSetCtxtParseOptions"/>xsltSetCtxtParseOptions ()</h3><pre class="programlisting">int xsltSetCtxtParseOptions (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> int options)<br/>
</pre><p>Change the default parser option passed by the XSLT engine to the parser when using document() loading.</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>options</tt></i>:</span></td><td>a combination of libxml2 xmlParserOption</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous options or -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltSetCtxtSortFunc"/>xsltSetCtxtSortFunc ()</h3><pre class="programlisting">void xsltSetCtxtSortFunc (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)<br/>
-</pre><p>Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, then the global sort function will be called</p>
+</pre><p>DEPRECATED: Use xsltSetCtxtLocaleHandlers. Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, then the global sort function will be called</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>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltSetDebuggerCallbacks"/>xsltSetDebuggerCallbacks ()</h3><pre class="programlisting">int xsltSetDebuggerCallbacks (int no, <br/> void * block)<br/>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltSetSortFunc"/>xsltSetSortFunc ()</h3><pre class="programlisting">void xsltSetSortFunc (<a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)<br/>
-</pre><p>Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort function will be used.</p>
+</pre><p>DEPRECATED: Use xsltSetCtxtLocaleHandlers. Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort function will be used.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xsltSetTransformErrorFunc"/>xsltSetTransformErrorFunc ()</h3><pre class="programlisting">void xsltSetTransformErrorFunc (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/> void * ctx, <br/> xmlGenericErrorFunc handler)<br/>
<keyword type="macro" name="XSLT_ITEM_NAVIGATION_FIELDS" link="libxslt-xsltInternals.html#XSLT_ITEM_NAVIGATION_FIELDS"/>
<keyword type="macro" name="XSLT_ITEM_NSINSCOPE_FIELDS" link="libxslt-xsltInternals.html#XSLT_ITEM_NSINSCOPE_FIELDS"/>
<keyword type="macro" name="XSLT_LIBXSLT_NAMESPACE" link="libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE"/>
- <keyword type="macro" name="XSLT_LOCALE_NONE" link="libxslt-xsltlocale.html#XSLT_LOCALE_NONE"/>
- <keyword type="macro" name="XSLT_LOCALE_POSIX" link="libxslt-xsltlocale.html#XSLT_LOCALE_POSIX"/>
- <keyword type="macro" name="XSLT_LOCALE_WINAPI" link="libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI"/>
<keyword type="macro" name="XSLT_MARK_RES_TREE_FRAG" link="libxslt-xsltInternals.html#XSLT_MARK_RES_TREE_FRAG"/>
<keyword type="macro" name="XSLT_MAX_SORT" link="libxslt-xsltInternals.html#XSLT_MAX_SORT"/>
<keyword type="macro" name="XSLT_NAMESPACE" link="libxslt-xslt.html#XSLT_NAMESPACE"/>
<keyword type="function" name="xsltElemPreCompDeallocator" link="libxslt-xsltInternals.html#xsltElemPreCompDeallocator"/>
<keyword type="function" name="xsltExtInitFunction" link="libxslt-extensions.html#xsltExtInitFunction"/>
<keyword type="function" name="xsltExtShutdownFunction" link="libxslt-extensions.html#xsltExtShutdownFunction"/>
+ <keyword type="function" name="xsltFreeLocaleFunc" link="libxslt-xsltInternals.html#xsltFreeLocaleFunc"/>
+ <keyword type="function" name="xsltGenSortKeyFunc" link="libxslt-xsltInternals.html#xsltGenSortKeyFunc"/>
<keyword type="function" name="xsltHandleDebuggerCallback" link="libxslt-xsltutils.html#xsltHandleDebuggerCallback"/>
+ <keyword type="function" name="xsltNewLocaleFunc" link="libxslt-xsltInternals.html#xsltNewLocaleFunc"/>
<keyword type="function" name="xsltPreComputeFunction" link="libxslt-extensions.html#xsltPreComputeFunction"/>
<keyword type="function" name="xsltSecurityCheck" link="libxslt-security.html#xsltSecurityCheck"/>
<keyword type="function" name="xsltSortFunc" link="libxslt-xsltInternals.html#xsltSortFunc"/>
<keyword type="function" name="xsltSaveResultToString ()" link="libxslt-xsltutils.html#xsltSaveResultToString"/>
<keyword type="function" name="xsltSecurityAllow ()" link="libxslt-security.html#xsltSecurityAllow"/>
<keyword type="function" name="xsltSecurityForbid ()" link="libxslt-security.html#xsltSecurityForbid"/>
+ <keyword type="function" name="xsltSetCtxtLocaleHandlers ()" link="libxslt-xsltutils.html#xsltSetCtxtLocaleHandlers"/>
<keyword type="function" name="xsltSetCtxtParseOptions ()" link="libxslt-xsltutils.html#xsltSetCtxtParseOptions"/>
<keyword type="function" name="xsltSetCtxtSecurityPrefs ()" link="libxslt-security.html#xsltSetCtxtSecurityPrefs"/>
<keyword type="function" name="xsltSetCtxtSortFunc ()" link="libxslt-xsltutils.html#xsltSetCtxtSortFunc"/>
<summary>interface for the XSLT attribute handling</summary>
<description>this module handles the specificities of attribute and attribute groups processing. </description>
<author>Daniel Veillard </author>
- <exports symbol='xsltResolveStylesheetAttributeSet' type='function'/>
- <exports symbol='xsltParseStylesheetAttributeSet' type='function'/>
<exports symbol='xsltApplyAttributeSet' type='function'/>
<exports symbol='xsltFreeAttributeSetsHashes' type='function'/>
+ <exports symbol='xsltParseStylesheetAttributeSet' type='function'/>
+ <exports symbol='xsltResolveStylesheetAttributeSet' type='function'/>
</file>
<file name='documents'>
<summary>interface for the document handling</summary>
<description>implements document loading and cache (multiple document() reference for the same resources must be equal. </description>
<author>Daniel Veillard </author>
- <exports symbol='XSLT_LOAD_START' type='enum'/>
<exports symbol='XSLT_LOAD_DOCUMENT' type='enum'/>
+ <exports symbol='XSLT_LOAD_START' type='enum'/>
<exports symbol='XSLT_LOAD_STYLESHEET' type='enum'/>
<exports symbol='xsltLoadType' type='typedef'/>
<exports symbol='xsltDocDefaultLoader' type='variable'/>
- <exports symbol='xsltFreeStyleDocuments' type='function'/>
<exports symbol='xsltDocLoaderFunc' type='function'/>
+ <exports symbol='xsltFindDocument' type='function'/>
+ <exports symbol='xsltFreeDocuments' type='function'/>
+ <exports symbol='xsltFreeStyleDocuments' type='function'/>
<exports symbol='xsltLoadDocument' type='function'/>
+ <exports symbol='xsltLoadStyleDocument' type='function'/>
+ <exports symbol='xsltNewDocument' type='function'/>
<exports symbol='xsltNewStyleDocument' type='function'/>
<exports symbol='xsltSetLoaderFunc' type='function'/>
- <exports symbol='xsltFreeDocuments' type='function'/>
- <exports symbol='xsltNewDocument' type='function'/>
- <exports symbol='xsltLoadStyleDocument' type='function'/>
- <exports symbol='xsltFindDocument' type='function'/>
</file>
<file name='extensions'>
<summary>interface for the extension support</summary>
<description>This provide the API needed for simple and module extension support. </description>
<author>Daniel Veillard </author>
- <exports symbol='xsltRegisterExtFunction' type='function'/>
- <exports symbol='xsltRegisterExtModuleElement' type='function'/>
- <exports symbol='xsltInitCtxtExts' type='function'/>
- <exports symbol='xsltGetExtData' type='function'/>
- <exports symbol='xsltStyleGetExtData' type='function'/>
- <exports symbol='xsltStyleExtInitFunction' type='function'/>
- <exports symbol='xsltInitGlobals' type='function'/>
- <exports symbol='xsltShutdownExts' type='function'/>
- <exports symbol='xsltExtModuleElementPreComputeLookup' type='function'/>
- <exports symbol='xsltRegisterTestModule' type='function'/>
- <exports symbol='xsltStyleStylesheetLevelGetExtData' type='function'/>
- <exports symbol='xsltExtModuleElementLookup' type='function'/>
- <exports symbol='xsltStyleExtShutdownFunction' type='function'/>
- <exports symbol='xsltInitElemPreComp' type='function'/>
+ <exports symbol='xsltCheckExtPrefix' type='function'/>
+ <exports symbol='xsltCheckExtURI' type='function'/>
<exports symbol='xsltDebugDumpExtensions' type='function'/>
- <exports symbol='xsltGetExtInfo' type='function'/>
+ <exports symbol='xsltExtElementLookup' type='function'/>
+ <exports symbol='xsltExtInitFunction' type='function'/>
+ <exports symbol='xsltExtModuleElementLookup' type='function'/>
+ <exports symbol='xsltExtModuleElementPreComputeLookup' type='function'/>
+ <exports symbol='xsltExtModuleFunctionLookup' type='function'/>
<exports symbol='xsltExtModuleTopLevelLookup' type='function'/>
+ <exports symbol='xsltExtShutdownFunction' type='function'/>
+ <exports symbol='xsltFreeCtxtExts' type='function'/>
<exports symbol='xsltFreeExts' type='function'/>
- <exports symbol='xsltCheckExtURI' type='function'/>
- <exports symbol='xsltExtModuleFunctionLookup' type='function'/>
+ <exports symbol='xsltGetExtData' type='function'/>
+ <exports symbol='xsltGetExtInfo' type='function'/>
+ <exports symbol='xsltInitCtxtExts' type='function'/>
+ <exports symbol='xsltInitElemPreComp' type='function'/>
+ <exports symbol='xsltInitGlobals' type='function'/>
+ <exports symbol='xsltNewElemPreComp' type='function'/>
<exports symbol='xsltPreComputeExtModuleElement' type='function'/>
- <exports symbol='xsltRegisterExtModuleTopLevel' type='function'/>
<exports symbol='xsltPreComputeFunction' type='function'/>
- <exports symbol='xsltTopLevelFunction' type='function'/>
- <exports symbol='xsltShutdownCtxtExts' type='function'/>
- <exports symbol='xsltXPathGetTransformContext' type='function'/>
<exports symbol='xsltRegisterExtElement' type='function'/>
- <exports symbol='xsltExtInitFunction' type='function'/>
- <exports symbol='xsltFreeCtxtExts' type='function'/>
- <exports symbol='xsltUnregisterExtModule' type='function'/>
- <exports symbol='xsltRegisterExtModuleFull' type='function'/>
- <exports symbol='xsltUnregisterExtModuleTopLevel' type='function'/>
- <exports symbol='xsltNewElemPreComp' type='function'/>
- <exports symbol='xsltUnregisterExtModuleElement' type='function'/>
- <exports symbol='xsltUnregisterExtModuleFunction' type='function'/>
- <exports symbol='xsltCheckExtPrefix' type='function'/>
+ <exports symbol='xsltRegisterExtFunction' type='function'/>
<exports symbol='xsltRegisterExtModule' type='function'/>
- <exports symbol='xsltExtElementLookup' type='function'/>
+ <exports symbol='xsltRegisterExtModuleElement' type='function'/>
+ <exports symbol='xsltRegisterExtModuleFull' type='function'/>
<exports symbol='xsltRegisterExtModuleFunction' type='function'/>
+ <exports symbol='xsltRegisterExtModuleTopLevel' type='function'/>
<exports symbol='xsltRegisterExtPrefix' type='function'/>
- <exports symbol='xsltExtShutdownFunction' type='function'/>
+ <exports symbol='xsltRegisterTestModule' type='function'/>
+ <exports symbol='xsltShutdownCtxtExts' type='function'/>
+ <exports symbol='xsltShutdownExts' type='function'/>
+ <exports symbol='xsltStyleExtInitFunction' type='function'/>
+ <exports symbol='xsltStyleExtShutdownFunction' type='function'/>
+ <exports symbol='xsltStyleGetExtData' type='function'/>
+ <exports symbol='xsltStyleStylesheetLevelGetExtData' type='function'/>
+ <exports symbol='xsltTopLevelFunction' type='function'/>
+ <exports symbol='xsltUnregisterExtModule' type='function'/>
+ <exports symbol='xsltUnregisterExtModuleElement' type='function'/>
+ <exports symbol='xsltUnregisterExtModuleFunction' type='function'/>
+ <exports symbol='xsltUnregisterExtModuleTopLevel' type='function'/>
+ <exports symbol='xsltXPathGetTransformContext' type='function'/>
</file>
<file name='extra'>
<summary>interface for the non-standard features</summary>
<description>implement some extension outside the XSLT namespace but not EXSLT with is in a different library. </description>
<author>Daniel Veillard </author>
- <exports symbol='XSLT_XT_NAMESPACE' type='macro'/>
- <exports symbol='XSLT_XALAN_NAMESPACE' type='macro'/>
- <exports symbol='XSLT_SAXON_NAMESPACE' type='macro'/>
<exports symbol='XSLT_LIBXSLT_NAMESPACE' type='macro'/>
- <exports symbol='xsltFunctionNodeSet' type='function'/>
- <exports symbol='xsltRegisterExtras' type='function'/>
+ <exports symbol='XSLT_SAXON_NAMESPACE' type='macro'/>
+ <exports symbol='XSLT_XALAN_NAMESPACE' type='macro'/>
+ <exports symbol='XSLT_XT_NAMESPACE' type='macro'/>
<exports symbol='xsltDebug' type='function'/>
+ <exports symbol='xsltFunctionNodeSet' type='function'/>
<exports symbol='xsltRegisterAllExtras' type='function'/>
+ <exports symbol='xsltRegisterExtras' type='function'/>
</file>
<file name='functions'>
<summary>interface for the XSLT functions not from XPath</summary>
<description>a set of extra functions coming from XSLT but not in XPath </description>
<author>Daniel Veillard and Bjorn Reese <breese@users.sourceforge.net> </author>
<exports symbol='XSLT_REGISTER_FUNCTION_LOOKUP' type='macro'/>
- <exports symbol='xsltXPathFunctionLookup' type='function'/>
- <exports symbol='xsltFunctionAvailableFunction' type='function'/>
- <exports symbol='xsltFormatNumberFunction' type='function'/>
- <exports symbol='xsltRegisterAllFunctions' type='function'/>
- <exports symbol='xsltKeyFunction' type='function'/>
- <exports symbol='xsltUnparsedEntityURIFunction' type='function'/>
<exports symbol='xsltDocumentFunction' type='function'/>
- <exports symbol='xsltSystemPropertyFunction' type='function'/>
<exports symbol='xsltElementAvailableFunction' type='function'/>
+ <exports symbol='xsltFormatNumberFunction' type='function'/>
+ <exports symbol='xsltFunctionAvailableFunction' type='function'/>
<exports symbol='xsltGenerateIdFunction' type='function'/>
+ <exports symbol='xsltKeyFunction' type='function'/>
+ <exports symbol='xsltRegisterAllFunctions' type='function'/>
+ <exports symbol='xsltSystemPropertyFunction' type='function'/>
+ <exports symbol='xsltUnparsedEntityURIFunction' type='function'/>
+ <exports symbol='xsltXPathFunctionLookup' type='function'/>
</file>
<file name='imports'>
<summary>interface for the XSLT import support</summary>
<description>macros and fuctions needed to implement and access the import tree </description>
<author>Daniel Veillard </author>
- <exports symbol='XSLT_GET_IMPORT_PTR' type='macro'/>
<exports symbol='XSLT_GET_IMPORT_INT' type='macro'/>
+ <exports symbol='XSLT_GET_IMPORT_PTR' type='macro'/>
+ <exports symbol='xsltFindElemSpaceHandling' type='function'/>
<exports symbol='xsltFindTemplate' type='function'/>
- <exports symbol='xsltNextImport' type='function'/>
- <exports symbol='xsltParseStylesheetInclude' type='function'/>
<exports symbol='xsltNeedElemSpaceHandling' type='function'/>
- <exports symbol='xsltFindElemSpaceHandling' type='function'/>
+ <exports symbol='xsltNextImport' type='function'/>
<exports symbol='xsltParseStylesheetImport' type='function'/>
+ <exports symbol='xsltParseStylesheetInclude' type='function'/>
</file>
<file name='keys'>
<summary>interface for the key matching used in key() and template matches.</summary>
<description>implementation of the key mechanims. </description>
<author>Daniel Veillard </author>
<exports symbol='NODE_IS_KEYED' type='macro'/>
- <exports symbol='xsltInitCtxtKeys' type='function'/>
+ <exports symbol='xsltAddKey' type='function'/>
+ <exports symbol='xsltFreeDocumentKeys' type='function'/>
<exports symbol='xsltFreeKeys' type='function'/>
<exports symbol='xsltGetKey' type='function'/>
- <exports symbol='xsltFreeDocumentKeys' type='function'/>
- <exports symbol='xsltAddKey' type='function'/>
+ <exports symbol='xsltInitCtxtKeys' type='function'/>
</file>
<file name='namespaces'>
<summary>interface for the XSLT namespace handling</summary>
<description>set of function easing the processing and generation of namespace nodes in XSLT. </description>
<author>Daniel Veillard </author>
<exports symbol='UNDEFINED_DEFAULT_NS' type='macro'/>
- <exports symbol='xsltFreeNamespaceAliasHashes' type='function'/>
<exports symbol='xsltCopyNamespace' type='function'/>
<exports symbol='xsltCopyNamespaceList' type='function'/>
+ <exports symbol='xsltFreeNamespaceAliasHashes' type='function'/>
<exports symbol='xsltGetNamespace' type='function'/>
<exports symbol='xsltGetPlainNamespace' type='function'/>
<exports symbol='xsltGetSpecialNamespace' type='function'/>
<description>Implementation of the XSLT number functions </description>
<author>Bjorn Reese <breese@users.sourceforge.net> and Daniel Veillard </author>
<exports symbol='xsltFormatNumberInfo' type='typedef'/>
+ <exports symbol='xsltFormatNumberInfoPtr' type='typedef'/>
<exports symbol='xsltNumberData' type='typedef'/>
<exports symbol='xsltNumberDataPtr' type='typedef'/>
- <exports symbol='xsltFormatNumberInfoPtr' type='typedef'/>
- <exports symbol='_xsltNumberData' type='struct'/>
<exports symbol='_xsltCompMatch' type='struct'/>
<exports symbol='_xsltFormatNumberInfo' type='struct'/>
+ <exports symbol='_xsltNumberData' type='struct'/>
</file>
<file name='pattern'>
<summary>interface for the pattern matching used in template matches.</summary>
<author>Daniel Veillard </author>
<exports symbol='xsltCompMatch' type='typedef'/>
<exports symbol='xsltCompMatchPtr' type='typedef'/>
- <exports symbol='xsltNormalizeCompSteps' type='function'/>
<exports symbol='xsltAddTemplate' type='function'/>
- <exports symbol='xsltCompilePattern' type='function'/>
- <exports symbol='xsltMatchPattern' type='function'/>
- <exports symbol='xsltGetTemplate' type='function'/>
+ <exports symbol='xsltCleanupTemplates' type='function'/>
<exports symbol='xsltCompMatchClearCache' type='function'/>
- <exports symbol='xsltTestCompMatchList' type='function'/>
+ <exports symbol='xsltCompilePattern' type='function'/>
<exports symbol='xsltFreeCompMatchList' type='function'/>
<exports symbol='xsltFreeTemplateHashes' type='function'/>
- <exports symbol='xsltCleanupTemplates' type='function'/>
+ <exports symbol='xsltGetTemplate' type='function'/>
+ <exports symbol='xsltMatchPattern' type='function'/>
+ <exports symbol='xsltNormalizeCompSteps' type='function'/>
+ <exports symbol='xsltTestCompMatchList' type='function'/>
</file>
<file name='preproc'>
<summary>precomputing stylesheets</summary>
<description>this is the compilation phase, where most of the stylesheet is "compiled" into faster to use data. </description>
<author>Daniel Veillard </author>
<exports symbol='xsltExtMarker' type='variable'/>
- <exports symbol='xsltFreeStylePreComps' type='function'/>
<exports symbol='xsltDocumentComp' type='function'/>
+ <exports symbol='xsltFreeStylePreComps' type='function'/>
<exports symbol='xsltStylePreCompute' type='function'/>
</file>
<file name='security'>
<description>the libxslt security framework allow to restrict the access to new resources (file or URL) from the stylesheet at runtime. </description>
<author>Daniel Veillard </author>
<exports symbol='XSLT_SECPREF_CREATE_DIRECTORY' type='enum'/>
- <exports symbol='XSLT_SECPREF_WRITE_FILE' type='enum'/>
- <exports symbol='XSLT_SECPREF_READ_NETWORK' type='enum'/>
<exports symbol='XSLT_SECPREF_READ_FILE' type='enum'/>
+ <exports symbol='XSLT_SECPREF_READ_NETWORK' type='enum'/>
+ <exports symbol='XSLT_SECPREF_WRITE_FILE' type='enum'/>
<exports symbol='XSLT_SECPREF_WRITE_NETWORK' type='enum'/>
+ <exports symbol='xsltSecurityOption' type='typedef'/>
<exports symbol='xsltSecurityPrefs' type='typedef'/>
<exports symbol='xsltSecurityPrefsPtr' type='typedef'/>
- <exports symbol='xsltSecurityOption' type='typedef'/>
- <exports symbol='xsltNewSecurityPrefs' type='function'/>
- <exports symbol='xsltSecurityCheck' type='function'/>
- <exports symbol='xsltSetSecurityPrefs' type='function'/>
- <exports symbol='xsltGetDefaultSecurityPrefs' type='function'/>
+ <exports symbol='xsltCheckRead' type='function'/>
+ <exports symbol='xsltCheckWrite' type='function'/>
<exports symbol='xsltFreeSecurityPrefs' type='function'/>
- <exports symbol='xsltSetDefaultSecurityPrefs' type='function'/>
- <exports symbol='xsltSetCtxtSecurityPrefs' type='function'/>
+ <exports symbol='xsltGetDefaultSecurityPrefs' type='function'/>
<exports symbol='xsltGetSecurityPrefs' type='function'/>
+ <exports symbol='xsltNewSecurityPrefs' type='function'/>
<exports symbol='xsltSecurityAllow' type='function'/>
- <exports symbol='xsltCheckWrite' type='function'/>
- <exports symbol='xsltCheckRead' type='function'/>
+ <exports symbol='xsltSecurityCheck' type='function'/>
<exports symbol='xsltSecurityForbid' type='function'/>
+ <exports symbol='xsltSetCtxtSecurityPrefs' type='function'/>
+ <exports symbol='xsltSetDefaultSecurityPrefs' type='function'/>
+ <exports symbol='xsltSetSecurityPrefs' type='function'/>
</file>
<file name='templates'>
<summary>interface for the template processing</summary>
<description>This set of routine encapsulates XPath calls and Attribute Value Templates evaluation. </description>
<author>Daniel Veillard </author>
- <exports symbol='xsltEvalStaticAttrValueTemplate' type='function'/>
<exports symbol='xsltAttrListTemplateProcess' type='function'/>
- <exports symbol='xsltEvalTemplateString' type='function'/>
- <exports symbol='xsltAttrTemplateValueProcess' type='function'/>
<exports symbol='xsltAttrTemplateProcess' type='function'/>
+ <exports symbol='xsltAttrTemplateValueProcess' type='function'/>
+ <exports symbol='xsltAttrTemplateValueProcessNode' type='function'/>
<exports symbol='xsltEvalAttrValueTemplate' type='function'/>
+ <exports symbol='xsltEvalStaticAttrValueTemplate' type='function'/>
+ <exports symbol='xsltEvalTemplateString' type='function'/>
<exports symbol='xsltEvalXPathPredicate' type='function'/>
- <exports symbol='xsltAttrTemplateValueProcessNode' type='function'/>
- <exports symbol='xsltTemplateProcess' type='function'/>
- <exports symbol='xsltEvalXPathStringNs' type='function'/>
<exports symbol='xsltEvalXPathString' type='function'/>
+ <exports symbol='xsltEvalXPathStringNs' type='function'/>
+ <exports symbol='xsltTemplateProcess' type='function'/>
</file>
<file name='transform'>
<summary>the XSLT engine transformation part.</summary>
<description>This module implements the bulk of the actual</description>
<author>Daniel Veillard </author>
- <exports symbol='xsltValueOf' type='function'/>
- <exports symbol='xsltRegisterAllElement' type='function'/>
- <exports symbol='xsltSort' type='function'/>
- <exports symbol='xsltSetXIncludeDefault' type='function'/>
- <exports symbol='xsltCopyOf' type='function'/>
+ <exports symbol='xslHandleDebugger' type='function'/>
+ <exports symbol='xsltApplyImports' type='function'/>
+ <exports symbol='xsltApplyOneTemplate' type='function'/>
+ <exports symbol='xsltApplyStripSpaces' type='function'/>
+ <exports symbol='xsltApplyStylesheet' type='function'/>
+ <exports symbol='xsltApplyStylesheetUser' type='function'/>
<exports symbol='xsltApplyTemplates' type='function'/>
- <exports symbol='xsltIf' type='function'/>
+ <exports symbol='xsltAttribute' type='function'/>
<exports symbol='xsltCallTemplate' type='function'/>
- <exports symbol='xsltApplyStylesheet' type='function'/>
- <exports symbol='xsltApplyStripSpaces' type='function'/>
- <exports symbol='xsltLocalVariablePush' type='function'/>
- <exports symbol='xsltFreeTransformContext' type='function'/>
- <exports symbol='xsltRunStylesheet' type='function'/>
<exports symbol='xsltChoose' type='function'/>
- <exports symbol='xsltCopyTextString' type='function'/>
- <exports symbol='xsltText' type='function'/>
- <exports symbol='xsltProcessOneNode' type='function'/>
- <exports symbol='xsltLocalVariablePop' type='function'/>
- <exports symbol='xsltNumber' type='function'/>
- <exports symbol='xsltRunStylesheetUser' type='function'/>
- <exports symbol='xsltNewTransformContext' type='function'/>
- <exports symbol='xsltGetXIncludeDefault' type='function'/>
- <exports symbol='xsltApplyOneTemplate' type='function'/>
- <exports symbol='xslHandleDebugger' type='function'/>
+ <exports symbol='xsltComment' type='function'/>
<exports symbol='xsltCopy' type='function'/>
+ <exports symbol='xsltCopyOf' type='function'/>
+ <exports symbol='xsltCopyTextString' type='function'/>
<exports symbol='xsltDocumentElem' type='function'/>
- <exports symbol='xsltAttribute' type='function'/>
- <exports symbol='xsltApplyImports' type='function'/>
<exports symbol='xsltElement' type='function'/>
- <exports symbol='xsltProfileStylesheet' type='function'/>
<exports symbol='xsltForEach' type='function'/>
- <exports symbol='xsltApplyStylesheetUser' type='function'/>
+ <exports symbol='xsltFreeTransformContext' type='function'/>
+ <exports symbol='xsltGetXIncludeDefault' type='function'/>
+ <exports symbol='xsltIf' type='function'/>
+ <exports symbol='xsltLocalVariablePop' type='function'/>
+ <exports symbol='xsltLocalVariablePush' type='function'/>
+ <exports symbol='xsltNewTransformContext' type='function'/>
+ <exports symbol='xsltNumber' type='function'/>
+ <exports symbol='xsltProcessOneNode' type='function'/>
<exports symbol='xsltProcessingInstruction' type='function'/>
- <exports symbol='xsltComment' type='function'/>
+ <exports symbol='xsltProfileStylesheet' type='function'/>
+ <exports symbol='xsltRegisterAllElement' type='function'/>
+ <exports symbol='xsltRunStylesheet' type='function'/>
+ <exports symbol='xsltRunStylesheetUser' type='function'/>
+ <exports symbol='xsltSetXIncludeDefault' type='function'/>
+ <exports symbol='xsltSort' type='function'/>
+ <exports symbol='xsltText' type='function'/>
+ <exports symbol='xsltValueOf' type='function'/>
</file>
<file name='variables'>
<summary>interface for the variable matching and lookup.</summary>
<exports symbol='XSLT_RVT_FUNC_RESULT' type='macro'/>
<exports symbol='XSLT_RVT_GLOBAL' type='macro'/>
<exports symbol='XSLT_RVT_LOCAL' type='macro'/>
- <exports symbol='xsltFreeGlobalVariables' type='function'/>
- <exports symbol='xsltQuoteUserParams' type='function'/>
- <exports symbol='xsltXPathVariableLookup' type='function'/>
- <exports symbol='xsltEvalUserParams' type='function'/>
- <exports symbol='xsltParseStylesheetCallerParam' type='function'/>
<exports symbol='xsltAddStackElemList' type='function'/>
- <exports symbol='xsltParseGlobalVariable' type='function'/>
- <exports symbol='xsltQuoteOneUserParam' type='function'/>
- <exports symbol='xsltParseGlobalParam' type='function'/>
- <exports symbol='xsltParseStylesheetVariable' type='function'/>
<exports symbol='xsltEvalGlobalVariables' type='function'/>
<exports symbol='xsltEvalOneUserParam' type='function'/>
+ <exports symbol='xsltEvalUserParams' type='function'/>
+ <exports symbol='xsltFreeGlobalVariables' type='function'/>
+ <exports symbol='xsltParseGlobalParam' type='function'/>
+ <exports symbol='xsltParseGlobalVariable' type='function'/>
+ <exports symbol='xsltParseStylesheetCallerParam' type='function'/>
<exports symbol='xsltParseStylesheetParam' type='function'/>
+ <exports symbol='xsltParseStylesheetVariable' type='function'/>
+ <exports symbol='xsltQuoteOneUserParam' type='function'/>
+ <exports symbol='xsltQuoteUserParams' type='function'/>
<exports symbol='xsltVariableLookup' type='function'/>
+ <exports symbol='xsltXPathVariableLookup' type='function'/>
</file>
<file name='xslt'>
<summary>Interfaces, constants and types related to the XSLT engine</summary>
<description>Interfaces, constants and types related to the XSLT engine </description>
<author>Daniel Veillard </author>
- <exports symbol='XSLT_DEFAULT_VERSION' type='macro'/>
- <exports symbol='XSLT_DEFAULT_VENDOR' type='macro'/>
- <exports symbol='XSLT_PARSE_OPTIONS' type='macro'/>
<exports symbol='XSLT_DEFAULT_URL' type='macro'/>
+ <exports symbol='XSLT_DEFAULT_VENDOR' type='macro'/>
+ <exports symbol='XSLT_DEFAULT_VERSION' type='macro'/>
<exports symbol='XSLT_NAMESPACE' type='macro'/>
- <exports symbol='xsltLibxmlVersion' type='variable'/>
+ <exports symbol='XSLT_PARSE_OPTIONS' type='macro'/>
<exports symbol='xsltEngineVersion' type='variable'/>
+ <exports symbol='xsltLibxmlVersion' type='variable'/>
<exports symbol='xsltLibxsltVersion' type='variable'/>
<exports symbol='xsltMaxDepth' type='variable'/>
<exports symbol='xsltMaxVars' type='variable'/>
<summary>internal data structures, constants and functions</summary>
<description>Internal data structures, constants and functions used by the XSLT engine. They are not part of the API or ABI, i.e. they can change without prior notice, use carefully. </description>
<author>Daniel Veillard </author>
+ <exports symbol='CHECK_STOPPED' type='macro'/>
<exports symbol='CHECK_STOPPED0' type='macro'/>
- <exports symbol='XSLT_PAT_NO_PRIORITY' type='macro'/>
- <exports symbol='XSLT_ITEM_NSINSCOPE_FIELDS' type='macro'/>
- <exports symbol='XSLT_IS_TEXT_NODE' type='macro'/>
+ <exports symbol='CHECK_STOPPEDE' type='macro'/>
+ <exports symbol='IS_XSLT_ATTR_FAST' type='macro'/>
<exports symbol='IS_XSLT_ELEM_FAST' type='macro'/>
- <exports symbol='XSLT_REFACTORED_VARS' type='macro'/>
- <exports symbol='XSLT_RUNTIME_EXTRA_LST' type='macro'/>
- <exports symbol='XSLT_ITEM_COMPATIBILITY_FIELDS' type='macro'/>
- <exports symbol='IS_XSLT_ATTR_FAST' type='macro'/>
- <exports symbol='XSLT_HAS_INTERNAL_NSMAP' type='macro'/>
+ <exports symbol='XML_CAST_FPTR' type='macro'/>
+ <exports symbol='XSLT_CCTXT' type='macro'/>
<exports symbol='XSLT_FAST_IF' type='macro'/>
- <exports symbol='XSLT_MARK_RES_TREE_FRAG' type='macro'/>
<exports symbol='XSLT_GET_INTERNAL_NSMAP' type='macro'/>
- <exports symbol='XSLT_REFACTORED_KEYCOMP' type='macro'/>
+ <exports symbol='XSLT_HAS_INTERNAL_NSMAP' type='macro'/>
+ <exports symbol='XSLT_IS_RES_TREE_FRAG' type='macro'/>
+ <exports symbol='XSLT_IS_TEXT_NODE' type='macro'/>
+ <exports symbol='XSLT_ITEM_COMMON_FIELDS' type='macro'/>
+ <exports symbol='XSLT_ITEM_COMPATIBILITY_FIELDS' type='macro'/>
<exports symbol='XSLT_ITEM_NAVIGATION_FIELDS' type='macro'/>
+ <exports symbol='XSLT_ITEM_NSINSCOPE_FIELDS' type='macro'/>
+ <exports symbol='XSLT_MARK_RES_TREE_FRAG' type='macro'/>
<exports symbol='XSLT_MAX_SORT' type='macro'/>
+ <exports symbol='XSLT_PAT_NO_PRIORITY' type='macro'/>
+ <exports symbol='XSLT_REFACTORED_KEYCOMP' type='macro'/>
+ <exports symbol='XSLT_REFACTORED_VARS' type='macro'/>
<exports symbol='XSLT_RUNTIME_EXTRA' type='macro'/>
- <exports symbol='XSLT_IS_RES_TREE_FRAG' type='macro'/>
- <exports symbol='XML_CAST_FPTR' type='macro'/>
- <exports symbol='XSLT_ITEM_COMMON_FIELDS' type='macro'/>
- <exports symbol='CHECK_STOPPED' type='macro'/>
<exports symbol='XSLT_RUNTIME_EXTRA_FREE' type='macro'/>
- <exports symbol='XSLT_CCTXT' type='macro'/>
- <exports symbol='CHECK_STOPPEDE' type='macro'/>
+ <exports symbol='XSLT_RUNTIME_EXTRA_LST' type='macro'/>
<exports symbol='XSLT_ERROR_SEVERITY_ERROR' type='enum'/>
- <exports symbol='XSLT_FUNC_ELEMENT' type='enum'/>
- <exports symbol='XSLT_FUNC_VALUEOF' type='enum'/>
- <exports symbol='XSLT_FUNC_WITHPARAM' type='enum'/>
- <exports symbol='XSLT_OUTPUT_XML' type='enum'/>
- <exports symbol='XSLT_STATE_ERROR' type='enum'/>
- <exports symbol='XSLT_OUTPUT_HTML' type='enum'/>
- <exports symbol='XSLT_FUNC_LITERAL_RESULT_ELEMENT' type='enum'/>
- <exports symbol='XSLT_STATE_OK' type='enum'/>
- <exports symbol='XSLT_FUNC_FOREACH' type='enum'/>
- <exports symbol='XSLT_FUNC_CHOOSE' type='enum'/>
- <exports symbol='XSLT_FUNC_SORT' type='enum'/>
- <exports symbol='XSLT_STATE_STOPPED' type='enum'/>
<exports symbol='XSLT_ERROR_SEVERITY_WARNING' type='enum'/>
- <exports symbol='XSLT_FUNC_ATTRSET' type='enum'/>
- <exports symbol='XSLT_FUNC_NUMBER' type='enum'/>
- <exports symbol='XSLT_FUNC_ATTRIBUTE' type='enum'/>
- <exports symbol='XSLT_FUNC_APPLYTEMPLATES' type='enum'/>
- <exports symbol='XSLT_FUNC_INCLUDE' type='enum'/>
- <exports symbol='XSLT_FUNC_WHEN' type='enum'/>
<exports symbol='XSLT_FUNC_APPLYIMPORTS' type='enum'/>
+ <exports symbol='XSLT_FUNC_APPLYTEMPLATES' type='enum'/>
+ <exports symbol='XSLT_FUNC_ATTRIBUTE' type='enum'/>
+ <exports symbol='XSLT_FUNC_ATTRSET' type='enum'/>
+ <exports symbol='XSLT_FUNC_CALLTEMPLATE' type='enum'/>
+ <exports symbol='XSLT_FUNC_CHOOSE' type='enum'/>
+ <exports symbol='XSLT_FUNC_COMMENT' type='enum'/>
<exports symbol='XSLT_FUNC_COPY' type='enum'/>
- <exports symbol='XSLT_FUNC_EXTENSION' type='enum'/>
- <exports symbol='XSLT_FUNC_OTHERWISE' type='enum'/>
<exports symbol='XSLT_FUNC_COPYOF' type='enum'/>
- <exports symbol='XSLT_OUTPUT_TEXT' type='enum'/>
- <exports symbol='XSLT_FUNC_PARAM' type='enum'/>
- <exports symbol='XSLT_FUNC_COMMENT' type='enum'/>
- <exports symbol='XSLT_FUNC_MESSAGE' type='enum'/>
<exports symbol='XSLT_FUNC_DOCUMENT' type='enum'/>
+ <exports symbol='XSLT_FUNC_ELEMENT' type='enum'/>
+ <exports symbol='XSLT_FUNC_EXTENSION' type='enum'/>
+ <exports symbol='XSLT_FUNC_FALLBACK' type='enum'/>
+ <exports symbol='XSLT_FUNC_FOREACH' type='enum'/>
<exports symbol='XSLT_FUNC_IF' type='enum'/>
+ <exports symbol='XSLT_FUNC_INCLUDE' type='enum'/>
+ <exports symbol='XSLT_FUNC_LITERAL_RESULT_ELEMENT' type='enum'/>
+ <exports symbol='XSLT_FUNC_MESSAGE' type='enum'/>
+ <exports symbol='XSLT_FUNC_NUMBER' type='enum'/>
+ <exports symbol='XSLT_FUNC_OTHERWISE' type='enum'/>
+ <exports symbol='XSLT_FUNC_PARAM' type='enum'/>
<exports symbol='XSLT_FUNC_PI' type='enum'/>
- <exports symbol='XSLT_FUNC_UNKOWN_FORWARDS_COMPAT' type='enum'/>
+ <exports symbol='XSLT_FUNC_SORT' type='enum'/>
<exports symbol='XSLT_FUNC_TEXT' type='enum'/>
+ <exports symbol='XSLT_FUNC_UNKOWN_FORWARDS_COMPAT' type='enum'/>
+ <exports symbol='XSLT_FUNC_VALUEOF' type='enum'/>
<exports symbol='XSLT_FUNC_VARIABLE' type='enum'/>
- <exports symbol='XSLT_FUNC_FALLBACK' type='enum'/>
- <exports symbol='XSLT_FUNC_CALLTEMPLATE' type='enum'/>
- <exports symbol='xsltElemPreComp' type='typedef'/>
- <exports symbol='xsltStyleItemPIPtr' type='typedef'/>
- <exports symbol='xsltDocument' type='typedef'/>
- <exports symbol='xsltStyleItemDocument' type='typedef'/>
- <exports symbol='xsltStyleItemMessagePtr' type='typedef'/>
- <exports symbol='xsltStyleItemNumberPtr' type='typedef'/>
- <exports symbol='xsltStyleBasicItemVariablePtr' type='typedef'/>
- <exports symbol='xsltStyleItemForEachPtr' type='typedef'/>
- <exports symbol='xsltTransformState' type='typedef'/>
+ <exports symbol='XSLT_FUNC_WHEN' type='enum'/>
+ <exports symbol='XSLT_FUNC_WITHPARAM' type='enum'/>
+ <exports symbol='XSLT_OUTPUT_HTML' type='enum'/>
+ <exports symbol='XSLT_OUTPUT_TEXT' type='enum'/>
+ <exports symbol='XSLT_OUTPUT_XML' type='enum'/>
+ <exports symbol='XSLT_STATE_ERROR' type='enum'/>
+ <exports symbol='XSLT_STATE_OK' type='enum'/>
+ <exports symbol='XSLT_STATE_STOPPED' type='enum'/>
+ <exports symbol='xsltCompilerCtxt' type='typedef'/>
+ <exports symbol='xsltCompilerCtxtPtr' type='typedef'/>
+ <exports symbol='xsltCompilerNodeInfo' type='typedef'/>
<exports symbol='xsltCompilerNodeInfoPtr' type='typedef'/>
- <exports symbol='xsltStyleItemLRElementInfoPtr' type='typedef'/>
- <exports symbol='xsltRuntimeExtraPtr' type='typedef'/>
- <exports symbol='xsltStyleItemLRElementInfo' type='typedef'/>
- <exports symbol='xsltStyleItemWithParamPtr' type='typedef'/>
- <exports symbol='xsltStyleItemCommentPtr' type='typedef'/>
- <exports symbol='xsltStyleItemMessage' type='typedef'/>
- <exports symbol='xsltStyleItemParamPtr' type='typedef'/>
- <exports symbol='xsltStyleItemCopyOf' type='typedef'/>
- <exports symbol='xsltStyleItemCallTemplatePtr' type='typedef'/>
- <exports symbol='xsltTransformCache' type='typedef'/>
- <exports symbol='xsltStyleItemCopyOfPtr' type='typedef'/>
- <exports symbol='xsltNsMap' type='typedef'/>
- <exports symbol='xsltEffectiveNs' type='typedef'/>
- <exports symbol='xsltStyleItemApplyImportsPtr' type='typedef'/>
- <exports symbol='xsltStylesheet' type='typedef'/>
- <exports symbol='xsltStylePreCompPtr' type='typedef'/>
- <exports symbol='xsltNsMapPtr' type='typedef'/>
+ <exports symbol='xsltDecimalFormat' type='typedef'/>
<exports symbol='xsltDecimalFormatPtr' type='typedef'/>
- <exports symbol='xsltStyleItemIncludePtr' type='typedef'/>
- <exports symbol='xsltKeyTablePtr' type='typedef'/>
- <exports symbol='xsltStyleItemTextPtr' type='typedef'/>
- <exports symbol='xsltCompilerNodeInfo' type='typedef'/>
- <exports symbol='xsltStylesheetPtr' type='typedef'/>
- <exports symbol='xsltTemplatePtr' type='typedef'/>
- <exports symbol='xsltStyleBasicEmptyItem' type='typedef'/>
- <exports symbol='xsltStackElem' type='typedef'/>
- <exports symbol='xsltStyleItemIfPtr' type='typedef'/>
- <exports symbol='xsltStyleItemWhenPtr' type='typedef'/>
- <exports symbol='xsltStyleItemElementPtr' type='typedef'/>
- <exports symbol='xsltStyleItemOtherwise' type='typedef'/>
- <exports symbol='xsltStyleItemCopy' type='typedef'/>
- <exports symbol='xsltKeyDefPtr' type='typedef'/>
- <exports symbol='xsltVarInfoPtr' type='typedef'/>
- <exports symbol='xsltStyleItemSort' type='typedef'/>
- <exports symbol='xsltTransformCachePtr' type='typedef'/>
- <exports symbol='xsltStyleItemExtElementPtr' type='typedef'/>
- <exports symbol='xsltNsAliasPtr' type='typedef'/>
- <exports symbol='xsltStyleItemValueOfPtr' type='typedef'/>
+ <exports symbol='xsltDocument' type='typedef'/>
<exports symbol='xsltDocumentPtr' type='typedef'/>
- <exports symbol='xsltPointerListPtr' type='typedef'/>
- <exports symbol='xsltTemplate' type='typedef'/>
- <exports symbol='xsltStyleBasicExpressionItemPtr' type='typedef'/>
- <exports symbol='xsltRuntimeExtra' type='typedef'/>
- <exports symbol='xsltStyleItemAttributePtr' type='typedef'/>
- <exports symbol='xsltTransformContext' type='typedef'/>
- <exports symbol='xsltPointerList' type='typedef'/>
- <exports symbol='xsltStyleItemUknown' type='typedef'/>
- <exports symbol='xsltErrorSeverityType' type='typedef'/>
+ <exports symbol='xsltEffectiveNs' type='typedef'/>
+ <exports symbol='xsltEffectiveNsPtr' type='typedef'/>
+ <exports symbol='xsltElemPreComp' type='typedef'/>
<exports symbol='xsltElemPreCompPtr' type='typedef'/>
- <exports symbol='xsltStyleItemFallback' type='typedef'/>
- <exports symbol='xsltStyleItemOtherwisePtr' type='typedef'/>
- <exports symbol='xsltStyleItemWhen' type='typedef'/>
- <exports symbol='xsltStyleItemIf' type='typedef'/>
- <exports symbol='xsltTransformContextPtr' type='typedef'/>
+ <exports symbol='xsltErrorSeverityType' type='typedef'/>
+ <exports symbol='xsltKeyDef' type='typedef'/>
+ <exports symbol='xsltKeyDefPtr' type='typedef'/>
+ <exports symbol='xsltKeyTable' type='typedef'/>
+ <exports symbol='xsltKeyTablePtr' type='typedef'/>
+ <exports symbol='xsltNsAlias' type='typedef'/>
+ <exports symbol='xsltNsAliasPtr' type='typedef'/>
<exports symbol='xsltNsList' type='typedef'/>
- <exports symbol='xsltStyleItemForEach' type='typedef'/>
- <exports symbol='xsltStyleItemExtElement' type='typedef'/>
- <exports symbol='xsltNsListContainerPtr' type='typedef'/>
- <exports symbol='xsltStyleBasicExpressionItem' type='typedef'/>
- <exports symbol='xsltStyleItemWithParam' type='typedef'/>
- <exports symbol='xsltStyleItemElement' type='typedef'/>
- <exports symbol='xsltCompilerCtxt' type='typedef'/>
- <exports symbol='xsltStyleItemComment' type='typedef'/>
- <exports symbol='xsltEffectiveNsPtr' type='typedef'/>
- <exports symbol='xsltStyleItemVariable' type='typedef'/>
- <exports symbol='xsltStyleItemVariablePtr' type='typedef'/>
- <exports symbol='xsltStyleItemParam' type='typedef'/>
<exports symbol='xsltNsListContainer' type='typedef'/>
- <exports symbol='xsltStackElemPtr' type='typedef'/>
- <exports symbol='xsltStyleBasicEmptyItemPtr' type='typedef'/>
- <exports symbol='xsltStyleItemText' type='typedef'/>
- <exports symbol='xsltStyleItemCopyPtr' type='typedef'/>
- <exports symbol='xsltStyleItemSortPtr' type='typedef'/>
- <exports symbol='xsltPrincipalStylesheetData' type='typedef'/>
+ <exports symbol='xsltNsListContainerPtr' type='typedef'/>
+ <exports symbol='xsltNsListPtr' type='typedef'/>
+ <exports symbol='xsltNsMap' type='typedef'/>
+ <exports symbol='xsltNsMapPtr' type='typedef'/>
<exports symbol='xsltOutputType' type='typedef'/>
+ <exports symbol='xsltPointerList' type='typedef'/>
+ <exports symbol='xsltPointerListPtr' type='typedef'/>
+ <exports symbol='xsltPrincipalStylesheetData' type='typedef'/>
<exports symbol='xsltPrincipalStylesheetDataPtr' type='typedef'/>
+ <exports symbol='xsltRuntimeExtra' type='typedef'/>
+ <exports symbol='xsltRuntimeExtraPtr' type='typedef'/>
+ <exports symbol='xsltStackElem' type='typedef'/>
+ <exports symbol='xsltStackElemPtr' type='typedef'/>
+ <exports symbol='xsltStyleBasicEmptyItem' type='typedef'/>
+ <exports symbol='xsltStyleBasicEmptyItemPtr' type='typedef'/>
+ <exports symbol='xsltStyleBasicExpressionItem' type='typedef'/>
+ <exports symbol='xsltStyleBasicExpressionItemPtr' type='typedef'/>
<exports symbol='xsltStyleBasicItemVariable' type='typedef'/>
- <exports symbol='xsltStyleItemChoosePtr' type='typedef'/>
- <exports symbol='xsltNsAlias' type='typedef'/>
- <exports symbol='xsltVarInfo' type='typedef'/>
+ <exports symbol='xsltStyleBasicItemVariablePtr' type='typedef'/>
<exports symbol='xsltStyleItemApplyImports' type='typedef'/>
- <exports symbol='xsltKeyTable' type='typedef'/>
- <exports symbol='xsltStylePreComp' type='typedef'/>
- <exports symbol='xsltNsListPtr' type='typedef'/>
- <exports symbol='xsltKeyDef' type='typedef'/>
- <exports symbol='xsltDecimalFormat' type='typedef'/>
+ <exports symbol='xsltStyleItemApplyImportsPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemApplyTemplates' type='typedef'/>
<exports symbol='xsltStyleItemApplyTemplatesPtr' type='typedef'/>
- <exports symbol='xsltStyleItemUknownPtr' type='typedef'/>
- <exports symbol='xsltStyleItemValueOf' type='typedef'/>
- <exports symbol='xsltCompilerCtxtPtr' type='typedef'/>
<exports symbol='xsltStyleItemAttribute' type='typedef'/>
- <exports symbol='xsltStyleItemDocumentPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemAttributePtr' type='typedef'/>
<exports symbol='xsltStyleItemCallTemplate' type='typedef'/>
+ <exports symbol='xsltStyleItemCallTemplatePtr' type='typedef'/>
+ <exports symbol='xsltStyleItemChoose' type='typedef'/>
+ <exports symbol='xsltStyleItemChoosePtr' type='typedef'/>
+ <exports symbol='xsltStyleItemComment' type='typedef'/>
+ <exports symbol='xsltStyleItemCommentPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemCopy' type='typedef'/>
+ <exports symbol='xsltStyleItemCopyOf' type='typedef'/>
+ <exports symbol='xsltStyleItemCopyOfPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemCopyPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemDocument' type='typedef'/>
+ <exports symbol='xsltStyleItemDocumentPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemElement' type='typedef'/>
+ <exports symbol='xsltStyleItemElementPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemExtElement' type='typedef'/>
+ <exports symbol='xsltStyleItemExtElementPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemFallback' type='typedef'/>
<exports symbol='xsltStyleItemFallbackPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemForEach' type='typedef'/>
+ <exports symbol='xsltStyleItemForEachPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemIf' type='typedef'/>
+ <exports symbol='xsltStyleItemIfPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemInclude' type='typedef'/>
+ <exports symbol='xsltStyleItemIncludePtr' type='typedef'/>
+ <exports symbol='xsltStyleItemLRElementInfo' type='typedef'/>
+ <exports symbol='xsltStyleItemLRElementInfoPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemMessage' type='typedef'/>
+ <exports symbol='xsltStyleItemMessagePtr' type='typedef'/>
<exports symbol='xsltStyleItemNumber' type='typedef'/>
- <exports symbol='xsltStyleItemApplyTemplates' type='typedef'/>
- <exports symbol='xsltStyleItemChoose' type='typedef'/>
- <exports symbol='xsltStyleType' type='typedef'/>
+ <exports symbol='xsltStyleItemNumberPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemOtherwise' type='typedef'/>
+ <exports symbol='xsltStyleItemOtherwisePtr' type='typedef'/>
<exports symbol='xsltStyleItemPI' type='typedef'/>
- <exports symbol='xsltStyleItemInclude' type='typedef'/>
- <exports symbol='_xsltPointerList' type='struct'/>
- <exports symbol='_xsltStyleItemSort' type='struct'/>
- <exports symbol='_xsltNsAlias' type='struct'/>
- <exports symbol='_xsltTemplate' type='struct'/>
- <exports symbol='_xsltStyleItemWhen' type='struct'/>
- <exports symbol='_xsltVarInfo' type='struct'/>
- <exports symbol='_xsltNsList' type='struct'/>
- <exports symbol='_xsltStyleItemInclude' type='struct'/>
- <exports symbol='_xsltEffectiveNs' type='struct'/>
- <exports symbol='_xsltDecimalFormat' type='struct'/>
- <exports symbol='_xsltStyleItemAttribute' type='struct'/>
- <exports symbol='_xsltStyleItemValueOf' type='struct'/>
- <exports symbol='_xsltStyleItemDocument' type='struct'/>
- <exports symbol='_xsltStyleItemMessage' type='struct'/>
- <exports symbol='_xsltStyleItemCopy' type='struct'/>
- <exports symbol='_xsltStyleItemText' type='struct'/>
- <exports symbol='_xsltStyleBasicExpressionItem' type='struct'/>
- <exports symbol='_xsltStylesheet' type='struct'/>
- <exports symbol='_xsltNsListContainer' type='struct'/>
- <exports symbol='_xsltStyleItemCallTemplate' type='struct'/>
- <exports symbol='_xsltStyleItemApplyTemplates' type='struct'/>
- <exports symbol='_xsltElemPreComp' type='struct'/>
+ <exports symbol='xsltStyleItemPIPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemParam' type='typedef'/>
+ <exports symbol='xsltStyleItemParamPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemSort' type='typedef'/>
+ <exports symbol='xsltStyleItemSortPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemText' type='typedef'/>
+ <exports symbol='xsltStyleItemTextPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemUknown' type='typedef'/>
+ <exports symbol='xsltStyleItemUknownPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemValueOf' type='typedef'/>
+ <exports symbol='xsltStyleItemValueOfPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemVariable' type='typedef'/>
+ <exports symbol='xsltStyleItemVariablePtr' type='typedef'/>
+ <exports symbol='xsltStyleItemWhen' type='typedef'/>
+ <exports symbol='xsltStyleItemWhenPtr' type='typedef'/>
+ <exports symbol='xsltStyleItemWithParam' type='typedef'/>
+ <exports symbol='xsltStyleItemWithParamPtr' type='typedef'/>
+ <exports symbol='xsltStylePreComp' type='typedef'/>
+ <exports symbol='xsltStylePreCompPtr' type='typedef'/>
+ <exports symbol='xsltStyleType' type='typedef'/>
+ <exports symbol='xsltStylesheet' type='typedef'/>
+ <exports symbol='xsltStylesheetPtr' type='typedef'/>
+ <exports symbol='xsltTemplate' type='typedef'/>
+ <exports symbol='xsltTemplatePtr' type='typedef'/>
+ <exports symbol='xsltTransformCache' type='typedef'/>
+ <exports symbol='xsltTransformCachePtr' type='typedef'/>
+ <exports symbol='xsltTransformContext' type='typedef'/>
+ <exports symbol='xsltTransformContextPtr' type='typedef'/>
+ <exports symbol='xsltTransformState' type='typedef'/>
+ <exports symbol='xsltVarInfo' type='typedef'/>
+ <exports symbol='xsltVarInfoPtr' type='typedef'/>
<exports symbol='_xsltCompilerCtxt' type='struct'/>
- <exports symbol='_xsltKeyTable' type='struct'/>
- <exports symbol='_xsltStyleItemUknown' type='struct'/>
- <exports symbol='_xsltStyleItemNumber' type='struct'/>
- <exports symbol='_xsltStylePreComp' type='struct'/>
- <exports symbol='_xsltTransformCache' type='struct'/>
<exports symbol='_xsltCompilerNodeInfo' type='struct'/>
+ <exports symbol='_xsltDecimalFormat' type='struct'/>
+ <exports symbol='_xsltDocument' type='struct'/>
+ <exports symbol='_xsltEffectiveNs' type='struct'/>
+ <exports symbol='_xsltElemPreComp' type='struct'/>
+ <exports symbol='_xsltKeyDef' type='struct'/>
+ <exports symbol='_xsltKeyTable' type='struct'/>
+ <exports symbol='_xsltNsAlias' type='struct'/>
+ <exports symbol='_xsltNsList' type='struct'/>
+ <exports symbol='_xsltNsListContainer' type='struct'/>
<exports symbol='_xsltNsMap' type='struct'/>
+ <exports symbol='_xsltPointerList' type='struct'/>
+ <exports symbol='_xsltPrincipalStylesheetData' type='struct'/>
+ <exports symbol='_xsltRuntimeExtra' type='struct'/>
+ <exports symbol='_xsltStackElem' type='struct'/>
+ <exports symbol='_xsltStyleBasicEmptyItem' type='struct'/>
+ <exports symbol='_xsltStyleBasicExpressionItem' type='struct'/>
+ <exports symbol='_xsltStyleBasicItemVariable' type='struct'/>
+ <exports symbol='_xsltStyleItemApplyTemplates' type='struct'/>
+ <exports symbol='_xsltStyleItemAttribute' type='struct'/>
+ <exports symbol='_xsltStyleItemCallTemplate' type='struct'/>
+ <exports symbol='_xsltStyleItemCopy' type='struct'/>
+ <exports symbol='_xsltStyleItemDocument' type='struct'/>
<exports symbol='_xsltStyleItemElement' type='struct'/>
- <exports symbol='_xsltStyleItemPI' type='struct'/>
<exports symbol='_xsltStyleItemExtElement' type='struct'/>
- <exports symbol='_xsltStyleItemParam' type='struct'/>
- <exports symbol='_xsltStackElem' type='struct'/>
- <exports symbol='_xsltTransformContext' type='struct'/>
<exports symbol='_xsltStyleItemIf' type='struct'/>
- <exports symbol='_xsltStyleBasicItemVariable' type='struct'/>
- <exports symbol='_xsltRuntimeExtra' type='struct'/>
- <exports symbol='_xsltKeyDef' type='struct'/>
- <exports symbol='_xsltPrincipalStylesheetData' type='struct'/>
+ <exports symbol='_xsltStyleItemInclude' type='struct'/>
<exports symbol='_xsltStyleItemLRElementInfo' type='struct'/>
+ <exports symbol='_xsltStyleItemMessage' type='struct'/>
+ <exports symbol='_xsltStyleItemNumber' type='struct'/>
<exports symbol='_xsltStyleItemOtherwise' type='struct'/>
- <exports symbol='_xsltDocument' type='struct'/>
- <exports symbol='_xsltStyleBasicEmptyItem' type='struct'/>
- <exports symbol='xsltXSLTAttrMarker' type='variable'/>
+ <exports symbol='_xsltStyleItemPI' type='struct'/>
+ <exports symbol='_xsltStyleItemParam' type='struct'/>
+ <exports symbol='_xsltStyleItemSort' type='struct'/>
+ <exports symbol='_xsltStyleItemText' type='struct'/>
+ <exports symbol='_xsltStyleItemUknown' type='struct'/>
+ <exports symbol='_xsltStyleItemValueOf' type='struct'/>
+ <exports symbol='_xsltStyleItemWhen' type='struct'/>
+ <exports symbol='_xsltStylePreComp' type='struct'/>
+ <exports symbol='_xsltStylesheet' type='struct'/>
+ <exports symbol='_xsltTemplate' type='struct'/>
+ <exports symbol='_xsltTransformCache' type='struct'/>
+ <exports symbol='_xsltTransformContext' type='struct'/>
+ <exports symbol='_xsltVarInfo' type='struct'/>
<exports symbol='xsltConstNamespaceNameXSLT' type='variable'/>
- <exports symbol='xsltElemPreCompDeallocator' type='function'/>
- <exports symbol='xsltRegisterPersistRVT' type='function'/>
- <exports symbol='xsltParseStylesheetImportedDoc' type='function'/>
- <exports symbol='xsltFreeStackElemList' type='function'/>
+ <exports symbol='xsltXSLTAttrMarker' type='variable'/>
<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='xsltAllocateExtraCtxt' type='function'/>
+ <exports symbol='xsltCompileAttr' type='function'/>
+ <exports symbol='xsltCreateRVT' type='function'/>
<exports symbol='xsltDecimalFormatGetByName' type='function'/>
+ <exports symbol='xsltDecimalFormatGetByQName' type='function'/>
+ <exports symbol='xsltElemPreCompDeallocator' type='function'/>
+ <exports symbol='xsltEvalAVT' type='function'/>
<exports symbol='xsltExtensionInstructionResultFinalize' type='function'/>
- <exports symbol='xsltParseStylesheetUser' type='function'/>
- <exports symbol='xsltPointerListFree' type='function'/>
- <exports symbol='xsltIsBlank' type='function'/>
+ <exports symbol='xsltExtensionInstructionResultRegister' type='function'/>
+ <exports symbol='xsltFlagRVTs' type='function'/>
<exports symbol='xsltFormatNumberConversion' type='function'/>
- <exports symbol='xsltPointerListAddSize' type='function'/>
- <exports symbol='xsltSortFunc' type='function'/>
- <exports symbol='xsltUninit' type='function'/>
+ <exports symbol='xsltFreeAVTList' type='function'/>
+ <exports symbol='xsltFreeLocaleFunc' type='function'/>
+ <exports symbol='xsltFreeRVTs' type='function'/>
+ <exports symbol='xsltFreeStackElemList' type='function'/>
<exports symbol='xsltFreeStylesheet' type='function'/>
- <exports symbol='xsltCreateRVT' type='function'/>
+ <exports symbol='xsltGenSortKeyFunc' type='function'/>
+ <exports symbol='xsltInitAllDocKeys' type='function'/>
+ <exports symbol='xsltInitCtxtKey' type='function'/>
+ <exports symbol='xsltIsBlank' type='function'/>
+ <exports symbol='xsltLoadStylesheetPI' type='function'/>
+ <exports symbol='xsltNewLocaleFunc' type='function'/>
+ <exports symbol='xsltNewStylesheet' type='function'/>
+ <exports symbol='xsltNumberFormat' type='function'/>
+ <exports symbol='xsltParseAnyXSLTElem' type='function'/>
+ <exports symbol='xsltParseSequenceConstructor' type='function'/>
+ <exports symbol='xsltParseStylesheetDoc' type='function'/>
<exports symbol='xsltParseStylesheetFile' type='function'/>
+ <exports symbol='xsltParseStylesheetImportedDoc' type='function'/>
<exports symbol='xsltParseStylesheetOutput' type='function'/>
- <exports symbol='xsltParseAnyXSLTElem' type='function'/>
- <exports symbol='xsltCompileAttr' type='function'/>
- <exports symbol='xsltRestoreDocumentNamespaces' type='function'/>
- <exports symbol='xsltNumberFormat' type='function'/>
- <exports symbol='xsltReleaseRVT' type='function'/>
- <exports symbol='xsltFreeRVTs' type='function'/>
- <exports symbol='xsltExtensionInstructionResultRegister' type='function'/>
- <exports symbol='xsltPointerListCreate' type='function'/>
- <exports symbol='xsltFreeAVTList' type='function'/>
- <exports symbol='xsltAllocateExtraCtxt' type='function'/>
- <exports symbol='xsltParseTemplateContent' type='function'/>
- <exports symbol='xsltNewStylesheet' type='function'/>
<exports symbol='xsltParseStylesheetProcess' type='function'/>
- <exports symbol='xsltDecimalFormatGetByQName' type='function'/>
- <exports symbol='xsltTransformFunction' type='function'/>
- <exports symbol='xsltRegisterLocalRVT' type='function'/>
- <exports symbol='xsltParseStylesheetDoc' type='function'/>
- <exports symbol='xsltInitCtxtKey' type='function'/>
- <exports symbol='xsltEvalAVT' type='function'/>
+ <exports symbol='xsltParseStylesheetUser' type='function'/>
+ <exports symbol='xsltParseTemplateContent' type='function'/>
+ <exports symbol='xsltPointerListAddSize' type='function'/>
<exports symbol='xsltPointerListClear' type='function'/>
- <exports symbol='xsltLoadStylesheetPI' type='function'/>
+ <exports symbol='xsltPointerListCreate' type='function'/>
+ <exports symbol='xsltPointerListFree' type='function'/>
+ <exports symbol='xsltRegisterLocalRVT' type='function'/>
+ <exports symbol='xsltRegisterPersistRVT' type='function'/>
+ <exports symbol='xsltRegisterTmpRVT' type='function'/>
+ <exports symbol='xsltReleaseRVT' type='function'/>
+ <exports symbol='xsltRestoreDocumentNamespaces' type='function'/>
+ <exports symbol='xsltSortFunc' type='function'/>
+ <exports symbol='xsltTransformFunction' type='function'/>
+ <exports symbol='xsltUninit' type='function'/>
</file>
<file name='xsltexports'>
<summary>macros for marking symbols as exportable/importable.</summary>
<description>macros for marking symbols as exportable/importable. </description>
<exports symbol='LIBXSLT_PUBLIC' type='macro'/>
+ <exports symbol='XSLTCALL' type='macro'/>
<exports symbol='XSLTPUBFUN' type='macro'/>
- <exports symbol='XSLTPUBVAR' type='macro'/>
<exports symbol='XSLTPUBLIC' type='macro'/>
- <exports symbol='XSLTCALL' type='macro'/>
+ <exports symbol='XSLTPUBVAR' type='macro'/>
</file>
<file name='xsltlocale'>
<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'/>
- <exports symbol='xsltLocaleStrcmp' type='function'/>
<exports symbol='xsltFreeLocale' type='function'/>
- <exports symbol='xsltStrxfrm' type='function'/>
<exports symbol='xsltFreeLocales' type='function'/>
+ <exports symbol='xsltLocaleStrcmp' type='function'/>
+ <exports symbol='xsltNewLocale' type='function'/>
+ <exports symbol='xsltStrxfrm' type='function'/>
</file>
<file name='xsltutils'>
<summary>set of utilities for the XSLT engine</summary>
<description>interfaces for the utilities module of the XSLT engine. things like message handling, profiling, and other generally useful routines. </description>
<author>Daniel Veillard </author>
- <exports symbol='IS_XSLT_REAL_NODE' type='macro'/>
<exports symbol='IS_XSLT_ELEM' type='macro'/>
<exports symbol='IS_XSLT_NAME' type='macro'/>
- <exports symbol='XSLT_TODO' type='macro'/>
+ <exports symbol='IS_XSLT_REAL_NODE' type='macro'/>
<exports symbol='XSLT_STRANGE' type='macro'/>
<exports symbol='XSLT_TIMESTAMP_TICS_PER_SEC' type='macro'/>
+ <exports symbol='XSLT_TODO' type='macro'/>
<exports symbol='XSLT_TRACE' type='macro'/>
- <exports symbol='XSLT_TRACE_KEYS' type='enum'/>
+ <exports symbol='XSLT_DEBUG_CONT' type='enum'/>
+ <exports symbol='XSLT_DEBUG_INIT' type='enum'/>
<exports symbol='XSLT_DEBUG_NEXT' type='enum'/>
- <exports symbol='XSLT_TRACE_COPY_OF' type='enum'/>
- <exports symbol='XSLT_TRACE_FOR_EACH' type='enum'/>
- <exports symbol='XSLT_DEBUG_STEPOUT' type='enum'/>
+ <exports symbol='XSLT_DEBUG_NONE' type='enum'/>
+ <exports symbol='XSLT_DEBUG_QUIT' type='enum'/>
<exports symbol='XSLT_DEBUG_RUN' type='enum'/>
- <exports symbol='XSLT_TRACE_APPLY_TEMPLATES' type='enum'/>
- <exports symbol='XSLT_TRACE_CHOOSE' type='enum'/>
- <exports symbol='XSLT_DEBUG_INIT' type='enum'/>
<exports symbol='XSLT_DEBUG_RUN_RESTART' type='enum'/>
- <exports symbol='XSLT_TRACE_ALL' type='enum'/>
- <exports symbol='XSLT_TRACE_CALL_TEMPLATE' type='enum'/>
- <exports symbol='XSLT_TRACE_IF' type='enum'/>
- <exports symbol='XSLT_TRACE_PROCESS_NODE' type='enum'/>
- <exports symbol='XSLT_TRACE_COPY_TEXT' type='enum'/>
- <exports symbol='XSLT_TRACE_APPLY_TEMPLATE' type='enum'/>
- <exports symbol='XSLT_DEBUG_CONT' type='enum'/>
- <exports symbol='XSLT_TRACE_VALUE_OF' type='enum'/>
<exports symbol='XSLT_DEBUG_STEP' type='enum'/>
- <exports symbol='XSLT_TRACE_STRIP_SPACES' type='enum'/>
+ <exports symbol='XSLT_DEBUG_STEPOUT' type='enum'/>
<exports symbol='XSLT_DEBUG_STOP' type='enum'/>
+ <exports symbol='XSLT_TRACE_ALL' type='enum'/>
+ <exports symbol='XSLT_TRACE_APPLY_TEMPLATE' type='enum'/>
+ <exports symbol='XSLT_TRACE_APPLY_TEMPLATES' type='enum'/>
+ <exports symbol='XSLT_TRACE_CALL_TEMPLATE' type='enum'/>
+ <exports symbol='XSLT_TRACE_CHOOSE' type='enum'/>
+ <exports symbol='XSLT_TRACE_COMMENT' type='enum'/>
<exports symbol='XSLT_TRACE_COPY' type='enum'/>
+ <exports symbol='XSLT_TRACE_COPY_OF' type='enum'/>
+ <exports symbol='XSLT_TRACE_COPY_TEXT' type='enum'/>
+ <exports symbol='XSLT_TRACE_FOR_EACH' type='enum'/>
+ <exports symbol='XSLT_TRACE_IF' type='enum'/>
+ <exports symbol='XSLT_TRACE_KEYS' type='enum'/>
<exports symbol='XSLT_TRACE_NONE' type='enum'/>
- <exports symbol='XSLT_DEBUG_NONE' type='enum'/>
<exports symbol='XSLT_TRACE_PI' type='enum'/>
- <exports symbol='XSLT_TRACE_COMMENT' type='enum'/>
- <exports symbol='XSLT_TRACE_VARIABLES' type='enum'/>
- <exports symbol='XSLT_DEBUG_QUIT' type='enum'/>
+ <exports symbol='XSLT_TRACE_PROCESS_NODE' type='enum'/>
+ <exports symbol='XSLT_TRACE_STRIP_SPACES' type='enum'/>
<exports symbol='XSLT_TRACE_TEMPLATES' type='enum'/>
- <exports symbol='xsltDebugTraceCodes' type='typedef'/>
+ <exports symbol='XSLT_TRACE_VALUE_OF' type='enum'/>
+ <exports symbol='XSLT_TRACE_VARIABLES' type='enum'/>
<exports symbol='xsltDebugStatusCodes' type='typedef'/>
- <exports symbol='xsltGenericError' type='variable'/>
- <exports symbol='xsltGenericDebug' type='variable'/>
- <exports symbol='xsltGenericErrorContext' type='variable'/>
+ <exports symbol='xsltDebugTraceCodes' type='typedef'/>
<exports symbol='xslDebugStatus' type='variable'/>
+ <exports symbol='xsltGenericDebug' type='variable'/>
<exports symbol='xsltGenericDebugContext' type='variable'/>
- <exports symbol='xsltSaveResultToFile' type='function'/>
- <exports symbol='xsltSetGenericErrorFunc' type='function'/>
- <exports symbol='xsltSetDebuggerCallbacks' type='function'/>
- <exports symbol='xsltSaveResultTo' type='function'/>
- <exports symbol='xsltTransformError' type='function'/>
+ <exports symbol='xsltGenericError' type='variable'/>
+ <exports symbol='xsltGenericErrorContext' type='variable'/>
<exports symbol='xslAddCall' type='function'/>
- <exports symbol='xsltDocumentSortFunction' type='function'/>
- <exports symbol='xsltGetQNameURI2' type='function'/>
+ <exports symbol='xslDropCall' type='function'/>
+ <exports symbol='xsltAddCallCallback' type='function'/>
+ <exports symbol='xsltCalibrateAdjust' type='function'/>
<exports symbol='xsltComputeSortResult' type='function'/>
- <exports symbol='xsltPrintErrorContext' type='function'/>
- <exports symbol='xsltGetUTF8Char' type='function'/>
+ <exports symbol='xsltDebugGetDefaultTrace' type='function'/>
+ <exports symbol='xsltDebugSetDefaultTrace' type='function'/>
<exports symbol='xsltDefaultSortFunction' type='function'/>
- <exports symbol='xsltSaveResultToFd' type='function'/>
- <exports symbol='xsltSetCtxtSortFunc' type='function'/>
- <exports symbol='xsltGetNsProp' type='function'/>
+ <exports symbol='xsltDoSortFunction' type='function'/>
+ <exports symbol='xsltDocumentSortFunction' type='function'/>
+ <exports symbol='xsltDropCallCallback' type='function'/>
<exports symbol='xsltGetCNsProp' type='function'/>
+ <exports symbol='xsltGetDebuggerStatus' type='function'/>
+ <exports symbol='xsltGetNsProp' type='function'/>
+ <exports symbol='xsltGetProfileInformation' type='function'/>
<exports symbol='xsltGetQNameURI' type='function'/>
- <exports symbol='xsltAddCallCallback' type='function'/>
- <exports symbol='xsltCalibrateAdjust' type='function'/>
+ <exports symbol='xsltGetQNameURI2' type='function'/>
+ <exports symbol='xsltGetUTF8Char' type='function'/>
+ <exports symbol='xsltHandleDebuggerCallback' type='function'/>
+ <exports symbol='xsltMessage' type='function'/>
+ <exports symbol='xsltPrintErrorContext' type='function'/>
<exports symbol='xsltSaveProfiling' type='function'/>
+ <exports symbol='xsltSaveResultTo' type='function'/>
+ <exports symbol='xsltSaveResultToFd' type='function'/>
+ <exports symbol='xsltSaveResultToFile' type='function'/>
+ <exports symbol='xsltSaveResultToFilename' type='function'/>
<exports symbol='xsltSaveResultToString' type='function'/>
+ <exports symbol='xsltSetCtxtLocaleHandlers' type='function'/>
+ <exports symbol='xsltSetCtxtParseOptions' type='function'/>
+ <exports symbol='xsltSetCtxtSortFunc' type='function'/>
+ <exports symbol='xsltSetDebuggerCallbacks' type='function'/>
+ <exports symbol='xsltSetDebuggerStatus' type='function'/>
+ <exports symbol='xsltSetGenericDebugFunc' type='function'/>
+ <exports symbol='xsltSetGenericErrorFunc' type='function'/>
+ <exports symbol='xsltSetSortFunc' type='function'/>
+ <exports symbol='xsltSetTransformErrorFunc' type='function'/>
<exports symbol='xsltSplitQName' type='function'/>
- <exports symbol='xsltDoSortFunction' type='function'/>
- <exports symbol='xsltDebugGetDefaultTrace' type='function'/>
- <exports symbol='xsltMessage' type='function'/>
- <exports symbol='xsltGetDebuggerStatus' type='function'/>
<exports symbol='xsltTimestamp' type='function'/>
- <exports symbol='xsltSetTransformErrorFunc' type='function'/>
+ <exports symbol='xsltTransformError' type='function'/>
<exports symbol='xsltXPathCompile' type='function'/>
- <exports symbol='xsltDebugSetDefaultTrace' type='function'/>
- <exports symbol='xsltSetGenericDebugFunc' type='function'/>
<exports symbol='xsltXPathCompileFlags' type='function'/>
- <exports symbol='xsltSetCtxtParseOptions' type='function'/>
- <exports symbol='xsltSetDebuggerStatus' type='function'/>
- <exports symbol='xslDropCall' type='function'/>
- <exports symbol='xsltSetSortFunc' type='function'/>
- <exports symbol='xsltHandleDebuggerCallback' type='function'/>
- <exports symbol='xsltSaveResultToFilename' type='function'/>
- <exports symbol='xsltDropCallCallback' type='function'/>
- <exports symbol='xsltGetProfileInformation' type='function'/>
</file>
</files>
<symbols>
<macro name='XSLT_LIBXSLT_NAMESPACE' file='extra'>
<info>This is the libxslt namespace for specific extensions.</info>
</macro>
- <macro name='XSLT_LOCALE_NONE' file='xsltlocale'>
- <info>Macro indicating that there'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>
</macro>
<field name='has_ns' type='int' info=''/>
</struct>
<typedef name='xsltStyleBasicItemVariablePtr' file='xsltInternals' type='xsltStyleBasicItemVariable *'/>
- <typedef name='xsltStyleItemApplyImports' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
+ <typedef name='xsltStyleItemApplyImports' file='xsltInternals' type='xsltStyleBasicEmptyItem'>
+ <info><!-- Category: instruction --> <xsl:apply-imports /></info>
+ </typedef>
<typedef name='xsltStyleItemApplyImportsPtr' file='xsltInternals' type='xsltStyleItemApplyImports *'/>
<struct name='xsltStyleItemApplyTemplates' file='xsltInternals' type='struct _xsltStyleItemApplyTemplates'>
<field name='mode' type='const xmlChar *' info=' apply-templates'/>
<field name='has_ns' type='int' info=' element TODO: with-params'/>
</struct>
<typedef name='xsltStyleItemCallTemplatePtr' file='xsltInternals' type='xsltStyleItemCallTemplate *'/>
- <typedef name='xsltStyleItemChoose' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
+ <typedef name='xsltStyleItemChoose' file='xsltInternals' type='xsltStyleBasicEmptyItem'>
+ <info><!-- Category: instruction --> <xsl:choose> <!-- Content: (xsl:when+, xsl:otherwise?) --> </xsl:choose></info>
+ </typedef>
<typedef name='xsltStyleItemChoosePtr' file='xsltInternals' type='xsltStyleItemChoose *'/>
- <typedef name='xsltStyleItemComment' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
+ <typedef name='xsltStyleItemComment' file='xsltInternals' type='xsltStyleBasicEmptyItem'>
+ <info><!-- Category: instruction --> <xsl:comment> <!-- Content: template --> </xsl:comment></info>
+ </typedef>
<typedef name='xsltStyleItemCommentPtr' file='xsltInternals' type='xsltStyleItemComment *'/>
<struct name='xsltStyleItemCopy' file='xsltInternals' type='struct _xsltStyleItemCopy'>
<field name='use' type='const xmlChar *' info=' copy, element'/>
<field name='has_use' type='int' info=' copy, element'/>
</struct>
- <typedef name='xsltStyleItemCopyOf' file='xsltInternals' type='xsltStyleBasicExpressionItem'/>
+ <typedef name='xsltStyleItemCopyOf' file='xsltInternals' type='xsltStyleBasicExpressionItem'>
+ <info><!-- Category: instruction --> <xsl:copy-of select = expression /></info>
+ </typedef>
<typedef name='xsltStyleItemCopyOfPtr' file='xsltInternals' type='xsltStyleItemCopyOf *'/>
<typedef name='xsltStyleItemCopyPtr' file='xsltInternals' type='xsltStyleItemCopy *'/>
<struct name='xsltStyleItemDocument' file='xsltInternals' type='struct _xsltStyleItemDocument'>
<field name='item' type='xsltElemPreCompPtr' info=''/>
</struct>
<typedef name='xsltStyleItemExtElementPtr' file='xsltInternals' type='xsltStyleItemExtElement *'/>
- <typedef name='xsltStyleItemFallback' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
+ <typedef name='xsltStyleItemFallback' file='xsltInternals' type='xsltStyleBasicEmptyItem'>
+ <info><!-- Category: instruction --> <xsl:fallback> <!-- Content: template --> </xsl:fallback></info>
+ </typedef>
<typedef name='xsltStyleItemFallbackPtr' file='xsltInternals' type='xsltStyleItemFallback *'/>
- <typedef name='xsltStyleItemForEach' file='xsltInternals' type='xsltStyleBasicExpressionItem'/>
+ <typedef name='xsltStyleItemForEach' file='xsltInternals' type='xsltStyleBasicExpressionItem'>
+ <info><!-- Category: instruction --> <xsl:for-each select = node-set-expression> <!-- Content: (xsl:sort*, template) --> </xsl:for-each></info>
+ </typedef>
<typedef name='xsltStyleItemForEachPtr' file='xsltInternals' type='xsltStyleItemForEach *'/>
<struct name='xsltStyleItemIf' file='xsltInternals' type='struct _xsltStyleItemIf'>
<field name='test' type='const xmlChar *' info=' if'/>
<field name='descending' type='int' info=' sort'/>
<field name='lang' type='const xmlChar *' info=' sort'/>
<field name='has_lang' type='int' info=' sort'/>
- <field name='locale' type='xsltLocale' info=' sort'/>
<field name='case_order' type='const xmlChar *' info=' sort'/>
<field name='lower_first' type='int' info=' sort'/>
<field name='use' type='const xmlChar *' info=''/>
<field name='noescape' type='int' info=''/>
</struct>
<typedef name='xsltStyleItemValueOfPtr' file='xsltInternals' type='xsltStyleItemValueOf *'/>
- <typedef name='xsltStyleItemVariable' file='xsltInternals' type='xsltStyleBasicItemVariable'/>
+ <typedef name='xsltStyleItemVariable' file='xsltInternals' type='xsltStyleBasicItemVariable'>
+ <info><!-- Category: top-level-element --> <xsl:param name = qname select = expression> <!-- Content: template --> </xsl:param></info>
+ </typedef>
<typedef name='xsltStyleItemVariablePtr' file='xsltInternals' type='xsltStyleItemVariable *'/>
<struct name='xsltStyleItemWhen' file='xsltInternals' type='struct _xsltStyleItemWhen'>
<field name='test' type='const xmlChar *' info=''/>
<field name='comp' type='xmlXPathCompExprPtr' info=''/>
</struct>
<typedef name='xsltStyleItemWhenPtr' file='xsltInternals' type='xsltStyleItemWhen *'/>
- <typedef name='xsltStyleItemWithParam' file='xsltInternals' type='xsltStyleBasicItemVariable'/>
+ <typedef name='xsltStyleItemWithParam' file='xsltInternals' type='xsltStyleBasicItemVariable'>
+ <info><xsl:with-param name = qname select = expression> <!-- Content: template --> </xsl:with-param></info>
+ </typedef>
<typedef name='xsltStyleItemWithParamPtr' file='xsltInternals' type='xsltStyleItemWithParam *'/>
<struct name='xsltStylePreComp' file='xsltInternals' type='struct _xsltStylePreComp'>
<field name='next' type='xsltElemPreCompPtr' info=' chained list'/>
<field name='descending' type='int' info=' sort'/>
<field name='lang' type='const xmlChar *' info=' sort'/>
<field name='has_lang' type='int' info=' sort'/>
- <field name='locale' type='xsltLocale' info=' sort'/>
<field name='case_order' type='const xmlChar *' info=' sort'/>
<field name='lower_first' type='int' info=' sort'/>
<field name='use' type='const xmlChar *' info=' copy, element'/>
<field name='maxTemplateVars' type='int' info=''/>
<field name='opLimit' type='unsigned long' info=''/>
<field name='opCount' type='unsigned long' info=''/>
+ <field name='sourceDocDirty' type='int' info=''/>
+ <field name='currentId' type='unsigned long' info=' For generate-id()'/>
+ <field name='newLocale' type='xsltNewLocaleFunc' info=''/>
+ <field name='freeLocale' type='xsltFreeLocaleFunc' info=''/>
+ <field name='genSortKey' type='xsltGenSortKeyFunc' info=''/>
</struct>
<typedef name='xsltTransformContextPtr' file='xsltInternals' type='xsltTransformContext *'/>
<typedef name='xsltTransformState' file='xsltInternals' type='enum'/>
<variable name='xslDebugStatus' file='xsltutils' type='int'/>
<variable name='xsltConstNamespaceNameXSLT' file='xsltInternals' type='const xmlChar *'/>
<variable name='xsltDocDefaultLoader' file='documents' type='xsltDocLoaderFunc'/>
- <variable name='xsltEngineVersion' file='xslt' type='const char *'/>
+ <variable name='xsltEngineVersion' file='xslt' type='const char *'>
+ <info>The version string for libxslt.</info>
+ </variable>
<variable name='xsltExtMarker' file='preproc' type='const xmlChar *'/>
<variable name='xsltGenericDebug' file='xsltutils' type='xmlGenericErrorFunc'/>
<variable name='xsltGenericDebugContext' file='xsltutils' type='void *'/>
<variable name='xsltGenericError' file='xsltutils' type='xmlGenericErrorFunc'/>
<variable name='xsltGenericErrorContext' file='xsltutils' type='void *'/>
- <variable name='xsltLibxmlVersion' file='xslt' type='const int'/>
- <variable name='xsltLibxsltVersion' file='xslt' type='const int'/>
- <variable name='xsltMaxDepth' file='xslt' type='int'/>
+ <variable name='xsltLibxmlVersion' file='xslt' type='const int'>
+ <info>The version of libxml libxslt was compiled against.</info>
+ </variable>
+ <variable name='xsltLibxsltVersion' file='xslt' type='const int'>
+ <info>The version of libxslt compiled.</info>
+ </variable>
+ <variable name='xsltMaxDepth' file='xslt' type='int'>
+ <info>This value is used to detect templates loops.</info>
+ </variable>
<variable name='xsltMaxVars' file='xslt' type='int'/>
- <variable name='xsltXSLTAttrMarker' file='xsltInternals' type='const xmlChar *'/>
- <function name='xslAddCall' file='xsltutils'>
+ <variable name='xsltXSLTAttrMarker' file='xsltInternals' type='const xmlChar *'>
+ <info>Marker for XSLT attribute on Literal Result Elements.</info>
+ </variable>
+ <function name='xslAddCall' file='xsltutils' module='xsltutils'>
<info>Add template "call" to call stack</info>
<return type='int' info=': 1 on sucess 0 otherwise an error may be printed if WITH_XSLT_DEBUG_BREAKPOINTS is defined'/>
<arg name='templ' type='xsltTemplatePtr' info='current template being applied'/>
<arg name='source' type='xmlNodePtr' info='the source node being processed'/>
</function>
- <function name='xslDropCall' file='xsltutils'>
+ <function name='xslDropCall' file='xsltutils' module='xsltutils'>
<info>Drop the topmost item off the call stack</info>
<return type='void'/>
</function>
- <function name='xslHandleDebugger' file='transform'>
+ <function name='xslHandleDebugger' file='transform' module='xsltutils'>
<info>If either cur or node are a breakpoint, or xslDebugStatus in state where debugging must occcur at this time then transfer control to the xslDebugBreak function</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='source node being executed'/>
<arg name='templ' type='xsltTemplatePtr' info='temlate that applies to node'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the xslt transform context'/>
</function>
- <functype name='xsltAddCallCallback' file='xsltutils'>
+ <functype name='xsltAddCallCallback' file='xsltutils' module='xsltutils'>
<info></info>
<return type='int' info=''/>
<arg name='templ' type='xsltTemplatePtr' info=''/>
<arg name='source' type='xmlNodePtr' info=''/>
</functype>
- <function name='xsltAddKey' file='keys'>
+ <function name='xsltAddKey' file='keys' module='keys'>
<info>add a key definition to a stylesheet</info>
<return type='int' info='0 in case of success, and -1 in case of failure.'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
<arg name='use' type='const xmlChar *' info='the use value'/>
<arg name='inst' type='xmlNodePtr' info='the key instruction'/>
</function>
- <function name='xsltAddStackElemList' file='variables'>
+ <function name='xsltAddStackElemList' file='variables' module='variables'>
<info>Push an element list onto the stack.</info>
<return type='int' info='0 in case of success, -1 in case of failure.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='xn XSLT transformation context'/>
<arg name='elems' type='xsltStackElemPtr' info='a stack element list'/>
</function>
- <function name='xsltAddTemplate' file='pattern'>
+ <function name='xsltAddTemplate' file='pattern' module='pattern'>
<info>Register the XSLT pattern associated to @cur</info>
<return type='int' info='-1 in case of error, 0 otherwise'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
<arg name='mode' type='const xmlChar *' info='the mode name or NULL'/>
<arg name='modeURI' type='const xmlChar *' info='the mode URI or NULL'/>
</function>
- <function name='xsltAllocateExtra' file='xsltInternals'>
+ <function name='xsltAllocateExtra' file='xsltInternals' module='xslt'>
<info>Allocate an extra runtime information slot statically while compiling the stylesheet and return its number</info>
<return type='int' info='the number of the slot'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltAllocateExtraCtxt' file='xsltInternals'>
+ <function name='xsltAllocateExtraCtxt' file='xsltInternals' module='xslt'>
<info>Allocate an extra runtime information slot at run-time and return its number This make sure there is a slot ready in the transformation context</info>
<return type='int' info='the number of the slot'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltApplyAttributeSet' file='attributes'>
+ <function name='xsltApplyAttributeSet' file='attributes' module='attributes'>
<info>Apply the xsl:use-attribute-sets. If @attrSets is NULL, then @inst will be used to exctract this value. If both, @attrSets and @inst, are NULL, then this will do nothing.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT stylesheet'/>
<arg name='inst' type='xmlNodePtr' info='the attribute node "xsl:use-attribute-sets"'/>
<arg name='attrSets' type='const xmlChar *' info='the list of QNames of the attribute-sets to be applied'/>
</function>
- <function name='xsltApplyImports' file='transform'>
+ <function name='xsltApplyImports' file='transform' module='transform'>
<info>Process the XSLT apply-imports element.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the element node of the XSLT 'apply-imports' instruction'/>
<arg name='comp' type='xsltElemPreCompPtr' info='the compiled instruction'/>
</function>
- <function name='xsltApplyOneTemplate' file='transform'>
+ <function name='xsltApplyOneTemplate' file='transform' module='transform'>
<info>Processes a sequence constructor on the current node in the source tree. @params are the already computed variable stack items; this function pushes them on the variable stack, and pops them before exiting; it's left to the caller to free or reuse @params afterwards. The initial states of the variable stack will always be restored before this function exits. NOTE that this does *not* initiate a new distinct variable scope; i.e. variables already on the stack are visible to the process. The caller's side needs to start a new variable scope if needed (e.g. in exsl:function). @templ is obsolete and not used anymore (e.g. <exslt:function> does not provide a @templ); a non-NULL @templ might raise an error in the future. BIG NOTE: This function is not intended to process the content of an xsl:template; it does not expect xsl:param instructions in @list and will report errors if found. Called by: - xsltEvalVariable() (variables.c) - exsltFuncFunctionFunction() (libexsl/functions.c)</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='templ' type='xsltTemplatePtr' info='not used'/>
<arg name='params' type='xsltStackElemPtr' info='a set of parameters (xsl:param) or NULL'/>
</function>
- <function name='xsltApplyStripSpaces' file='transform'>
+ <function name='xsltApplyStripSpaces' file='transform' module='transform'>
<info>Strip the unwanted ignorable spaces from the input tree</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='node' type='xmlNodePtr' info='the root of the XML tree'/>
</function>
- <function name='xsltApplyStylesheet' file='transform'>
+ <function name='xsltApplyStylesheet' file='transform' module='transform'>
<info>Apply the stylesheet to the document NOTE: This may lead to a non-wellformed output XML wise !</info>
<return type='xmlDocPtr' info='the result document or NULL in case of error'/>
<arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
<arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
<arg name='params' type='const char **' info='a NULL terminated arry of parameters names/values tuples'/>
</function>
- <function name='xsltApplyStylesheetUser' file='transform'>
+ <function name='xsltApplyStylesheetUser' file='transform' module='transform'>
<info>Apply the stylesheet to the document and allow the user to provide its own transformation context.</info>
<return type='xmlDocPtr' info='the result document or NULL in case of error'/>
<arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
<arg name='profile' type='FILE *' info='profile FILE * output or NULL'/>
<arg name='userCtxt' type='xsltTransformContextPtr' info='user provided transform context'/>
</function>
- <function name='xsltApplyTemplates' file='transform'>
+ <function name='xsltApplyTemplates' file='transform' module='transform'>
<info>Processes the XSLT 'apply-templates' instruction on the current node.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the element node of an XSLT 'apply-templates' instruction'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='the compiled instruction'/>
</function>
- <function name='xsltAttrListTemplateProcess' file='templates'>
+ <function name='xsltAttrListTemplateProcess' file='templates' module='templates'>
<info>Processes all attributes of a Literal Result Element. Attribute references are applied via xsl:use-attribute-set attributes. Copies all non XSLT-attributes over to the @target element and evaluates Attribute Value Templates. Called by xsltApplySequenceConstructor() (transform.c).</info>
<return type='xmlAttrPtr' info='a new list of attribute nodes, or NULL in case of error. (Don't assign the result to @target->properties; if the result is NULL, you'll get memory leaks, since the attributes will be disattached.)'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='target' type='xmlNodePtr' info='the element where the attributes will be grafted'/>
<arg name='attrs' type='xmlAttrPtr' info='the first attribute'/>
</function>
- <function name='xsltAttrTemplateProcess' file='templates'>
+ <function name='xsltAttrTemplateProcess' file='templates' module='templates'>
<info>Process one attribute of a Literal Result Element (in the stylesheet). Evaluates Attribute Value Templates and copies the attribute over to the result element. This does *not* process attribute sets (xsl:use-attribute-set).</info>
<return type='xmlAttrPtr' info='the generated attribute node.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='target' type='xmlNodePtr' info='the element where the attribute will be grafted'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute node of a literal result element'/>
</function>
- <function name='xsltAttrTemplateValueProcess' file='templates'>
+ <function name='xsltAttrTemplateValueProcess' file='templates' module='templates'>
<info>Process the given node and return the new string value.</info>
<return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='str' type='const xmlChar *' info='the attribute template node value'/>
</function>
- <function name='xsltAttrTemplateValueProcessNode' file='templates'>
+ <function name='xsltAttrTemplateValueProcessNode' file='templates' module='templates'>
<info>Process the given string, allowing to pass a namespace mapping context and return the new string value. Called by: - xsltAttrTemplateValueProcess() (templates.c) - xsltEvalAttrValueTemplate() (templates.c) QUESTION: Why is this function public? It is not used outside of templates.c.</info>
<return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='str' type='const xmlChar *' info='the attribute template node value'/>
<arg name='inst' type='xmlNodePtr' info='the instruction (or LRE) in the stylesheet holding the attribute with an AVT'/>
</function>
- <function name='xsltAttribute' file='transform'>
+ <function name='xsltAttribute' file='transform' module='attributes'>
<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='inst' type='xmlNodePtr' info='the xsl:attribute element'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltCalibrateAdjust' file='xsltutils'>
+ <function name='xsltCalibrateAdjust' file='xsltutils' module='xsltutils'>
<info>Used for to correct the calibration for xsltTimestamp()</info>
<return type='void'/>
<arg name='delta' type='long' info='a negative dealy value found'/>
</function>
- <function name='xsltCallTemplate' file='transform'>
+ <function name='xsltCallTemplate' file='transform' module='transform'>
<info>Processes the XSLT call-template instruction on the source node.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the XSLT 'call-template' instruction'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='the compiled information of the instruction'/>
</function>
- <function name='xsltCheckExtPrefix' file='extensions'>
+ <function name='xsltCheckExtPrefix' file='extensions' module='extensions'>
<info>Check if the given prefix is one of the declared extensions. This is intended to be called only at compile-time. Called by: xsltGetInheritedNsList() (xslt.c) xsltParseTemplateContent (xslt.c)</info>
<return type='int' info='1 if this is an extension, 0 otherwise'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='URI' type='const xmlChar *' info='the namespace prefix (possibly NULL)'/>
</function>
- <function name='xsltCheckExtURI' file='extensions'>
+ <function name='xsltCheckExtURI' file='extensions' module='extensions'>
<info>Check if the given prefix is one of the declared extensions. This is intended to be called only at compile-time. Called by: xsltPrecomputeStylesheet() (xslt.c) xsltParseTemplateContent (xslt.c)</info>
<return type='int' info='1 if this is an extension, 0 otherwise'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='URI' type='const xmlChar *' info='the namespace URI (possibly NULL)'/>
</function>
- <function name='xsltCheckRead' file='security'>
+ <function name='xsltCheckRead' file='security' module='security'>
<info>Check if the resource is allowed to be read</info>
<return type='int' info='1 if read is allowed, 0 if not and -1 in case or error.'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security options'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URL' type='const xmlChar *' info='the resource to be read'/>
</function>
- <function name='xsltCheckWrite' file='security'>
+ <function name='xsltCheckWrite' file='security' module='security'>
<info>Check if the resource is allowed to be written, if necessary makes some preliminary work like creating directories</info>
<return type='int' info='1 if write is allowed, 0 if not and -1 in case or error.'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security options'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URL' type='const xmlChar *' info='the resource to be written'/>
</function>
- <function name='xsltChoose' file='transform'>
+ <function name='xsltChoose' file='transform' module='transform'>
<info>Processes the xsl:choose instruction on the source node.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xsl:choose instruction'/>
<arg name='comp' type='xsltElemPreCompPtr' info='compiled information of the instruction'/>
</function>
- <function name='xsltCleanupGlobals' file='xslt'>
+ <function name='xsltCleanupGlobals' file='xslt' module='extensions'>
<info>Unregister all global variables set up by the XSLT library</info>
<return type='void'/>
</function>
- <function name='xsltCleanupTemplates' file='pattern'>
+ <function name='xsltCleanupTemplates' file='pattern' module='pattern'>
<info>Cleanup the state of the templates used by the stylesheet and the ones it imports.</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltComment' file='transform'>
+ <function name='xsltComment' file='transform' module='transform'>
<info>Process the xslt comment node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xslt comment node'/>
<arg name='comp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltCompMatchClearCache' file='pattern'>
+ <function name='xsltCompMatchClearCache' file='pattern' module='pattern'>
<info>Clear pattern match cache.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='comp' type='xsltCompMatchPtr' info='the precompiled pattern list'/>
</function>
- <function name='xsltCompileAttr' file='xsltInternals'>
+ <function name='xsltCompileAttr' file='xsltInternals' module='attrvt'>
<info>Precompile an attribute in a stylesheet, basically it checks if it is an attribute value template, and if yes, establish some structures needed to process it at transformation time.</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='a XSLT process context'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute coming from the stylesheet.'/>
</function>
- <function name='xsltCompilePattern' file='pattern'>
+ <function name='xsltCompilePattern' file='pattern' module='pattern'>
<info>Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching. [1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern</info>
<return type='xsltCompMatchPtr' info='the generated pattern list or NULL in case of failure'/>
<arg name='pattern' type='const xmlChar *' info='an XSLT pattern'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='runtime' type='xsltTransformContextPtr' info='the transformation context, if done at run-time'/>
</function>
- <function name='xsltComputeSortResult' file='xsltutils'>
+ <function name='xsltComputeSortResult' file='xsltutils' module='xsltutils'>
<info>reorder the current node list accordingly to the set of sorting requirement provided by the array of nodes.</info>
<return type='xmlXPathObjectPtr *' info='a ordered XPath nodeset or NULL in case of error.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='sort' type='xmlNodePtr' info='node list'/>
</function>
- <function name='xsltCopy' file='transform'>
+ <function name='xsltCopy' file='transform' module='transform'>
<info>Execute the XSLT-copy instruction on the source node.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the element node of the XSLT-copy instruction'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='computed information of the XSLT-copy instruction'/>
</function>
- <function name='xsltCopyNamespace' file='namespaces'>
+ <function name='xsltCopyNamespace' file='namespaces' module='namespaces'>
<info>Copies a namespace node (declaration). If @elem is not NULL, then the new namespace will be declared on @elem.</info>
<return type='xmlNsPtr' info='a new xmlNsPtr, or NULL in case of an error.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
<arg name='elem' type='xmlNodePtr' info='the target element node'/>
<arg name='ns' type='xmlNsPtr' info='the namespace node'/>
</function>
- <function name='xsltCopyNamespaceList' file='namespaces'>
+ <function name='xsltCopyNamespaceList' file='namespaces' module='namespaces'>
<info>Do a copy of an namespace list. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases. This function is intended only for *internal* use at transformation-time for copying ns-declarations of Literal Result Elements. Called by: xsltCopyTreeInternal() (transform.c) xsltShallowCopyElem() (transform.c) REVISIT: This function won't be used in the refactored code.</info>
<return type='xmlNsPtr' info='a new xmlNsPtr, or NULL in case of error.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
<arg name='node' type='xmlNodePtr' info='the target node'/>
<arg name='cur' type='xmlNsPtr' info='the first namespace'/>
</function>
- <function name='xsltCopyOf' file='transform'>
+ <function name='xsltCopyOf' file='transform' module='transform'>
<info>Process the XSLT copy-of instruction.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the element node of the XSLT copy-of instruction'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information of the XSLT copy-of instruction'/>
</function>
- <function name='xsltCopyTextString' file='transform'>
+ <function name='xsltCopyTextString' file='transform' module='transform'>
<info>Adds @string to a newly created or an existent text node child of @target.</info>
<return type='xmlNodePtr' info='the text node, where the text content of @cur is copied to. NULL in case of API or internal errors.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='string' type='const xmlChar *' info='the text string'/>
<arg name='noescape' type='int' info='should disable-escaping be activated for this text node.'/>
</function>
- <function name='xsltCreateRVT' file='xsltInternals'>
+ <function name='xsltCreateRVT' file='xsltInternals' module='variables'>
<info>Creates a Result Value Tree (the XSLT 1.0 term for this is "Result Tree Fragment")</info>
<return type='xmlDocPtr' info='the result value tree or NULL in case of API or internal errors.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltDebug' file='extra'>
+ <function name='xsltDebug' file='extra' module='extra'>
<info>Process an debug node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
<arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
<arg name='comp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltDebugDumpExtensions' file='extensions'>
+ <function name='xsltDebugDumpExtensions' file='extensions' module='extensions'>
<info>Dumps a list of the registered XSLT extension functions and elements</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the FILE * for the output, if NULL stdout is used'/>
</function>
- <function name='xsltDebugGetDefaultTrace' file='xsltutils'>
+ <function name='xsltDebugGetDefaultTrace' file='xsltutils' module='transform'>
<info>Get the current default debug tracing level mask</info>
<return type='xsltDebugTraceCodes' info='the current default debug tracing level mask'/>
</function>
- <function name='xsltDebugSetDefaultTrace' file='xsltutils'>
+ <function name='xsltDebugSetDefaultTrace' file='xsltutils' module='transform'>
<info>Set the default debug tracing level mask</info>
<return type='void'/>
<arg name='val' type='xsltDebugTraceCodes' info='tracing level mask'/>
</function>
- <function name='xsltDecimalFormatGetByName' file='xsltInternals'>
+ <function name='xsltDecimalFormatGetByName' file='xsltInternals' module='xslt'>
<info>Find decimal-format by name</info>
<return type='xsltDecimalFormatPtr' info='the xsltDecimalFormatPtr'/>
<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'>
+ <function name='xsltDecimalFormatGetByQName' file='xsltInternals' module='xslt'>
<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'>
+ <function name='xsltDefaultSortFunction' file='xsltutils' module='xsltutils'>
<info>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='sorts' type='xmlNodePtr *' info='array of sort nodes'/>
<arg name='nbsorts' type='int' info='the number of sorts in the array'/>
</function>
- <function name='xsltDoSortFunction' file='xsltutils'>
+ <function name='xsltDoSortFunction' file='xsltutils' module='xsltutils'>
<info>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes. This is a wrapper function, the actual function used is specified using xsltSetCtxtSortFunc() to set the context specific sort function, or xsltSetSortFunc() to set the global sort function. If a sort function is set on the context, this will get called. Otherwise the global sort function is called.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='sorts' type='xmlNodePtr *' info='array of sort nodes'/>
<arg name='nbsorts' type='int' info='the number of sorts in the array'/>
</function>
- <functype name='xsltDocLoaderFunc' file='documents'>
+ <functype name='xsltDocLoaderFunc' file='documents' module='documents'>
<info>An xsltDocLoaderFunc is a signature for a function which can be registered to load document not provided by the compilation or transformation API themselve, for example when an xsl:import, xsl:include is found at compilation time or when a document() call is made at runtime.</info>
<return type='xmlDocPtr' info='the pointer to the document (which will be modified and freed by the engine later), or NULL in case of error.'/>
<arg name='URI' type='const xmlChar *' info='the URI of the document to load'/>
<arg name='ctxt' type='void *' info='the context, either a stylesheet or a transformation context'/>
<arg name='type' type='xsltLoadType' info='the xsltLoadType indicating the kind of loading required'/>
</functype>
- <function name='xsltDocumentComp' file='preproc'>
+ <function name='xsltDocumentComp' file='preproc' module='preproc'>
<info>Pre process an XSLT-1.1 document element</info>
<return type='xsltElemPreCompPtr' info='a precompiled data structure for the element'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
<arg name='function' type='xsltTransformFunction' info='unused'/>
</function>
- <function name='xsltDocumentElem' file='transform'>
+ <function name='xsltDocumentElem' file='transform' module='transform'>
<info>Process an EXSLT/XSLT-1.1 document element</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
<arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltDocumentFunction' file='functions'>
+ <function name='xsltDocumentFunction' file='functions' module='functions'>
<info>Implement the document() XSLT function node-set document(object, node-set?)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltDocumentSortFunction' file='xsltutils'>
+ <function name='xsltDocumentSortFunction' file='xsltutils' module='xsltutils'>
<info>reorder the current node list @list accordingly to the document order This function is slow, obsolete and should not be used anymore.</info>
<return type='void'/>
<arg name='list' type='xmlNodeSetPtr' info='the node set'/>
</function>
- <functype name='xsltDropCallCallback' file='xsltutils'>
+ <functype name='xsltDropCallCallback' file='xsltutils' module='xsltutils'>
<info></info>
<return type='void'/>
</functype>
- <functype name='xsltElemPreCompDeallocator' file='xsltInternals'>
+ <functype name='xsltElemPreCompDeallocator' file='xsltInternals' module='xsltInternals'>
<info>Deallocates an #xsltElemPreComp structure.</info>
<return type='void'/>
<arg name='comp' type='xsltElemPreCompPtr' info='the #xsltElemPreComp to free up'/>
</functype>
- <function name='xsltElement' file='transform'>
+ <function name='xsltElement' file='transform' module='transform'>
<info>Process the xslt element node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xslt element node'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltElementAvailableFunction' file='functions'>
+ <function name='xsltElementAvailableFunction' file='functions' module='functions'>
<info>Implement the element-available() XSLT function boolean element-available(string)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltEvalAVT' file='xsltInternals'>
+ <function name='xsltEvalAVT' file='xsltInternals' module='attrvt'>
<info>Process the given AVT, and return the new string value.</info>
<return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='avt' type='void *' info='the prevompiled attribute value template info'/>
<arg name='node' type='xmlNodePtr' info='the node hosting the attribute'/>
</function>
- <function name='xsltEvalAttrValueTemplate' file='templates'>
+ <function name='xsltEvalAttrValueTemplate' file='templates' module='templates'>
<info>Evaluate a attribute value template, i.e. the attribute value can contain expressions contained in curly braces ({}) and those are substituted by they computed value.</info>
<return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='name' type='const xmlChar *' info='the attribute QName'/>
<arg name='ns' type='const xmlChar *' info='the attribute namespace URI'/>
</function>
- <function name='xsltEvalGlobalVariables' file='variables'>
+ <function name='xsltEvalGlobalVariables' file='variables' module='variables'>
<info>Evaluates all global variables and parameters of a stylesheet. For internal use only. This is called at start of a transformation.</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
</function>
- <function name='xsltEvalOneUserParam' file='variables'>
+ <function name='xsltEvalOneUserParam' file='variables' module='variables'>
<info>This is normally called from xsltEvalUserParams to process a single parameter from a list of parameters. The @value is evaluated as an XPath expression and the result is stored in the context's global variable/parameter hash table. To have a parameter treated literally (not as an XPath expression) use xsltQuoteUserParams (or xsltQuoteOneUserParam). For more details see description of xsltProcessOneUserParamInternal.</info>
<return type='int' info='0 in case of success, -1 in case of error.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='name' type='const xmlChar *' info='a null terminated string giving the name of the parameter'/>
<arg name='value' type='const xmlChar *' info='a null terminated string giving the XPath expression to be evaluated'/>
</function>
- <function name='xsltEvalStaticAttrValueTemplate' file='templates'>
+ <function name='xsltEvalStaticAttrValueTemplate' file='templates' module='templates'>
<info>Check if an attribute value template has a static value, i.e. the attribute value does not contain expressions contained in curly braces ({})</info>
<return type='const xmlChar *' info='the static string value or NULL, must be deallocated by the caller.'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='ns' type='const xmlChar *' info='the attribute namespace URI'/>
<arg name='found' type='int *' info='indicator whether the attribute is present'/>
</function>
- <function name='xsltEvalTemplateString' file='templates'>
+ <function name='xsltEvalTemplateString' file='templates' module='templates'>
<info>Processes the sequence constructor of the given instruction on @contextNode and converts the resulting tree to a string. This is needed by e.g. xsl:comment and xsl:processing-instruction.</info>
<return type='xmlChar *' info='the computed string value or NULL; it's up to the caller to free the result.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='contextNode' type='xmlNodePtr' info='the current node in the source tree'/>
<arg name='inst' type='xmlNodePtr' info='the XSLT instruction (xsl:comment, xsl:processing-instruction)'/>
</function>
- <function name='xsltEvalUserParams' file='variables'>
+ <function name='xsltEvalUserParams' file='variables' module='variables'>
<info>Evaluate the global variables of a stylesheet. This needs to be done on parsed stylesheets before starting to apply transformations. Each of the parameters is evaluated as an XPath expression and stored in the global variables/parameter hash table. If you want your parameter used literally, use xsltQuoteUserParams.</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='params' type='const char **' info='a NULL terminated array of parameters name/value tuples'/>
</function>
- <function name='xsltEvalXPathPredicate' file='templates'>
+ <function name='xsltEvalXPathPredicate' file='templates' module='templates'>
<info>Process the expression using XPath and evaluate the result as an XPath predicate</info>
<return type='int' info='1 is the predicate was true, 0 otherwise'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='nsList' type='xmlNsPtr *' info='the namespaces in scope'/>
<arg name='nsNr' type='int' info='the number of namespaces in scope'/>
</function>
- <function name='xsltEvalXPathString' file='templates'>
+ <function name='xsltEvalXPathString' file='templates' module='templates'>
<info>Process the expression using XPath and get a string</info>
<return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
</function>
- <function name='xsltEvalXPathStringNs' file='templates'>
+ <function name='xsltEvalXPathStringNs' file='templates' module='templates'>
<info>Process the expression using XPath, allowing to pass a namespace mapping context and get a string</info>
<return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='nsNr' type='int' info='the number of namespaces in the list'/>
<arg name='nsList' type='xmlNsPtr *' info='the list of in-scope namespaces to use'/>
</function>
- <function name='xsltExtElementLookup' file='extensions'>
+ <function name='xsltExtElementLookup' file='extensions' module='extensions'>
<info>Looks up an extension element. @ctxt can be NULL to search only in module elements.</info>
<return type='xsltTransformFunction' info='the element callback or NULL if not found'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT process context'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
<arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
</function>
- <functype name='xsltExtInitFunction' file='extensions'>
+ <functype name='xsltExtInitFunction' file='extensions' module='extensions'>
<info>A function called at initialization time of an XSLT extension module.</info>
<return type='void *' info='a pointer to the module specific data for this transformation.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
</functype>
- <function name='xsltExtModuleElementLookup' file='extensions'>
+ <function name='xsltExtModuleElementLookup' file='extensions' module='extensions'>
<info>Looks up an extension module element</info>
<return type='xsltTransformFunction' info='the callback function if found, NULL otherwise.'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
<arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
</function>
- <function name='xsltExtModuleElementPreComputeLookup' file='extensions'>
+ <function name='xsltExtModuleElementPreComputeLookup' file='extensions' module='extensions'>
<info>Looks up an extension module element pre-computation function</info>
<return type='xsltPreComputeFunction' info='the callback function if found, NULL otherwise.'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
<arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
</function>
- <function name='xsltExtModuleFunctionLookup' file='extensions'>
+ <function name='xsltExtModuleFunctionLookup' file='extensions' module='extensions'>
<info>Looks up an extension module function</info>
<return type='xmlXPathFunction' info='the function if found, NULL otherwise.'/>
<arg name='name' type='const xmlChar *' info='the function name'/>
<arg name='URI' type='const xmlChar *' info='the function namespace URI'/>
</function>
- <function name='xsltExtModuleTopLevelLookup' file='extensions'>
+ <function name='xsltExtModuleTopLevelLookup' file='extensions' module='extensions'>
<info>Looks up an extension module top-level element</info>
<return type='xsltTopLevelFunction' info='the callback function if found, NULL otherwise.'/>
<arg name='name' type='const xmlChar *' info='the top-level element name'/>
<arg name='URI' type='const xmlChar *' info='the top-level element namespace URI'/>
</function>
- <functype name='xsltExtShutdownFunction' file='extensions'>
+ <functype name='xsltExtShutdownFunction' file='extensions' module='extensions'>
<info>A function called at shutdown time of an XSLT extension module.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
<arg name='data' type='void *' info='the data associated to this module'/>
</functype>
- <function name='xsltExtensionInstructionResultFinalize' file='xsltInternals'>
+ <function name='xsltExtensionInstructionResultFinalize' file='xsltInternals' module='variables'>
<info>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.</info>
<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'>
+ <function name='xsltExtensionInstructionResultRegister' file='xsltInternals' module='variables'>
<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. It isn'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>
- <function name='xsltFindDocument' file='documents'>
+ <function name='xsltFindDocument' file='documents' module='documents'>
<info>Try to find a document within the XSLT transformation context. This will not find document infos for temporary Result Tree Fragments.</info>
<return type='xsltDocumentPtr' info='the desired xsltDocumentPtr or NULL in case of error'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
</function>
- <function name='xsltFindElemSpaceHandling' file='imports'>
+ <function name='xsltFindElemSpaceHandling' file='imports' module='imports'>
<info>Find strip-space or preserve-space information for an element respect the import precedence or the wildcards</info>
<return type='int' info='1 if space should be stripped, 0 if not, and 2 if everything should be CDTATA wrapped.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='node' type='xmlNodePtr' info='an XML node'/>
</function>
- <function name='xsltFindTemplate' file='imports'>
+ <function name='xsltFindTemplate' file='imports' module='imports'>
<info>Finds the named template, apply import precedence rule. REVISIT TODO: We'll change the nameURI fields of templates to be in the string dict, so if the specified @nameURI is in the same dict, then use pointer comparison. Check if this can be done in a sane way. Maybe this function is not needed internally at transformation-time if we hard-wire the called templates to the caller.</info>
<return type='xsltTemplatePtr' info='the xsltTemplatePtr or NULL if not found'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<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'>
+ <function name='xsltFlagRVTs' file='xsltInternals' module='variables'>
<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'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'/>
+ <arg name='val' type='int' info='the flag value'/>
</function>
- <function name='xsltForEach' file='transform'>
+ <function name='xsltForEach' file='transform' module='transform'>
<info>Process the xslt for-each node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the element node of the xsl:for-each instruction'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='the compiled information of the instruction'/>
</function>
- <function name='xsltFormatNumberConversion' file='xsltInternals'>
+ <function name='xsltFormatNumberConversion' file='xsltInternals' module='numbers'>
<info>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.</info>
<return type='xmlXPathError' info='a possible XPath error'/>
<arg name='self' type='xsltDecimalFormatPtr' info='the decimal format'/>
<arg name='number' type='double' info='the value to format'/>
<arg name='result' type='xmlChar **' info='the place to output the result'/>
</function>
- <function name='xsltFormatNumberFunction' file='functions'>
+ <function name='xsltFormatNumberFunction' file='functions' module='functions'>
<info>Implement the format-number() XSLT function string format-number(number, string, string?)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltFreeAVTList' file='xsltInternals'>
+ <function name='xsltFreeAVTList' file='xsltInternals' module='attrvt'>
<info>Free up the memory associated to the attribute value templates</info>
<return type='void'/>
<arg name='avt' type='void *' info='pointer to an list of AVT structures'/>
</function>
- <function name='xsltFreeAttributeSetsHashes' file='attributes'>
+ <function name='xsltFreeAttributeSetsHashes' file='attributes' module='attributes'>
<info>Free up the memory used by attribute sets</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltFreeCompMatchList' file='pattern'>
+ <function name='xsltFreeCompMatchList' file='pattern' module='pattern'>
<info>Free up the memory allocated by all the elements of @comp</info>
<return type='void'/>
<arg name='comp' type='xsltCompMatchPtr' info='an XSLT comp list'/>
</function>
- <function name='xsltFreeCtxtExts' file='extensions'>
+ <function name='xsltFreeCtxtExts' file='extensions' module='extensions'>
<info>Free the XSLT extension data</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltFreeDocumentKeys' file='keys'>
+ <function name='xsltFreeDocumentKeys' file='keys' module='keys'>
<info>Free the keys associated to a document</info>
<return type='void'/>
<arg name='idoc' type='xsltDocumentPtr' info='a XSLT document'/>
</function>
- <function name='xsltFreeDocuments' file='documents'>
+ <function name='xsltFreeDocuments' file='documents' module='documents'>
<info>Free up all the space used by the loaded documents</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltFreeExts' file='extensions'>
+ <function name='xsltFreeExts' file='extensions' module='extensions'>
<info>Free up the memory used by XSLT extensions in a stylesheet</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltFreeGlobalVariables' file='variables'>
+ <function name='xsltFreeGlobalVariables' file='variables' module='variables'>
<info>Free up the data associated to the global variables its value.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
</function>
- <function name='xsltFreeKeys' file='keys'>
+ <function name='xsltFreeKeys' file='keys' module='keys'>
<info>Free up the memory used by XSLT keys in a stylesheet</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltFreeLocale' file='xsltlocale'>
+ <function name='xsltFreeLocale' file='xsltlocale' module='xsltlocale'>
<info>Frees a locale created with xsltNewLocale</info>
<return type='void'/>
- <arg name='locale' type='xsltLocale' info='the locale to free'/>
+ <arg name='locale' type='void *' info='the locale to free'/>
</function>
- <function name='xsltFreeLocales' file='xsltlocale'>
+ <functype name='xsltFreeLocaleFunc' file='xsltInternals' module='xsltInternals'>
+ <info></info>
+ <return type='void'/>
+ <arg name='locale' type='void *' info=''/>
+ </functype>
+ <function name='xsltFreeLocales' file='xsltlocale' module='xsltlocale'>
<info>Cleanup function for the locale support on shutdown</info>
<return type='void'/>
</function>
- <function name='xsltFreeNamespaceAliasHashes' file='namespaces'>
+ <function name='xsltFreeNamespaceAliasHashes' file='namespaces' module='namespaces'>
<info>Free up the memory used by namespaces aliases</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltFreeRVTs' file='xsltInternals'>
+ <function name='xsltFreeRVTs' file='xsltInternals' module='variables'>
<info>Frees all registered result value trees (Result Tree Fragments) of the transformation. Internal function; should not be called by user-code.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltFreeSecurityPrefs' file='security'>
+ <function name='xsltFreeSecurityPrefs' file='security' module='security'>
<info>Free up a security preference block</info>
<return type='void'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to free'/>
</function>
- <function name='xsltFreeStackElemList' file='xsltInternals'>
+ <function name='xsltFreeStackElemList' file='xsltInternals' module='variables'>
<info>Free up the memory allocated by @elem</info>
<return type='void'/>
<arg name='elem' type='xsltStackElemPtr' info='an XSLT stack element'/>
</function>
- <function name='xsltFreeStyleDocuments' file='documents'>
+ <function name='xsltFreeStyleDocuments' file='documents' module='documents'>
<info>Frees the node-trees (and xsltDocument structures) of all stylesheet-modules of the stylesheet-level represented by the given @style.</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet (representing a stylesheet-level)'/>
</function>
- <function name='xsltFreeStylePreComps' file='preproc'>
+ <function name='xsltFreeStylePreComps' file='preproc' module='preproc'>
<info>Free up the memory allocated by all precomputed blocks</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltFreeStylesheet' file='xsltInternals'>
+ <function name='xsltFreeStylesheet' file='xsltInternals' module='xslt'>
<info>Free up the memory allocated by @style</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltFreeTemplateHashes' file='pattern'>
+ <function name='xsltFreeTemplateHashes' file='pattern' module='pattern'>
<info>Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltFreeTransformContext' file='transform'>
+ <function name='xsltFreeTransformContext' file='transform' module='transform'>
<info>Free up the memory allocated by @ctxt</info>
<return type='void'/>
- <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT parser context'/>
+ <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transform context'/>
</function>
- <function name='xsltFunctionAvailableFunction' file='functions'>
+ <function name='xsltFunctionAvailableFunction' file='functions' module='functions'>
<info>Implement the function-available() XSLT function boolean function-available(string)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltFunctionNodeSet' file='extra'>
+ <function name='xsltFunctionNodeSet' file='extra' module='extra'>
<info>Implement the node-set() XSLT function node-set node-set(result-tree) This function is available in libxslt, saxon or xt namespace.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltGenerateIdFunction' file='functions'>
+ <functype name='xsltGenSortKeyFunc' file='xsltInternals' module='xsltInternals'>
+ <info></info>
+ <return type='xmlChar *' info=''/>
+ <arg name='locale' type='void *' info=''/>
+ <arg name='lang' type='const xmlChar *' info=''/>
+ </functype>
+ <function name='xsltGenerateIdFunction' file='functions' module='functions'>
<info>Implement the generate-id() XSLT function string generate-id(node-set?)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltGetCNsProp' file='xsltutils'>
+ <function name='xsltGetCNsProp' file='xsltutils' module='xsltutils'>
<info>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.</info>
<return type='const xmlChar *' info='the attribute value or NULL if not found. The string is allocated in the stylesheet dictionary.'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
</function>
- <function name='xsltGetDebuggerStatus' file='xsltutils'>
+ <function name='xsltGetDebuggerStatus' file='xsltutils' module='xsltutils'>
<info>Get xslDebugStatus.</info>
<return type='int' info='the value of xslDebugStatus.'/>
</function>
- <function name='xsltGetDefaultSecurityPrefs' file='security'>
+ <function name='xsltGetDefaultSecurityPrefs' file='security' module='security'>
<info>Get the default security preference application-wide</info>
<return type='xsltSecurityPrefsPtr' info='the current xsltSecurityPrefsPtr in use or NULL if none'/>
</function>
- <function name='xsltGetExtData' file='extensions'>
+ <function name='xsltGetExtData' file='extensions' module='extensions'>
<info>Retrieve the data associated to the extension module in this given transformation.</info>
<return type='void *' info='the pointer or NULL if not present'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URI' type='const xmlChar *' info='the URI associated to the exension module'/>
</function>
- <function name='xsltGetExtInfo' file='extensions'>
+ <function name='xsltGetExtInfo' file='extensions' module='extensions'>
<info>looks up URI in extInfos of the stylesheet</info>
<return type='xmlHashTablePtr' info='a pointer to the hash table if found, else NULL'/>
<arg name='style' type='xsltStylesheetPtr' info='pointer to a stylesheet'/>
<arg name='URI' type='const xmlChar *' info='the namespace URI desired'/>
</function>
- <function name='xsltGetKey' file='keys'>
+ <function name='xsltGetKey' file='keys' module='keys'>
<info>Looks up a key of the in current source doc (the document info on @ctxt->document). Computes the key if not already done for the current source doc.</info>
<return type='xmlNodeSetPtr' info='the nodeset resulting from the query or NULL'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='nameURI' type='const xmlChar *' info='the name URI or NULL'/>
<arg name='value' type='const xmlChar *' info='the key value to look for'/>
</function>
- <function name='xsltGetNamespace' file='namespaces'>
+ <function name='xsltGetNamespace' file='namespaces' module='namespaces'>
<info>Find a matching (prefix and ns-name) ns-declaration for the requested @ns->prefix and @ns->href in the result tree. If none is found then a new ns-declaration will be added to @resultElem. If, in this case, the given prefix is already in use, then a ns-declaration with a modified ns-prefix be we created. Called by: - xsltCopyPropList() (*not* anymore) - xsltShallowCopyElement() - xsltCopyTreeInternal() (*not* anymore) - xsltApplySequenceConstructor() (*not* in the refactored code), - xsltElement() (*not* anymore)</info>
<return type='xmlNsPtr' info='a namespace declaration or NULL in case of namespace fixup failures or API or internal errors.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
<arg name='ns' type='xmlNsPtr' info='the namespace'/>
<arg name='out' type='xmlNodePtr' info='the output node (or its parent)'/>
</function>
- <function name='xsltGetNsProp' file='xsltutils'>
+ <function name='xsltGetNsProp' file='xsltutils' module='xsltutils'>
<info>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.</info>
<return type='xmlChar *' info='the attribute value or NULL if not found. It's up to the caller to free the memory.'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
</function>
- <function name='xsltGetPlainNamespace' file='namespaces'>
+ <function name='xsltGetPlainNamespace' file='namespaces' module='namespaces'>
<info>Obsolete. *Not* called by any Libxslt/Libexslt function. Exaclty the same as xsltGetNamespace().</info>
<return type='xmlNsPtr' info='a namespace declaration or NULL in case of namespace fixup failures or API or internal errors.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
<arg name='ns' type='xmlNsPtr' info='the namespace'/>
<arg name='out' type='xmlNodePtr' info='the result element'/>
</function>
- <function name='xsltGetProfileInformation' file='xsltutils'>
+ <function name='xsltGetProfileInformation' file='xsltutils' module='xsltutils'>
<info>This function should be called after the transformation completed to extract template processing profiling information if available. The information is returned as an XML document tree like <?xml version="1.0"?> <profile> <template rank="1" match="*" name="" mode="" calls="6" time="48" average="8"/> <template rank="2" match="item2|item3" name="" mode="" calls="10" time="30" average="3"/> <template rank="3" match="item1" name="" mode="" calls="5" time="17" average="3"/> </profile> The caller will need to free up the returned tree with xmlFreeDoc()</info>
<return type='xmlDocPtr' info='the xmlDocPtr corresponding to the result or NULL if not available.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
</function>
- <function name='xsltGetQNameURI' file='xsltutils'>
+ <function name='xsltGetQNameURI' file='xsltutils' module='xsltutils'>
<info>This function analyzes @name, if the name contains a prefix, the function seaches the associated namespace in scope for it. It will also replace @name value with the NCName, the old value being freed. Errors in the prefix lookup are signalled by setting @name to NULL. NOTE: the namespace returned is a pointer to the place where it is defined and hence has the same lifespan as the document holding it.</info>
<return type='const xmlChar *' info='the namespace URI if there is a prefix, or NULL if @name is not prefixed.'/>
<arg name='node' type='xmlNodePtr' info='the node holding the QName'/>
<arg name='name' type='xmlChar **' info='pointer to the initial QName value'/>
</function>
- <function name='xsltGetQNameURI2' file='xsltutils'>
+ <function name='xsltGetQNameURI2' file='xsltutils' module='xsltutils'>
<info>This function is similar to xsltGetQNameURI, but is used when @name is a dictionary entry.</info>
<return type='const xmlChar *' info='the namespace URI if there is a prefix, or NULL if @name is not prefixed.'/>
<arg name='style' type='xsltStylesheetPtr' info='stylesheet pointer'/>
<arg name='node' type='xmlNodePtr' info='the node holding the QName'/>
<arg name='name' type='const xmlChar **' info='pointer to the initial QName value'/>
</function>
- <function name='xsltGetSecurityPrefs' file='security'>
+ <function name='xsltGetSecurityPrefs' file='security' module='security'>
<info>Lookup the security option to get the callback checking function</info>
<return type='xsltSecurityCheck' info='NULL if not found, the function otherwise'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to update'/>
<arg name='option' type='xsltSecurityOption' info='the option to lookup'/>
</function>
- <function name='xsltGetSpecialNamespace' file='namespaces'>
+ <function name='xsltGetSpecialNamespace' file='namespaces' module='namespaces'>
<info>Find a matching (prefix and ns-name) ns-declaration for the requested @nsName and @nsPrefix in the result tree. If none is found then a new ns-declaration will be added to @resultElem. If, in this case, the given prefix is already in use, then a ns-declaration with a modified ns-prefix be we created. Note that this function's priority is to preserve ns-prefixes; it will only change a prefix if there's a namespace clash. If both @nsName and @nsPrefix are NULL, then this will try to "undeclare" a default namespace by declaring an xmlns="".</info>
<return type='xmlNsPtr' info='a namespace declaration or NULL.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
<arg name='nsPrefix' type='const xmlChar *' info='the suggested namespace prefix (or NULL)'/>
<arg name='target' type='xmlNodePtr' info='the result element on which to anchor a namespace'/>
</function>
- <function name='xsltGetTemplate' file='pattern'>
+ <function name='xsltGetTemplate' file='pattern' module='pattern'>
<info>Finds the template applying to this node, if @style is non-NULL it means one needs to look for the next imported template in scope.</info>
<return type='xsltTemplatePtr' info='the xsltTemplatePtr or NULL if not found'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='node' type='xmlNodePtr' info='the node being processed'/>
<arg name='style' type='xsltStylesheetPtr' info='the current style'/>
</function>
- <function name='xsltGetUTF8Char' file='xsltutils'>
+ <function name='xsltGetUTF8Char' file='xsltutils' module='xsltutils'>
<info>Read one UTF8 Char from @utf Function copied from libxml2 xmlGetUTF8Char() ... to discard ultimately and use the original API</info>
<return type='int' info='the char value or -1 in case of error and update @len with the number of bytes used'/>
<arg name='utf' type='const unsigned char *' info='a sequence of UTF-8 encoded bytes'/>
<arg name='len' type='int *' info='a pointer to @bytes len'/>
</function>
- <function name='xsltGetXIncludeDefault' file='transform'>
+ <function name='xsltGetXIncludeDefault' file='transform' module='transform'>
<info>Provides the default state for XInclude processing</info>
<return type='int' info='0 if there is no processing 1 otherwise'/>
</function>
- <functype name='xsltHandleDebuggerCallback' file='xsltutils'>
+ <functype name='xsltHandleDebuggerCallback' file='xsltutils' module='xsltutils'>
<info></info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info=''/>
<arg name='templ' type='xsltTemplatePtr' info=''/>
<arg name='ctxt' type='xsltTransformContextPtr' info=''/>
</functype>
- <function name='xsltIf' file='transform'>
+ <function name='xsltIf' file='transform' module='transform'>
<info>Processes the xsl:if instruction on the source node.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xsl:if instruction'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='compiled information of the instruction'/>
</function>
- <function name='xsltInit' file='xslt'>
+ <function name='xsltInit' file='xslt' module='xslt'>
<info>Initializes the processor (e.g. registers built-in extensions, etc.)</info>
<return type='void'/>
</function>
- <function name='xsltInitAllDocKeys' file='xsltInternals'>
+ <function name='xsltInitAllDocKeys' file='xsltInternals' module='keys'>
<info>INTERNAL ROUTINE ONLY Check if any keys on the current document need to be computed</info>
<return type='int' info='0 in case of success, -1 in case of failure'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='transformation context'/>
</function>
- <function name='xsltInitCtxtExts' file='extensions'>
+ <function name='xsltInitCtxtExts' file='extensions' module='extensions'>
<info>Initialize the set of modules with registered stylesheet data</info>
<return type='int' info='the number of modules initialized or -1 in case of error'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltInitCtxtKey' file='xsltInternals'>
+ <function name='xsltInitCtxtKey' file='xsltInternals' module='keys'>
<info>Computes the key tables this key and for the current input document.</info>
<return type='int' info='0 on success, -1 on error'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='idoc' type='xsltDocumentPtr' info='the document information (holds key values)'/>
<arg name='keyDef' type='xsltKeyDefPtr' info='the key definition'/>
</function>
- <function name='xsltInitCtxtKeys' file='keys'>
+ <function name='xsltInitCtxtKeys' file='keys' module='keys'>
<info>Computes all the keys tables for the current input document. Should be done before global varibales are initialized. NOTE: Not used anymore in the refactored code.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='idoc' type='xsltDocumentPtr' info='a document info'/>
</function>
- <function name='xsltInitElemPreComp' file='extensions'>
+ <function name='xsltInitElemPreComp' file='extensions' module='extensions'>
<info>Initializes an existing #xsltElemPreComp structure. This is usefull when extending an #xsltElemPreComp to store precomputed data. This function MUST be called on any extension element precomputed data struct.</info>
<return type='void'/>
<arg name='comp' type='xsltElemPreCompPtr' info='an #xsltElemPreComp (or generally a derived structure)'/>
<arg name='function' type='xsltTransformFunction' info='the transform function'/>
<arg name='freeFunc' type='xsltElemPreCompDeallocator' info='the @comp deallocator'/>
</function>
- <function name='xsltInitGlobals' file='extensions'>
+ <function name='xsltInitGlobals' file='extensions' module='extensions'>
<info>Initialize the global variables for extensions</info>
<return type='void'/>
</function>
- <function name='xsltIsBlank' file='xsltInternals'>
+ <function name='xsltIsBlank' file='xsltInternals' module='xslt'>
<info>Check if a string is ignorable</info>
<return type='int' info='1 if the string is NULL or made of blanks chars, 0 otherwise'/>
<arg name='str' type='xmlChar *' info='a string'/>
</function>
- <function name='xsltKeyFunction' file='functions'>
+ <function name='xsltKeyFunction' file='functions' module='functions'>
<info>Implement the key() XSLT function node-set key(string, object)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltLoadDocument' file='documents'>
+ <function name='xsltLoadDocument' file='documents' module='documents'>
<info>Try to load a document (not a stylesheet) within the XSLT transformation context</info>
<return type='xsltDocumentPtr' info='the new xsltDocumentPtr or NULL in case of error'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URI' type='const xmlChar *' info='the computed URI of the document'/>
</function>
- <function name='xsltLoadStyleDocument' file='documents'>
+ <function name='xsltLoadStyleDocument' file='documents' module='documents'>
<info>Try to load a stylesheet document within the XSLT transformation context</info>
<return type='xsltDocumentPtr' info='the new xsltDocumentPtr or NULL in case of error'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT style sheet'/>
<arg name='URI' type='const xmlChar *' info='the computed URI of the document'/>
</function>
- <function name='xsltLoadStylesheetPI' file='xsltInternals'>
+ <function name='xsltLoadStylesheetPI' file='xsltInternals' module='xslt'>
<info>This function tries to locate the stylesheet PI in the given document If found, and if contained within the document, it will extract that subtree to build the stylesheet to process @doc (doc itself will be modified). If found but referencing an external document it will attempt to load it and generate a stylesheet from it. In both cases, the resulting stylesheet and the document need to be freed once the transformation is done.</info>
<return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure or NULL if not found.'/>
<arg name='doc' type='xmlDocPtr' info='a document to process'/>
</function>
- <function name='xsltLocalVariablePop' file='transform'>
+ <function name='xsltLocalVariablePop' file='transform' module='transform'>
<info>Pops all variable values at the given @depth from the stack.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
<arg name='limitNr' type='int' info='number of variables which should remain'/>
<arg name='level' type='int' info='the depth in the xsl:template's tree'/>
</function>
- <function name='xsltLocalVariablePush' file='transform'>
+ <function name='xsltLocalVariablePush' file='transform' module='transform'>
<info>Places the variable onto the local variable stack</info>
<return type='int' info='0 for success, -1 for any error **NOTE:** This is an internal routine and should not be called by users!'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
<arg name='variable' type='xsltStackElemPtr' info='variable to be pushed to the variable stack'/>
<arg name='level' type='int' info='new value for variable's level'/>
</function>
- <function name='xsltLocaleStrcmp' file='xsltlocale'>
- <info>Compares two strings transformed with xsltStrxfrm</info>
+ <function name='xsltLocaleStrcmp' file='xsltlocale' module='xsltlocale'>
+ <info>DEPRECATED: Same as xmlStrcmp. Compares two strings transformed with xsltStrxfrm.</info>
<return type='int' info='a value < 0 if str1 sorts before str2, a value > 0 if str1 sorts after str2, 0 if str1 and str2 are equal wrt sorting'/>
- <arg name='locale' type='xsltLocale' info='a locale identifier'/>
- <arg name='str1' type='const xsltLocaleChar *' info='a string transformed with xsltStrxfrm'/>
- <arg name='str2' type='const xsltLocaleChar *' info='a string transformed with xsltStrxfrm'/>
+ <arg name='locale' type='void *' info='unused'/>
+ <arg name='str1' type='const xmlChar *' info='a string transformed with xsltStrxfrm'/>
+ <arg name='str2' type='const xmlChar *' info='a string transformed with xsltStrxfrm'/>
</function>
- <function name='xsltMatchPattern' file='pattern'>
+ <function name='xsltMatchPattern' file='pattern' module='pattern'>
<info></info>
<return type='int' info=''/>
<arg name='ctxt' type='xsltTransformContextPtr' info=''/>
<arg name='ctxtdoc' type='xmlDocPtr' info=''/>
<arg name='ctxtnode' type='xmlNodePtr' info=''/>
</function>
- <function name='xsltMessage' file='xsltutils'>
+ <function name='xsltMessage' file='xsltutils' module='xsltutils'>
<info>Process and xsl:message construct</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
<arg name='node' type='xmlNodePtr' info='The current node'/>
<arg name='inst' type='xmlNodePtr' info='The node containing the message instruction'/>
</function>
- <function name='xsltNamespaceAlias' file='namespaces'>
+ <function name='xsltNamespaceAlias' file='namespaces' module='namespaces'>
<info>Read the stylesheet-prefix and result-prefix attributes, register them as well as the corresponding namespace.</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='node' type='xmlNodePtr' info='the xsl:namespace-alias node'/>
</function>
- <function name='xsltNeedElemSpaceHandling' file='imports'>
+ <function name='xsltNeedElemSpaceHandling' file='imports' module='imports'>
<info>Checks whether that stylesheet requires white-space stripping</info>
<return type='int' info='1 if space should be stripped, 0 if not'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltNewDocument' file='documents'>
+ <function name='xsltNewDocument' file='documents' module='documents'>
<info>Register a new document, apply key computations</info>
<return type='xsltDocumentPtr' info='a handler to the document'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context (or NULL)'/>
<arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
</function>
- <function name='xsltNewElemPreComp' file='extensions'>
+ <function name='xsltNewElemPreComp' file='extensions' module='extensions'>
<info>Creates and initializes an #xsltElemPreComp</info>
<return type='xsltElemPreCompPtr' info='the new and initialized #xsltElemPreComp'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='inst' type='xmlNodePtr' info='the element node'/>
<arg name='function' type='xsltTransformFunction' info='the transform function'/>
</function>
- <function name='xsltNewLocale' file='xsltlocale'>
+ <function name='xsltNewLocale' file='xsltlocale' module='xsltlocale'>
<info>Creates a new locale of an opaque system dependent type based on the language tag.</info>
- <return type='xsltLocale' info='the locale or NULL on error or if no matching locale was found'/>
+ <return type='void *' info='the locale or NULL on error or if no matching locale was found'/>
<arg name='languageTag' type='const xmlChar *' info='RFC 3066 language tag'/>
+ <arg name='lowerFirst' type='int' info=''/>
</function>
- <function name='xsltNewSecurityPrefs' file='security'>
+ <functype name='xsltNewLocaleFunc' file='xsltInternals' module='xsltInternals'>
+ <info></info>
+ <return type='void *' info=''/>
+ <arg name='lang' type='const xmlChar *' info=''/>
+ <arg name='lowerFirst' type='int' info=''/>
+ </functype>
+ <function name='xsltNewSecurityPrefs' file='security' module='security'>
<info>Create a new security preference block</info>
<return type='xsltSecurityPrefsPtr' info='a pointer to the new block or NULL in case of error'/>
</function>
- <function name='xsltNewStyleDocument' file='documents'>
+ <function name='xsltNewStyleDocument' file='documents' module='documents'>
<info>Register a new document, apply key computations</info>
<return type='xsltDocumentPtr' info='a handler to the document'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT style sheet'/>
<arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
</function>
- <function name='xsltNewStylesheet' file='xsltInternals'>
+ <function name='xsltNewStylesheet' file='xsltInternals' module='xslt'>
<info>Create a new XSLT Stylesheet</info>
<return type='xsltStylesheetPtr' info='the newly allocated xsltStylesheetPtr or NULL in case of error'/>
</function>
- <function name='xsltNewTransformContext' file='transform'>
+ <function name='xsltNewTransformContext' file='transform' module='transform'>
<info>Create a new XSLT TransformContext</info>
<return type='xsltTransformContextPtr' info='the newly allocated xsltTransformContextPtr or NULL in case of error'/>
<arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
<arg name='doc' type='xmlDocPtr' info='the input document'/>
</function>
- <function name='xsltNextImport' file='imports'>
+ <function name='xsltNextImport' file='imports' module='imports'>
<info>Find the next stylesheet in import precedence.</info>
<return type='xsltStylesheetPtr' info='the next stylesheet or NULL if it was the last one'/>
<arg name='cur' type='xsltStylesheetPtr' info='the current XSLT stylesheet'/>
</function>
- <function name='xsltNormalizeCompSteps' file='pattern'>
+ <function name='xsltNormalizeCompSteps' file='pattern' module='pattern'>
<info>This is a hashtable scanner function to normalize the compiled steps of an imported stylesheet.</info>
<return type='void'/>
<arg name='payload' type='void *' info='pointer to template hash table entry'/>
<arg name='data' type='void *' info='pointer to the stylesheet'/>
<arg name='name' type='const xmlChar *' info='template match name'/>
</function>
- <function name='xsltNumber' file='transform'>
+ <function name='xsltNumber' file='transform' module='transform'>
<info>Process the xslt number node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xslt number node'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltNumberFormat' file='xsltInternals'>
+ <function name='xsltNumberFormat' file='xsltInternals' module='numbers'>
<info>Convert one number.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='data' type='xsltNumberDataPtr' info='the formatting information'/>
<arg name='node' type='xmlNodePtr' info='the data to format'/>
</function>
- <function name='xsltParseAnyXSLTElem' file='xsltInternals'>
+ <function name='xsltParseAnyXSLTElem' file='xsltInternals' module='xslt'>
<info>Parses, validates the content models and compiles XSLT instructions.</info>
<return type='int' info='0 if everything's fine; -1 on API or internal errors.'/>
<arg name='cctxt' type='xsltCompilerCtxtPtr' info='the compilation context'/>
<arg name='elem' type='xmlNodePtr' info='the element node of the XSLT instruction'/>
</function>
- <function name='xsltParseGlobalParam' file='variables'>
+ <function name='xsltParseGlobalParam' file='variables' module='variables'>
<info>parse an XSLT transformation param declaration and record its value.</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='cur' type='xmlNodePtr' info='the "param" element'/>
</function>
- <function name='xsltParseGlobalVariable' file='variables'>
+ <function name='xsltParseGlobalVariable' file='variables' module='variables'>
<info>Parses a global XSLT 'variable' declaration at compilation time and registers it</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='cur' type='xmlNodePtr' info='the "variable" element'/>
</function>
- <function name='xsltParseSequenceConstructor' file='xsltInternals'>
+ <function name='xsltParseSequenceConstructor' file='xsltInternals' module='xslt'>
<info>Parses a "template" content (or "sequence constructor" in XSLT 2.0 terms). This will additionally remove xsl:text elements from the tree.</info>
<return type='void'/>
<arg name='cctxt' type='xsltCompilerCtxtPtr' info='the compilation context'/>
<arg name='cur' type='xmlNodePtr' info='the start-node of the content to be parsed'/>
</function>
- <function name='xsltParseStylesheetAttributeSet' file='attributes'>
+ <function name='xsltParseStylesheetAttributeSet' file='attributes' module='attributes'>
<info>parse an XSLT stylesheet attribute-set element</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='cur' type='xmlNodePtr' info='the "attribute-set" element'/>
</function>
- <function name='xsltParseStylesheetCallerParam' file='variables'>
+ <function name='xsltParseStylesheetCallerParam' file='variables' module='variables'>
<info>Processes an xsl:with-param instruction at transformation time. The value is computed, but not recorded. NOTE that this is also called with an *xsl:param* element from exsltFuncFunctionFunction().</info>
<return type='xsltStackElemPtr' info='the new xsltStackElemPtr or NULL'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the xsl:with-param instruction element'/>
</function>
- <function name='xsltParseStylesheetDoc' file='xsltInternals'>
+ <function name='xsltParseStylesheetDoc' file='xsltInternals' module='xslt'>
<info>parse an XSLT stylesheet, building the associated structures. doc is kept as a reference within the returned stylesheet, so changes to doc after the parsing will be reflected when the stylesheet is applied, and the doc is automatically freed when the stylesheet is closed.</info>
<return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure.'/>
- <arg name='doc' type='xmlDocPtr' info='and xmlDoc parsed XML'/>
+ <arg name='doc' type='xmlDocPtr' info='an xmlDoc parsed XML'/>
</function>
- <function name='xsltParseStylesheetFile' file='xsltInternals'>
+ <function name='xsltParseStylesheetFile' file='xsltInternals' module='xslt'>
<info>Load and parse an XSLT stylesheet</info>
<return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure.'/>
<arg name='filename' type='const xmlChar *' info='the filename/URL to the stylesheet'/>
</function>
- <function name='xsltParseStylesheetImport' file='imports'>
+ <function name='xsltParseStylesheetImport' file='imports' module='imports'>
<info>parse an XSLT stylesheet import element</info>
<return type='int' info='0 in case of success -1 in case of failure.'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='cur' type='xmlNodePtr' info='the import element'/>
</function>
- <function name='xsltParseStylesheetImportedDoc' file='xsltInternals'>
+ <function name='xsltParseStylesheetImportedDoc' file='xsltInternals' module='xslt'>
<info>parse an XSLT stylesheet building the associated structures except the processing not needed for imported documents.</info>
<return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure.'/>
<arg name='doc' type='xmlDocPtr' info='an xmlDoc parsed XML'/>
<arg name='parentStyle' type='xsltStylesheetPtr' info='pointer to the parent stylesheet (if it exists)'/>
</function>
- <function name='xsltParseStylesheetInclude' file='imports'>
+ <function name='xsltParseStylesheetInclude' file='imports' module='imports'>
<info>parse an XSLT stylesheet include element</info>
<return type='int' info='0 in case of success -1 in case of failure'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='cur' type='xmlNodePtr' info='the include node'/>
</function>
- <function name='xsltParseStylesheetOutput' file='xsltInternals'>
+ <function name='xsltParseStylesheetOutput' file='xsltInternals' module='xslt'>
<info>parse an XSLT stylesheet output element and record information related to the stylesheet output</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='cur' type='xmlNodePtr' info='the "output" element'/>
</function>
- <function name='xsltParseStylesheetParam' file='variables'>
+ <function name='xsltParseStylesheetParam' file='variables' module='variables'>
<info>Registers a local XSLT 'param' declaration at transformation time and evaluates its value.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='cur' type='xmlNodePtr' info='the XSLT 'param' element'/>
</function>
- <function name='xsltParseStylesheetProcess' file='xsltInternals'>
+ <function name='xsltParseStylesheetProcess' file='xsltInternals' module='xslt'>
<info>Parses an XSLT stylesheet, adding the associated structures. Called by: xsltParseStylesheetImportedDoc() (xslt.c) xsltParseStylesheetInclude() (imports.c)</info>
<return type='xsltStylesheetPtr' info='the value of the @style parameter if everything went right, NULL if something went amiss.'/>
<arg name='ret' type='xsltStylesheetPtr' info='the XSLT stylesheet (the current stylesheet-level)'/>
<arg name='doc' type='xmlDocPtr' info='and xmlDoc parsed XML'/>
</function>
- <function name='xsltParseStylesheetUser' file='xsltInternals'>
+ <function name='xsltParseStylesheetUser' file='xsltInternals' module='xslt'>
<info>Parse an XSLT stylesheet with a user-provided stylesheet struct.</info>
<return type='int' info='0 if successful, -1 in case of error.'/>
<arg name='style' type='xsltStylesheetPtr' info='pointer to the stylesheet'/>
<arg name='doc' type='xmlDocPtr' info='an xmlDoc parsed XML'/>
</function>
- <function name='xsltParseStylesheetVariable' file='variables'>
+ <function name='xsltParseStylesheetVariable' file='variables' module='variables'>
<info>Registers a local XSLT 'variable' instruction at transformation time and evaluates its value.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the xsl:variable instruction element'/>
</function>
- <function name='xsltParseTemplateContent' file='xsltInternals'>
+ <function name='xsltParseTemplateContent' file='xsltInternals' module='xslt'>
<info>parse a template content-model Clean-up the template content from unwanted ignorable blank nodes and process xslt:text</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='templ' type='xmlNodePtr' info='the container node (can be a document for literal results)'/>
</function>
- <function name='xsltPointerListAddSize' file='xsltInternals'>
+ <function name='xsltPointerListAddSize' file='xsltInternals' module='xsltutils'>
<info>Adds an item to the list.</info>
<return type='int' info='the position of the added item in the list or -1 in case of an error.'/>
<arg name='list' type='xsltPointerListPtr' info='the pointer list structure'/>
<arg name='item' type='void *' info='the item to be stored'/>
<arg name='initialSize' type='int' info='the initial size of the list'/>
</function>
- <function name='xsltPointerListClear' file='xsltInternals'>
+ <function name='xsltPointerListClear' file='xsltInternals' module='xsltutils'>
<info>Resets the list, but does not free the allocated array and does not free the content of the list.</info>
<return type='void'/>
<arg name='list' type='xsltPointerListPtr' info='pointer to the list to be cleared'/>
</function>
- <function name='xsltPointerListCreate' file='xsltInternals'>
+ <function name='xsltPointerListCreate' file='xsltInternals' module='xsltutils'>
<info>Creates an xsltPointerList structure.</info>
<return type='xsltPointerListPtr' info='a xsltPointerList structure or NULL in case of an error.'/>
<arg name='initialSize' type='int' info='the initial size for the list'/>
</function>
- <function name='xsltPointerListFree' file='xsltInternals'>
+ <function name='xsltPointerListFree' file='xsltInternals' module='xsltutils'>
<info>Frees the xsltPointerList structure. This does not free the content of the list.</info>
<return type='void'/>
<arg name='list' type='xsltPointerListPtr' info='pointer to the list to be freed'/>
</function>
- <function name='xsltPreComputeExtModuleElement' file='extensions'>
+ <function name='xsltPreComputeExtModuleElement' file='extensions' module='extensions'>
<info>Precomputes an extension module element</info>
<return type='xsltElemPreCompPtr' info='the precomputed data'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='inst' type='xmlNodePtr' info='the element node'/>
</function>
- <functype name='xsltPreComputeFunction' file='extensions'>
+ <functype name='xsltPreComputeFunction' file='extensions' module='extensions'>
<info></info>
<return type='xsltElemPreCompPtr' info=''/>
<arg name='style' type='xsltStylesheetPtr' info=''/>
<arg name='inst' type='xmlNodePtr' info=''/>
<arg name='function' type='xsltTransformFunction' info=''/>
</functype>
- <function name='xsltPrintErrorContext' file='xsltutils'>
+ <function name='xsltPrintErrorContext' file='xsltutils' module='xsltutils'>
<info>Display the context of an error.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='node' type='xmlNodePtr' info='the current node being processed'/>
</function>
- <function name='xsltProcessOneNode' file='transform'>
+ <function name='xsltProcessOneNode' file='transform' module='transform'>
<info>Process the source node.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='contextNode' type='xmlNodePtr' info='the "current node" in the source tree'/>
<arg name='withParams' type='xsltStackElemPtr' info='extra parameters (e.g. xsl:with-param) passed to the template if any'/>
</function>
- <function name='xsltProcessingInstruction' file='transform'>
+ <function name='xsltProcessingInstruction' file='transform' module='transform'>
<info>Process the xslt processing-instruction node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xslt processing-instruction node'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltProfileStylesheet' file='transform'>
+ <function name='xsltProfileStylesheet' file='transform' module='transform'>
<info>Apply the stylesheet to the document and dump the profiling to the given output.</info>
<return type='xmlDocPtr' info='the result document or NULL in case of error'/>
<arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
<arg name='params' type='const char **' info='a NULL terminated arry of parameters names/values tuples'/>
<arg name='output' type='FILE *' info='a FILE * for the profiling output'/>
</function>
- <function name='xsltQuoteOneUserParam' file='variables'>
+ <function name='xsltQuoteOneUserParam' file='variables' module='variables'>
<info>This is normally called from xsltQuoteUserParams to process a single parameter from a list of parameters. The @value is stored in the context's global variable/parameter hash table.</info>
<return type='int' info='0 in case of success, -1 in case of error.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='name' type='const xmlChar *' info='a null terminated string giving the name of the parameter'/>
<arg name='value' type='const xmlChar *' info='a null terminated string giving the parameter value'/>
</function>
- <function name='xsltQuoteUserParams' file='variables'>
+ <function name='xsltQuoteUserParams' file='variables' module='variables'>
<info>Similar to xsltEvalUserParams, but the values are treated literally and are * *not* evaluated as XPath expressions. This should be done on parsed stylesheets before starting to apply transformations.</info>
<return type='int' info='0 in case of success, -1 in case of error.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='params' type='const char **' info='a NULL terminated arry of parameters names/values tuples'/>
</function>
- <function name='xsltRegisterAllElement' file='transform'>
+ <function name='xsltRegisterAllElement' file='transform' module='transform'>
<info>Registers all default XSLT elements in this context</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XPath context'/>
</function>
- <function name='xsltRegisterAllExtras' file='extra'>
+ <function name='xsltRegisterAllExtras' file='extra' module='extra'>
<info>Registers the built-in extensions</info>
<return type='void'/>
</function>
- <function name='xsltRegisterAllFunctions' file='functions'>
+ <function name='xsltRegisterAllFunctions' file='functions' module='functions'>
<info>Registers all default XSLT functions in this context</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xsltRegisterExtElement' file='extensions'>
+ <function name='xsltRegisterExtElement' file='extensions' module='extensions'>
<info>Registers an extension element</info>
<return type='int' info='0 in case of success, -1 in case of failure'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URI' type='const xmlChar *' info='the URI associated to the element'/>
<arg name='function' type='xsltTransformFunction' info='the actual implementation which should be called'/>
</function>
- <function name='xsltRegisterExtFunction' file='extensions'>
+ <function name='xsltRegisterExtFunction' file='extensions' module='extensions'>
<info>Registers an extension function</info>
<return type='int' info='0 in case of success, -1 in case of failure'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='URI' type='const xmlChar *' info='the URI associated to the element'/>
<arg name='function' type='xmlXPathFunction' info='the actual implementation which should be called'/>
</function>
- <function name='xsltRegisterExtModule' file='extensions'>
+ <function name='xsltRegisterExtModule' file='extensions' module='extensions'>
<info>Register an XSLT extension module to the library.</info>
<return type='int' info='0 if sucessful, -1 in case of error'/>
<arg name='URI' type='const xmlChar *' info='URI associated to this module'/>
<arg name='initFunc' type='xsltExtInitFunction' info='the module initialization function'/>
<arg name='shutdownFunc' type='xsltExtShutdownFunction' info='the module shutdown function'/>
</function>
- <function name='xsltRegisterExtModuleElement' file='extensions'>
+ <function name='xsltRegisterExtModuleElement' file='extensions' module='extensions'>
<info>Registers an extension module element.</info>
<return type='int' info='0 if successful, -1 in case of error.'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
<arg name='precomp' type='xsltPreComputeFunction' info='the pre-computation callback'/>
<arg name='transform' type='xsltTransformFunction' info='the transformation callback'/>
</function>
- <function name='xsltRegisterExtModuleFull' file='extensions'>
+ <function name='xsltRegisterExtModuleFull' file='extensions' module='extensions'>
<info>Register an XSLT extension module to the library.</info>
<return type='int' info='0 if sucessful, -1 in case of error'/>
<arg name='URI' type='const xmlChar *' info='URI associated to this module'/>
<arg name='styleInitFunc' type='xsltStyleExtInitFunction' info='the module initialization function'/>
<arg name='styleShutdownFunc' type='xsltStyleExtShutdownFunction' info='the module shutdown function'/>
</function>
- <function name='xsltRegisterExtModuleFunction' file='extensions'>
+ <function name='xsltRegisterExtModuleFunction' file='extensions' module='extensions'>
<info>Registers an extension module function.</info>
<return type='int' info='0 if successful, -1 in case of error.'/>
<arg name='name' type='const xmlChar *' info='the function name'/>
<arg name='URI' type='const xmlChar *' info='the function namespace URI'/>
<arg name='function' type='xmlXPathFunction' info='the function callback'/>
</function>
- <function name='xsltRegisterExtModuleTopLevel' file='extensions'>
+ <function name='xsltRegisterExtModuleTopLevel' file='extensions' module='extensions'>
<info>Registers an extension module top-level element.</info>
<return type='int' info='0 if successful, -1 in case of error.'/>
<arg name='name' type='const xmlChar *' info='the top-level element name'/>
<arg name='URI' type='const xmlChar *' info='the top-level element namespace URI'/>
<arg name='function' type='xsltTopLevelFunction' info='the top-level element callback'/>
</function>
- <function name='xsltRegisterExtPrefix' file='extensions'>
+ <function name='xsltRegisterExtPrefix' file='extensions' module='extensions'>
<info>Registers an extension namespace This is called from xslt.c during compile-time. The given prefix is not needed. Called by: xsltParseExtElemPrefixes() (new function) xsltRegisterExtPrefix() (old function)</info>
<return type='int' info='0 in case of success, 1 if the @URI was already registered as an extension namespace and -1 in case of failure'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
<arg name='prefix' type='const xmlChar *' info='the prefix used (optional)'/>
<arg name='URI' type='const xmlChar *' info='the URI associated to the extension'/>
</function>
- <function name='xsltRegisterExtras' file='extra'>
+ <function name='xsltRegisterExtras' file='extra' module='extra'>
<info>Registers the built-in extensions. This function is deprecated, use xsltRegisterAllExtras instead.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
</function>
- <function name='xsltRegisterLocalRVT' file='xsltInternals'>
+ <function name='xsltRegisterLocalRVT' file='xsltInternals' module='variables'>
<info>Registers a result value tree (XSLT 1.0 term: Result Tree Fragment) in the RVT garbage collector. The fragment will be freed when the instruction which created the fragment exits.</info>
<return type='int' info='0 in case of success and -1 in case of API or internal errors.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='RVT' type='xmlDocPtr' info='a result value tree (Result Tree Fragment; xmlDocPtr)'/>
</function>
- <function name='xsltRegisterPersistRVT' file='xsltInternals'>
+ <function name='xsltRegisterPersistRVT' file='xsltInternals' module='variables'>
<info>Register the result value tree (XSLT 1.0 term: Result Tree Fragment) in the fragment garbage collector. The fragment will be freed when the transformation context is freed.</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='RVT' type='xmlDocPtr' info='a result value tree (Result Tree Fragment)'/>
</function>
- <function name='xsltRegisterTestModule' file='extensions'>
+ <function name='xsltRegisterTestModule' file='extensions' module='extensions'>
<info>Registers the test module</info>
<return type='void'/>
</function>
- <function name='xsltRegisterTmpRVT' file='xsltInternals'>
+ <function name='xsltRegisterTmpRVT' file='xsltInternals' module='variables'>
<info>Registers the result value tree (XSLT 1.0 term: Result Tree Fragment) in the garbage collector. The fragment will be freed at the exit of the currently instantiated xsl:template. Obsolete; this function might produce massive memory overhead, since the fragment is only freed when the current xsl:template exits. Use xsltRegisterLocalRVT() instead.</info>
<return type='int' info='0 in case of success and -1 in case of API or internal errors.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='RVT' type='xmlDocPtr' info='a result value tree (Result Tree Fragment)'/>
</function>
- <function name='xsltReleaseRVT' file='xsltInternals'>
+ <function name='xsltReleaseRVT' file='xsltInternals' module='variables'>
<info>Either frees the RVT (which is an xmlDoc) or stores it in the context's cache for later reuse.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='RVT' type='xmlDocPtr' info='a result value tree (Result Tree Fragment)'/>
</function>
- <function name='xsltResolveStylesheetAttributeSet' file='attributes'>
+ <function name='xsltResolveStylesheetAttributeSet' file='attributes' module='attributes'>
<info>resolve the references between attribute sets.</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
</function>
- <function name='xsltRestoreDocumentNamespaces' file='xsltInternals'>
+ <function name='xsltRestoreDocumentNamespaces' file='xsltInternals' module='xslt'>
<info>Restore the namespaces for the document</info>
<return type='int' info='0 in case of success, -1 in case of failure'/>
<arg name='ns' type='xsltNsMapPtr' info='map of namespaces'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xsltRunStylesheet' file='transform'>
+ <function name='xsltRunStylesheet' file='transform' module='transform'>
<info>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8</info>
<return type='int' info='the number of bytes written to the main resource or -1 in case of error.'/>
<arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
<arg name='SAX' type='xmlSAXHandlerPtr' info='a SAX handler for progressive callback output (not implemented yet)'/>
<arg name='IObuf' type='xmlOutputBufferPtr' info='an output buffer for progressive output (not implemented yet)'/>
</function>
- <function name='xsltRunStylesheetUser' file='transform'>
+ <function name='xsltRunStylesheetUser' file='transform' module='transform'>
<info>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8</info>
<return type='int' info='the number of by written to the main resource or -1 in case of error.'/>
<arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
<arg name='profile' type='FILE *' info='profile FILE * output or NULL'/>
<arg name='userCtxt' type='xsltTransformContextPtr' info='user provided transform context'/>
</function>
- <function name='xsltSaveProfiling' file='xsltutils'>
+ <function name='xsltSaveProfiling' file='xsltutils' module='xsltutils'>
<info>Save the profiling information on @output</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT context'/>
<arg name='output' type='FILE *' info='a FILE * for saving the information'/>
</function>
- <function name='xsltSaveResultTo' file='xsltutils'>
+ <function name='xsltSaveResultTo' file='xsltutils' module='xsltutils'>
<info>Save the result @result obtained by applying the @style stylesheet to an I/O output channel @buf</info>
<return type='int' info='the number of byte written or -1 in case of failure.'/>
<arg name='buf' type='xmlOutputBufferPtr' info='an output buffer'/>
<arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
</function>
- <function name='xsltSaveResultToFd' file='xsltutils'>
+ <function name='xsltSaveResultToFd' file='xsltutils' module='xsltutils'>
<info>Save the result @result obtained by applying the @style stylesheet to an open file descriptor This does not close the descriptor.</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
<arg name='fd' type='int' info='a file descriptor'/>
<arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
</function>
- <function name='xsltSaveResultToFile' file='xsltutils'>
+ <function name='xsltSaveResultToFile' file='xsltutils' module='xsltutils'>
<info>Save the result @result obtained by applying the @style stylesheet to an open FILE * I/O. This does not close the FILE @file</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
<arg name='file' type='FILE *' info='a FILE * I/O'/>
<arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
</function>
- <function name='xsltSaveResultToFilename' file='xsltutils'>
+ <function name='xsltSaveResultToFilename' file='xsltutils' module='xsltutils'>
<info>Save the result @result obtained by applying the @style stylesheet to a file or @URL</info>
<return type='int' info='the number of byte written or -1 in case of failure.'/>
<arg name='URL' type='const char *' info='a filename or URL'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='compression' type='int' info='the compression factor (0 - 9 included)'/>
</function>
- <function name='xsltSaveResultToString' file='xsltutils'>
+ <function name='xsltSaveResultToString' file='xsltutils' module='xsltutils'>
<info>Save the result @result obtained by applying the @style stylesheet to a new allocated string.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
<arg name='doc_txt_ptr' type='xmlChar **' info='Memory pointer for allocated XML text'/>
<arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
</function>
- <function name='xsltSecurityAllow' file='security'>
+ <function name='xsltSecurityAllow' file='security' module='security'>
<info>Function used to always allow an operation</info>
<return type='int' info='1 always'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='value' type='const char *' info='unused'/>
</function>
- <functype name='xsltSecurityCheck' file='security'>
+ <functype name='xsltSecurityCheck' file='security' module='security'>
<info>User provided function to check the value of a string like a file path or an URL ...</info>
<return type='int' info=''/>
<arg name='sec' type='xsltSecurityPrefsPtr' info=''/>
<arg name='ctxt' type='xsltTransformContextPtr' info=''/>
<arg name='value' type='const char *' info=''/>
</functype>
- <function name='xsltSecurityForbid' file='security'>
+ <function name='xsltSecurityForbid' file='security' module='security'>
<info>Function used to always forbid an operation</info>
<return type='int' info='0 always'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='value' type='const char *' info='unused'/>
</function>
- <function name='xsltSetCtxtParseOptions' file='xsltutils'>
+ <function name='xsltSetCtxtLocaleHandlers' file='xsltutils' module='xsltutils'>
+ <info>Set the locale handlers.</info>
+ <return type='void'/>
+ <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transform context'/>
+ <arg name='newLocale' type='xsltNewLocaleFunc' info='locale constructor'/>
+ <arg name='freeLocale' type='xsltFreeLocaleFunc' info='locale destructor'/>
+ <arg name='genSortKey' type='xsltGenSortKeyFunc' info='sort key generator'/>
+ </function>
+ <function name='xsltSetCtxtParseOptions' file='xsltutils' module='xsltutils'>
<info>Change the default parser option passed by the XSLT engine to the parser when using document() loading.</info>
<return type='int' info='the previous options or -1 in case of error'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='options' type='int' info='a combination of libxml2 xmlParserOption'/>
</function>
- <function name='xsltSetCtxtSecurityPrefs' file='security'>
+ <function name='xsltSetCtxtSecurityPrefs' file='security' module='security'>
<info>Set the security preference for a specific transformation</info>
<return type='int' info='-1 in case of error, 0 otherwise'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltSetCtxtSortFunc' file='xsltutils'>
- <info>Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, then the global sort function will be called</info>
+ <function name='xsltSetCtxtSortFunc' file='xsltutils' module='xsltutils'>
+ <info>DEPRECATED: Use xsltSetCtxtLocaleHandlers. Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, then the global sort function will be called</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='handler' type='xsltSortFunc' info='the new handler function'/>
</function>
- <function name='xsltSetDebuggerCallbacks' file='xsltutils'>
+ <function name='xsltSetDebuggerCallbacks' file='xsltutils' module='xsltutils'>
<info>This function allow to plug a debugger into the XSLT library @block points to a block of memory containing the address of @no callback routines.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
<arg name='no' type='int' info='number of callbacks'/>
<arg name='block' type='void *' info='the block of callbacks'/>
</function>
- <function name='xsltSetDebuggerStatus' file='xsltutils'>
+ <function name='xsltSetDebuggerStatus' file='xsltutils' module='xsltutils'>
<info>This function sets the value of xslDebugStatus.</info>
<return type='void'/>
<arg name='value' type='int' info='the value to be set'/>
</function>
- <function name='xsltSetDefaultSecurityPrefs' file='security'>
+ <function name='xsltSetDefaultSecurityPrefs' file='security' module='security'>
<info>Set the default security preference application-wide</info>
<return type='void'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
</function>
- <function name='xsltSetGenericDebugFunc' file='xsltutils'>
+ <function name='xsltSetGenericDebugFunc' file='xsltutils' module='xsltutils'>
<info>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing or validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the new error handling context'/>
<arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
</function>
- <function name='xsltSetGenericErrorFunc' file='xsltutils'>
+ <function name='xsltSetGenericErrorFunc' file='xsltutils' module='xsltutils'>
<info>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the new error handling context'/>
<arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
</function>
- <function name='xsltSetLoaderFunc' file='documents'>
+ <function name='xsltSetLoaderFunc' file='documents' module='documents'>
<info>Set the new function to load document, if NULL it resets it to the default function.</info>
<return type='void'/>
<arg name='f' type='xsltDocLoaderFunc' info='the new function to handle document loading.'/>
</function>
- <function name='xsltSetSecurityPrefs' file='security'>
+ <function name='xsltSetSecurityPrefs' file='security' module='security'>
<info>Update the security option to use the new callback checking function</info>
<return type='int' info='-1 in case of error, 0 otherwise'/>
<arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to update'/>
<arg name='option' type='xsltSecurityOption' info='the option to update'/>
<arg name='func' type='xsltSecurityCheck' info='the user callback to use for this option'/>
</function>
- <function name='xsltSetSortFunc' file='xsltutils'>
- <info>Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort function will be used.</info>
+ <function name='xsltSetSortFunc' file='xsltutils' module='xsltutils'>
+ <info>DEPRECATED: Use xsltSetCtxtLocaleHandlers. Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort function will be used.</info>
<return type='void'/>
<arg name='handler' type='xsltSortFunc' info='the new handler function'/>
</function>
- <function name='xsltSetTransformErrorFunc' file='xsltutils'>
+ <function name='xsltSetTransformErrorFunc' file='xsltutils' module='xsltutils'>
<info>Function to reset the handler and the error context for out of context error messages specific to a given XSLT transromation. This simply means that @handler will be called for subsequent error messages while running the transformation.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='ctx' type='void *' info='the new error handling context'/>
<arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
</function>
- <function name='xsltSetXIncludeDefault' file='transform'>
+ <function name='xsltSetXIncludeDefault' file='transform' module='transform'>
<info>Set whether XInclude should be processed on document being loaded by default</info>
<return type='void'/>
<arg name='xinclude' type='int' info='whether to do XInclude processing'/>
</function>
- <function name='xsltShutdownCtxtExts' file='extensions'>
+ <function name='xsltShutdownCtxtExts' file='extensions' module='extensions'>
<info>Shutdown the set of modules loaded</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
</function>
- <function name='xsltShutdownExts' file='extensions'>
+ <function name='xsltShutdownExts' file='extensions' module='extensions'>
<info>Shutdown the set of modules loaded</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
</function>
- <function name='xsltSort' file='transform'>
+ <function name='xsltSort' file='transform' module='transform'>
<info>function attached to xsl:sort nodes, but this should not be called directly</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xslt sort node'/>
<arg name='comp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <functype name='xsltSortFunc' file='xsltInternals'>
+ <functype name='xsltSortFunc' file='xsltInternals' module='xsltInternals'>
<info>Signature of the function to use during sorting</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
<arg name='sorts' type='xmlNodePtr *' info='the node-set to sort'/>
<arg name='nbsorts' type='int' info='the number of sorts'/>
</functype>
- <function name='xsltSplitQName' file='xsltutils'>
+ <function name='xsltSplitQName' file='xsltutils' module='xsltutils'>
<info>Split QNames into prefix and local names, both allocated from a dictionary.</info>
<return type='const xmlChar *' info='the localname or NULL in case of error.'/>
<arg name='dict' type='xmlDictPtr' info='a dictionary'/>
<arg name='name' type='const xmlChar *' info='the full QName'/>
<arg name='prefix' type='const xmlChar **' info='the return value'/>
</function>
- <function name='xsltStrxfrm' file='xsltlocale'>
- <info>Transforms a string according to locale. The transformed string must then be compared with xsltLocaleStrcmp and freed with xmlFree.</info>
- <return type='xsltLocaleChar *' info='the transformed string or NULL on error'/>
- <arg name='locale' type='xsltLocale' info='locale created with xsltNewLocale'/>
+ <function name='xsltStrxfrm' file='xsltlocale' module='xsltlocale'>
+ <info>Transforms a string according to locale. The transformed string must be freed with xmlFree.</info>
+ <return type='xmlChar *' info='the transformed string or NULL on error'/>
+ <arg name='vlocale' type='void *' info=''/>
<arg name='string' type='const xmlChar *' info='UTF-8 string to transform'/>
</function>
- <functype name='xsltStyleExtInitFunction' file='extensions'>
+ <functype name='xsltStyleExtInitFunction' file='extensions' module='extensions'>
<info>A function called at initialization time of an XSLT extension module.</info>
<return type='void *' info='a pointer to the module specific data for this transformation.'/>
<arg name='style' type='xsltStylesheetPtr' info=''/>
<arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
</functype>
- <functype name='xsltStyleExtShutdownFunction' file='extensions'>
+ <functype name='xsltStyleExtShutdownFunction' file='extensions' module='extensions'>
<info>A function called at shutdown time of an XSLT extension module.</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info=''/>
<arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
<arg name='data' type='void *' info='the data associated to this module'/>
</functype>
- <function name='xsltStyleGetExtData' file='extensions'>
+ <function name='xsltStyleGetExtData' file='extensions' module='extensions'>
<info>Retrieve the data associated to the extension module in this given stylesheet. Called by: xsltRegisterExtPrefix(), ( xsltExtElementPreCompTest(), xsltExtInitTest )</info>
<return type='void *' info='the pointer or NULL if not present'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
<arg name='URI' type='const xmlChar *' info='the URI associated to the exension module'/>
</function>
- <function name='xsltStylePreCompute' file='preproc'>
+ <function name='xsltStylePreCompute' file='preproc' module='preproc'>
<info>Precompute an XSLT stylesheet element</info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
<arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
</function>
- <function name='xsltStyleStylesheetLevelGetExtData' file='extensions'>
+ <function name='xsltStyleStylesheetLevelGetExtData' file='extensions' module='extensions'>
<info>Retrieve the data associated to the extension module in this given stylesheet.</info>
<return type='void *' info='the pointer or NULL if not present'/>
<arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
<arg name='URI' type='const xmlChar *' info='the URI associated to the exension module'/>
</function>
- <function name='xsltSystemPropertyFunction' file='functions'>
+ <function name='xsltSystemPropertyFunction' file='functions' module='functions'>
<info>Implement the system-property() XSLT function object system-property(string)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltTemplateProcess' file='templates'>
+ <function name='xsltTemplateProcess' file='templates' module='templates'>
<info>Obsolete. Don't use it.</info>
<return type='xmlNodePtr *' info='NULL.'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='node' type='xmlNodePtr' info='the attribute template node'/>
</function>
- <function name='xsltTestCompMatchList' file='pattern'>
+ <function name='xsltTestCompMatchList' file='pattern' module='pattern'>
<info>Test whether the node matches one of the patterns in the list</info>
<return type='int' info='1 if it matches, 0 if it doesn't and -1 in case of failure'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
<arg name='comp' type='xsltCompMatchPtr' info='the precompiled pattern list'/>
</function>
- <function name='xsltText' file='transform'>
+ <function name='xsltText' file='transform' module='transform'>
<info>Process the xslt text node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xslt text node'/>
<arg name='comp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltTimestamp' file='xsltutils'>
+ <function name='xsltTimestamp' file='xsltutils' module='xsltutils'>
<info>Used for gathering profiling data</info>
<return type='long' info='the number of tenth of milliseconds since the beginning of the profiling'/>
</function>
- <functype name='xsltTopLevelFunction' file='extensions'>
+ <functype name='xsltTopLevelFunction' file='extensions' module='extensions'>
<info></info>
<return type='void'/>
<arg name='style' type='xsltStylesheetPtr' info=''/>
<arg name='inst' type='xmlNodePtr' info=''/>
</functype>
- <function name='xsltTransformError' file='xsltutils'>
+ <function name='xsltTransformError' file='xsltutils' module='xsltutils'>
<info>Display and format an error messages, gives file, line, position and extra parameters, will use the specific transformation context if available</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</function>
- <functype name='xsltTransformFunction' file='xsltInternals'>
+ <functype name='xsltTransformFunction' file='xsltInternals' module='xsltInternals'>
<info>Signature of the function associated to elements part of the stylesheet language like xsl:if or xsl:apply-templates.</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='inst' type='xmlNodePtr' info='the stylesheet node'/>
<arg name='comp' type='xsltElemPreCompPtr' info='the compiled information from the stylesheet'/>
</functype>
- <function name='xsltUninit' file='xsltInternals'>
+ <function name='xsltUninit' file='xsltInternals' module='xslt'>
<info>Uninitializes the processor.</info>
<return type='void'/>
</function>
- <function name='xsltUnparsedEntityURIFunction' file='functions'>
+ <function name='xsltUnparsedEntityURIFunction' file='functions' module='functions'>
<info>Implement the unparsed-entity-uri() XSLT function string unparsed-entity-uri(string)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xsltUnregisterExtModule' file='extensions'>
+ <function name='xsltUnregisterExtModule' file='extensions' module='extensions'>
<info>Unregister an XSLT extension module from the library.</info>
<return type='int' info='0 if sucessful, -1 in case of error'/>
<arg name='URI' type='const xmlChar *' info='URI associated to this module'/>
</function>
- <function name='xsltUnregisterExtModuleElement' file='extensions'>
+ <function name='xsltUnregisterExtModuleElement' file='extensions' module='extensions'>
<info>Unregisters an extension module element</info>
<return type='int' info='0 if successful, -1 in case of error.'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
<arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
</function>
- <function name='xsltUnregisterExtModuleFunction' file='extensions'>
+ <function name='xsltUnregisterExtModuleFunction' file='extensions' module='extensions'>
<info>Unregisters an extension module function</info>
<return type='int' info='0 if successful, -1 in case of error.'/>
<arg name='name' type='const xmlChar *' info='the function name'/>
<arg name='URI' type='const xmlChar *' info='the function namespace URI'/>
</function>
- <function name='xsltUnregisterExtModuleTopLevel' file='extensions'>
+ <function name='xsltUnregisterExtModuleTopLevel' file='extensions' module='extensions'>
<info>Unregisters an extension module top-level element</info>
<return type='int' info='0 if successful, -1 in case of error.'/>
<arg name='name' type='const xmlChar *' info='the top-level element name'/>
<arg name='URI' type='const xmlChar *' info='the top-level element namespace URI'/>
</function>
- <function name='xsltValueOf' file='transform'>
+ <function name='xsltValueOf' file='transform' module='transform'>
<info>Process the xslt value-of node on the source node</info>
<return type='void'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
<arg name='inst' type='xmlNodePtr' info='the xslt value-of node'/>
<arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
</function>
- <function name='xsltVariableLookup' file='variables'>
+ <function name='xsltVariableLookup' file='variables' module='variables'>
<info>Search in the Variable array of the context for the given variable value.</info>
<return type='xmlXPathObjectPtr' info='the value or NULL if not found'/>
<arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
<arg name='name' type='const xmlChar *' info='the variable name'/>
<arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
</function>
- <function name='xsltXPathCompile' file='xsltutils'>
+ <function name='xsltXPathCompile' file='xsltutils' module='xsltutils'>
<info>Compile an XPath expression</info>
<return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='str' type='const xmlChar *' info='the XPath expression'/>
</function>
- <function name='xsltXPathCompileFlags' file='xsltutils'>
+ <function name='xsltXPathCompileFlags' file='xsltutils' module='xsltutils'>
<info>Compile an XPath expression</info>
<return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
<arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
<arg name='str' type='const xmlChar *' info='the XPath expression'/>
<arg name='flags' type='int' info='extra compilation flags to pass down to libxml2 XPath'/>
</function>
- <function name='xsltXPathFunctionLookup' file='functions'>
+ <function name='xsltXPathFunctionLookup' file='functions' module='functions'>
<info>This is the entry point when a function is needed by the XPath interpretor.</info>
<return type='xmlXPathFunction' info='the callback function or NULL if not found'/>
<arg name='vctxt' type='void *' info='a void * but the XSLT transformation context actually'/>
<arg name='name' type='const xmlChar *' info='the function name'/>
<arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
</function>
- <function name='xsltXPathGetTransformContext' file='extensions'>
+ <function name='xsltXPathGetTransformContext' file='extensions' module='extensions'>
<info>Provides the XSLT transformation context from the XPath transformation context. This is useful when an XPath function in the extension module is called by the XPath interpreter and that the XSLT context is needed for example to retrieve the associated data pertaining to this XSLT transformation.</info>
<return type='xsltTransformContextPtr' info='the XSLT transformation context or NULL in case of error.'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath transformation context'/>
</function>
- <function name='xsltXPathVariableLookup' file='variables'>
+ <function name='xsltXPathVariableLookup' file='variables' module='variables'>
<info>This is the entry point when a varibale is needed by the XPath interpretor.</info>
<return type='xmlXPathObjectPtr' info='the value or NULL if not found'/>
<arg name='ctxt' type='void *' info='a void * but the the XSLT transformation context actually'/>
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<apirefs name='libxslt'>
- <references>
- <reference name='CHECK_STOPPED' href='html/libxslt-xsltInternals.html#CHECK_STOPPED'/>
- <reference name='CHECK_STOPPED0' href='html/libxslt-xsltInternals.html#CHECK_STOPPED0'/>
- <reference name='CHECK_STOPPEDE' href='html/libxslt-xsltInternals.html#CHECK_STOPPEDE'/>
- <reference name='IS_XSLT_ATTR_FAST' href='html/libxslt-xsltInternals.html#IS_XSLT_ATTR_FAST'/>
- <reference name='IS_XSLT_ELEM' href='html/libxslt-xsltutils.html#IS_XSLT_ELEM'/>
- <reference name='IS_XSLT_ELEM_FAST' href='html/libxslt-xsltInternals.html#IS_XSLT_ELEM_FAST'/>
- <reference name='IS_XSLT_NAME' href='html/libxslt-xsltutils.html#IS_XSLT_NAME'/>
- <reference name='IS_XSLT_REAL_NODE' href='html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE'/>
- <reference name='LIBXSLT_PUBLIC' href='html/libxslt-xsltexports.html#LIBXSLT_PUBLIC'/>
- <reference name='NODE_IS_KEYED' href='html/libxslt-keys.html#NODE_IS_KEYED'/>
- <reference name='UNDEFINED_DEFAULT_NS' href='html/libxslt-namespaces.html#UNDEFINED_DEFAULT_NS'/>
- <reference name='XML_CAST_FPTR' href='html/libxslt-xsltInternals.html#XML_CAST_FPTR'/>
- <reference name='XSLTCALL' href='html/libxslt-xsltexports.html#XSLTCALL'/>
- <reference name='XSLTPUBFUN' href='html/libxslt-xsltexports.html#XSLTPUBFUN'/>
- <reference name='XSLTPUBLIC' href='html/libxslt-xsltexports.html#XSLTPUBLIC'/>
- <reference name='XSLTPUBVAR' href='html/libxslt-xsltexports.html#XSLTPUBVAR'/>
- <reference name='XSLT_CCTXT' href='html/libxslt-xsltInternals.html#XSLT_CCTXT'/>
- <reference name='XSLT_DEBUG_CONT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_CONT'/>
- <reference name='XSLT_DEBUG_INIT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_INIT'/>
- <reference name='XSLT_DEBUG_NEXT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_NEXT'/>
- <reference name='XSLT_DEBUG_NONE' href='html/libxslt-xsltutils.html#XSLT_DEBUG_NONE'/>
- <reference name='XSLT_DEBUG_QUIT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_QUIT'/>
- <reference name='XSLT_DEBUG_RUN' href='html/libxslt-xsltutils.html#XSLT_DEBUG_RUN'/>
- <reference name='XSLT_DEBUG_RUN_RESTART' href='html/libxslt-xsltutils.html#XSLT_DEBUG_RUN_RESTART'/>
- <reference name='XSLT_DEBUG_STEP' href='html/libxslt-xsltutils.html#XSLT_DEBUG_STEP'/>
- <reference name='XSLT_DEBUG_STEPOUT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_STEPOUT'/>
- <reference name='XSLT_DEBUG_STOP' href='html/libxslt-xsltutils.html#XSLT_DEBUG_STOP'/>
- <reference name='XSLT_DEFAULT_URL' href='html/libxslt-xslt.html#XSLT_DEFAULT_URL'/>
- <reference name='XSLT_DEFAULT_VENDOR' href='html/libxslt-xslt.html#XSLT_DEFAULT_VENDOR'/>
- <reference name='XSLT_DEFAULT_VERSION' href='html/libxslt-xslt.html#XSLT_DEFAULT_VERSION'/>
- <reference name='XSLT_ERROR_SEVERITY_ERROR' href='html/libxslt-xsltInternals.html#XSLT_ERROR_SEVERITY_ERROR'/>
- <reference name='XSLT_ERROR_SEVERITY_WARNING' href='html/libxslt-xsltInternals.html#XSLT_ERROR_SEVERITY_WARNING'/>
- <reference name='XSLT_FAST_IF' href='html/libxslt-xsltInternals.html#XSLT_FAST_IF'/>
- <reference name='XSLT_FUNC_APPLYIMPORTS' href='html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYIMPORTS'/>
- <reference name='XSLT_FUNC_APPLYTEMPLATES' href='html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYTEMPLATES'/>
- <reference name='XSLT_FUNC_ATTRIBUTE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_ATTRIBUTE'/>
- <reference name='XSLT_FUNC_ATTRSET' href='html/libxslt-xsltInternals.html#XSLT_FUNC_ATTRSET'/>
- <reference name='XSLT_FUNC_CALLTEMPLATE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_CALLTEMPLATE'/>
- <reference name='XSLT_FUNC_CHOOSE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_CHOOSE'/>
- <reference name='XSLT_FUNC_COMMENT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_COMMENT'/>
- <reference name='XSLT_FUNC_COPY' href='html/libxslt-xsltInternals.html#XSLT_FUNC_COPY'/>
- <reference name='XSLT_FUNC_COPYOF' href='html/libxslt-xsltInternals.html#XSLT_FUNC_COPYOF'/>
- <reference name='XSLT_FUNC_DOCUMENT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_DOCUMENT'/>
- <reference name='XSLT_FUNC_ELEMENT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_ELEMENT'/>
- <reference name='XSLT_FUNC_EXTENSION' href='html/libxslt-xsltInternals.html#XSLT_FUNC_EXTENSION'/>
- <reference name='XSLT_FUNC_FALLBACK' href='html/libxslt-xsltInternals.html#XSLT_FUNC_FALLBACK'/>
- <reference name='XSLT_FUNC_FOREACH' href='html/libxslt-xsltInternals.html#XSLT_FUNC_FOREACH'/>
- <reference name='XSLT_FUNC_IF' href='html/libxslt-xsltInternals.html#XSLT_FUNC_IF'/>
- <reference name='XSLT_FUNC_INCLUDE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_INCLUDE'/>
- <reference name='XSLT_FUNC_LITERAL_RESULT_ELEMENT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_LITERAL_RESULT_ELEMENT'/>
- <reference name='XSLT_FUNC_MESSAGE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_MESSAGE'/>
- <reference name='XSLT_FUNC_NUMBER' href='html/libxslt-xsltInternals.html#XSLT_FUNC_NUMBER'/>
- <reference name='XSLT_FUNC_OTHERWISE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_OTHERWISE'/>
- <reference name='XSLT_FUNC_PARAM' href='html/libxslt-xsltInternals.html#XSLT_FUNC_PARAM'/>
- <reference name='XSLT_FUNC_PI' href='html/libxslt-xsltInternals.html#XSLT_FUNC_PI'/>
- <reference name='XSLT_FUNC_SORT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_SORT'/>
- <reference name='XSLT_FUNC_TEXT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_TEXT'/>
- <reference name='XSLT_FUNC_UNKOWN_FORWARDS_COMPAT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_UNKOWN_FORWARDS_COMPAT'/>
- <reference name='XSLT_FUNC_VALUEOF' href='html/libxslt-xsltInternals.html#XSLT_FUNC_VALUEOF'/>
- <reference name='XSLT_FUNC_VARIABLE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_VARIABLE'/>
- <reference name='XSLT_FUNC_WHEN' href='html/libxslt-xsltInternals.html#XSLT_FUNC_WHEN'/>
- <reference name='XSLT_FUNC_WITHPARAM' href='html/libxslt-xsltInternals.html#XSLT_FUNC_WITHPARAM'/>
- <reference name='XSLT_GET_IMPORT_INT' href='html/libxslt-imports.html#XSLT_GET_IMPORT_INT'/>
- <reference name='XSLT_GET_IMPORT_PTR' href='html/libxslt-imports.html#XSLT_GET_IMPORT_PTR'/>
- <reference name='XSLT_GET_INTERNAL_NSMAP' href='html/libxslt-xsltInternals.html#XSLT_GET_INTERNAL_NSMAP'/>
- <reference name='XSLT_HAS_INTERNAL_NSMAP' href='html/libxslt-xsltInternals.html#XSLT_HAS_INTERNAL_NSMAP'/>
- <reference name='XSLT_IS_RES_TREE_FRAG' href='html/libxslt-xsltInternals.html#XSLT_IS_RES_TREE_FRAG'/>
- <reference name='XSLT_IS_TEXT_NODE' href='html/libxslt-xsltInternals.html#XSLT_IS_TEXT_NODE'/>
- <reference name='XSLT_ITEM_COMMON_FIELDS' href='html/libxslt-xsltInternals.html#XSLT_ITEM_COMMON_FIELDS'/>
- <reference name='XSLT_ITEM_COMPATIBILITY_FIELDS' href='html/libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <reference name='XSLT_ITEM_NAVIGATION_FIELDS' href='html/libxslt-xsltInternals.html#XSLT_ITEM_NAVIGATION_FIELDS'/>
- <reference name='XSLT_ITEM_NSINSCOPE_FIELDS' href='html/libxslt-xsltInternals.html#XSLT_ITEM_NSINSCOPE_FIELDS'/>
- <reference name='XSLT_LIBXSLT_NAMESPACE' href='html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE'/>
- <reference name='XSLT_LOAD_DOCUMENT' href='html/libxslt-documents.html#XSLT_LOAD_DOCUMENT'/>
- <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_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'/>
- <reference name='XSLT_PARSE_OPTIONS' href='html/libxslt-xslt.html#XSLT_PARSE_OPTIONS'/>
- <reference name='XSLT_PAT_NO_PRIORITY' href='html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY'/>
- <reference name='XSLT_REFACTORED_KEYCOMP' href='html/libxslt-xsltInternals.html#XSLT_REFACTORED_KEYCOMP'/>
- <reference name='XSLT_REFACTORED_VARS' href='html/libxslt-xsltInternals.html#XSLT_REFACTORED_VARS'/>
- <reference name='XSLT_REGISTER_FUNCTION_LOOKUP' href='html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <reference name='XSLT_REGISTER_VARIABLE_LOOKUP' href='html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP'/>
- <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_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'/>
- <reference name='XSLT_SECPREF_READ_NETWORK' href='html/libxslt-security.html#XSLT_SECPREF_READ_NETWORK'/>
- <reference name='XSLT_SECPREF_WRITE_FILE' href='html/libxslt-security.html#XSLT_SECPREF_WRITE_FILE'/>
- <reference name='XSLT_SECPREF_WRITE_NETWORK' href='html/libxslt-security.html#XSLT_SECPREF_WRITE_NETWORK'/>
- <reference name='XSLT_STATE_ERROR' href='html/libxslt-xsltInternals.html#XSLT_STATE_ERROR'/>
- <reference name='XSLT_STATE_OK' href='html/libxslt-xsltInternals.html#XSLT_STATE_OK'/>
- <reference name='XSLT_STATE_STOPPED' href='html/libxslt-xsltInternals.html#XSLT_STATE_STOPPED'/>
- <reference name='XSLT_STRANGE' href='html/libxslt-xsltutils.html#XSLT_STRANGE'/>
- <reference name='XSLT_TIMESTAMP_TICS_PER_SEC' href='html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC'/>
- <reference name='XSLT_TODO' href='html/libxslt-xsltutils.html#XSLT_TODO'/>
- <reference name='XSLT_TRACE' href='html/libxslt-xsltutils.html#XSLT_TRACE'/>
- <reference name='XSLT_TRACE_ALL' href='html/libxslt-xsltutils.html#XSLT_TRACE_ALL'/>
- <reference name='XSLT_TRACE_APPLY_TEMPLATE' href='html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATE'/>
- <reference name='XSLT_TRACE_APPLY_TEMPLATES' href='html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATES'/>
- <reference name='XSLT_TRACE_CALL_TEMPLATE' href='html/libxslt-xsltutils.html#XSLT_TRACE_CALL_TEMPLATE'/>
- <reference name='XSLT_TRACE_CHOOSE' href='html/libxslt-xsltutils.html#XSLT_TRACE_CHOOSE'/>
- <reference name='XSLT_TRACE_COMMENT' href='html/libxslt-xsltutils.html#XSLT_TRACE_COMMENT'/>
- <reference name='XSLT_TRACE_COPY' href='html/libxslt-xsltutils.html#XSLT_TRACE_COPY'/>
- <reference name='XSLT_TRACE_COPY_OF' href='html/libxslt-xsltutils.html#XSLT_TRACE_COPY_OF'/>
- <reference name='XSLT_TRACE_COPY_TEXT' href='html/libxslt-xsltutils.html#XSLT_TRACE_COPY_TEXT'/>
- <reference name='XSLT_TRACE_FOR_EACH' href='html/libxslt-xsltutils.html#XSLT_TRACE_FOR_EACH'/>
- <reference name='XSLT_TRACE_IF' href='html/libxslt-xsltutils.html#XSLT_TRACE_IF'/>
- <reference name='XSLT_TRACE_KEYS' href='html/libxslt-xsltutils.html#XSLT_TRACE_KEYS'/>
- <reference name='XSLT_TRACE_NONE' href='html/libxslt-xsltutils.html#XSLT_TRACE_NONE'/>
- <reference name='XSLT_TRACE_PI' href='html/libxslt-xsltutils.html#XSLT_TRACE_PI'/>
- <reference name='XSLT_TRACE_PROCESS_NODE' href='html/libxslt-xsltutils.html#XSLT_TRACE_PROCESS_NODE'/>
- <reference name='XSLT_TRACE_STRIP_SPACES' href='html/libxslt-xsltutils.html#XSLT_TRACE_STRIP_SPACES'/>
- <reference name='XSLT_TRACE_TEMPLATES' href='html/libxslt-xsltutils.html#XSLT_TRACE_TEMPLATES'/>
- <reference name='XSLT_TRACE_VALUE_OF' href='html/libxslt-xsltutils.html#XSLT_TRACE_VALUE_OF'/>
- <reference name='XSLT_TRACE_VARIABLES' href='html/libxslt-xsltutils.html#XSLT_TRACE_VARIABLES'/>
- <reference name='XSLT_XALAN_NAMESPACE' href='html/libxslt-extra.html#XSLT_XALAN_NAMESPACE'/>
- <reference name='XSLT_XT_NAMESPACE' href='html/libxslt-extra.html#XSLT_XT_NAMESPACE'/>
- <reference name='_xsltCompMatch' href='html/libxslt-numbersInternals.html#_xsltCompMatch'/>
- <reference name='_xsltCompilerCtxt' href='html/libxslt-xsltInternals.html#_xsltCompilerCtxt'/>
- <reference name='_xsltCompilerNodeInfo' href='html/libxslt-xsltInternals.html#_xsltCompilerNodeInfo'/>
- <reference name='_xsltDecimalFormat' href='html/libxslt-xsltInternals.html#_xsltDecimalFormat'/>
- <reference name='_xsltDocument' href='html/libxslt-xsltInternals.html#_xsltDocument'/>
- <reference name='_xsltEffectiveNs' href='html/libxslt-xsltInternals.html#_xsltEffectiveNs'/>
- <reference name='_xsltElemPreComp' href='html/libxslt-xsltInternals.html#_xsltElemPreComp'/>
- <reference name='_xsltFormatNumberInfo' href='html/libxslt-numbersInternals.html#_xsltFormatNumberInfo'/>
- <reference name='_xsltKeyDef' href='html/libxslt-xsltInternals.html#_xsltKeyDef'/>
- <reference name='_xsltKeyTable' href='html/libxslt-xsltInternals.html#_xsltKeyTable'/>
- <reference name='_xsltNsAlias' href='html/libxslt-xsltInternals.html#_xsltNsAlias'/>
- <reference name='_xsltNsList' href='html/libxslt-xsltInternals.html#_xsltNsList'/>
- <reference name='_xsltNsListContainer' href='html/libxslt-xsltInternals.html#_xsltNsListContainer'/>
- <reference name='_xsltNsMap' href='html/libxslt-xsltInternals.html#_xsltNsMap'/>
- <reference name='_xsltNumberData' href='html/libxslt-numbersInternals.html#_xsltNumberData'/>
- <reference name='_xsltPointerList' href='html/libxslt-xsltInternals.html#_xsltPointerList'/>
- <reference name='_xsltPrincipalStylesheetData' href='html/libxslt-xsltInternals.html#_xsltPrincipalStylesheetData'/>
- <reference name='_xsltRuntimeExtra' href='html/libxslt-xsltInternals.html#_xsltRuntimeExtra'/>
- <reference name='_xsltStackElem' href='html/libxslt-xsltInternals.html#_xsltStackElem'/>
- <reference name='_xsltStyleBasicEmptyItem' href='html/libxslt-xsltInternals.html#_xsltStyleBasicEmptyItem'/>
- <reference name='_xsltStyleBasicExpressionItem' href='html/libxslt-xsltInternals.html#_xsltStyleBasicExpressionItem'/>
- <reference name='_xsltStyleBasicItemVariable' href='html/libxslt-xsltInternals.html#_xsltStyleBasicItemVariable'/>
- <reference name='_xsltStyleItemApplyTemplates' href='html/libxslt-xsltInternals.html#_xsltStyleItemApplyTemplates'/>
- <reference name='_xsltStyleItemAttribute' href='html/libxslt-xsltInternals.html#_xsltStyleItemAttribute'/>
- <reference name='_xsltStyleItemCallTemplate' href='html/libxslt-xsltInternals.html#_xsltStyleItemCallTemplate'/>
- <reference name='_xsltStyleItemCopy' href='html/libxslt-xsltInternals.html#_xsltStyleItemCopy'/>
- <reference name='_xsltStyleItemDocument' href='html/libxslt-xsltInternals.html#_xsltStyleItemDocument'/>
- <reference name='_xsltStyleItemElement' href='html/libxslt-xsltInternals.html#_xsltStyleItemElement'/>
- <reference name='_xsltStyleItemExtElement' href='html/libxslt-xsltInternals.html#_xsltStyleItemExtElement'/>
- <reference name='_xsltStyleItemIf' href='html/libxslt-xsltInternals.html#_xsltStyleItemIf'/>
- <reference name='_xsltStyleItemInclude' href='html/libxslt-xsltInternals.html#_xsltStyleItemInclude'/>
- <reference name='_xsltStyleItemLRElementInfo' href='html/libxslt-xsltInternals.html#_xsltStyleItemLRElementInfo'/>
- <reference name='_xsltStyleItemMessage' href='html/libxslt-xsltInternals.html#_xsltStyleItemMessage'/>
- <reference name='_xsltStyleItemNumber' href='html/libxslt-xsltInternals.html#_xsltStyleItemNumber'/>
- <reference name='_xsltStyleItemOtherwise' href='html/libxslt-xsltInternals.html#_xsltStyleItemOtherwise'/>
- <reference name='_xsltStyleItemPI' href='html/libxslt-xsltInternals.html#_xsltStyleItemPI'/>
- <reference name='_xsltStyleItemParam' href='html/libxslt-xsltInternals.html#_xsltStyleItemParam'/>
- <reference name='_xsltStyleItemSort' href='html/libxslt-xsltInternals.html#_xsltStyleItemSort'/>
- <reference name='_xsltStyleItemText' href='html/libxslt-xsltInternals.html#_xsltStyleItemText'/>
- <reference name='_xsltStyleItemUknown' href='html/libxslt-xsltInternals.html#_xsltStyleItemUknown'/>
- <reference name='_xsltStyleItemValueOf' href='html/libxslt-xsltInternals.html#_xsltStyleItemValueOf'/>
- <reference name='_xsltStyleItemWhen' href='html/libxslt-xsltInternals.html#_xsltStyleItemWhen'/>
- <reference name='_xsltStylePreComp' href='html/libxslt-xsltInternals.html#_xsltStylePreComp'/>
- <reference name='_xsltStylesheet' href='html/libxslt-xsltInternals.html#_xsltStylesheet'/>
- <reference name='_xsltTemplate' href='html/libxslt-xsltInternals.html#_xsltTemplate'/>
- <reference name='_xsltTransformCache' href='html/libxslt-xsltInternals.html#_xsltTransformCache'/>
- <reference name='_xsltTransformContext' href='html/libxslt-xsltInternals.html#_xsltTransformContext'/>
- <reference name='_xsltVarInfo' href='html/libxslt-xsltInternals.html#_xsltVarInfo'/>
- <reference name='xslAddCall' href='html/libxslt-xsltutils.html#xslAddCall'/>
- <reference name='xslDebugStatus' href='html/libxslt-xsltutils.html#xslDebugStatus'/>
- <reference name='xslDropCall' href='html/libxslt-xsltutils.html#xslDropCall'/>
- <reference name='xslHandleDebugger' href='html/libxslt-transform.html#xslHandleDebugger'/>
- <reference name='xsltAddCallCallback' href='html/libxslt-xsltutils.html#xsltAddCallCallback'/>
- <reference name='xsltAddKey' href='html/libxslt-keys.html#xsltAddKey'/>
- <reference name='xsltAddStackElemList' href='html/libxslt-variables.html#xsltAddStackElemList'/>
- <reference name='xsltAddTemplate' href='html/libxslt-pattern.html#xsltAddTemplate'/>
- <reference name='xsltAllocateExtra' href='html/libxslt-xsltInternals.html#xsltAllocateExtra'/>
- <reference name='xsltAllocateExtraCtxt' href='html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt'/>
- <reference name='xsltApplyAttributeSet' href='html/libxslt-attributes.html#xsltApplyAttributeSet'/>
- <reference name='xsltApplyImports' href='html/libxslt-transform.html#xsltApplyImports'/>
- <reference name='xsltApplyOneTemplate' href='html/libxslt-transform.html#xsltApplyOneTemplate'/>
- <reference name='xsltApplyStripSpaces' href='html/libxslt-transform.html#xsltApplyStripSpaces'/>
- <reference name='xsltApplyStylesheet' href='html/libxslt-transform.html#xsltApplyStylesheet'/>
- <reference name='xsltApplyStylesheetUser' href='html/libxslt-transform.html#xsltApplyStylesheetUser'/>
- <reference name='xsltApplyTemplates' href='html/libxslt-transform.html#xsltApplyTemplates'/>
- <reference name='xsltAttrListTemplateProcess' href='html/libxslt-templates.html#xsltAttrListTemplateProcess'/>
- <reference name='xsltAttrTemplateProcess' href='html/libxslt-templates.html#xsltAttrTemplateProcess'/>
- <reference name='xsltAttrTemplateValueProcess' href='html/libxslt-templates.html#xsltAttrTemplateValueProcess'/>
- <reference name='xsltAttrTemplateValueProcessNode' href='html/libxslt-templates.html#xsltAttrTemplateValueProcessNode'/>
- <reference name='xsltAttribute' href='html/libxslt-transform.html#xsltAttribute'/>
- <reference name='xsltCalibrateAdjust' href='html/libxslt-xsltutils.html#xsltCalibrateAdjust'/>
- <reference name='xsltCallTemplate' href='html/libxslt-transform.html#xsltCallTemplate'/>
- <reference name='xsltCheckExtPrefix' href='html/libxslt-extensions.html#xsltCheckExtPrefix'/>
- <reference name='xsltCheckExtURI' href='html/libxslt-extensions.html#xsltCheckExtURI'/>
- <reference name='xsltCheckRead' href='html/libxslt-security.html#xsltCheckRead'/>
- <reference name='xsltCheckWrite' href='html/libxslt-security.html#xsltCheckWrite'/>
- <reference name='xsltChoose' href='html/libxslt-transform.html#xsltChoose'/>
- <reference name='xsltCleanupGlobals' href='html/libxslt-xslt.html#xsltCleanupGlobals'/>
- <reference name='xsltCleanupTemplates' href='html/libxslt-pattern.html#xsltCleanupTemplates'/>
- <reference name='xsltComment' href='html/libxslt-transform.html#xsltComment'/>
- <reference name='xsltCompMatch' href='html/libxslt-pattern.html#xsltCompMatch'/>
- <reference name='xsltCompMatchClearCache' href='html/libxslt-pattern.html#xsltCompMatchClearCache'/>
- <reference name='xsltCompMatchPtr' href='html/libxslt-pattern.html#xsltCompMatchPtr'/>
- <reference name='xsltCompileAttr' href='html/libxslt-xsltInternals.html#xsltCompileAttr'/>
- <reference name='xsltCompilePattern' href='html/libxslt-pattern.html#xsltCompilePattern'/>
- <reference name='xsltCompilerCtxt' href='html/libxslt-xsltInternals.html#xsltCompilerCtxt'/>
- <reference name='xsltCompilerCtxtPtr' href='html/libxslt-xsltInternals.html#xsltCompilerCtxtPtr'/>
- <reference name='xsltCompilerNodeInfo' href='html/libxslt-xsltInternals.html#xsltCompilerNodeInfo'/>
- <reference name='xsltCompilerNodeInfoPtr' href='html/libxslt-xsltInternals.html#xsltCompilerNodeInfoPtr'/>
- <reference name='xsltComputeSortResult' href='html/libxslt-xsltutils.html#xsltComputeSortResult'/>
- <reference name='xsltConstNamespaceNameXSLT' href='html/libxslt-xsltInternals.html#xsltConstNamespaceNameXSLT'/>
- <reference name='xsltCopy' href='html/libxslt-transform.html#xsltCopy'/>
- <reference name='xsltCopyNamespace' href='html/libxslt-namespaces.html#xsltCopyNamespace'/>
- <reference name='xsltCopyNamespaceList' href='html/libxslt-namespaces.html#xsltCopyNamespaceList'/>
- <reference name='xsltCopyOf' href='html/libxslt-transform.html#xsltCopyOf'/>
- <reference name='xsltCopyTextString' href='html/libxslt-transform.html#xsltCopyTextString'/>
- <reference name='xsltCreateRVT' href='html/libxslt-xsltInternals.html#xsltCreateRVT'/>
- <reference name='xsltDebug' href='html/libxslt-extra.html#xsltDebug'/>
- <reference name='xsltDebugDumpExtensions' href='html/libxslt-extensions.html#xsltDebugDumpExtensions'/>
- <reference name='xsltDebugGetDefaultTrace' href='html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace'/>
- <reference name='xsltDebugSetDefaultTrace' href='html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace'/>
- <reference name='xsltDebugStatusCodes' href='html/libxslt-xsltutils.html#xsltDebugStatusCodes'/>
- <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'/>
- <reference name='xsltDocDefaultLoader' href='html/libxslt-documents.html#xsltDocDefaultLoader'/>
- <reference name='xsltDocLoaderFunc' href='html/libxslt-documents.html#xsltDocLoaderFunc'/>
- <reference name='xsltDocument' href='html/libxslt-xsltInternals.html#xsltDocument'/>
- <reference name='xsltDocumentComp' href='html/libxslt-preproc.html#xsltDocumentComp'/>
- <reference name='xsltDocumentElem' href='html/libxslt-transform.html#xsltDocumentElem'/>
- <reference name='xsltDocumentFunction' href='html/libxslt-functions.html#xsltDocumentFunction'/>
- <reference name='xsltDocumentPtr' href='html/libxslt-xsltInternals.html#xsltDocumentPtr'/>
- <reference name='xsltDocumentSortFunction' href='html/libxslt-xsltutils.html#xsltDocumentSortFunction'/>
- <reference name='xsltDropCallCallback' href='html/libxslt-xsltutils.html#xsltDropCallCallback'/>
- <reference name='xsltEffectiveNs' href='html/libxslt-xsltInternals.html#xsltEffectiveNs'/>
- <reference name='xsltEffectiveNsPtr' href='html/libxslt-xsltInternals.html#xsltEffectiveNsPtr'/>
- <reference name='xsltElemPreComp' href='html/libxslt-xsltInternals.html#xsltElemPreComp'/>
- <reference name='xsltElemPreCompDeallocator' href='html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator'/>
- <reference name='xsltElemPreCompPtr' href='html/libxslt-xsltInternals.html#xsltElemPreCompPtr'/>
- <reference name='xsltElement' href='html/libxslt-transform.html#xsltElement'/>
- <reference name='xsltElementAvailableFunction' href='html/libxslt-functions.html#xsltElementAvailableFunction'/>
- <reference name='xsltEngineVersion' href='html/libxslt-xslt.html#xsltEngineVersion'/>
- <reference name='xsltErrorSeverityType' href='html/libxslt-xsltInternals.html#xsltErrorSeverityType'/>
- <reference name='xsltEvalAVT' href='html/libxslt-xsltInternals.html#xsltEvalAVT'/>
- <reference name='xsltEvalAttrValueTemplate' href='html/libxslt-templates.html#xsltEvalAttrValueTemplate'/>
- <reference name='xsltEvalGlobalVariables' href='html/libxslt-variables.html#xsltEvalGlobalVariables'/>
- <reference name='xsltEvalOneUserParam' href='html/libxslt-variables.html#xsltEvalOneUserParam'/>
- <reference name='xsltEvalStaticAttrValueTemplate' href='html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate'/>
- <reference name='xsltEvalTemplateString' href='html/libxslt-templates.html#xsltEvalTemplateString'/>
- <reference name='xsltEvalUserParams' href='html/libxslt-variables.html#xsltEvalUserParams'/>
- <reference name='xsltEvalXPathPredicate' href='html/libxslt-templates.html#xsltEvalXPathPredicate'/>
- <reference name='xsltEvalXPathString' href='html/libxslt-templates.html#xsltEvalXPathString'/>
- <reference name='xsltEvalXPathStringNs' href='html/libxslt-templates.html#xsltEvalXPathStringNs'/>
- <reference name='xsltExtElementLookup' href='html/libxslt-extensions.html#xsltExtElementLookup'/>
- <reference name='xsltExtInitFunction' href='html/libxslt-extensions.html#xsltExtInitFunction'/>
- <reference name='xsltExtMarker' href='html/libxslt-preproc.html#xsltExtMarker'/>
- <reference name='xsltExtModuleElementLookup' href='html/libxslt-extensions.html#xsltExtModuleElementLookup'/>
- <reference name='xsltExtModuleElementPreComputeLookup' href='html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup'/>
- <reference name='xsltExtModuleFunctionLookup' href='html/libxslt-extensions.html#xsltExtModuleFunctionLookup'/>
- <reference name='xsltExtModuleTopLevelLookup' href='html/libxslt-extensions.html#xsltExtModuleTopLevelLookup'/>
- <reference name='xsltExtShutdownFunction' href='html/libxslt-extensions.html#xsltExtShutdownFunction'/>
- <reference name='xsltExtensionInstructionResultFinalize' href='html/libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize'/>
- <reference name='xsltExtensionInstructionResultRegister' href='html/libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister'/>
- <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'/>
- <reference name='xsltFormatNumberInfo' href='html/libxslt-numbersInternals.html#xsltFormatNumberInfo'/>
- <reference name='xsltFormatNumberInfoPtr' href='html/libxslt-numbersInternals.html#xsltFormatNumberInfoPtr'/>
- <reference name='xsltFreeAVTList' href='html/libxslt-xsltInternals.html#xsltFreeAVTList'/>
- <reference name='xsltFreeAttributeSetsHashes' href='html/libxslt-attributes.html#xsltFreeAttributeSetsHashes'/>
- <reference name='xsltFreeCompMatchList' href='html/libxslt-pattern.html#xsltFreeCompMatchList'/>
- <reference name='xsltFreeCtxtExts' href='html/libxslt-extensions.html#xsltFreeCtxtExts'/>
- <reference name='xsltFreeDocumentKeys' href='html/libxslt-keys.html#xsltFreeDocumentKeys'/>
- <reference name='xsltFreeDocuments' href='html/libxslt-documents.html#xsltFreeDocuments'/>
- <reference name='xsltFreeExts' href='html/libxslt-extensions.html#xsltFreeExts'/>
- <reference name='xsltFreeGlobalVariables' href='html/libxslt-variables.html#xsltFreeGlobalVariables'/>
- <reference name='xsltFreeKeys' href='html/libxslt-keys.html#xsltFreeKeys'/>
- <reference name='xsltFreeLocale' href='html/libxslt-xsltlocale.html#xsltFreeLocale'/>
- <reference name='xsltFreeLocales' href='html/libxslt-xsltlocale.html#xsltFreeLocales'/>
- <reference name='xsltFreeNamespaceAliasHashes' href='html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes'/>
- <reference name='xsltFreeRVTs' href='html/libxslt-xsltInternals.html#xsltFreeRVTs'/>
- <reference name='xsltFreeSecurityPrefs' href='html/libxslt-security.html#xsltFreeSecurityPrefs'/>
- <reference name='xsltFreeStackElemList' href='html/libxslt-xsltInternals.html#xsltFreeStackElemList'/>
- <reference name='xsltFreeStyleDocuments' href='html/libxslt-documents.html#xsltFreeStyleDocuments'/>
- <reference name='xsltFreeStylePreComps' href='html/libxslt-preproc.html#xsltFreeStylePreComps'/>
- <reference name='xsltFreeStylesheet' href='html/libxslt-xsltInternals.html#xsltFreeStylesheet'/>
- <reference name='xsltFreeTemplateHashes' href='html/libxslt-pattern.html#xsltFreeTemplateHashes'/>
- <reference name='xsltFreeTransformContext' href='html/libxslt-transform.html#xsltFreeTransformContext'/>
- <reference name='xsltFunctionAvailableFunction' href='html/libxslt-functions.html#xsltFunctionAvailableFunction'/>
- <reference name='xsltFunctionNodeSet' href='html/libxslt-extra.html#xsltFunctionNodeSet'/>
- <reference name='xsltGenerateIdFunction' href='html/libxslt-functions.html#xsltGenerateIdFunction'/>
- <reference name='xsltGenericDebug' href='html/libxslt-xsltutils.html#xsltGenericDebug'/>
- <reference name='xsltGenericDebugContext' href='html/libxslt-xsltutils.html#xsltGenericDebugContext'/>
- <reference name='xsltGenericError' href='html/libxslt-xsltutils.html#xsltGenericError'/>
- <reference name='xsltGenericErrorContext' href='html/libxslt-xsltutils.html#xsltGenericErrorContext'/>
- <reference name='xsltGetCNsProp' href='html/libxslt-xsltutils.html#xsltGetCNsProp'/>
- <reference name='xsltGetDebuggerStatus' href='html/libxslt-xsltutils.html#xsltGetDebuggerStatus'/>
- <reference name='xsltGetDefaultSecurityPrefs' href='html/libxslt-security.html#xsltGetDefaultSecurityPrefs'/>
- <reference name='xsltGetExtData' href='html/libxslt-extensions.html#xsltGetExtData'/>
- <reference name='xsltGetExtInfo' href='html/libxslt-extensions.html#xsltGetExtInfo'/>
- <reference name='xsltGetKey' href='html/libxslt-keys.html#xsltGetKey'/>
- <reference name='xsltGetNamespace' href='html/libxslt-namespaces.html#xsltGetNamespace'/>
- <reference name='xsltGetNsProp' href='html/libxslt-xsltutils.html#xsltGetNsProp'/>
- <reference name='xsltGetPlainNamespace' href='html/libxslt-namespaces.html#xsltGetPlainNamespace'/>
- <reference name='xsltGetProfileInformation' href='html/libxslt-xsltutils.html#xsltGetProfileInformation'/>
- <reference name='xsltGetQNameURI' href='html/libxslt-xsltutils.html#xsltGetQNameURI'/>
- <reference name='xsltGetQNameURI2' href='html/libxslt-xsltutils.html#xsltGetQNameURI2'/>
- <reference name='xsltGetSecurityPrefs' href='html/libxslt-security.html#xsltGetSecurityPrefs'/>
- <reference name='xsltGetSpecialNamespace' href='html/libxslt-namespaces.html#xsltGetSpecialNamespace'/>
- <reference name='xsltGetTemplate' href='html/libxslt-pattern.html#xsltGetTemplate'/>
- <reference name='xsltGetUTF8Char' href='html/libxslt-xsltutils.html#xsltGetUTF8Char'/>
- <reference name='xsltGetXIncludeDefault' href='html/libxslt-transform.html#xsltGetXIncludeDefault'/>
- <reference name='xsltHandleDebuggerCallback' href='html/libxslt-xsltutils.html#xsltHandleDebuggerCallback'/>
- <reference name='xsltIf' href='html/libxslt-transform.html#xsltIf'/>
- <reference name='xsltInit' href='html/libxslt-xslt.html#xsltInit'/>
- <reference name='xsltInitAllDocKeys' href='html/libxslt-xsltInternals.html#xsltInitAllDocKeys'/>
- <reference name='xsltInitCtxtExts' href='html/libxslt-extensions.html#xsltInitCtxtExts'/>
- <reference name='xsltInitCtxtKey' href='html/libxslt-xsltInternals.html#xsltInitCtxtKey'/>
- <reference name='xsltInitCtxtKeys' href='html/libxslt-keys.html#xsltInitCtxtKeys'/>
- <reference name='xsltInitElemPreComp' href='html/libxslt-extensions.html#xsltInitElemPreComp'/>
- <reference name='xsltInitGlobals' href='html/libxslt-extensions.html#xsltInitGlobals'/>
- <reference name='xsltIsBlank' href='html/libxslt-xsltInternals.html#xsltIsBlank'/>
- <reference name='xsltKeyDef' href='html/libxslt-xsltInternals.html#xsltKeyDef'/>
- <reference name='xsltKeyDefPtr' href='html/libxslt-xsltInternals.html#xsltKeyDefPtr'/>
- <reference name='xsltKeyFunction' href='html/libxslt-functions.html#xsltKeyFunction'/>
- <reference name='xsltKeyTable' href='html/libxslt-xsltInternals.html#xsltKeyTable'/>
- <reference name='xsltKeyTablePtr' href='html/libxslt-xsltInternals.html#xsltKeyTablePtr'/>
- <reference name='xsltLibxmlVersion' href='html/libxslt-xslt.html#xsltLibxmlVersion'/>
- <reference name='xsltLibxsltVersion' href='html/libxslt-xslt.html#xsltLibxsltVersion'/>
- <reference name='xsltLoadDocument' href='html/libxslt-documents.html#xsltLoadDocument'/>
- <reference name='xsltLoadStyleDocument' href='html/libxslt-documents.html#xsltLoadStyleDocument'/>
- <reference name='xsltLoadStylesheetPI' href='html/libxslt-xsltInternals.html#xsltLoadStylesheetPI'/>
- <reference name='xsltLoadType' href='html/libxslt-documents.html#xsltLoadType'/>
- <reference name='xsltLocalVariablePop' href='html/libxslt-transform.html#xsltLocalVariablePop'/>
- <reference name='xsltLocalVariablePush' href='html/libxslt-transform.html#xsltLocalVariablePush'/>
- <reference name='xsltLocale' href='html/libxslt-xsltlocale.html#xsltLocale'/>
- <reference name='xsltLocaleChar' href='html/libxslt-xsltlocale.html#xsltLocaleChar'/>
- <reference name='xsltLocaleStrcmp' href='html/libxslt-xsltlocale.html#xsltLocaleStrcmp'/>
- <reference name='xsltMatchPattern' href='html/libxslt-pattern.html#xsltMatchPattern'/>
- <reference name='xsltMaxDepth' href='html/libxslt-xslt.html#xsltMaxDepth'/>
- <reference name='xsltMaxVars' href='html/libxslt-xslt.html#xsltMaxVars'/>
- <reference name='xsltMessage' href='html/libxslt-xsltutils.html#xsltMessage'/>
- <reference name='xsltNamespaceAlias' href='html/libxslt-namespaces.html#xsltNamespaceAlias'/>
- <reference name='xsltNeedElemSpaceHandling' href='html/libxslt-imports.html#xsltNeedElemSpaceHandling'/>
- <reference name='xsltNewDocument' href='html/libxslt-documents.html#xsltNewDocument'/>
- <reference name='xsltNewElemPreComp' href='html/libxslt-extensions.html#xsltNewElemPreComp'/>
- <reference name='xsltNewLocale' href='html/libxslt-xsltlocale.html#xsltNewLocale'/>
- <reference name='xsltNewSecurityPrefs' href='html/libxslt-security.html#xsltNewSecurityPrefs'/>
- <reference name='xsltNewStyleDocument' href='html/libxslt-documents.html#xsltNewStyleDocument'/>
- <reference name='xsltNewStylesheet' href='html/libxslt-xsltInternals.html#xsltNewStylesheet'/>
- <reference name='xsltNewTransformContext' href='html/libxslt-transform.html#xsltNewTransformContext'/>
- <reference name='xsltNextImport' href='html/libxslt-imports.html#xsltNextImport'/>
- <reference name='xsltNormalizeCompSteps' href='html/libxslt-pattern.html#xsltNormalizeCompSteps'/>
- <reference name='xsltNsAlias' href='html/libxslt-xsltInternals.html#xsltNsAlias'/>
- <reference name='xsltNsAliasPtr' href='html/libxslt-xsltInternals.html#xsltNsAliasPtr'/>
- <reference name='xsltNsList' href='html/libxslt-xsltInternals.html#xsltNsList'/>
- <reference name='xsltNsListContainer' href='html/libxslt-xsltInternals.html#xsltNsListContainer'/>
- <reference name='xsltNsListContainerPtr' href='html/libxslt-xsltInternals.html#xsltNsListContainerPtr'/>
- <reference name='xsltNsListPtr' href='html/libxslt-xsltInternals.html#xsltNsListPtr'/>
- <reference name='xsltNsMap' href='html/libxslt-xsltInternals.html#xsltNsMap'/>
- <reference name='xsltNsMapPtr' href='html/libxslt-xsltInternals.html#xsltNsMapPtr'/>
- <reference name='xsltNumber' href='html/libxslt-transform.html#xsltNumber'/>
- <reference name='xsltNumberData' href='html/libxslt-numbersInternals.html#xsltNumberData'/>
- <reference name='xsltNumberDataPtr' href='html/libxslt-numbersInternals.html#xsltNumberDataPtr'/>
- <reference name='xsltNumberFormat' href='html/libxslt-xsltInternals.html#xsltNumberFormat'/>
- <reference name='xsltOutputType' href='html/libxslt-xsltInternals.html#xsltOutputType'/>
- <reference name='xsltParseAnyXSLTElem' href='html/libxslt-xsltInternals.html#xsltParseAnyXSLTElem'/>
- <reference name='xsltParseGlobalParam' href='html/libxslt-variables.html#xsltParseGlobalParam'/>
- <reference name='xsltParseGlobalVariable' href='html/libxslt-variables.html#xsltParseGlobalVariable'/>
- <reference name='xsltParseSequenceConstructor' href='html/libxslt-xsltInternals.html#xsltParseSequenceConstructor'/>
- <reference name='xsltParseStylesheetAttributeSet' href='html/libxslt-attributes.html#xsltParseStylesheetAttributeSet'/>
- <reference name='xsltParseStylesheetCallerParam' href='html/libxslt-variables.html#xsltParseStylesheetCallerParam'/>
- <reference name='xsltParseStylesheetDoc' href='html/libxslt-xsltInternals.html#xsltParseStylesheetDoc'/>
- <reference name='xsltParseStylesheetFile' href='html/libxslt-xsltInternals.html#xsltParseStylesheetFile'/>
- <reference name='xsltParseStylesheetImport' href='html/libxslt-imports.html#xsltParseStylesheetImport'/>
- <reference name='xsltParseStylesheetImportedDoc' href='html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc'/>
- <reference name='xsltParseStylesheetInclude' href='html/libxslt-imports.html#xsltParseStylesheetInclude'/>
- <reference name='xsltParseStylesheetOutput' href='html/libxslt-xsltInternals.html#xsltParseStylesheetOutput'/>
- <reference name='xsltParseStylesheetParam' href='html/libxslt-variables.html#xsltParseStylesheetParam'/>
- <reference name='xsltParseStylesheetProcess' href='html/libxslt-xsltInternals.html#xsltParseStylesheetProcess'/>
- <reference name='xsltParseStylesheetUser' href='html/libxslt-xsltInternals.html#xsltParseStylesheetUser'/>
- <reference name='xsltParseStylesheetVariable' href='html/libxslt-variables.html#xsltParseStylesheetVariable'/>
- <reference name='xsltParseTemplateContent' href='html/libxslt-xsltInternals.html#xsltParseTemplateContent'/>
- <reference name='xsltPointerList' href='html/libxslt-xsltInternals.html#xsltPointerList'/>
- <reference name='xsltPointerListAddSize' href='html/libxslt-xsltInternals.html#xsltPointerListAddSize'/>
- <reference name='xsltPointerListClear' href='html/libxslt-xsltInternals.html#xsltPointerListClear'/>
- <reference name='xsltPointerListCreate' href='html/libxslt-xsltInternals.html#xsltPointerListCreate'/>
- <reference name='xsltPointerListFree' href='html/libxslt-xsltInternals.html#xsltPointerListFree'/>
- <reference name='xsltPointerListPtr' href='html/libxslt-xsltInternals.html#xsltPointerListPtr'/>
- <reference name='xsltPreComputeExtModuleElement' href='html/libxslt-extensions.html#xsltPreComputeExtModuleElement'/>
- <reference name='xsltPreComputeFunction' href='html/libxslt-extensions.html#xsltPreComputeFunction'/>
- <reference name='xsltPrincipalStylesheetData' href='html/libxslt-xsltInternals.html#xsltPrincipalStylesheetData'/>
- <reference name='xsltPrincipalStylesheetDataPtr' href='html/libxslt-xsltInternals.html#xsltPrincipalStylesheetDataPtr'/>
- <reference name='xsltPrintErrorContext' href='html/libxslt-xsltutils.html#xsltPrintErrorContext'/>
- <reference name='xsltProcessOneNode' href='html/libxslt-transform.html#xsltProcessOneNode'/>
- <reference name='xsltProcessingInstruction' href='html/libxslt-transform.html#xsltProcessingInstruction'/>
- <reference name='xsltProfileStylesheet' href='html/libxslt-transform.html#xsltProfileStylesheet'/>
- <reference name='xsltQuoteOneUserParam' href='html/libxslt-variables.html#xsltQuoteOneUserParam'/>
- <reference name='xsltQuoteUserParams' href='html/libxslt-variables.html#xsltQuoteUserParams'/>
- <reference name='xsltRegisterAllElement' href='html/libxslt-transform.html#xsltRegisterAllElement'/>
- <reference name='xsltRegisterAllExtras' href='html/libxslt-extra.html#xsltRegisterAllExtras'/>
- <reference name='xsltRegisterAllFunctions' href='html/libxslt-functions.html#xsltRegisterAllFunctions'/>
- <reference name='xsltRegisterExtElement' href='html/libxslt-extensions.html#xsltRegisterExtElement'/>
- <reference name='xsltRegisterExtFunction' href='html/libxslt-extensions.html#xsltRegisterExtFunction'/>
- <reference name='xsltRegisterExtModule' href='html/libxslt-extensions.html#xsltRegisterExtModule'/>
- <reference name='xsltRegisterExtModuleElement' href='html/libxslt-extensions.html#xsltRegisterExtModuleElement'/>
- <reference name='xsltRegisterExtModuleFull' href='html/libxslt-extensions.html#xsltRegisterExtModuleFull'/>
- <reference name='xsltRegisterExtModuleFunction' href='html/libxslt-extensions.html#xsltRegisterExtModuleFunction'/>
- <reference name='xsltRegisterExtModuleTopLevel' href='html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel'/>
- <reference name='xsltRegisterExtPrefix' href='html/libxslt-extensions.html#xsltRegisterExtPrefix'/>
- <reference name='xsltRegisterExtras' href='html/libxslt-extra.html#xsltRegisterExtras'/>
- <reference name='xsltRegisterLocalRVT' href='html/libxslt-xsltInternals.html#xsltRegisterLocalRVT'/>
- <reference name='xsltRegisterPersistRVT' href='html/libxslt-xsltInternals.html#xsltRegisterPersistRVT'/>
- <reference name='xsltRegisterTestModule' href='html/libxslt-extensions.html#xsltRegisterTestModule'/>
- <reference name='xsltRegisterTmpRVT' href='html/libxslt-xsltInternals.html#xsltRegisterTmpRVT'/>
- <reference name='xsltReleaseRVT' href='html/libxslt-xsltInternals.html#xsltReleaseRVT'/>
- <reference name='xsltResolveStylesheetAttributeSet' href='html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet'/>
- <reference name='xsltRestoreDocumentNamespaces' href='html/libxslt-xsltInternals.html#xsltRestoreDocumentNamespaces'/>
- <reference name='xsltRunStylesheet' href='html/libxslt-transform.html#xsltRunStylesheet'/>
- <reference name='xsltRunStylesheetUser' href='html/libxslt-transform.html#xsltRunStylesheetUser'/>
- <reference name='xsltRuntimeExtra' href='html/libxslt-xsltInternals.html#xsltRuntimeExtra'/>
- <reference name='xsltRuntimeExtraPtr' href='html/libxslt-xsltInternals.html#xsltRuntimeExtraPtr'/>
- <reference name='xsltSaveProfiling' href='html/libxslt-xsltutils.html#xsltSaveProfiling'/>
- <reference name='xsltSaveResultTo' href='html/libxslt-xsltutils.html#xsltSaveResultTo'/>
- <reference name='xsltSaveResultToFd' href='html/libxslt-xsltutils.html#xsltSaveResultToFd'/>
- <reference name='xsltSaveResultToFile' href='html/libxslt-xsltutils.html#xsltSaveResultToFile'/>
- <reference name='xsltSaveResultToFilename' href='html/libxslt-xsltutils.html#xsltSaveResultToFilename'/>
- <reference name='xsltSaveResultToString' href='html/libxslt-xsltutils.html#xsltSaveResultToString'/>
- <reference name='xsltSecurityAllow' href='html/libxslt-security.html#xsltSecurityAllow'/>
- <reference name='xsltSecurityCheck' href='html/libxslt-security.html#xsltSecurityCheck'/>
- <reference name='xsltSecurityForbid' href='html/libxslt-security.html#xsltSecurityForbid'/>
- <reference name='xsltSecurityOption' href='html/libxslt-security.html#xsltSecurityOption'/>
- <reference name='xsltSecurityPrefs' href='html/libxslt-security.html#xsltSecurityPrefs'/>
- <reference name='xsltSecurityPrefsPtr' href='html/libxslt-security.html#xsltSecurityPrefsPtr'/>
- <reference name='xsltSetCtxtParseOptions' href='html/libxslt-xsltutils.html#xsltSetCtxtParseOptions'/>
- <reference name='xsltSetCtxtSecurityPrefs' href='html/libxslt-security.html#xsltSetCtxtSecurityPrefs'/>
- <reference name='xsltSetCtxtSortFunc' href='html/libxslt-xsltutils.html#xsltSetCtxtSortFunc'/>
- <reference name='xsltSetDebuggerCallbacks' href='html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks'/>
- <reference name='xsltSetDebuggerStatus' href='html/libxslt-xsltutils.html#xsltSetDebuggerStatus'/>
- <reference name='xsltSetDefaultSecurityPrefs' href='html/libxslt-security.html#xsltSetDefaultSecurityPrefs'/>
- <reference name='xsltSetGenericDebugFunc' href='html/libxslt-xsltutils.html#xsltSetGenericDebugFunc'/>
- <reference name='xsltSetGenericErrorFunc' href='html/libxslt-xsltutils.html#xsltSetGenericErrorFunc'/>
- <reference name='xsltSetLoaderFunc' href='html/libxslt-documents.html#xsltSetLoaderFunc'/>
- <reference name='xsltSetSecurityPrefs' href='html/libxslt-security.html#xsltSetSecurityPrefs'/>
- <reference name='xsltSetSortFunc' href='html/libxslt-xsltutils.html#xsltSetSortFunc'/>
- <reference name='xsltSetTransformErrorFunc' href='html/libxslt-xsltutils.html#xsltSetTransformErrorFunc'/>
- <reference name='xsltSetXIncludeDefault' href='html/libxslt-transform.html#xsltSetXIncludeDefault'/>
- <reference name='xsltShutdownCtxtExts' href='html/libxslt-extensions.html#xsltShutdownCtxtExts'/>
- <reference name='xsltShutdownExts' href='html/libxslt-extensions.html#xsltShutdownExts'/>
- <reference name='xsltSort' href='html/libxslt-transform.html#xsltSort'/>
- <reference name='xsltSortFunc' href='html/libxslt-xsltInternals.html#xsltSortFunc'/>
- <reference name='xsltSplitQName' href='html/libxslt-xsltutils.html#xsltSplitQName'/>
- <reference name='xsltStackElem' href='html/libxslt-xsltInternals.html#xsltStackElem'/>
- <reference name='xsltStackElemPtr' href='html/libxslt-xsltInternals.html#xsltStackElemPtr'/>
- <reference name='xsltStrxfrm' href='html/libxslt-xsltlocale.html#xsltStrxfrm'/>
- <reference name='xsltStyleBasicEmptyItem' href='html/libxslt-xsltInternals.html#xsltStyleBasicEmptyItem'/>
- <reference name='xsltStyleBasicEmptyItemPtr' href='html/libxslt-xsltInternals.html#xsltStyleBasicEmptyItemPtr'/>
- <reference name='xsltStyleBasicExpressionItem' href='html/libxslt-xsltInternals.html#xsltStyleBasicExpressionItem'/>
- <reference name='xsltStyleBasicExpressionItemPtr' href='html/libxslt-xsltInternals.html#xsltStyleBasicExpressionItemPtr'/>
- <reference name='xsltStyleBasicItemVariable' href='html/libxslt-xsltInternals.html#xsltStyleBasicItemVariable'/>
- <reference name='xsltStyleBasicItemVariablePtr' href='html/libxslt-xsltInternals.html#xsltStyleBasicItemVariablePtr'/>
- <reference name='xsltStyleExtInitFunction' href='html/libxslt-extensions.html#xsltStyleExtInitFunction'/>
- <reference name='xsltStyleExtShutdownFunction' href='html/libxslt-extensions.html#xsltStyleExtShutdownFunction'/>
- <reference name='xsltStyleGetExtData' href='html/libxslt-extensions.html#xsltStyleGetExtData'/>
- <reference name='xsltStyleItemApplyImports' href='html/libxslt-xsltInternals.html#xsltStyleItemApplyImports'/>
- <reference name='xsltStyleItemApplyImportsPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemApplyImportsPtr'/>
- <reference name='xsltStyleItemApplyTemplates' href='html/libxslt-xsltInternals.html#xsltStyleItemApplyTemplates'/>
- <reference name='xsltStyleItemApplyTemplatesPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemApplyTemplatesPtr'/>
- <reference name='xsltStyleItemAttribute' href='html/libxslt-xsltInternals.html#xsltStyleItemAttribute'/>
- <reference name='xsltStyleItemAttributePtr' href='html/libxslt-xsltInternals.html#xsltStyleItemAttributePtr'/>
- <reference name='xsltStyleItemCallTemplate' href='html/libxslt-xsltInternals.html#xsltStyleItemCallTemplate'/>
- <reference name='xsltStyleItemCallTemplatePtr' href='html/libxslt-xsltInternals.html#xsltStyleItemCallTemplatePtr'/>
- <reference name='xsltStyleItemChoose' href='html/libxslt-xsltInternals.html#xsltStyleItemChoose'/>
- <reference name='xsltStyleItemChoosePtr' href='html/libxslt-xsltInternals.html#xsltStyleItemChoosePtr'/>
- <reference name='xsltStyleItemComment' href='html/libxslt-xsltInternals.html#xsltStyleItemComment'/>
- <reference name='xsltStyleItemCommentPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemCommentPtr'/>
- <reference name='xsltStyleItemCopy' href='html/libxslt-xsltInternals.html#xsltStyleItemCopy'/>
- <reference name='xsltStyleItemCopyOf' href='html/libxslt-xsltInternals.html#xsltStyleItemCopyOf'/>
- <reference name='xsltStyleItemCopyOfPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemCopyOfPtr'/>
- <reference name='xsltStyleItemCopyPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemCopyPtr'/>
- <reference name='xsltStyleItemDocument' href='html/libxslt-xsltInternals.html#xsltStyleItemDocument'/>
- <reference name='xsltStyleItemDocumentPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemDocumentPtr'/>
- <reference name='xsltStyleItemElement' href='html/libxslt-xsltInternals.html#xsltStyleItemElement'/>
- <reference name='xsltStyleItemElementPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemElementPtr'/>
- <reference name='xsltStyleItemExtElement' href='html/libxslt-xsltInternals.html#xsltStyleItemExtElement'/>
- <reference name='xsltStyleItemExtElementPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemExtElementPtr'/>
- <reference name='xsltStyleItemFallback' href='html/libxslt-xsltInternals.html#xsltStyleItemFallback'/>
- <reference name='xsltStyleItemFallbackPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemFallbackPtr'/>
- <reference name='xsltStyleItemForEach' href='html/libxslt-xsltInternals.html#xsltStyleItemForEach'/>
- <reference name='xsltStyleItemForEachPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemForEachPtr'/>
- <reference name='xsltStyleItemIf' href='html/libxslt-xsltInternals.html#xsltStyleItemIf'/>
- <reference name='xsltStyleItemIfPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemIfPtr'/>
- <reference name='xsltStyleItemInclude' href='html/libxslt-xsltInternals.html#xsltStyleItemInclude'/>
- <reference name='xsltStyleItemIncludePtr' href='html/libxslt-xsltInternals.html#xsltStyleItemIncludePtr'/>
- <reference name='xsltStyleItemLRElementInfo' href='html/libxslt-xsltInternals.html#xsltStyleItemLRElementInfo'/>
- <reference name='xsltStyleItemLRElementInfoPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemLRElementInfoPtr'/>
- <reference name='xsltStyleItemMessage' href='html/libxslt-xsltInternals.html#xsltStyleItemMessage'/>
- <reference name='xsltStyleItemMessagePtr' href='html/libxslt-xsltInternals.html#xsltStyleItemMessagePtr'/>
- <reference name='xsltStyleItemNumber' href='html/libxslt-xsltInternals.html#xsltStyleItemNumber'/>
- <reference name='xsltStyleItemNumberPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemNumberPtr'/>
- <reference name='xsltStyleItemOtherwise' href='html/libxslt-xsltInternals.html#xsltStyleItemOtherwise'/>
- <reference name='xsltStyleItemOtherwisePtr' href='html/libxslt-xsltInternals.html#xsltStyleItemOtherwisePtr'/>
- <reference name='xsltStyleItemPI' href='html/libxslt-xsltInternals.html#xsltStyleItemPI'/>
- <reference name='xsltStyleItemPIPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemPIPtr'/>
- <reference name='xsltStyleItemParam' href='html/libxslt-xsltInternals.html#xsltStyleItemParam'/>
- <reference name='xsltStyleItemParamPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemParamPtr'/>
- <reference name='xsltStyleItemSort' href='html/libxslt-xsltInternals.html#xsltStyleItemSort'/>
- <reference name='xsltStyleItemSortPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemSortPtr'/>
- <reference name='xsltStyleItemText' href='html/libxslt-xsltInternals.html#xsltStyleItemText'/>
- <reference name='xsltStyleItemTextPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemTextPtr'/>
- <reference name='xsltStyleItemUknown' href='html/libxslt-xsltInternals.html#xsltStyleItemUknown'/>
- <reference name='xsltStyleItemUknownPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemUknownPtr'/>
- <reference name='xsltStyleItemValueOf' href='html/libxslt-xsltInternals.html#xsltStyleItemValueOf'/>
- <reference name='xsltStyleItemValueOfPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemValueOfPtr'/>
- <reference name='xsltStyleItemVariable' href='html/libxslt-xsltInternals.html#xsltStyleItemVariable'/>
- <reference name='xsltStyleItemVariablePtr' href='html/libxslt-xsltInternals.html#xsltStyleItemVariablePtr'/>
- <reference name='xsltStyleItemWhen' href='html/libxslt-xsltInternals.html#xsltStyleItemWhen'/>
- <reference name='xsltStyleItemWhenPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemWhenPtr'/>
- <reference name='xsltStyleItemWithParam' href='html/libxslt-xsltInternals.html#xsltStyleItemWithParam'/>
- <reference name='xsltStyleItemWithParamPtr' href='html/libxslt-xsltInternals.html#xsltStyleItemWithParamPtr'/>
- <reference name='xsltStylePreComp' href='html/libxslt-xsltInternals.html#xsltStylePreComp'/>
- <reference name='xsltStylePreCompPtr' href='html/libxslt-xsltInternals.html#xsltStylePreCompPtr'/>
- <reference name='xsltStylePreCompute' href='html/libxslt-preproc.html#xsltStylePreCompute'/>
- <reference name='xsltStyleStylesheetLevelGetExtData' href='html/libxslt-extensions.html#xsltStyleStylesheetLevelGetExtData'/>
- <reference name='xsltStyleType' href='html/libxslt-xsltInternals.html#xsltStyleType'/>
- <reference name='xsltStylesheet' href='html/libxslt-xsltInternals.html#xsltStylesheet'/>
- <reference name='xsltStylesheetPtr' href='html/libxslt-xsltInternals.html#xsltStylesheetPtr'/>
- <reference name='xsltSystemPropertyFunction' href='html/libxslt-functions.html#xsltSystemPropertyFunction'/>
- <reference name='xsltTemplate' href='html/libxslt-xsltInternals.html#xsltTemplate'/>
- <reference name='xsltTemplateProcess' href='html/libxslt-templates.html#xsltTemplateProcess'/>
- <reference name='xsltTemplatePtr' href='html/libxslt-xsltInternals.html#xsltTemplatePtr'/>
- <reference name='xsltTestCompMatchList' href='html/libxslt-pattern.html#xsltTestCompMatchList'/>
- <reference name='xsltText' href='html/libxslt-transform.html#xsltText'/>
- <reference name='xsltTimestamp' href='html/libxslt-xsltutils.html#xsltTimestamp'/>
- <reference name='xsltTopLevelFunction' href='html/libxslt-extensions.html#xsltTopLevelFunction'/>
- <reference name='xsltTransformCache' href='html/libxslt-xsltInternals.html#xsltTransformCache'/>
- <reference name='xsltTransformCachePtr' href='html/libxslt-xsltInternals.html#xsltTransformCachePtr'/>
- <reference name='xsltTransformContext' href='html/libxslt-xsltInternals.html#xsltTransformContext'/>
- <reference name='xsltTransformContextPtr' href='html/libxslt-xsltInternals.html#xsltTransformContextPtr'/>
- <reference name='xsltTransformError' href='html/libxslt-xsltutils.html#xsltTransformError'/>
- <reference name='xsltTransformFunction' href='html/libxslt-xsltInternals.html#xsltTransformFunction'/>
- <reference name='xsltTransformState' href='html/libxslt-xsltInternals.html#xsltTransformState'/>
- <reference name='xsltUninit' href='html/libxslt-xsltInternals.html#xsltUninit'/>
- <reference name='xsltUnparsedEntityURIFunction' href='html/libxslt-functions.html#xsltUnparsedEntityURIFunction'/>
- <reference name='xsltUnregisterExtModule' href='html/libxslt-extensions.html#xsltUnregisterExtModule'/>
- <reference name='xsltUnregisterExtModuleElement' href='html/libxslt-extensions.html#xsltUnregisterExtModuleElement'/>
- <reference name='xsltUnregisterExtModuleFunction' href='html/libxslt-extensions.html#xsltUnregisterExtModuleFunction'/>
- <reference name='xsltUnregisterExtModuleTopLevel' href='html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel'/>
- <reference name='xsltValueOf' href='html/libxslt-transform.html#xsltValueOf'/>
- <reference name='xsltVarInfo' href='html/libxslt-xsltInternals.html#xsltVarInfo'/>
- <reference name='xsltVarInfoPtr' href='html/libxslt-xsltInternals.html#xsltVarInfoPtr'/>
- <reference name='xsltVariableLookup' href='html/libxslt-variables.html#xsltVariableLookup'/>
- <reference name='xsltXPathCompile' href='html/libxslt-xsltutils.html#xsltXPathCompile'/>
- <reference name='xsltXPathCompileFlags' href='html/libxslt-xsltutils.html#xsltXPathCompileFlags'/>
- <reference name='xsltXPathFunctionLookup' href='html/libxslt-functions.html#xsltXPathFunctionLookup'/>
- <reference name='xsltXPathGetTransformContext' href='html/libxslt-extensions.html#xsltXPathGetTransformContext'/>
- <reference name='xsltXPathVariableLookup' href='html/libxslt-variables.html#xsltXPathVariableLookup'/>
- <reference name='xsltXSLTAttrMarker' href='html/libxslt-xsltInternals.html#xsltXSLTAttrMarker'/>
- </references>
- <alpha>
- <letter name='C'>
- <ref name='CHECK_STOPPED'/>
- <ref name='CHECK_STOPPED0'/>
- <ref name='CHECK_STOPPEDE'/>
- </letter>
- <letter name='I'>
- <ref name='IS_XSLT_ATTR_FAST'/>
- <ref name='IS_XSLT_ELEM'/>
- <ref name='IS_XSLT_ELEM_FAST'/>
- <ref name='IS_XSLT_NAME'/>
- <ref name='IS_XSLT_REAL_NODE'/>
- </letter>
- <letter name='L'>
- <ref name='LIBXSLT_PUBLIC'/>
- </letter>
- <letter name='N'>
- <ref name='NODE_IS_KEYED'/>
- </letter>
- <letter name='U'>
- <ref name='UNDEFINED_DEFAULT_NS'/>
- </letter>
- <letter name='X'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='XSLTCALL'/>
- <ref name='XSLTPUBFUN'/>
- <ref name='XSLTPUBLIC'/>
- <ref name='XSLTPUBVAR'/>
- <ref name='XSLT_CCTXT'/>
- <ref name='XSLT_DEBUG_CONT'/>
- <ref name='XSLT_DEBUG_INIT'/>
- <ref name='XSLT_DEBUG_NEXT'/>
- <ref name='XSLT_DEBUG_NONE'/>
- <ref name='XSLT_DEBUG_QUIT'/>
- <ref name='XSLT_DEBUG_RUN'/>
- <ref name='XSLT_DEBUG_RUN_RESTART'/>
- <ref name='XSLT_DEBUG_STEP'/>
- <ref name='XSLT_DEBUG_STEPOUT'/>
- <ref name='XSLT_DEBUG_STOP'/>
- <ref name='XSLT_DEFAULT_URL'/>
- <ref name='XSLT_DEFAULT_VENDOR'/>
- <ref name='XSLT_DEFAULT_VERSION'/>
- <ref name='XSLT_ERROR_SEVERITY_ERROR'/>
- <ref name='XSLT_ERROR_SEVERITY_WARNING'/>
- <ref name='XSLT_FAST_IF'/>
- <ref name='XSLT_FUNC_APPLYIMPORTS'/>
- <ref name='XSLT_FUNC_APPLYTEMPLATES'/>
- <ref name='XSLT_FUNC_ATTRIBUTE'/>
- <ref name='XSLT_FUNC_ATTRSET'/>
- <ref name='XSLT_FUNC_CALLTEMPLATE'/>
- <ref name='XSLT_FUNC_CHOOSE'/>
- <ref name='XSLT_FUNC_COMMENT'/>
- <ref name='XSLT_FUNC_COPY'/>
- <ref name='XSLT_FUNC_COPYOF'/>
- <ref name='XSLT_FUNC_DOCUMENT'/>
- <ref name='XSLT_FUNC_ELEMENT'/>
- <ref name='XSLT_FUNC_EXTENSION'/>
- <ref name='XSLT_FUNC_FALLBACK'/>
- <ref name='XSLT_FUNC_FOREACH'/>
- <ref name='XSLT_FUNC_IF'/>
- <ref name='XSLT_FUNC_INCLUDE'/>
- <ref name='XSLT_FUNC_LITERAL_RESULT_ELEMENT'/>
- <ref name='XSLT_FUNC_MESSAGE'/>
- <ref name='XSLT_FUNC_NUMBER'/>
- <ref name='XSLT_FUNC_OTHERWISE'/>
- <ref name='XSLT_FUNC_PARAM'/>
- <ref name='XSLT_FUNC_PI'/>
- <ref name='XSLT_FUNC_SORT'/>
- <ref name='XSLT_FUNC_TEXT'/>
- <ref name='XSLT_FUNC_UNKOWN_FORWARDS_COMPAT'/>
- <ref name='XSLT_FUNC_VALUEOF'/>
- <ref name='XSLT_FUNC_VARIABLE'/>
- <ref name='XSLT_FUNC_WHEN'/>
- <ref name='XSLT_FUNC_WITHPARAM'/>
- <ref name='XSLT_GET_IMPORT_INT'/>
- <ref name='XSLT_GET_IMPORT_PTR'/>
- <ref name='XSLT_GET_INTERNAL_NSMAP'/>
- <ref name='XSLT_HAS_INTERNAL_NSMAP'/>
- <ref name='XSLT_IS_RES_TREE_FRAG'/>
- <ref name='XSLT_IS_TEXT_NODE'/>
- <ref name='XSLT_ITEM_COMMON_FIELDS'/>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- <ref name='XSLT_ITEM_NSINSCOPE_FIELDS'/>
- <ref name='XSLT_LIBXSLT_NAMESPACE'/>
- <ref name='XSLT_LOAD_DOCUMENT'/>
- <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_OUTPUT_HTML'/>
- <ref name='XSLT_OUTPUT_TEXT'/>
- <ref name='XSLT_OUTPUT_XML'/>
- <ref name='XSLT_PARSE_OPTIONS'/>
- <ref name='XSLT_PAT_NO_PRIORITY'/>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='XSLT_REFACTORED_VARS'/>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- <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_SAXON_NAMESPACE'/>
- <ref name='XSLT_SECPREF_CREATE_DIRECTORY'/>
- <ref name='XSLT_SECPREF_READ_FILE'/>
- <ref name='XSLT_SECPREF_READ_NETWORK'/>
- <ref name='XSLT_SECPREF_WRITE_FILE'/>
- <ref name='XSLT_SECPREF_WRITE_NETWORK'/>
- <ref name='XSLT_STATE_ERROR'/>
- <ref name='XSLT_STATE_OK'/>
- <ref name='XSLT_STATE_STOPPED'/>
- <ref name='XSLT_STRANGE'/>
- <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
- <ref name='XSLT_TODO'/>
- <ref name='XSLT_TRACE'/>
- <ref name='XSLT_TRACE_ALL'/>
- <ref name='XSLT_TRACE_APPLY_TEMPLATE'/>
- <ref name='XSLT_TRACE_APPLY_TEMPLATES'/>
- <ref name='XSLT_TRACE_CALL_TEMPLATE'/>
- <ref name='XSLT_TRACE_CHOOSE'/>
- <ref name='XSLT_TRACE_COMMENT'/>
- <ref name='XSLT_TRACE_COPY'/>
- <ref name='XSLT_TRACE_COPY_OF'/>
- <ref name='XSLT_TRACE_COPY_TEXT'/>
- <ref name='XSLT_TRACE_FOR_EACH'/>
- <ref name='XSLT_TRACE_IF'/>
- <ref name='XSLT_TRACE_KEYS'/>
- <ref name='XSLT_TRACE_NONE'/>
- <ref name='XSLT_TRACE_PI'/>
- <ref name='XSLT_TRACE_PROCESS_NODE'/>
- <ref name='XSLT_TRACE_STRIP_SPACES'/>
- <ref name='XSLT_TRACE_TEMPLATES'/>
- <ref name='XSLT_TRACE_VALUE_OF'/>
- <ref name='XSLT_TRACE_VARIABLES'/>
- <ref name='XSLT_XALAN_NAMESPACE'/>
- <ref name='XSLT_XT_NAMESPACE'/>
- </letter>
- <letter name='_'>
- <ref name='_xsltCompMatch'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltDecimalFormat'/>
- <ref name='_xsltDocument'/>
- <ref name='_xsltEffectiveNs'/>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='_xsltKeyDef'/>
- <ref name='_xsltKeyTable'/>
- <ref name='_xsltNsAlias'/>
- <ref name='_xsltNsList'/>
- <ref name='_xsltNsListContainer'/>
- <ref name='_xsltNsMap'/>
- <ref name='_xsltNumberData'/>
- <ref name='_xsltPointerList'/>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='_xsltRuntimeExtra'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltStyleBasicEmptyItem'/>
- <ref name='_xsltStyleBasicExpressionItem'/>
- <ref name='_xsltStyleBasicItemVariable'/>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemAttribute'/>
- <ref name='_xsltStyleItemCallTemplate'/>
- <ref name='_xsltStyleItemCopy'/>
- <ref name='_xsltStyleItemDocument'/>
- <ref name='_xsltStyleItemElement'/>
- <ref name='_xsltStyleItemExtElement'/>
- <ref name='_xsltStyleItemIf'/>
- <ref name='_xsltStyleItemInclude'/>
- <ref name='_xsltStyleItemLRElementInfo'/>
- <ref name='_xsltStyleItemMessage'/>
- <ref name='_xsltStyleItemNumber'/>
- <ref name='_xsltStyleItemOtherwise'/>
- <ref name='_xsltStyleItemPI'/>
- <ref name='_xsltStyleItemParam'/>
- <ref name='_xsltStyleItemSort'/>
- <ref name='_xsltStyleItemText'/>
- <ref name='_xsltStyleItemUknown'/>
- <ref name='_xsltStyleItemValueOf'/>
- <ref name='_xsltStyleItemWhen'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformCache'/>
- <ref name='_xsltTransformContext'/>
- <ref name='_xsltVarInfo'/>
- </letter>
- <letter name='x'>
- <ref name='xslAddCall'/>
- <ref name='xslDebugStatus'/>
- <ref name='xslDropCall'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltAddCallCallback'/>
- <ref name='xsltAddKey'/>
- <ref name='xsltAddStackElemList'/>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltApplyImports'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltApplyTemplates'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltCalibrateAdjust'/>
- <ref name='xsltCallTemplate'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltChoose'/>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltCleanupTemplates'/>
- <ref name='xsltComment'/>
- <ref name='xsltCompMatch'/>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltCompMatchPtr'/>
- <ref name='xsltCompileAttr'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltCompilerCtxt'/>
- <ref name='xsltCompilerCtxtPtr'/>
- <ref name='xsltCompilerNodeInfo'/>
- <ref name='xsltCompilerNodeInfoPtr'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltConstNamespaceNameXSLT'/>
- <ref name='xsltCopy'/>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltCopyOf'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- <ref name='xsltDebugStatusCodes'/>
- <ref name='xsltDebugTraceCodes'/>
- <ref name='xsltDecimalFormat'/>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- <ref name='xsltDecimalFormatPtr'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltDocDefaultLoader'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltDocument'/>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltDocumentPtr'/>
- <ref name='xsltDocumentSortFunction'/>
- <ref name='xsltDropCallCallback'/>
- <ref name='xsltEffectiveNs'/>
- <ref name='xsltEffectiveNsPtr'/>
- <ref name='xsltElemPreComp'/>
- <ref name='xsltElemPreCompDeallocator'/>
- <ref name='xsltElemPreCompPtr'/>
- <ref name='xsltElement'/>
- <ref name='xsltElementAvailableFunction'/>
- <ref name='xsltEngineVersion'/>
- <ref name='xsltErrorSeverityType'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltExtMarker'/>
- <ref name='xsltExtModuleElementLookup'/>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltExtModuleFunctionLookup'/>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltForEach'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltFormatNumberFunction'/>
- <ref name='xsltFormatNumberInfo'/>
- <ref name='xsltFormatNumberInfoPtr'/>
- <ref name='xsltFreeAVTList'/>
- <ref name='xsltFreeAttributeSetsHashes'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltFreeCtxtExts'/>
- <ref name='xsltFreeDocumentKeys'/>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltFreeExts'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltFreeKeys'/>
- <ref name='xsltFreeLocale'/>
- <ref name='xsltFreeLocales'/>
- <ref name='xsltFreeNamespaceAliasHashes'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltFreeStackElemList'/>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltFreeStylesheet'/>
- <ref name='xsltFreeTemplateHashes'/>
- <ref name='xsltFreeTransformContext'/>
- <ref name='xsltFunctionAvailableFunction'/>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltGenerateIdFunction'/>
- <ref name='xsltGenericDebug'/>
- <ref name='xsltGenericDebugContext'/>
- <ref name='xsltGenericError'/>
- <ref name='xsltGenericErrorContext'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetDebuggerStatus'/>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltGetXIncludeDefault'/>
- <ref name='xsltHandleDebuggerCallback'/>
- <ref name='xsltIf'/>
- <ref name='xsltInit'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltInitGlobals'/>
- <ref name='xsltIsBlank'/>
- <ref name='xsltKeyDef'/>
- <ref name='xsltKeyDefPtr'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltKeyTable'/>
- <ref name='xsltKeyTablePtr'/>
- <ref name='xsltLibxmlVersion'/>
- <ref name='xsltLibxsltVersion'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltLoadType'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltLocale'/>
- <ref name='xsltLocaleChar'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltMatchPattern'/>
- <ref name='xsltMaxDepth'/>
- <ref name='xsltMaxVars'/>
- <ref name='xsltMessage'/>
- <ref name='xsltNamespaceAlias'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltNewLocale'/>
- <ref name='xsltNewSecurityPrefs'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltNewStylesheet'/>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltNextImport'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltNsAlias'/>
- <ref name='xsltNsAliasPtr'/>
- <ref name='xsltNsList'/>
- <ref name='xsltNsListContainer'/>
- <ref name='xsltNsListContainerPtr'/>
- <ref name='xsltNsListPtr'/>
- <ref name='xsltNsMap'/>
- <ref name='xsltNsMapPtr'/>
- <ref name='xsltNumber'/>
- <ref name='xsltNumberData'/>
- <ref name='xsltNumberDataPtr'/>
- <ref name='xsltNumberFormat'/>
- <ref name='xsltOutputType'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltParseStylesheetAttributeSet'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltParseStylesheetImport'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetInclude'/>
- <ref name='xsltParseStylesheetOutput'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltParseStylesheetVariable'/>
- <ref name='xsltParseTemplateContent'/>
- <ref name='xsltPointerList'/>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltPointerListCreate'/>
- <ref name='xsltPointerListFree'/>
- <ref name='xsltPointerListPtr'/>
- <ref name='xsltPreComputeExtModuleElement'/>
- <ref name='xsltPreComputeFunction'/>
- <ref name='xsltPrincipalStylesheetData'/>
- <ref name='xsltPrincipalStylesheetDataPtr'/>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRegisterAllElement'/>
- <ref name='xsltRegisterAllExtras'/>
- <ref name='xsltRegisterAllFunctions'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleElement'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltRegisterExtModuleFunction'/>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltRegisterExtras'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTestModule'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltReleaseRVT'/>
- <ref name='xsltResolveStylesheetAttributeSet'/>
- <ref name='xsltRestoreDocumentNamespaces'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltRuntimeExtra'/>
- <ref name='xsltRuntimeExtraPtr'/>
- <ref name='xsltSaveProfiling'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityCheck'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSecurityOption'/>
- <ref name='xsltSecurityPrefs'/>
- <ref name='xsltSecurityPrefsPtr'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- <ref name='xsltSetDebuggerStatus'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetLoaderFunc'/>
- <ref name='xsltSetSecurityPrefs'/>
- <ref name='xsltSetSortFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltSetXIncludeDefault'/>
- <ref name='xsltShutdownCtxtExts'/>
- <ref name='xsltShutdownExts'/>
- <ref name='xsltSort'/>
- <ref name='xsltSortFunc'/>
- <ref name='xsltSplitQName'/>
- <ref name='xsltStackElem'/>
- <ref name='xsltStackElemPtr'/>
- <ref name='xsltStrxfrm'/>
- <ref name='xsltStyleBasicEmptyItem'/>
- <ref name='xsltStyleBasicEmptyItemPtr'/>
- <ref name='xsltStyleBasicExpressionItem'/>
- <ref name='xsltStyleBasicExpressionItemPtr'/>
- <ref name='xsltStyleBasicItemVariable'/>
- <ref name='xsltStyleBasicItemVariablePtr'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleItemApplyImports'/>
- <ref name='xsltStyleItemApplyImportsPtr'/>
- <ref name='xsltStyleItemApplyTemplates'/>
- <ref name='xsltStyleItemApplyTemplatesPtr'/>
- <ref name='xsltStyleItemAttribute'/>
- <ref name='xsltStyleItemAttributePtr'/>
- <ref name='xsltStyleItemCallTemplate'/>
- <ref name='xsltStyleItemCallTemplatePtr'/>
- <ref name='xsltStyleItemChoose'/>
- <ref name='xsltStyleItemChoosePtr'/>
- <ref name='xsltStyleItemComment'/>
- <ref name='xsltStyleItemCommentPtr'/>
- <ref name='xsltStyleItemCopy'/>
- <ref name='xsltStyleItemCopyOf'/>
- <ref name='xsltStyleItemCopyOfPtr'/>
- <ref name='xsltStyleItemCopyPtr'/>
- <ref name='xsltStyleItemDocument'/>
- <ref name='xsltStyleItemDocumentPtr'/>
- <ref name='xsltStyleItemElement'/>
- <ref name='xsltStyleItemElementPtr'/>
- <ref name='xsltStyleItemExtElement'/>
- <ref name='xsltStyleItemExtElementPtr'/>
- <ref name='xsltStyleItemFallback'/>
- <ref name='xsltStyleItemFallbackPtr'/>
- <ref name='xsltStyleItemForEach'/>
- <ref name='xsltStyleItemForEachPtr'/>
- <ref name='xsltStyleItemIf'/>
- <ref name='xsltStyleItemIfPtr'/>
- <ref name='xsltStyleItemInclude'/>
- <ref name='xsltStyleItemIncludePtr'/>
- <ref name='xsltStyleItemLRElementInfo'/>
- <ref name='xsltStyleItemLRElementInfoPtr'/>
- <ref name='xsltStyleItemMessage'/>
- <ref name='xsltStyleItemMessagePtr'/>
- <ref name='xsltStyleItemNumber'/>
- <ref name='xsltStyleItemNumberPtr'/>
- <ref name='xsltStyleItemOtherwise'/>
- <ref name='xsltStyleItemOtherwisePtr'/>
- <ref name='xsltStyleItemPI'/>
- <ref name='xsltStyleItemPIPtr'/>
- <ref name='xsltStyleItemParam'/>
- <ref name='xsltStyleItemParamPtr'/>
- <ref name='xsltStyleItemSort'/>
- <ref name='xsltStyleItemSortPtr'/>
- <ref name='xsltStyleItemText'/>
- <ref name='xsltStyleItemTextPtr'/>
- <ref name='xsltStyleItemUknown'/>
- <ref name='xsltStyleItemUknownPtr'/>
- <ref name='xsltStyleItemValueOf'/>
- <ref name='xsltStyleItemValueOfPtr'/>
- <ref name='xsltStyleItemVariable'/>
- <ref name='xsltStyleItemVariablePtr'/>
- <ref name='xsltStyleItemWhen'/>
- <ref name='xsltStyleItemWhenPtr'/>
- <ref name='xsltStyleItemWithParam'/>
- <ref name='xsltStyleItemWithParamPtr'/>
- <ref name='xsltStylePreComp'/>
- <ref name='xsltStylePreCompPtr'/>
- <ref name='xsltStylePreCompute'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- <ref name='xsltStyleType'/>
- <ref name='xsltStylesheet'/>
- <ref name='xsltStylesheetPtr'/>
- <ref name='xsltSystemPropertyFunction'/>
- <ref name='xsltTemplate'/>
- <ref name='xsltTemplateProcess'/>
- <ref name='xsltTemplatePtr'/>
- <ref name='xsltTestCompMatchList'/>
- <ref name='xsltText'/>
- <ref name='xsltTimestamp'/>
- <ref name='xsltTopLevelFunction'/>
- <ref name='xsltTransformCache'/>
- <ref name='xsltTransformCachePtr'/>
- <ref name='xsltTransformContext'/>
- <ref name='xsltTransformContextPtr'/>
- <ref name='xsltTransformError'/>
- <ref name='xsltTransformFunction'/>
- <ref name='xsltTransformState'/>
- <ref name='xsltUninit'/>
- <ref name='xsltUnparsedEntityURIFunction'/>
- <ref name='xsltUnregisterExtModule'/>
- <ref name='xsltUnregisterExtModuleElement'/>
- <ref name='xsltUnregisterExtModuleFunction'/>
- <ref name='xsltUnregisterExtModuleTopLevel'/>
- <ref name='xsltValueOf'/>
- <ref name='xsltVarInfo'/>
- <ref name='xsltVarInfoPtr'/>
- <ref name='xsltVariableLookup'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathGetTransformContext'/>
- <ref name='xsltXPathVariableLookup'/>
- <ref name='xsltXSLTAttrMarker'/>
- </letter>
- </alpha>
- <constructors>
- <type name='const xmlChar *'>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltSplitQName'/>
- </type>
- <type name='long'>
- <ref name='xsltTimestamp'/>
- </type>
- <type name='void *'>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- </type>
- <type name='xmlAttrPtr'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- </type>
- <type name='xmlChar *'>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltGetNsProp'/>
- </type>
- <type name='xmlDocPtr'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltProfileStylesheet'/>
- </type>
- <type name='xmlHashTablePtr'>
- <ref name='xsltGetExtInfo'/>
- </type>
- <type name='xmlNodePtr'>
- <ref name='xsltCopyTextString'/>
- </type>
- <type name='xmlNodePtr *'>
- <ref name='xsltTemplateProcess'/>
- </type>
- <type name='xmlNodeSetPtr'>
- <ref name='xsltGetKey'/>
- </type>
- <type name='xmlNsPtr'>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- </type>
- <type name='xmlXPathCompExprPtr'>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </type>
- <type name='xmlXPathError'>
- <ref name='xsltFormatNumberConversion'/>
- </type>
- <type name='xmlXPathFunction'>
- <ref name='xsltExtModuleFunctionLookup'/>
- <ref name='xsltXPathFunctionLookup'/>
- </type>
- <type name='xmlXPathObjectPtr'>
- <ref name='xsltVariableLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </type>
- <type name='xmlXPathObjectPtr *'>
- <ref name='xsltComputeSortResult'/>
- </type>
- <type name='xsltCompMatchPtr'>
- <ref name='xsltCompilePattern'/>
- </type>
- <type name='xsltDebugTraceCodes'>
- <ref name='xsltDebugGetDefaultTrace'/>
- </type>
- <type name='xsltDecimalFormatPtr'>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- </type>
- <type name='xsltDocumentPtr'>
- <ref name='xsltFindDocument'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- </type>
- <type name='xsltElemPreCompPtr'>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltPreComputeExtModuleElement'/>
- <ref name='xsltPreComputeFunction'/>
- </type>
- <type name='xsltLocale'>
- <ref name='xsltNewLocale'/>
- </type>
- <type name='xsltLocaleChar *'>
- <ref name='xsltStrxfrm'/>
- </type>
- <type name='xsltPointerListPtr'>
- <ref name='xsltPointerListCreate'/>
- </type>
- <type name='xsltPreComputeFunction'>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- </type>
- <type name='xsltSecurityCheck'>
- <ref name='xsltGetSecurityPrefs'/>
- </type>
- <type name='xsltSecurityPrefsPtr'>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltNewSecurityPrefs'/>
- </type>
- <type name='xsltStackElemPtr'>
- <ref name='xsltParseStylesheetCallerParam'/>
- </type>
- <type name='xsltStylesheetPtr'>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltNewStylesheet'/>
- <ref name='xsltNextImport'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetProcess'/>
- </type>
- <type name='xsltTemplatePtr'>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetTemplate'/>
- </type>
- <type name='xsltTopLevelFunction'>
- <ref name='xsltExtModuleTopLevelLookup'/>
- </type>
- <type name='xsltTransformContextPtr'>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltXPathGetTransformContext'/>
- </type>
- <type name='xsltTransformFunction'>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtModuleElementLookup'/>
- </type>
- </constructors>
- <functions>
- <type name='...'>
- <ref name='xsltTransformError'/>
- </type>
- <type name='FILE *'>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveProfiling'/>
- <ref name='xsltSaveResultToFile'/>
- </type>
- <type name='const char **'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </type>
- <type name='const unsigned char *'>
- <ref name='xsltGetUTF8Char'/>
- </type>
- <type name='const xmlChar *'>
- <ref name='xsltAddKey'/>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltExtModuleElementLookup'/>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltExtModuleFunctionLookup'/>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltMatchPattern'/>
- <ref name='xsltNewLocale'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleElement'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltRegisterExtModuleFunction'/>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltSplitQName'/>
- <ref name='xsltStrxfrm'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- <ref name='xsltUnregisterExtModule'/>
- <ref name='xsltUnregisterExtModuleElement'/>
- <ref name='xsltUnregisterExtModuleFunction'/>
- <ref name='xsltUnregisterExtModuleTopLevel'/>
- <ref name='xsltVariableLookup'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </type>
- <type name='const xmlChar **'>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltSplitQName'/>
- </type>
- <type name='const xsltLocaleChar *'>
- <ref name='xsltLocaleStrcmp'/>
- </type>
- <type name='double'>
- <ref name='xsltFormatNumberConversion'/>
- </type>
- <type name='int *'>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltSaveResultToString'/>
- </type>
- <type name='long'>
- <ref name='xsltCalibrateAdjust'/>
- </type>
- <type name='void *'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltFreeAVTList'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </type>
- <type name='xmlAttrPtr'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltCompileAttr'/>
- </type>
- <type name='xmlChar *'>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltIsBlank'/>
- </type>
- <type name='xmlChar **'>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltSaveResultToString'/>
- </type>
- <type name='xmlDictPtr'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltSplitQName'/>
- </type>
- <type name='xmlDocPtr'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltMatchPattern'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltReleaseRVT'/>
- <ref name='xsltRestoreDocumentNamespaces'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- </type>
- <type name='xmlGenericErrorFunc'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </type>
- <type name='xmlNodePtr'>
- <ref name='xslAddCall'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltAddCallCallback'/>
- <ref name='xsltAddKey'/>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltApplyImports'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltApplyTemplates'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltCallTemplate'/>
- <ref name='xsltChoose'/>
- <ref name='xsltComment'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltCopy'/>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltCopyOf'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltElement'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltForEach'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltHandleDebuggerCallback'/>
- <ref name='xsltIf'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltMatchPattern'/>
- <ref name='xsltMessage'/>
- <ref name='xsltNamespaceAlias'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltNumber'/>
- <ref name='xsltNumberFormat'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltParseStylesheetAttributeSet'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltParseStylesheetImport'/>
- <ref name='xsltParseStylesheetInclude'/>
- <ref name='xsltParseStylesheetOutput'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- <ref name='xsltParseTemplateContent'/>
- <ref name='xsltPreComputeExtModuleElement'/>
- <ref name='xsltPreComputeFunction'/>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltSort'/>
- <ref name='xsltStylePreCompute'/>
- <ref name='xsltTemplateProcess'/>
- <ref name='xsltTestCompMatchList'/>
- <ref name='xsltText'/>
- <ref name='xsltTopLevelFunction'/>
- <ref name='xsltTransformError'/>
- <ref name='xsltTransformFunction'/>
- <ref name='xsltValueOf'/>
- </type>
- <type name='xmlNodePtr *'>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltSortFunc'/>
- </type>
- <type name='xmlNodeSetPtr'>
- <ref name='xsltDocumentSortFunction'/>
- </type>
- <type name='xmlNsPtr'>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- </type>
- <type name='xmlNsPtr *'>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathStringNs'/>
- </type>
- <type name='xmlOutputBufferPtr'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultTo'/>
- </type>
- <type name='xmlSAXHandlerPtr'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </type>
- <type name='xmlXPathCompExprPtr'>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- </type>
- <type name='xmlXPathContextPtr'>
- <ref name='xsltRegisterAllFunctions'/>
- </type>
- <type name='xmlXPathFunction'>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtModuleFunction'/>
- </type>
- <type name='xmlXPathObjectPtr'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFlagRVTs'/>
- </type>
- <type name='xmlXPathParserContextPtr'>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltElementAvailableFunction'/>
- <ref name='xsltFormatNumberFunction'/>
- <ref name='xsltFunctionAvailableFunction'/>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltGenerateIdFunction'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltSystemPropertyFunction'/>
- <ref name='xsltUnparsedEntityURIFunction'/>
- <ref name='xsltXPathGetTransformContext'/>
- </type>
- <type name='xsltCompMatchPtr'>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltTestCompMatchList'/>
- </type>
- <type name='xsltCompilerCtxtPtr'>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseSequenceConstructor'/>
- </type>
- <type name='xsltDebugTraceCodes'>
- <ref name='xsltDebugSetDefaultTrace'/>
- </type>
- <type name='xsltDecimalFormatPtr'>
- <ref name='xsltFormatNumberConversion'/>
- </type>
- <type name='xsltDocLoaderFunc'>
- <ref name='xsltSetLoaderFunc'/>
- </type>
- <type name='xsltDocumentPtr'>
- <ref name='xsltFreeDocumentKeys'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltInitCtxtKeys'/>
- </type>
- <type name='xsltElemPreCompDeallocator'>
- <ref name='xsltInitElemPreComp'/>
- </type>
- <type name='xsltElemPreCompPtr'>
- <ref name='xsltApplyImports'/>
- <ref name='xsltApplyTemplates'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltCallTemplate'/>
- <ref name='xsltChoose'/>
- <ref name='xsltComment'/>
- <ref name='xsltCopy'/>
- <ref name='xsltCopyOf'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltElemPreCompDeallocator'/>
- <ref name='xsltElement'/>
- <ref name='xsltForEach'/>
- <ref name='xsltIf'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltNumber'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltSort'/>
- <ref name='xsltText'/>
- <ref name='xsltTransformFunction'/>
- <ref name='xsltValueOf'/>
- </type>
- <type name='xsltExtInitFunction'>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- </type>
- <type name='xsltExtShutdownFunction'>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- </type>
- <type name='xsltKeyDefPtr'>
- <ref name='xsltInitCtxtKey'/>
- </type>
- <type name='xsltLoadType'>
- <ref name='xsltDocLoaderFunc'/>
- </type>
- <type name='xsltLocale'>
- <ref name='xsltFreeLocale'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltStrxfrm'/>
- </type>
- <type name='xsltNsMapPtr'>
- <ref name='xsltRestoreDocumentNamespaces'/>
- </type>
- <type name='xsltNumberDataPtr'>
- <ref name='xsltNumberFormat'/>
- </type>
- <type name='xsltPointerListPtr'>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltPointerListFree'/>
- </type>
- <type name='xsltPreComputeFunction'>
- <ref name='xsltRegisterExtModuleElement'/>
- </type>
- <type name='xsltSecurityCheck'>
- <ref name='xsltSetSecurityPrefs'/>
- </type>
- <type name='xsltSecurityOption'>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- </type>
- <type name='xsltSecurityPrefsPtr'>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityCheck'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- </type>
- <type name='xsltSortFunc'>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetSortFunc'/>
- </type>
- <type name='xsltStackElemPtr'>
- <ref name='xsltAddStackElemList'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltFreeStackElemList'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltProcessOneNode'/>
- </type>
- <type name='xsltStyleExtInitFunction'>
- <ref name='xsltRegisterExtModuleFull'/>
- </type>
- <type name='xsltStyleExtShutdownFunction'>
- <ref name='xsltRegisterExtModuleFull'/>
- </type>
- <type name='xsltStylesheetPtr'>
- <ref name='xsltAddKey'/>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCleanupTemplates'/>
- <ref name='xsltCompileAttr'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltFreeAttributeSetsHashes'/>
- <ref name='xsltFreeExts'/>
- <ref name='xsltFreeKeys'/>
- <ref name='xsltFreeNamespaceAliasHashes'/>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltFreeStylesheet'/>
- <ref name='xsltFreeTemplateHashes'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltNamespaceAlias'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltNextImport'/>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseStylesheetAttributeSet'/>
- <ref name='xsltParseStylesheetImport'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetInclude'/>
- <ref name='xsltParseStylesheetOutput'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltParseTemplateContent'/>
- <ref name='xsltPreComputeExtModuleElement'/>
- <ref name='xsltPreComputeFunction'/>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltResolveStylesheetAttributeSet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- <ref name='xsltShutdownExts'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStylePreCompute'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- <ref name='xsltTopLevelFunction'/>
- <ref name='xsltTransformError'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </type>
- <type name='xsltTemplatePtr'>
- <ref name='xslAddCall'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltAddCallCallback'/>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltHandleDebuggerCallback'/>
- </type>
- <type name='xsltTopLevelFunction'>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- </type>
- <type name='xsltTransformContextPtr'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltAddStackElemList'/>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltApplyImports'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltApplyTemplates'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltCallTemplate'/>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltChoose'/>
- <ref name='xsltComment'/>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltCopy'/>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltCopyOf'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltElement'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltForEach'/>
- <ref name='xsltFreeCtxtExts'/>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltFreeTransformContext'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltHandleDebuggerCallback'/>
- <ref name='xsltIf'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltMatchPattern'/>
- <ref name='xsltMessage'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNumber'/>
- <ref name='xsltNumberFormat'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRegisterAllElement'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtras'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltReleaseRVT'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveProfiling'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityCheck'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltShutdownCtxtExts'/>
- <ref name='xsltSort'/>
- <ref name='xsltSortFunc'/>
- <ref name='xsltTemplateProcess'/>
- <ref name='xsltTestCompMatchList'/>
- <ref name='xsltText'/>
- <ref name='xsltTransformError'/>
- <ref name='xsltTransformFunction'/>
- <ref name='xsltValueOf'/>
- <ref name='xsltVariableLookup'/>
- </type>
- <type name='xsltTransformFunction'>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltPreComputeFunction'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtModuleElement'/>
- </type>
- </functions>
- <files>
- <file name='attributes'>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltFreeAttributeSetsHashes'/>
- <ref name='xsltParseStylesheetAttributeSet'/>
- <ref name='xsltResolveStylesheetAttributeSet'/>
- </file>
- <file name='documents'>
- <ref name='XSLT_LOAD_DOCUMENT'/>
- <ref name='XSLT_LOAD_START'/>
- <ref name='XSLT_LOAD_STYLESHEET'/>
- <ref name='xsltDocDefaultLoader'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltLoadType'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltSetLoaderFunc'/>
- </file>
- <file name='extensions'>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltExtModuleElementLookup'/>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltExtModuleFunctionLookup'/>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltFreeCtxtExts'/>
- <ref name='xsltFreeExts'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltInitGlobals'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltPreComputeExtModuleElement'/>
- <ref name='xsltPreComputeFunction'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleElement'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltRegisterExtModuleFunction'/>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltRegisterTestModule'/>
- <ref name='xsltShutdownCtxtExts'/>
- <ref name='xsltShutdownExts'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- <ref name='xsltTopLevelFunction'/>
- <ref name='xsltUnregisterExtModule'/>
- <ref name='xsltUnregisterExtModuleElement'/>
- <ref name='xsltUnregisterExtModuleFunction'/>
- <ref name='xsltUnregisterExtModuleTopLevel'/>
- <ref name='xsltXPathGetTransformContext'/>
- </file>
- <file name='extra'>
- <ref name='XSLT_LIBXSLT_NAMESPACE'/>
- <ref name='XSLT_SAXON_NAMESPACE'/>
- <ref name='XSLT_XALAN_NAMESPACE'/>
- <ref name='XSLT_XT_NAMESPACE'/>
- <ref name='xsltDebug'/>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltRegisterAllExtras'/>
- <ref name='xsltRegisterExtras'/>
- </file>
- <file name='functions'>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltElementAvailableFunction'/>
- <ref name='xsltFormatNumberFunction'/>
- <ref name='xsltFunctionAvailableFunction'/>
- <ref name='xsltGenerateIdFunction'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltRegisterAllFunctions'/>
- <ref name='xsltSystemPropertyFunction'/>
- <ref name='xsltUnparsedEntityURIFunction'/>
- <ref name='xsltXPathFunctionLookup'/>
- </file>
- <file name='imports'>
- <ref name='XSLT_GET_IMPORT_INT'/>
- <ref name='XSLT_GET_IMPORT_PTR'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- <ref name='xsltNextImport'/>
- <ref name='xsltParseStylesheetImport'/>
- <ref name='xsltParseStylesheetInclude'/>
- </file>
- <file name='keys'>
- <ref name='NODE_IS_KEYED'/>
- <ref name='xsltAddKey'/>
- <ref name='xsltFreeDocumentKeys'/>
- <ref name='xsltFreeKeys'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltInitCtxtKeys'/>
- </file>
- <file name='namespaces'>
- <ref name='UNDEFINED_DEFAULT_NS'/>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltFreeNamespaceAliasHashes'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltNamespaceAlias'/>
- </file>
- <file name='numbersInternals'>
- <ref name='_xsltCompMatch'/>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='_xsltNumberData'/>
- <ref name='xsltFormatNumberInfo'/>
- <ref name='xsltFormatNumberInfoPtr'/>
- <ref name='xsltNumberData'/>
- <ref name='xsltNumberDataPtr'/>
- </file>
- <file name='pattern'>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltCleanupTemplates'/>
- <ref name='xsltCompMatch'/>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltCompMatchPtr'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltFreeTemplateHashes'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltMatchPattern'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltTestCompMatchList'/>
- </file>
- <file name='preproc'>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltExtMarker'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltStylePreCompute'/>
- </file>
- <file name='security'>
- <ref name='XSLT_SECPREF_CREATE_DIRECTORY'/>
- <ref name='XSLT_SECPREF_READ_FILE'/>
- <ref name='XSLT_SECPREF_READ_NETWORK'/>
- <ref name='XSLT_SECPREF_WRITE_FILE'/>
- <ref name='XSLT_SECPREF_WRITE_NETWORK'/>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltNewSecurityPrefs'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityCheck'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSecurityOption'/>
- <ref name='xsltSecurityPrefs'/>
- <ref name='xsltSecurityPrefsPtr'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- </file>
- <file name='templates'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltTemplateProcess'/>
- </file>
- <file name='transform'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltApplyImports'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltApplyTemplates'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltCallTemplate'/>
- <ref name='xsltChoose'/>
- <ref name='xsltComment'/>
- <ref name='xsltCopy'/>
- <ref name='xsltCopyOf'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltElement'/>
- <ref name='xsltForEach'/>
- <ref name='xsltFreeTransformContext'/>
- <ref name='xsltGetXIncludeDefault'/>
- <ref name='xsltIf'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltNumber'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRegisterAllElement'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSetXIncludeDefault'/>
- <ref name='xsltSort'/>
- <ref name='xsltText'/>
- <ref name='xsltValueOf'/>
- </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='xsltAddStackElemList'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltVariableLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </file>
- <file name='xslt'>
- <ref name='XSLT_DEFAULT_URL'/>
- <ref name='XSLT_DEFAULT_VENDOR'/>
- <ref name='XSLT_DEFAULT_VERSION'/>
- <ref name='XSLT_NAMESPACE'/>
- <ref name='XSLT_PARSE_OPTIONS'/>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltEngineVersion'/>
- <ref name='xsltInit'/>
- <ref name='xsltLibxmlVersion'/>
- <ref name='xsltLibxsltVersion'/>
- <ref name='xsltMaxDepth'/>
- <ref name='xsltMaxVars'/>
- </file>
- <file name='xsltInternals'>
- <ref name='CHECK_STOPPED'/>
- <ref name='CHECK_STOPPED0'/>
- <ref name='CHECK_STOPPEDE'/>
- <ref name='IS_XSLT_ATTR_FAST'/>
- <ref name='IS_XSLT_ELEM_FAST'/>
- <ref name='XML_CAST_FPTR'/>
- <ref name='XSLT_CCTXT'/>
- <ref name='XSLT_ERROR_SEVERITY_ERROR'/>
- <ref name='XSLT_ERROR_SEVERITY_WARNING'/>
- <ref name='XSLT_FAST_IF'/>
- <ref name='XSLT_FUNC_APPLYIMPORTS'/>
- <ref name='XSLT_FUNC_APPLYTEMPLATES'/>
- <ref name='XSLT_FUNC_ATTRIBUTE'/>
- <ref name='XSLT_FUNC_ATTRSET'/>
- <ref name='XSLT_FUNC_CALLTEMPLATE'/>
- <ref name='XSLT_FUNC_CHOOSE'/>
- <ref name='XSLT_FUNC_COMMENT'/>
- <ref name='XSLT_FUNC_COPY'/>
- <ref name='XSLT_FUNC_COPYOF'/>
- <ref name='XSLT_FUNC_DOCUMENT'/>
- <ref name='XSLT_FUNC_ELEMENT'/>
- <ref name='XSLT_FUNC_EXTENSION'/>
- <ref name='XSLT_FUNC_FALLBACK'/>
- <ref name='XSLT_FUNC_FOREACH'/>
- <ref name='XSLT_FUNC_IF'/>
- <ref name='XSLT_FUNC_INCLUDE'/>
- <ref name='XSLT_FUNC_LITERAL_RESULT_ELEMENT'/>
- <ref name='XSLT_FUNC_MESSAGE'/>
- <ref name='XSLT_FUNC_NUMBER'/>
- <ref name='XSLT_FUNC_OTHERWISE'/>
- <ref name='XSLT_FUNC_PARAM'/>
- <ref name='XSLT_FUNC_PI'/>
- <ref name='XSLT_FUNC_SORT'/>
- <ref name='XSLT_FUNC_TEXT'/>
- <ref name='XSLT_FUNC_UNKOWN_FORWARDS_COMPAT'/>
- <ref name='XSLT_FUNC_VALUEOF'/>
- <ref name='XSLT_FUNC_VARIABLE'/>
- <ref name='XSLT_FUNC_WHEN'/>
- <ref name='XSLT_FUNC_WITHPARAM'/>
- <ref name='XSLT_GET_INTERNAL_NSMAP'/>
- <ref name='XSLT_HAS_INTERNAL_NSMAP'/>
- <ref name='XSLT_IS_RES_TREE_FRAG'/>
- <ref name='XSLT_IS_TEXT_NODE'/>
- <ref name='XSLT_ITEM_COMMON_FIELDS'/>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- <ref name='XSLT_ITEM_NSINSCOPE_FIELDS'/>
- <ref name='XSLT_MARK_RES_TREE_FRAG'/>
- <ref name='XSLT_MAX_SORT'/>
- <ref name='XSLT_OUTPUT_HTML'/>
- <ref name='XSLT_OUTPUT_TEXT'/>
- <ref name='XSLT_OUTPUT_XML'/>
- <ref name='XSLT_PAT_NO_PRIORITY'/>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='XSLT_REFACTORED_VARS'/>
- <ref name='XSLT_RUNTIME_EXTRA'/>
- <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
- <ref name='XSLT_RUNTIME_EXTRA_LST'/>
- <ref name='XSLT_STATE_ERROR'/>
- <ref name='XSLT_STATE_OK'/>
- <ref name='XSLT_STATE_STOPPED'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltDecimalFormat'/>
- <ref name='_xsltDocument'/>
- <ref name='_xsltEffectiveNs'/>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltKeyDef'/>
- <ref name='_xsltKeyTable'/>
- <ref name='_xsltNsAlias'/>
- <ref name='_xsltNsList'/>
- <ref name='_xsltNsListContainer'/>
- <ref name='_xsltNsMap'/>
- <ref name='_xsltPointerList'/>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='_xsltRuntimeExtra'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltStyleBasicEmptyItem'/>
- <ref name='_xsltStyleBasicExpressionItem'/>
- <ref name='_xsltStyleBasicItemVariable'/>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemAttribute'/>
- <ref name='_xsltStyleItemCallTemplate'/>
- <ref name='_xsltStyleItemCopy'/>
- <ref name='_xsltStyleItemDocument'/>
- <ref name='_xsltStyleItemElement'/>
- <ref name='_xsltStyleItemExtElement'/>
- <ref name='_xsltStyleItemIf'/>
- <ref name='_xsltStyleItemInclude'/>
- <ref name='_xsltStyleItemLRElementInfo'/>
- <ref name='_xsltStyleItemMessage'/>
- <ref name='_xsltStyleItemNumber'/>
- <ref name='_xsltStyleItemOtherwise'/>
- <ref name='_xsltStyleItemPI'/>
- <ref name='_xsltStyleItemParam'/>
- <ref name='_xsltStyleItemSort'/>
- <ref name='_xsltStyleItemText'/>
- <ref name='_xsltStyleItemUknown'/>
- <ref name='_xsltStyleItemValueOf'/>
- <ref name='_xsltStyleItemWhen'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformCache'/>
- <ref name='_xsltTransformContext'/>
- <ref name='_xsltVarInfo'/>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltCompileAttr'/>
- <ref name='xsltCompilerCtxt'/>
- <ref name='xsltCompilerCtxtPtr'/>
- <ref name='xsltCompilerNodeInfo'/>
- <ref name='xsltCompilerNodeInfoPtr'/>
- <ref name='xsltConstNamespaceNameXSLT'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltDecimalFormat'/>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- <ref name='xsltDecimalFormatPtr'/>
- <ref name='xsltDocument'/>
- <ref name='xsltDocumentPtr'/>
- <ref name='xsltEffectiveNs'/>
- <ref name='xsltEffectiveNsPtr'/>
- <ref name='xsltElemPreComp'/>
- <ref name='xsltElemPreCompDeallocator'/>
- <ref name='xsltElemPreCompPtr'/>
- <ref name='xsltErrorSeverityType'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltFreeAVTList'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltFreeStackElemList'/>
- <ref name='xsltFreeStylesheet'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltIsBlank'/>
- <ref name='xsltKeyDef'/>
- <ref name='xsltKeyDefPtr'/>
- <ref name='xsltKeyTable'/>
- <ref name='xsltKeyTablePtr'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltNewStylesheet'/>
- <ref name='xsltNsAlias'/>
- <ref name='xsltNsAliasPtr'/>
- <ref name='xsltNsList'/>
- <ref name='xsltNsListContainer'/>
- <ref name='xsltNsListContainerPtr'/>
- <ref name='xsltNsListPtr'/>
- <ref name='xsltNsMap'/>
- <ref name='xsltNsMapPtr'/>
- <ref name='xsltNumberFormat'/>
- <ref name='xsltOutputType'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetOutput'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltParseTemplateContent'/>
- <ref name='xsltPointerList'/>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltPointerListCreate'/>
- <ref name='xsltPointerListFree'/>
- <ref name='xsltPointerListPtr'/>
- <ref name='xsltPrincipalStylesheetData'/>
- <ref name='xsltPrincipalStylesheetDataPtr'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltReleaseRVT'/>
- <ref name='xsltRestoreDocumentNamespaces'/>
- <ref name='xsltRuntimeExtra'/>
- <ref name='xsltRuntimeExtraPtr'/>
- <ref name='xsltSortFunc'/>
- <ref name='xsltStackElem'/>
- <ref name='xsltStackElemPtr'/>
- <ref name='xsltStyleBasicEmptyItem'/>
- <ref name='xsltStyleBasicEmptyItemPtr'/>
- <ref name='xsltStyleBasicExpressionItem'/>
- <ref name='xsltStyleBasicExpressionItemPtr'/>
- <ref name='xsltStyleBasicItemVariable'/>
- <ref name='xsltStyleBasicItemVariablePtr'/>
- <ref name='xsltStyleItemApplyImports'/>
- <ref name='xsltStyleItemApplyImportsPtr'/>
- <ref name='xsltStyleItemApplyTemplates'/>
- <ref name='xsltStyleItemApplyTemplatesPtr'/>
- <ref name='xsltStyleItemAttribute'/>
- <ref name='xsltStyleItemAttributePtr'/>
- <ref name='xsltStyleItemCallTemplate'/>
- <ref name='xsltStyleItemCallTemplatePtr'/>
- <ref name='xsltStyleItemChoose'/>
- <ref name='xsltStyleItemChoosePtr'/>
- <ref name='xsltStyleItemComment'/>
- <ref name='xsltStyleItemCommentPtr'/>
- <ref name='xsltStyleItemCopy'/>
- <ref name='xsltStyleItemCopyOf'/>
- <ref name='xsltStyleItemCopyOfPtr'/>
- <ref name='xsltStyleItemCopyPtr'/>
- <ref name='xsltStyleItemDocument'/>
- <ref name='xsltStyleItemDocumentPtr'/>
- <ref name='xsltStyleItemElement'/>
- <ref name='xsltStyleItemElementPtr'/>
- <ref name='xsltStyleItemExtElement'/>
- <ref name='xsltStyleItemExtElementPtr'/>
- <ref name='xsltStyleItemFallback'/>
- <ref name='xsltStyleItemFallbackPtr'/>
- <ref name='xsltStyleItemForEach'/>
- <ref name='xsltStyleItemForEachPtr'/>
- <ref name='xsltStyleItemIf'/>
- <ref name='xsltStyleItemIfPtr'/>
- <ref name='xsltStyleItemInclude'/>
- <ref name='xsltStyleItemIncludePtr'/>
- <ref name='xsltStyleItemLRElementInfo'/>
- <ref name='xsltStyleItemLRElementInfoPtr'/>
- <ref name='xsltStyleItemMessage'/>
- <ref name='xsltStyleItemMessagePtr'/>
- <ref name='xsltStyleItemNumber'/>
- <ref name='xsltStyleItemNumberPtr'/>
- <ref name='xsltStyleItemOtherwise'/>
- <ref name='xsltStyleItemOtherwisePtr'/>
- <ref name='xsltStyleItemPI'/>
- <ref name='xsltStyleItemPIPtr'/>
- <ref name='xsltStyleItemParam'/>
- <ref name='xsltStyleItemParamPtr'/>
- <ref name='xsltStyleItemSort'/>
- <ref name='xsltStyleItemSortPtr'/>
- <ref name='xsltStyleItemText'/>
- <ref name='xsltStyleItemTextPtr'/>
- <ref name='xsltStyleItemUknown'/>
- <ref name='xsltStyleItemUknownPtr'/>
- <ref name='xsltStyleItemValueOf'/>
- <ref name='xsltStyleItemValueOfPtr'/>
- <ref name='xsltStyleItemVariable'/>
- <ref name='xsltStyleItemVariablePtr'/>
- <ref name='xsltStyleItemWhen'/>
- <ref name='xsltStyleItemWhenPtr'/>
- <ref name='xsltStyleItemWithParam'/>
- <ref name='xsltStyleItemWithParamPtr'/>
- <ref name='xsltStylePreComp'/>
- <ref name='xsltStylePreCompPtr'/>
- <ref name='xsltStyleType'/>
- <ref name='xsltStylesheet'/>
- <ref name='xsltStylesheetPtr'/>
- <ref name='xsltTemplate'/>
- <ref name='xsltTemplatePtr'/>
- <ref name='xsltTransformCache'/>
- <ref name='xsltTransformCachePtr'/>
- <ref name='xsltTransformContext'/>
- <ref name='xsltTransformContextPtr'/>
- <ref name='xsltTransformFunction'/>
- <ref name='xsltTransformState'/>
- <ref name='xsltUninit'/>
- <ref name='xsltVarInfo'/>
- <ref name='xsltVarInfoPtr'/>
- <ref name='xsltXSLTAttrMarker'/>
- </file>
- <file name='xsltexports'>
- <ref name='LIBXSLT_PUBLIC'/>
- <ref name='XSLTCALL'/>
- <ref name='XSLTPUBFUN'/>
- <ref name='XSLTPUBLIC'/>
- <ref name='XSLTPUBVAR'/>
- </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'/>
- <ref name='xsltLocaleChar'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltNewLocale'/>
- <ref name='xsltStrxfrm'/>
- </file>
- <file name='xsltutils'>
- <ref name='IS_XSLT_ELEM'/>
- <ref name='IS_XSLT_NAME'/>
- <ref name='IS_XSLT_REAL_NODE'/>
- <ref name='XSLT_DEBUG_CONT'/>
- <ref name='XSLT_DEBUG_INIT'/>
- <ref name='XSLT_DEBUG_NEXT'/>
- <ref name='XSLT_DEBUG_NONE'/>
- <ref name='XSLT_DEBUG_QUIT'/>
- <ref name='XSLT_DEBUG_RUN'/>
- <ref name='XSLT_DEBUG_RUN_RESTART'/>
- <ref name='XSLT_DEBUG_STEP'/>
- <ref name='XSLT_DEBUG_STEPOUT'/>
- <ref name='XSLT_DEBUG_STOP'/>
- <ref name='XSLT_STRANGE'/>
- <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
- <ref name='XSLT_TODO'/>
- <ref name='XSLT_TRACE'/>
- <ref name='XSLT_TRACE_ALL'/>
- <ref name='XSLT_TRACE_APPLY_TEMPLATE'/>
- <ref name='XSLT_TRACE_APPLY_TEMPLATES'/>
- <ref name='XSLT_TRACE_CALL_TEMPLATE'/>
- <ref name='XSLT_TRACE_CHOOSE'/>
- <ref name='XSLT_TRACE_COMMENT'/>
- <ref name='XSLT_TRACE_COPY'/>
- <ref name='XSLT_TRACE_COPY_OF'/>
- <ref name='XSLT_TRACE_COPY_TEXT'/>
- <ref name='XSLT_TRACE_FOR_EACH'/>
- <ref name='XSLT_TRACE_IF'/>
- <ref name='XSLT_TRACE_KEYS'/>
- <ref name='XSLT_TRACE_NONE'/>
- <ref name='XSLT_TRACE_PI'/>
- <ref name='XSLT_TRACE_PROCESS_NODE'/>
- <ref name='XSLT_TRACE_STRIP_SPACES'/>
- <ref name='XSLT_TRACE_TEMPLATES'/>
- <ref name='XSLT_TRACE_VALUE_OF'/>
- <ref name='XSLT_TRACE_VARIABLES'/>
- <ref name='xslAddCall'/>
- <ref name='xslDebugStatus'/>
- <ref name='xslDropCall'/>
- <ref name='xsltAddCallCallback'/>
- <ref name='xsltCalibrateAdjust'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- <ref name='xsltDebugStatusCodes'/>
- <ref name='xsltDebugTraceCodes'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltDocumentSortFunction'/>
- <ref name='xsltDropCallCallback'/>
- <ref name='xsltGenericDebug'/>
- <ref name='xsltGenericDebugContext'/>
- <ref name='xsltGenericError'/>
- <ref name='xsltGenericErrorContext'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetDebuggerStatus'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltHandleDebuggerCallback'/>
- <ref name='xsltMessage'/>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltSaveProfiling'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- <ref name='xsltSetDebuggerStatus'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetSortFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltSplitQName'/>
- <ref name='xsltTimestamp'/>
- <ref name='xsltTransformError'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </file>
- </files>
- <index>
- <chunk name='chunk0'>
- <letter name='A'>
- <word name='API'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='ATTENTION:'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='AVT'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltFreeAVTList'/>
- </word>
- <word name='Add'>
- <ref name='xslAddCall'/>
- </word>
- <word name='Adds'>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltPointerListAddSize'/>
- </word>
- <word name='Allocate'>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltAllocateExtraCtxt'/>
- </word>
- <word name='Apache'>
- <ref name='XSLT_XALAN_NAMESPACE'/>
- </word>
- <word name='Apply'>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='Attribute'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- </word>
- </letter>
- <letter name='B'>
- <word name='BIG'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- </letter>
- <letter name='C'>
- <word name='CDTATA'>
- <ref name='xsltFindElemSpaceHandling'/>
- </word>
- <word name='Called'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltStyleGetExtData'/>
- </word>
- <word name='Change'>
- <ref name='_xsltStyleBasicExpressionItem'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltSetCtxtParseOptions'/>
- </word>
- <word name='Char'>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='Characters:'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='Check'>
- <ref name='IS_XSLT_REAL_NODE'/>
- <ref name='_xsltStyleItemDocument'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltIsBlank'/>
- </word>
- <word name='Checks'>
- <ref name='IS_XSLT_ELEM'/>
- <ref name='IS_XSLT_NAME'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- </word>
- <word name='Clark'>
- <ref name='XSLT_XT_NAMESPACE'/>
- </word>
- <word name='Clean-up'>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='Cleanup'>
- <ref name='xsltCleanupTemplates'/>
- <ref name='xsltFreeLocales'/>
- </word>
- <word name='Clear'>
- <ref name='xsltCompMatchClearCache'/>
- </word>
- <word name='Common'>
- <ref name='XSLT_ITEM_COMMON_FIELDS'/>
- </word>
- <word name='Compares'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='Compilation'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='Compile'>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='Computes'>
- <ref name='xsltGetKey'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='Conflict'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='Context'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='Control'>
- <ref name='XSLT_TRACE'/>
- </word>
- <word name='Convert'>
- <ref name='xsltNumberFormat'/>
- </word>
- <word name='Copies'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltCopyNamespace'/>
- </word>
- <word name='Create'>
- <ref name='xsltNewSecurityPrefs'/>
- <ref name='xsltNewStylesheet'/>
- <ref name='xsltNewTransformContext'/>
- </word>
- <word name='Creates'>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltNewLocale'/>
- <ref name='xsltPointerListCreate'/>
- </word>
- <word name='Current'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='Currently'>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- </word>
- </letter>
- <letter name='D'>
- <word name='DTD'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='Deallocates'>
- <ref name='xsltElemPreCompDeallocator'/>
- </word>
- <word name='Debugging'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='DecimalFormat'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='Display'>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='Don'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltTemplateProcess'/>
- </word>
- <word name='Drop'>
- <ref name='xslDropCall'/>
- </word>
- <word name='Dumps'>
- <ref name='xsltDebugDumpExtensions'/>
- </word>
- </letter>
- <letter name='E'>
- <word name='EXSLT'>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- </word>
- <word name='Each'>
- <ref name='xsltEvalUserParams'/>
- </word>
- <word name='Either'>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='Element'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- </word>
- <word name='Elements'>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='Eliminate'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='Errors'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='Evaluate'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalUserParams'/>
- </word>
- <word name='Evaluates'>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltEvalGlobalVariables'/>
- </word>
- <word name='Exaclty'>
- <ref name='xsltGetPlainNamespace'/>
- </word>
- <word name='Execute'>
- <ref name='xsltCopy'/>
- </word>
- <word name='Extensions'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- </word>
- </letter>
- <letter name='F'>
- <word name='FILE'>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveProfiling'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='FIXED'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='Fields'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- </word>
- <word name='Finalizes'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- </word>
- <word name='Find'>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltNextImport'/>
- </word>
- <word name='Finds'>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetTemplate'/>
- </word>
- <word name='Flag'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='For'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- </word>
- <word name='Forwards-compatible'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='Fragment'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='Fragments'>
- <ref name='_xsltStackElem'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltFreeRVTs'/>
- </word>
- <word name='Free'>
- <ref name='xsltFreeAVTList'/>
- <ref name='xsltFreeAttributeSetsHashes'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltFreeCtxtExts'/>
- <ref name='xsltFreeDocumentKeys'/>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltFreeExts'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltFreeKeys'/>
- <ref name='xsltFreeNamespaceAliasHashes'/>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltFreeStackElemList'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltFreeStylesheet'/>
- <ref name='xsltFreeTemplateHashes'/>
- <ref name='xsltFreeTransformContext'/>
- </word>
- <word name='Frees'>
- <ref name='xsltFreeLocale'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltPointerListFree'/>
- </word>
- <word name='Function'>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetSortFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- </letter>
- <letter name='G'>
- <word name='General'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='Get'>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltGetDebuggerStatus'/>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- </word>
- <word name='Global'>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- </word>
- </letter>
- <letter name='I'>
- <word name='INTERNAL'>
- <ref name='xsltInitAllDocKeys'/>
- </word>
- <word name='IObuf'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='ISO'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='Implement'>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltElementAvailableFunction'/>
- <ref name='xsltFormatNumberFunction'/>
- <ref name='xsltFunctionAvailableFunction'/>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltGenerateIdFunction'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltSystemPropertyFunction'/>
- <ref name='xsltUnparsedEntityURIFunction'/>
- </word>
- <word name='Indicates'>
- <ref name='_xsltEffectiveNs'/>
- </word>
- <word name='Indicator'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='Initialize'>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltInitGlobals'/>
- </word>
- <word name='Initializes'>
- <ref name='xsltInit'/>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='Internal'>
- <ref name='XSLT_FAST_IF'/>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='XSLT_REFACTORED_VARS'/>
- <ref name='xsltFreeRVTs'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk1'>
- <letter name='J'>
- <word name='JDK'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='James'>
- <ref name='XSLT_XT_NAMESPACE'/>
- </word>
- </letter>
- <letter name='K'>
- <word name='Kay'>
- <ref name='XSLT_SAXON_NAMESPACE'/>
- </word>
- <word name='Key'>
- <ref name='_xsltStylesheet'/>
- </word>
- </letter>
- <letter name='L'>
- <word name='LR-element'>
- <ref name='_xsltCompilerNodeInfo'/>
- </word>
- <word name='LRE'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- </word>
- <word name='Length'>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='Libexslt'>
- <ref name='xsltGetPlainNamespace'/>
- </word>
- <word name='Libxslt'>
- <ref name='xsltGetPlainNamespace'/>
- </word>
- <word name='Literal'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='Load'>
- <ref name='xsltParseStylesheetFile'/>
- </word>
- <word name='LocationPathPattern'>
- <ref name='xsltCompilePattern'/>
- </word>
- <word name='Looks'>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtModuleElementLookup'/>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltExtModuleFunctionLookup'/>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltGetKey'/>
- </word>
- <word name='Lookup'>
- <ref name='xsltGetSecurityPrefs'/>
- </word>
- </letter>
- <letter name='M'>
- <word name='MUST'>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='Macro'>
- <ref name='CHECK_STOPPED'/>
- <ref name='CHECK_STOPPED0'/>
- <ref name='CHECK_STOPPEDE'/>
- <ref name='XML_CAST_FPTR'/>
- <ref name='XSLTCALL'/>
- <ref name='XSLTPUBFUN'/>
- <ref name='XSLTPUBLIC'/>
- <ref name='XSLTPUBVAR'/>
- <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'/>
- <ref name='XSLT_STRANGE'/>
- <ref name='XSLT_TODO'/>
- </word>
- <word name='Marks'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='Max'>
- <ref name='XSLT_MAX_SORT'/>
- </word>
- <word name='May'>
- <ref name='_xsltDecimalFormat'/>
- </word>
- <word name='Maybe'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='Meaning'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='Memory'>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='Michael'>
- <ref name='XSLT_SAXON_NAMESPACE'/>
- </word>
- </letter>
- <letter name='N'>
- <word name='NCName'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='NOTE'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- </word>
- <word name='NOTE:'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='Name'>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- </word>
- <word name='Namespace'>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='Namespaces'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='Needed'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='Not'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='Not-a-number'>
- <ref name='_xsltDecimalFormat'/>
- </word>
- <word name='Notation:'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='Note'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='Number'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='_xsltStylesheet'/>
- </word>
- </letter>
- <letter name='O'>
- <word name='ONLY'>
- <ref name='xsltInitAllDocKeys'/>
- </word>
- <word name='Obsolete'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltTemplateProcess'/>
- </word>
- <word name='One'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='Otherwise'>
- <ref name='xsltDoSortFunction'/>
- </word>
- <word name='Output'>
- <ref name='_xsltStylesheet'/>
- </word>
- </letter>
- <letter name='P'>
- <word name='POSIX'>
- <ref name='XSLT_LOCALE_POSIX'/>
- </word>
- <word name='Parse'>
- <ref name='xsltParseStylesheetUser'/>
- </word>
- <word name='Parser'>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltElementAvailableFunction'/>
- <ref name='xsltFormatNumberFunction'/>
- <ref name='xsltFunctionAvailableFunction'/>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltGenerateIdFunction'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltSystemPropertyFunction'/>
- <ref name='xsltUnparsedEntityURIFunction'/>
- </word>
- <word name='Parses'>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='Pattern'>
- <ref name='xsltCompilePattern'/>
- </word>
- <word name='Per'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='Places'>
- <ref name='xsltLocalVariablePush'/>
- </word>
- <word name='Pops'>
- <ref name='xsltLocalVariablePop'/>
- </word>
- <word name='Pre'>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltDocumentComp'/>
- </word>
- <word name='Precompile'>
- <ref name='xsltCompileAttr'/>
- </word>
- <word name='Precompute'>
- <ref name='xsltStylePreCompute'/>
- </word>
- <word name='Precomputed'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='Precomputes'>
- <ref name='xsltPreComputeExtModuleElement'/>
- </word>
- <word name='Process'>
- <ref name='xsltApplyImports'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltComment'/>
- <ref name='xsltCopyOf'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltElement'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltForEach'/>
- <ref name='xsltMessage'/>
- <ref name='xsltNumber'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltText'/>
- <ref name='xsltValueOf'/>
- </word>
- <word name='Processes'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyTemplates'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltCallTemplate'/>
- <ref name='xsltChoose'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltIf'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- </word>
- <word name='Profiling'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='Provides'>
- <ref name='xsltGetXIncludeDefault'/>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='Push'>
- <ref name='xsltAddStackElemList'/>
- </word>
- </letter>
- <letter name='Q'>
- <word name='QName'>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='QNames'>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='QUESTION:'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- </word>
- </letter>
- <letter name='R'>
- <word name='REVISIT'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='REVISIT:'>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='RFC'>
- <ref name='xsltNewLocale'/>
- </word>
- <word name='ROUTINE'>
- <ref name='xsltInitAllDocKeys'/>
- </word>
- <word name='RTF'>
- <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='_xsltTransformContext'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='RVTs'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='Read'>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='Register'>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltRegisterPersistRVT'/>
- </word>
- <word name='Registering'>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- </word>
- <word name='Registers'>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- <ref name='xsltRegisterAllElement'/>
- <ref name='xsltRegisterAllExtras'/>
- <ref name='xsltRegisterAllFunctions'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtModuleElement'/>
- <ref name='xsltRegisterExtModuleFunction'/>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltRegisterExtras'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterTestModule'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='Resets'>
- <ref name='xsltPointerListClear'/>
- </word>
- <word name='Restore'>
- <ref name='xsltRestoreDocumentNamespaces'/>
- </word>
- <word name='Result'>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='Retrieve'>
- <ref name='xsltGetExtData'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- </word>
- <word name='Rule'>
- <ref name='_xsltTransformContext'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk2'>
- <letter name='S'>
- <word name='SAX'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='Sampling'>
- <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
- </word>
- <word name='Save'>
- <ref name='xsltSaveProfiling'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='Saxon'>
- <ref name='XSLT_SAXON_NAMESPACE'/>
- </word>
- <word name='Scaling'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='Search'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltVariableLookup'/>
- </word>
- <word name='Set'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetLoaderFunc'/>
- <ref name='xsltSetXIncludeDefault'/>
- </word>
- <word name='Should'>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='Shutdown'>
- <ref name='xsltShutdownCtxtExts'/>
- <ref name='xsltShutdownExts'/>
- </word>
- <word name='Signature'>
- <ref name='xsltSortFunc'/>
- <ref name='xsltTransformFunction'/>
- </word>
- <word name='Similar'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='Size'>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='Special'>
- <ref name='UNDEFINED_DEFAULT_NS'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='Specific'>
- <ref name='XSLT_PAT_NO_PRIORITY'/>
- </word>
- <word name='Speed'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='Split'>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='Storage'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='Strip'>
- <ref name='xsltApplyStripSpaces'/>
- </word>
- <word name='Structure:'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='Stylesheet'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltNewStylesheet'/>
- </word>
- <word name='Symbol'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- </letter>
- <letter name='T'>
- <word name='TEMP'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='TODO:'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStyleBasicExpressionItem'/>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemCallTemplate'/>
- <ref name='_xsltStyleItemDocument'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='Template'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='Templates'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- </word>
- <word name='Test'>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='That'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- </word>
- <word name='TransformContext'>
- <ref name='xsltNewTransformContext'/>
- </word>
- <word name='Transforms'>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='Tree'>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='Try'>
- <ref name='xsltFindDocument'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- </word>
- </letter>
- <letter name='U'>
- <word name='URL'>
- <ref name='XSLT_DEFAULT_URL'/>
- <ref name='_xsltStyleItemDocument'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSecurityCheck'/>
- </word>
- <word name='UTF-8'>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='UTF8'>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='Uninitializes'>
- <ref name='xsltUninit'/>
- </word>
- <word name='Unregister'>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltUnregisterExtModule'/>
- </word>
- <word name='Unregisters'>
- <ref name='xsltUnregisterExtModuleElement'/>
- <ref name='xsltUnregisterExtModuleFunction'/>
- <ref name='xsltUnregisterExtModuleTopLevel'/>
- </word>
- <word name='Update'>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='Updates'>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='Use'>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='Used'>
- <ref name='_xsltDecimalFormat'/>
- <ref name='xsltCalibrateAdjust'/>
- <ref name='xsltTimestamp'/>
- </word>
- <word name='User'>
- <ref name='xsltSecurityCheck'/>
- </word>
- </letter>
- <letter name='V'>
- <word name='Value'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltCreateRVT'/>
- </word>
- <word name='Variable'>
- <ref name='xsltVariableLookup'/>
- </word>
- </letter>
- <letter name='W'>
- <word name='WITH_XSLT_DEBUG_BREAKPOINTS'>
- <ref name='xslAddCall'/>
- </word>
- <word name='Why'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- </word>
- <word name='Will'>
- <ref name='CHECK_STOPPED'/>
- <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'>
- <ref name='XSLT_XALAN_NAMESPACE'/>
- </word>
- <word name='XInclude'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltGetXIncludeDefault'/>
- <ref name='xsltSetXIncludeDefault'/>
- </word>
- <word name='XML'>
- <ref name='_xsltNsMap'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='XML_CAST_FPTR'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='XSLT-1'>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltDocumentElem'/>
- </word>
- <word name='XSLT-attributes'>
- <ref name='xsltAttrListTemplateProcess'/>
- </word>
- <word name='XSLT-copy'>
- <ref name='xsltCopy'/>
- </word>
- <word name='XSLT_ERROR_SEVERITY_WARNING'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='XSLT_GET_IMPORT_PTR'>
- <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'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='accelerators'>
- <ref name='_xsltNumberData'/>
- </word>
- <word name='access'>
- <ref name='XSLT_RUNTIME_EXTRA_LST'/>
- </word>
- <word name='according'>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='accordingly'>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltDocumentSortFunction'/>
- </word>
- <word name='activated'>
- <ref name='xsltCopyTextString'/>
- </word>
- <word name='actual'>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- </word>
- <word name='actually'>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='add'>
- <ref name='xsltAddKey'/>
- </word>
- <word name='added'>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltPointerListAddSize'/>
- </word>
- <word name='adding'>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='additionally'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltParseSequenceConstructor'/>
- </word>
- <word name='address'>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='after'>
- <ref name='XSLT_RVT_FUNC_RESULT'/>
- <ref name='XSLT_RVT_LOCAL'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='afterwards'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='alias'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='aliases'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltFreeNamespaceAliasHashes'/>
- </word>
- <word name='aliasing'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='all'>
- <ref name='XSLT_ITEM_COMMON_FIELDS'/>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltRegisterAllElement'/>
- <ref name='xsltRegisterAllFunctions'/>
- </word>
- <word name='allocated'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltFreeStackElemList'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltFreeStylesheet'/>
- <ref name='xsltFreeTransformContext'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltNewStylesheet'/>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltSaveResultToString'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='allow'>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='allowed'>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- </word>
- <word name='allowing'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalXPathStringNs'/>
- </word>
- <word name='already'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltRegisterExtPrefix'/>
- </word>
- <word name='also'>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='always'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityForbid'/>
- </word>
- <word name='amiss'>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='analyzes'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='anchor'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='anchored'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='another'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='any'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='anymore'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltDocumentSortFunction'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='api'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='appear'>
- <ref name='_xsltDecimalFormat'/>
- </word>
- <word name='appears'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='application-wide'>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- </word>
- <word name='applied'>
- <ref name='xslAddCall'/>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='applies'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='apply'>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='apply-imports'>
- <ref name='xsltApplyImports'/>
- </word>
- <word name='apply-templates'>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemSort'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltApplyTemplates'/>
- </word>
- <word name='applying'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='are'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='argument'>
- <ref name='XSLT_IS_TEXT_NODE'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='arguments'>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltElementAvailableFunction'/>
- <ref name='xsltFormatNumberFunction'/>
- <ref name='xsltFunctionAvailableFunction'/>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltGenerateIdFunction'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltSystemPropertyFunction'/>
- <ref name='xsltUnparsedEntityURIFunction'/>
- </word>
- <word name='array'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltVariableLookup'/>
- </word>
- <word name='arry'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='assign'>
- <ref name='xsltAttrListTemplateProcess'/>
- </word>
- <word name='assigned:'>
- <ref name='_xsltStyleItemDocument'/>
- </word>
- <word name='associated'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltFreeAVTList'/>
- <ref name='xsltFreeDocumentKeys'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- <ref name='xsltTransformFunction'/>
- <ref name='xsltUnregisterExtModule'/>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='attached'>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltSort'/>
- </word>
- <word name='attempt'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='attr'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='attribute-set'>
- <ref name='xsltParseStylesheetAttributeSet'/>
- </word>
- <word name='attribute-sets'>
- <ref name='xsltApplyAttributeSet'/>
- </word>
- <word name='attributes'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='automatically'>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='available'>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='average='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='avoid'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk3'>
- <letter name='b'>
- <word name='bar'>
- <ref name='XSLT_FAST_IF'/>
- </word>
- <word name='based'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltNewLocale'/>
- </word>
- <word name='basically'>
- <ref name='xsltCompileAttr'/>
- </word>
- <word name='been'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='before'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='beginning'>
- <ref name='xsltTimestamp'/>
- </word>
- <word name='behaviour'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='being'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xslAddCall'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSetXIncludeDefault'/>
- </word>
- <word name='between'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltResolveStylesheetAttributeSet'/>
- </word>
- <word name='bit'>
- <ref name='NODE_IS_KEYED'/>
- </word>
- <word name='blank'>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='blanks'>
- <ref name='xsltIsBlank'/>
- </word>
- <word name='block'>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltNewSecurityPrefs'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='blocks'>
- <ref name='XSLT_TODO'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltFreeStylePreComps'/>
- </word>
- <word name='boolean'>
- <ref name='xsltElementAvailableFunction'/>
- <ref name='xsltFunctionAvailableFunction'/>
- </word>
- <word name='both'>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='bound'>
- <ref name='_xsltStackElem'/>
- </word>
- <word name='braces'>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- </word>
- <word name='breakpoint'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='broke'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='buffer'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultTo'/>
- </word>
- <word name='build'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='building'>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- </word>
- <word name='built-in'>
- <ref name='xsltInit'/>
- <ref name='xsltRegisterAllExtras'/>
- <ref name='xsltRegisterExtras'/>
- </word>
- <word name='but'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltSort'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='by:'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltStyleGetExtData'/>
- </word>
- <word name='bypass'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='byte'>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFilename'/>
- </word>
- <word name='bytes'>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- </word>
- </letter>
- <letter name='c'>
- <word name='cache'>
- <ref name='_xsltStackElem'/>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='calibration'>
- <ref name='xsltCalibrateAdjust'/>
- </word>
- <word name='call'>
- <ref name='xslAddCall'/>
- <ref name='xslDropCall'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='call-template'>
- <ref name='_xsltStyleItemCallTemplate'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltCallTemplate'/>
- </word>
- <word name='callback'>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtModuleElementLookup'/>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltRegisterExtModuleElement'/>
- <ref name='xsltRegisterExtModuleFunction'/>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- <ref name='xsltSetSecurityPrefs'/>
- <ref name='xsltXPathFunctionLookup'/>
- </word>
- <word name='callbacks'>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='called'>
- <ref name='_xsltTemplate'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltSort'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='caller'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='calling'>
- <ref name='XSLTCALL'/>
- </word>
- <word name='calls='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='can'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltParseTemplateContent'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='cascading'>
- <ref name='XSLT_GET_IMPORT_INT'/>
- <ref name='XSLT_GET_IMPORT_PTR'/>
- </word>
- <word name='cases'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='casting'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='catch'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='chained'>
- <ref name='_xsltDecimalFormat'/>
- <ref name='_xsltDocument'/>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='change'>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='changed'>
- <ref name='_xsltCompilerNodeInfo'/>
- </word>
- <word name='changes'>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='channel'>
- <ref name='xsltSaveResultTo'/>
- </word>
- <word name='char'>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='character'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='characters'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='chars'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltIsBlank'/>
- </word>
- <word name='check'>
- <ref name='CHECK_STOPPED'/>
- <ref name='CHECK_STOPPED0'/>
- <ref name='CHECK_STOPPEDE'/>
- <ref name='IS_XSLT_ATTR_FAST'/>
- <ref name='IS_XSLT_ELEM_FAST'/>
- <ref name='NODE_IS_KEYED'/>
- <ref name='XSLT_HAS_INTERNAL_NSMAP'/>
- <ref name='XSLT_IS_TEXT_NODE'/>
- <ref name='xsltSecurityCheck'/>
- </word>
- <word name='checking'>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='checks'>
- <ref name='xsltCompileAttr'/>
- </word>
- <word name='child'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='xsltCopyTextString'/>
- </word>
- <word name='clash'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='class:'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='cleared'>
- <ref name='xsltPointerListClear'/>
- </word>
- <word name='close'>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- </word>
- <word name='closed'>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='coalescing'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='code'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='collected'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='collector'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='com'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='combination'>
- <ref name='xsltSetCtxtParseOptions'/>
- </word>
- <word name='coming'>
- <ref name='xsltCompileAttr'/>
- </word>
- <word name='comment'>
- <ref name='xsltComment'/>
- </word>
- <word name='common'>
- <ref name='_xsltElemPreComp'/>
- </word>
- <word name='comp'>
- <ref name='xsltFreeCompMatchList'/>
- </word>
- <word name='compExpr'>
- <ref name='_xsltStyleBasicExpressionItem'/>
- </word>
- <word name='compared'>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='comparison'>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='compatibility'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- </word>
- <word name='compilation'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='compile-time'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltRegisterExtPrefix'/>
- </word>
- <word name='compiled'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyImports'/>
- <ref name='xsltApplyTemplates'/>
- <ref name='xsltCallTemplate'/>
- <ref name='xsltChoose'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltForEach'/>
- <ref name='xsltIf'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltTransformFunction'/>
- </word>
- <word name='compiler'>
- <ref name='XSLT_CCTXT'/>
- </word>
- <word name='compiles'>
- <ref name='xsltParseAnyXSLTElem'/>
- </word>
- <word name='compiling'>
- <ref name='xsltAllocateExtra'/>
- </word>
- <word name='completed'>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='compression'>
- <ref name='xsltSaveResultToFilename'/>
- </word>
- <word name='computation'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- </word>
- <word name='computations'>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- </word>
- <word name='computed'>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltCopy'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- </word>
- <word name='construct'>
- <ref name='xsltMessage'/>
- </word>
- <word name='constructor'>
- <ref name='_xsltStackElem'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltParseSequenceConstructor'/>
- </word>
- <word name='consumption'>
- <ref name='XSLT_PARSE_OPTIONS'/>
- </word>
- <word name='contain'>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- </word>
- <word name='contained'>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='container'>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='containing'>
- <ref name='_xsltTemplate'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltMessage'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='contains'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='content'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltParseTemplateContent'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltPointerListFree'/>
- </word>
- <word name='content-model'>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='contexts'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='control'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='convention'>
- <ref name='XSLTCALL'/>
- </word>
- <word name='converts'>
- <ref name='xsltEvalTemplateString'/>
- </word>
- <word name='copied'>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='copies'>
- <ref name='xsltAttrTemplateProcess'/>
- </word>
- <word name='copy'>
- <ref name='_xsltStyleItemCopy'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='copy-of'>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemSort'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltCopyOf'/>
- </word>
- <word name='copying'>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='correct'>
- <ref name='xsltCalibrateAdjust'/>
- </word>
- <word name='corresponding'>
- <ref name='_xsltElemPreComp'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='created'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFreeLocale'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='creating'>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='creation'>
- <ref name='_xsltCompilerNodeInfo'/>
- </word>
- <word name='cur'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='curly'>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- </word>
- <word name='currently'>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk4'>
- <letter name='d'>
- <word name='data'>
- <ref name='_xsltRuntimeExtra'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltFreeCtxtExts'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltNumberFormat'/>
- <ref name='xsltPreComputeExtModuleElement'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- <ref name='xsltTimestamp'/>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='deallocated'>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- </word>
- <word name='deallocation'>
- <ref name='_xsltRuntimeExtra'/>
- </word>
- <word name='deallocator'>
- <ref name='_xsltElemPreComp'/>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='dealy'>
- <ref name='xsltCalibrateAdjust'/>
- </word>
- <word name='debug'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- </word>
- <word name='debugger'>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='debugging'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='debugtrace'>
- <ref name='XSLT_TRACE'/>
- </word>
- <word name='decimal'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='decimal-format'>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- </word>
- <word name='declaration'>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseStylesheetParam'/>
- </word>
- <word name='declared'>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCopyNamespace'/>
- </word>
- <word name='declares'>
- <ref name='XSLTCALL'/>
- <ref name='XSLTPUBFUN'/>
- <ref name='XSLTPUBLIC'/>
- <ref name='XSLTPUBVAR'/>
- </word>
- <word name='declaring'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='default'>
- <ref name='XSLT_DEFAULT_VERSION'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetXIncludeDefault'/>
- <ref name='xsltRegisterAllElement'/>
- <ref name='xsltRegisterAllFunctions'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetLoaderFunc'/>
- <ref name='xsltSetSortFunc'/>
- <ref name='xsltSetXIncludeDefault'/>
- </word>
- <word name='define'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='XSLT_FAST_IF'/>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='XSLT_REFACTORED_VARS'/>
- <ref name='XSLT_RUNTIME_EXTRA'/>
- </word>
- <word name='defined'>
- <ref name='_xsltTransformContext'/>
- <ref name='xslAddCall'/>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='definition'>
- <ref name='xsltAddKey'/>
- <ref name='xsltInitCtxtKey'/>
- </word>
- <word name='definitions'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='dependent'>
- <ref name='xsltNewLocale'/>
- </word>
- <word name='deprecated'>
- <ref name='xsltRegisterExtras'/>
- </word>
- <word name='depth'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltVarInfo'/>
- <ref name='xsltLocalVariablePop'/>
- </word>
- <word name='derived'>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='description'>
- <ref name='xsltEvalOneUserParam'/>
- </word>
- <word name='descriptions'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='descriptor'>
- <ref name='xsltSaveResultToFd'/>
- </word>
- <word name='desired'>
- <ref name='xsltFindDocument'/>
- <ref name='xsltGetExtInfo'/>
- </word>
- <word name='destroyed'>
- <ref name='XSLT_RVT_FUNC_RESULT'/>
- <ref name='XSLT_RVT_LOCAL'/>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='details'>
- <ref name='xsltEvalOneUserParam'/>
- </word>
- <word name='detected'>
- <ref name='XSLT_STRANGE'/>
- </word>
- <word name='dict'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='dictionary'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='dictionary:'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='different'>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='digit'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='directly'>
- <ref name='xsltSort'/>
- </word>
- <word name='directories'>
- <ref name='xsltCheckWrite'/>
- </word>
- <word name='disable-escaping'>
- <ref name='xsltCopyTextString'/>
- </word>
- <word name='disabled'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='disattached'>
- <ref name='xsltAttrListTemplateProcess'/>
- </word>
- <word name='discard'>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='display'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='distinct'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='doc'>
- <ref name='xsltGetKey'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='docs'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='doctype-public'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='doctype-system'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='documents'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- </word>
- <word name='does'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltPointerListFree'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- </word>
- <word name='doesn'>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='done'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='down'>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='dump'>
- <ref name='xsltProfileStylesheet'/>
- </word>
- <word name='dunno'>
- <ref name='_xsltEffectiveNs'/>
- </word>
- <word name='during'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltSortFunc'/>
- </word>
- </letter>
- <letter name='e'>
- <word name='eclared'>
- <ref name='_xsltEffectiveNs'/>
- </word>
- <word name='effect'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='either'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='element-available'>
- <ref name='xsltElementAvailableFunction'/>
- </word>
- <word name='elements'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltRegisterAllElement'/>
- <ref name='xsltTransformFunction'/>
- </word>
- <word name='else'>
- <ref name='xsltGetExtInfo'/>
- </word>
- <word name='emitted'>
- <ref name='XSLT_TRACE'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='empty'>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- </word>
- <word name='enable'>
- <ref name='XSLT_FAST_IF'/>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='XSLT_REFACTORED_VARS'/>
- </word>
- <word name='enabled'>
- <ref name='_xsltCompilerNodeInfo'/>
- </word>
- <word name='encoded'>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='encoding'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='encountering'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <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'/>
- </word>
- <word name='entity'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='entry'>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='episode'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='equal'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='error:'>
- <ref name='CHECK_STOPPEDE'/>
- </word>
- <word name='errors'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='establish'>
- <ref name='xsltCompileAttr'/>
- </word>
- <word name='etc'>
- <ref name='xsltInit'/>
- </word>
- <word name='eval'>
- <ref name='_xsltStackElem'/>
- </word>
- <word name='evaluate'>
- <ref name='xsltEvalXPathPredicate'/>
- </word>
- <word name='evaluated'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='evaluates'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- </word>
- <word name='evaluation'>
- <ref name='_xsltStackElem'/>
- </word>
- <word name='everything'>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='example'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='except'>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- </word>
- <word name='excluded'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='excluded-result-prefixes'>
- <ref name='_xsltPrincipalStylesheetData'/>
- </word>
- <word name='exctract'>
- <ref name='xsltApplyAttributeSet'/>
- </word>
- <word name='executed'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='execution'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='exension'>
- <ref name='xsltGetExtData'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- </word>
- <word name='existent'>
- <ref name='xsltCopyTextString'/>
- </word>
- <word name='existing'>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='exists'>
- <ref name='xsltParseStylesheetImportedDoc'/>
- </word>
- <word name='exit'>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='exiting'>
- <ref name='XSLT_RVT_FUNC_RESULT'/>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='exits'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='expect'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='exportable'>
- <ref name='XSLTPUBFUN'/>
- <ref name='XSLTPUBVAR'/>
- </word>
- <word name='exported'>
- <ref name='XSLTCALL'/>
- </word>
- <word name='expressed'>
- <ref name='XSLT_PAT_NO_PRIORITY'/>
- </word>
- <word name='expression'>
- <ref name='_xsltStyleBasicExpressionItem'/>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemIf'/>
- <ref name='_xsltStyleItemSort'/>
- <ref name='_xsltStyleItemValueOf'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='expressions'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='exsl:function'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='exslt:function'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='exsltFuncFunctionFunction'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- </word>
- <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>
- <word name='extension-element-prefixes'>
- <ref name='_xsltPrincipalStylesheetData'/>
- </word>
- <word name='extensions'>
- <ref name='XSLT_LIBXSLT_NAMESPACE'/>
- <ref name='XSLT_LOCALE_POSIX'/>
- <ref name='XSLT_SAXON_NAMESPACE'/>
- <ref name='XSLT_XALAN_NAMESPACE'/>
- <ref name='XSLT_XT_NAMESPACE'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltFreeExts'/>
- <ref name='xsltInit'/>
- <ref name='xsltInitGlobals'/>
- <ref name='xsltRegisterAllExtras'/>
- <ref name='xsltRegisterExtras'/>
- </word>
- <word name='external'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='extra'>
- <ref name='XSLT_RUNTIME_EXTRA'/>
- <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
- <ref name='XSLT_RUNTIME_EXTRA_LST'/>
- <ref name='_xsltRuntimeExtra'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltTransformError'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='extract'>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='extras'>
- <ref name='_xsltTransformContext'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk5'>
- <letter name='f'>
- <word name='factor'>
- <ref name='xsltSaveResultToFilename'/>
- </word>
- <word name='failure'>
- <ref name='xsltAddKey'/>
- <ref name='xsltAddStackElemList'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltParseStylesheetImport'/>
- <ref name='xsltParseStylesheetInclude'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltRestoreDocumentNamespaces'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='failures'>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- </word>
- <word name='fast'>
- <ref name='xsltCompilePattern'/>
- </word>
- <word name='fields'>
- <ref name='XSLT_ITEM_COMMON_FIELDS'/>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='file'>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSecurityCheck'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='filename'>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultToFilename'/>
- </word>
- <word name='files'>
- <ref name='XSLT_PARSE_OPTIONS'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='find'>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltFindDocument'/>
- </word>
- <word name='fine'>
- <ref name='xsltParseAnyXSLTElem'/>
- </word>
- <word name='first'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='fixup'>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- </word>
- <word name='flag'>
- <ref name='XSLT_STRANGE'/>
- <ref name='XSLT_TODO'/>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='flags'>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='following'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='foo'>
- <ref name='XSLT_FAST_IF'/>
- </word>
- <word name='for-each'>
- <ref name='xsltForEach'/>
- </word>
- <word name='forbid'>
- <ref name='xsltSecurityForbid'/>
- </word>
- <word name='force'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='form'>
- <ref name='_xsltStackElem'/>
- <ref name='xsltCompilePattern'/>
- </word>
- <word name='format'>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltNumberFormat'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='format-number'>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltFormatNumberFunction'/>
- </word>
- <word name='formats'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='formatting'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltNumberFormat'/>
- </word>
- <word name='forwards-compatible'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- </word>
- <word name='found'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCalibrateAdjust'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltExtModuleElementLookup'/>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltExtModuleFunctionLookup'/>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltNewLocale'/>
- <ref name='xsltVariableLookup'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='fptr'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='fraction'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='fractional'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='fraction}{suffix}'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='fragment'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='fragments'>
- <ref name='XSLT_IS_RES_TREE_FRAG'/>
- <ref name='XSLT_MARK_RES_TREE_FRAG'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='free'>
- <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltElemPreCompDeallocator'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltFreeLocale'/>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltPointerListClear'/>
- <ref name='xsltPointerListFree'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='freed'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltPointerListFree'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='frees'>
- <ref name='xsltReleaseRVT'/>
- </word>
- <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>
- <word name='function-calling'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- </word>
- <word name='functions'>
- <ref name='XSLTCALL'/>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltRegisterAllFunctions'/>
- </word>
- <word name='future'>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- </letter>
- <letter name='g'>
- <word name='garbage'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='gathering'>
- <ref name='xsltTimestamp'/>
- </word>
- <word name='gcc'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='gcc4'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='general'>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- </word>
- <word name='generally'>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='generate'>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='generate-id'>
- <ref name='xsltGenerateIdFunction'/>
- </word>
- <word name='generated'>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='generates'>
- <ref name='xsltCompilePattern'/>
- </word>
- <word name='get'>
- <ref name='XSLT_CCTXT'/>
- <ref name='XSLT_GET_INTERNAL_NSMAP'/>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetSecurityPrefs'/>
- </word>
- <word name='given'>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- <ref name='xsltVariableLookup'/>
- </word>
- <word name='gives'>
- <ref name='xsltTransformError'/>
- </word>
- <word name='giving'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='global'>
- <ref name='XSLT_RVT_GLOBAL'/>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltInitGlobals'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetSortFunc'/>
- </word>
- <word name='goto'>
- <ref name='CHECK_STOPPEDE'/>
- </word>
- <word name='grafted'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- </word>
- <word name='group'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='grouping'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk6'>
- <letter name='h'>
- <word name='handle'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetLoaderFunc'/>
- </word>
- <word name='handler'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetSortFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='handles'>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='handling'>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='hard-wire'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='has'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='hash'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='hashtable'>
- <ref name='xsltNormalizeCompSteps'/>
- </word>
- <word name='have'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltEvalOneUserParam'/>
- </word>
- <word name='held'>
- <ref name='_xsltElemPreComp'/>
- </word>
- <word name='hence'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='hold'>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- </word>
- <word name='holding'>
- <ref name='_xsltNsMap'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- </word>
- <word name='holds'>
- <ref name='xsltInitCtxtKey'/>
- </word>
- <word name='hosting'>
- <ref name='xsltEvalAVT'/>
- </word>
- <word name='how'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='href'>
- <ref name='xsltGetNamespace'/>
- </word>
- <word name='html'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='http:'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- </letter>
- <letter name='i'>
- <word name='identifier'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='ignorable'>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltIsBlank'/>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='implementation'>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- </word>
- <word name='implemented'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='import'>
- <ref name='XSLT_GET_IMPORT_INT'/>
- <ref name='XSLT_GET_IMPORT_PTR'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltNextImport'/>
- <ref name='xsltParseStylesheetImport'/>
- </word>
- <word name='imported'>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- </word>
- <word name='imports'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltCleanupTemplates'/>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='in-scope'>
- <ref name='XSLT_ITEM_NSINSCOPE_FIELDS'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='xsltEvalXPathStringNs'/>
- </word>
- <word name='include'>
- <ref name='xsltParseStylesheetInclude'/>
- </word>
- <word name='included'>
- <ref name='xsltSaveResultToFilename'/>
- </word>
- <word name='includes'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='inclusive'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='indented'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='index'>
- <ref name='nr'/>
- </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'>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- </word>
- <word name='info'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='infos'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='xsltFindDocument'/>
- </word>
- <word name='inherited'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='initial'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltPointerListCreate'/>
- </word>
- <word name='initialization'>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltStyleExtInitFunction'/>
- </word>
- <word name='initialized'>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltNewElemPreComp'/>
- </word>
- <word name='initializes'>
- <ref name='xsltNewElemPreComp'/>
- </word>
- <word name='initiate'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='input'>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltInitCtxtKeys'/>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltTransformFunction'/>
- </word>
- <word name='insertion'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='inspected'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='instances'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='instantiated'>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='instead'>
- <ref name='xsltRegisterExtras'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='instructions'>
- <ref name='XSLT_RVT_LOCAL'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltParseAnyXSLTElem'/>
- </word>
- <word name='integer'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='intended'>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='interest'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='interface'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='intergers'>
- <ref name='XSLT_GET_IMPORT_INT'/>
- </word>
- <word name='internal'>
- <ref name='UNDEFINED_DEFAULT_NS'/>
- <ref name='XSLT_IS_RES_TREE_FRAG'/>
- <ref name='XSLT_MARK_RES_TREE_FRAG'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltCreateRVT'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltParseAnyXSLTElem'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='internalized'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='internally'>
- <ref name='XSLT_STRANGE'/>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='interpretation'>
- <ref name='_xsltDecimalFormat'/>
- </word>
- <word name='interpreter'>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='interpretor'>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='into'>
- <ref name='xsltSetDebuggerCallbacks'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='invoking'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='isn'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='issues'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='item'>
- <ref name='_xsltEffectiveNs'/>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xslDropCall'/>
- <ref name='xsltPointerListAddSize'/>
- </word>
- <word name='item1'>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='item2|item3'>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='items'>
- <ref name='XSLT_ITEM_COMMON_FIELDS'/>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='its'>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- </word>
- <word name='itself'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- </letter>
- <letter name='j'>
- <word name='java'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='jdk'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='just'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- </letter>
- <letter name='k'>
- <word name='keep'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='keeping'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='kept'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='_xsltDocument'/>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='key'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAddKey'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- </word>
- <word name='keys'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltFreeDocumentKeys'/>
- <ref name='xsltFreeKeys'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='kind'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='known'>
- <ref name='_xsltTransformContext'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk7'>
- <letter name='l'>
- <word name='label'>
- <ref name='CHECK_STOPPEDE'/>
- </word>
- <word name='language'>
- <ref name='xsltNewLocale'/>
- <ref name='xsltTransformFunction'/>
- </word>
- <word name='last'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltNextImport'/>
- </word>
- <word name='later'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='lead'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='leaks'>
- <ref name='xsltAttrListTemplateProcess'/>
- </word>
- <word name='leaving'>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='left'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='len'>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='level'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- <ref name='xsltLocalVariablePush'/>
- </word>
- <word name='libexsl'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='library'>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- <ref name='xsltUnregisterExtModule'/>
- </word>
- <word name='libxml2'>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <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'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='lifetime'>
- <ref name='_xsltStackElem'/>
- </word>
- <word name='like'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltSecurityCheck'/>
- <ref name='xsltTransformFunction'/>
- </word>
- <word name='line'>
- <ref name='xsltTransformError'/>
- </word>
- <word name='literal'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltEffectiveNs'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='literally'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='load'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltSetLoaderFunc'/>
- </word>
- <word name='loaded'>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltSetXIncludeDefault'/>
- <ref name='xsltShutdownCtxtExts'/>
- <ref name='xsltShutdownExts'/>
- </word>
- <word name='loading'>
- <ref name='XSLT_PARSE_OPTIONS'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltSetLoaderFunc'/>
- </word>
- <word name='local'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- <ref name='xsltSplitQName'/>
- </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'/>
- <ref name='xsltNewLocale'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='localname'>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='locate'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='location'>
- <ref name='_xsltStackElem'/>
- </word>
- <word name='look'>
- <ref name='xsltGetKey'/>
- <ref name='xsltGetTemplate'/>
- </word>
- <word name='looks'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='lookup'>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetSecurityPrefs'/>
- </word>
- <word name='lost'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- </letter>
- <letter name='m'>
- <word name='macro'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='XSLT_GET_IMPORT_INT'/>
- <ref name='XSLT_GET_IMPORT_PTR'/>
- <ref name='XSLT_IS_RES_TREE_FRAG'/>
- <ref name='XSLT_MARK_RES_TREE_FRAG'/>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='made'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltIsBlank'/>
- </word>
- <word name='main'>
- <ref name='_xsltDocument'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='make'>
- <ref name='xsltAllocateExtraCtxt'/>
- </word>
- <word name='makes'>
- <ref name='xsltCheckWrite'/>
- </word>
- <word name='map'>
- <ref name='XSLT_GET_INTERNAL_NSMAP'/>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='xsltRestoreDocumentNamespaces'/>
- </word>
- <word name='mapped'>
- <ref name='_xsltNsMap'/>
- </word>
- <word name='mapping'>
- <ref name='XSLT_HAS_INTERNAL_NSMAP'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalXPathStringNs'/>
- </word>
- <word name='marked'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- </word>
- <word name='mask'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- </word>
- <word name='massive'>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='match'>
- <ref name='xsltAddKey'/>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltNormalizeCompSteps'/>
- </word>
- <word name='match='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='matches'>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='matching'>
- <ref name='_xsltTemplate'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltNewLocale'/>
- </word>
- <word name='may'>
- <ref name='_xsltDecimalFormat'/>
- <ref name='xslAddCall'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='means'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='mechanism'>
- <ref name='xsltFreeTemplateHashes'/>
- </word>
- <word name='mechanisms'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='memory'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltFreeAVTList'/>
- <ref name='xsltFreeAttributeSetsHashes'/>
- <ref name='xsltFreeCompMatchList'/>
- <ref name='xsltFreeExts'/>
- <ref name='xsltFreeKeys'/>
- <ref name='xsltFreeNamespaceAliasHashes'/>
- <ref name='xsltFreeStackElemList'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltFreeStylesheet'/>
- <ref name='xsltFreeTemplateHashes'/>
- <ref name='xsltFreeTransformContext'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='message'>
- <ref name='xsltMessage'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='messages'>
- <ref name='XSLT_TRACE'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='method'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='might'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='mille'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='milliseconds'>
- <ref name='xsltTimestamp'/>
- </word>
- <word name='mode'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAddTemplate'/>
- </word>
- <word name='mode='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='models'>
- <ref name='xsltParseAnyXSLTElem'/>
- </word>
- <word name='modified'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='modules'>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltShutdownCtxtExts'/>
- <ref name='xsltShutdownExts'/>
- </word>
- <word name='more'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='multiple'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='multiply'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='must'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltAttrTemplateValueProcess'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAVT'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltStrxfrm'/>
- </word>
- </letter>
- <letter name='n'>
- <word name='name='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='nameURI'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='named'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='names'>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='namespace-alias'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='namespaces'>
- <ref name='XSLT_ITEM_NSINSCOPE_FIELDS'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltKeyDef'/>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltFreeNamespaceAliasHashes'/>
- <ref name='xsltRestoreDocumentNamespaces'/>
- </word>
- <word name='navigational'>
- <ref name='XSLT_ITEM_NAVIGATION_FIELDS'/>
- </word>
- <word name='necessary'>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='need'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='_xsltStyleItemDocument'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='needed'>
- <ref name='_xsltEffectiveNs'/>
- <ref name='_xsltStackElem'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCompileAttr'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathGetTransformContext'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='needs'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltGetTemplate'/>
- </word>
- <word name='negative'>
- <ref name='xsltCalibrateAdjust'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <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'/>
- <ref name='xsltNewStylesheet'/>
- <ref name='xsltNewTransformContext'/>
- </word>
- <word name='next'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='_xsltEffectiveNs'/>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltNsAlias'/>
- <ref name='_xsltNsList'/>
- <ref name='_xsltNsMap'/>
- <ref name='_xsltVarInfo'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltNextImport'/>
- </word>
- <word name='node-set'>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltFunctionNodeSet'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltSortFunc'/>
- </word>
- <word name='node-set?'>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltGenerateIdFunction'/>
- </word>
- <word name='node-trees'>
- <ref name='xsltFreeStyleDocuments'/>
- </word>
- <word name='nodes'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltParseTemplateContent'/>
- <ref name='xsltSort'/>
- </word>
- <word name='nodeset'>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltGetKey'/>
- </word>
- <word name='non'>
- <ref name='xsltAttrListTemplateProcess'/>
- </word>
- <word name='non-NULL'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetTemplate'/>
- </word>
- <word name='non-excluded'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='non-wellformed'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='none'>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='nor'>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='normal'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- </word>
- <word name='normalize'>
- <ref name='xsltNormalizeCompSteps'/>
- </word>
- <word name='normally'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='nothing'>
- <ref name='xsltApplyAttributeSet'/>
- </word>
- <word name='now'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- </word>
- <word name='nowhere'>
- <ref name='_xsltStyleItemDocument'/>
- </word>
- <word name='ns-decl'>
- <ref name='_xsltNsMap'/>
- </word>
- <word name='ns-declaration'>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='ns-declarations'>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='ns-name'>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='ns-prefix'>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='ns-prefixes'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='null'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk8'>
- <letter name='o'>
- <word name='object'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='xsltDocumentFunction'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltKeyFunction'/>
- <ref name='xsltSystemPropertyFunction'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='obsolete'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltDocumentSortFunction'/>
- </word>
- <word name='obtained'>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='occcur'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='occurences'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='off'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xslDropCall'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='often'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='old'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltRegisterExtPrefix'/>
- </word>
- <word name='on-demand'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- </word>
- <word name='once'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='one'>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltNextImport'/>
- <ref name='xsltNumberFormat'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='one:'>
- <ref name='IS_XSLT_REAL_NODE'/>
- </word>
- <word name='ones'>
- <ref name='xsltCleanupTemplates'/>
- </word>
- <word name='only'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltExtElementLookup'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='onto'>
- <ref name='xsltAddStackElemList'/>
- <ref name='xsltLocalVariablePush'/>
- </word>
- <word name='opaque'>
- <ref name='xsltNewLocale'/>
- </word>
- <word name='open'>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- </word>
- <word name='operation'>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityForbid'/>
- </word>
- <word name='optimization'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='option'>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='optional'>
- <ref name='xsltRegisterExtPrefix'/>
- </word>
- <word name='options'>
- <ref name='XSLT_PARSE_OPTIONS'/>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltSetCtxtParseOptions'/>
- </word>
- <word name='order'>
- <ref name='XSLT_GET_IMPORT_INT'/>
- <ref name='XSLT_GET_IMPORT_PTR'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltDocumentSortFunction'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='ordered'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltComputeSortResult'/>
- </word>
- <word name='original'>
- <ref name='_xsltNsMap'/>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='other'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='otherwise'>
- <ref name='xslAddCall'/>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltExtModuleElementLookup'/>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltExtModuleFunctionLookup'/>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltGetXIncludeDefault'/>
- <ref name='xsltIsBlank'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='out'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='output'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltParseStylesheetOutput'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultTo'/>
- </word>
- <word name='outside'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- </word>
- <word name='over'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- </word>
- <word name='overhead'>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='own'>
- <ref name='xsltApplyStylesheetUser'/>
- </word>
- <word name='ownership'>
- <ref name='xsltFlagRVTs'/>
- </word>
- <word name='owning'>
- <ref name='_xsltCompilerNodeInfo'/>
- </word>
- </letter>
- <letter name='p'>
- <word name='param'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseStylesheetParam'/>
- </word>
- <word name='parameter'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='parameters'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='params'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='parent'>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- </word>
- <word name='parse'>
- <ref name='xsltParseGlobalParam'/>
- <ref name='xsltParseStylesheetAttributeSet'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltParseStylesheetImport'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetInclude'/>
- <ref name='xsltParseStylesheetOutput'/>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='parsed'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltNewDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltNewTransformContext'/>
- <ref name='xsltParseSequenceConstructor'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='parser'>
- <ref name='xsltFreeTransformContext'/>
- <ref name='xsltSetCtxtParseOptions'/>
- </word>
- <word name='parsing'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='part'>
- <ref name='XSLT_REFACTORED_VARS'/>
- <ref name='XSLT_RVT_FUNC_RESULT'/>
- <ref name='XSLT_RVT_GLOBAL'/>
- <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'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='passed'>
- <ref name='xsltProcessOneNode'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='path'>
- <ref name='xsltSecurityCheck'/>
- </word>
- <word name='pattern'>
- <ref name='XSLT_PAT_NO_PRIORITY'/>
- <ref name='_xsltDecimalFormat'/>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltAddTemplate'/>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='patterns'>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='per'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='percent'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='percentage'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='permille'>
- <ref name='_xsltFormatNumberInfo'/>
- </word>
- <word name='persistance'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='persistant'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='persistent'>
- <ref name='_xsltStackElem'/>
- </word>
- <word name='pertaining'>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='pertains'>
- <ref name='IS_XSLT_ELEM'/>
- </word>
- <word name='place'>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='placeholder'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='plug'>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='point'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='pointers'>
- <ref name='XSLT_GET_IMPORT_PTR'/>
- </word>
- <word name='points'>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='pops'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='position'>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='possible'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='possibly'>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- </word>
- <word name='pre-computation'>
- <ref name='xsltExtModuleElementPreComputeLookup'/>
- <ref name='xsltRegisterExtModuleElement'/>
- </word>
- <word name='pre-processing'>
- <ref name='_xsltDocument'/>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='precedence'>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltNextImport'/>
- </word>
- <word name='precision'>
- <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
- </word>
- <word name='precompiled'>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemIf'/>
- <ref name='_xsltStyleItemSort'/>
- <ref name='_xsltStyleItemValueOf'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltCompMatchClearCache'/>
- <ref name='xsltCompilePattern'/>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='precomputed'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltComment'/>
- <ref name='xsltCopyOf'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltElement'/>
- <ref name='xsltFreeStylePreComps'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltNumber'/>
- <ref name='xsltPreComputeExtModuleElement'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltSort'/>
- <ref name='xsltText'/>
- <ref name='xsltValueOf'/>
- </word>
- <word name='predicate'>
- <ref name='xsltEvalXPathPredicate'/>
- </word>
- <word name='preference'>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltNewSecurityPrefs'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- </word>
- <word name='preferences'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='prefix'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltSplitQName'/>
- </word>
- <word name='prefixed'>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- </word>
- <word name='prefixes'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='preliminary'>
- <ref name='xsltCheckWrite'/>
- </word>
- <word name='present'>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltGetExtData'/>
- <ref name='xsltStyleGetExtData'/>
- <ref name='xsltStyleStylesheetLevelGetExtData'/>
- </word>
- <word name='preserve'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='preserve-space'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltFindElemSpaceHandling'/>
- </word>
- <word name='previous'>
- <ref name='xsltSetCtxtParseOptions'/>
- </word>
- <word name='prevompiled'>
- <ref name='xsltEvalAVT'/>
- </word>
- <word name='principal'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='printed'>
- <ref name='xslAddCall'/>
- </word>
- <word name='priority'>
- <ref name='XSLT_PAT_NO_PRIORITY'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='problem'>
- <ref name='XSLT_STRANGE'/>
- </word>
- <word name='processed'>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xslAddCall'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltPrintErrorContext'/>
- <ref name='xsltSetXIncludeDefault'/>
- </word>
- <word name='processing'>
- <ref name='CHECK_STOPPED'/>
- <ref name='CHECK_STOPPED0'/>
- <ref name='CHECK_STOPPEDE'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltDebug'/>
- <ref name='xsltDocumentElem'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltGetXIncludeDefault'/>
- <ref name='xsltMessage'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltSetXIncludeDefault'/>
- </word>
- <word name='processing-instruction'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltProcessingInstruction'/>
- </word>
- <word name='processor'>
- <ref name='XSLT_DEFAULT_URL'/>
- <ref name='XSLT_DEFAULT_VENDOR'/>
- <ref name='XSLT_SAXON_NAMESPACE'/>
- <ref name='XSLT_XALAN_NAMESPACE'/>
- <ref name='XSLT_XT_NAMESPACE'/>
- <ref name='xsltInit'/>
- <ref name='xsltUninit'/>
- </word>
- <word name='produce'>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='products'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='profile'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='profiled'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='profiling'>
- <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltSaveProfiling'/>
- <ref name='xsltTimestamp'/>
- </word>
- <word name='progressive'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='project'>
- <ref name='XSLT_XALAN_NAMESPACE'/>
- </word>
- <word name='properties'>
- <ref name='xsltAttrListTemplateProcess'/>
- </word>
- <word name='provide'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltApplyStylesheetUser'/>
- </word>
- <word name='provided'>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSecurityCheck'/>
- </word>
- <word name='public'>
- <ref name='XSLTPUBLIC'/>
- </word>
- <word name='public?'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- </word>
- <word name='purpose'>
- <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
- <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
- </word>
- <word name='pushed'>
- <ref name='xsltLocalVariablePush'/>
- </word>
- <word name='pushes'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk9'>
- <letter name='q'>
- <word name='query'>
- <ref name='xsltGetKey'/>
- </word>
- <word name='quick'>
- <ref name='IS_XSLT_ATTR_FAST'/>
- <ref name='IS_XSLT_ELEM_FAST'/>
- </word>
- <word name='quote'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- </letter>
- <letter name='r'>
- <word name='raise'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='rank='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='read'>
- <ref name='xsltCheckRead'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='read:'>
- <ref name='_xsltStyleItemDocument'/>
- </word>
- <word name='ready'>
- <ref name='xsltAllocateExtraCtxt'/>
- </word>
- <word name='real'>
- <ref name='IS_XSLT_REAL_NODE'/>
- </word>
- <word name='really'>
- <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'/>
- </word>
- <word name='recorded'>
- <ref name='xsltParseStylesheetCallerParam'/>
- </word>
- <word name='recursions'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='recursive'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='refactored'>
- <ref name='XSLT_REFACTORED_VARS'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='reference'>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='references'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltResolveStylesheetAttributeSet'/>
- </word>
- <word name='referencing'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='reflect'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- </word>
- <word name='reflected'>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='register'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='registered'>
- <ref name='xsltDebugDumpExtensions'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltRegisterExtPrefix'/>
- </word>
- <word name='registers'>
- <ref name='xsltInit'/>
- <ref name='xsltParseGlobalVariable'/>
- </word>
- <word name='related'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltParseStylesheetOutput'/>
- </word>
- <word name='releases'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='remain'>
- <ref name='xsltLocalVariablePop'/>
- </word>
- <word name='remove'>
- <ref name='xsltParseSequenceConstructor'/>
- </word>
- <word name='reorder'>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltDocumentSortFunction'/>
- </word>
- <word name='replace'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='replacement'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='report'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='reports'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='represented'>
- <ref name='xsltFreeStyleDocuments'/>
- </word>
- <word name='representing'>
- <ref name='xsltFreeStyleDocuments'/>
- </word>
- <word name='requested'>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='required'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='requirement'>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- </word>
- <word name='requires'>
- <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'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='resets'>
- <ref name='xsltSetLoaderFunc'/>
- </word>
- <word name='resolution'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='resolve'>
- <ref name='xsltResolveStylesheetAttributeSet'/>
- </word>
- <word name='resource'>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='respect'>
- <ref name='xsltFindElemSpaceHandling'/>
- </word>
- <word name='restored'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='restricts'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='result-prefix'>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='result-tree'>
- <ref name='xsltFunctionNodeSet'/>
- </word>
- <word name='resulting'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltGetKey'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='results'>
- <ref name='XSLT_RVT_FUNC_RESULT'/>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='retrieve'>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <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'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAVT'/>
- <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'/>
- </word>
- <word name='rid'>
- <ref name='_xsltPrincipalStylesheetData'/>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='right'>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='root'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='xsltApplyStripSpaces'/>
- </word>
- <word name='routine'>
- <ref name='_xsltRuntimeExtra'/>
- <ref name='xsltLocalVariablePush'/>
- </word>
- <word name='routines'>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='rule'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='rules'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='run'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='run-time'>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltCompilePattern'/>
- </word>
- <word name='running'>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='runtime'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- </letter>
- <letter name='s'>
- <word name='s390'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='same'>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetPlainNamespace'/>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='sane'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='saving'>
- <ref name='xsltSaveProfiling'/>
- </word>
- <word name='saxon'>
- <ref name='xsltFunctionNodeSet'/>
- </word>
- <word name='scanner'>
- <ref name='xsltNormalizeCompSteps'/>
- </word>
- <word name='scope'>
- <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>
- <word name='seaches'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='search'>
- <ref name='xsltExtElementLookup'/>
- </word>
- <word name='section'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='security'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltCheckRead'/>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltFreeSecurityPrefs'/>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltNewSecurityPrefs'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='see'>
- <ref name='xsltEvalOneUserParam'/>
- </word>
- <word name='semantic'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='separates'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='separator'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='sequence'>
- <ref name='_xsltStackElem'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltEvalTemplateString'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltParseSequenceConstructor'/>
- </word>
- <word name='set'>
- <ref name='NODE_IS_KEYED'/>
- <ref name='XSLT_MARK_RES_TREE_FRAG'/>
- <ref name='XSLT_PARSE_OPTIONS'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltDocumentSortFunction'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetDebuggerStatus'/>
- <ref name='xsltShutdownCtxtExts'/>
- <ref name='xsltShutdownExts'/>
- </word>
- <word name='sets'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltFreeAttributeSetsHashes'/>
- <ref name='xsltResolveStylesheetAttributeSet'/>
- <ref name='xsltSetDebuggerStatus'/>
- </word>
- <word name='setting'>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='shared'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='sheet'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltNewStyleDocument'/>
- </word>
- <word name='should'>
- <ref name='CHECK_STOPPED'/>
- <ref name='CHECK_STOPPED0'/>
- <ref name='CHECK_STOPPEDE'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltDocumentSortFunction'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltFreeRVTs'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltSetXIncludeDefault'/>
- <ref name='xsltSort'/>
- </word>
- <word name='show'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='shows'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='shutdown'>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltFreeLocales'/>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- </word>
- <word name='sibling'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- </word>
- <word name='side'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='signalled'>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='signature'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='similar'>
- <ref name='xsltGetQNameURI2'/>
- </word>
- <word name='simplified'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='simply'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='since'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltTimestamp'/>
- </word>
- <word name='single'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='size'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltPointerListCreate'/>
- </word>
- <word name='slightly'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='slot'>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltAllocateExtraCtxt'/>
- </word>
- <word name='slow'>
- <ref name='xsltDocumentSortFunction'/>
- </word>
- <word name='some'>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltCompileAttr'/>
- </word>
- <word name='something'>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='sorted'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='sorting'>
- <ref name='xsltComputeSortResult'/>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltSetSortFunc'/>
- <ref name='xsltSortFunc'/>
- </word>
- <word name='sorts'>
- <ref name='xsltDefaultSortFunction'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltSortFunc'/>
- </word>
- <word name='space'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltFreeDocuments'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- </word>
- <word name='spaces'>
- <ref name='xsltApplyStripSpaces'/>
- </word>
- <word name='spec'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='special'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='specialCharacters'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='specific'>
- <ref name='XSLT_LIBXSLT_NAMESPACE'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='specification'>
- <ref name='XSLT_NAMESPACE'/>
- </word>
- <word name='specified'>
- <ref name='XSLT_MAX_SORT'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSetCtxtSortFunc'/>
- </word>
- <word name='specify'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='spent'>
- <ref name='_xsltTemplate'/>
- </word>
- <word name='stack'>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xslAddCall'/>
- <ref name='xslDropCall'/>
- <ref name='xsltAddStackElemList'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltFreeStackElemList'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltLocalVariablePush'/>
- </word>
- <word name='standalone'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='start'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltEvalGlobalVariables'/>
- </word>
- <word name='start-node'>
- <ref name='xsltParseSequenceConstructor'/>
- </word>
- <word name='starting'>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='state'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltCleanupTemplates'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltGetXIncludeDefault'/>
- </word>
- <word name='states'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='static'>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- </word>
- <word name='statically'>
- <ref name='xsltAllocateExtra'/>
- </word>
- <word name='status'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='stderr'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='stdout'>
- <ref name='xsltDebugDumpExtensions'/>
- </word>
- <word name='steps'>
- <ref name='xsltNormalizeCompSteps'/>
- </word>
- <word name='still'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='stopped'>
- <ref name='CHECK_STOPPED'/>
- <ref name='CHECK_STOPPED0'/>
- <ref name='CHECK_STOPPEDE'/>
- </word>
- <word name='storage'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='_xsltDocument'/>
- <ref name='_xsltEffectiveNs'/>
- </word>
- <word name='store'>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='stored'>
- <ref name='XSLT_RUNTIME_EXTRA'/>
- <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
- <ref name='XSLT_RUNTIME_EXTRA_LST'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='stores'>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='str1'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='str2'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='strict'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='string?'>
- <ref name='xsltFormatNumberFunction'/>
- </word>
- <word name='strings'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='strip-space'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltFindElemSpaceHandling'/>
- </word>
- <word name='stripped'>
- <ref name='xsltFindElemSpaceHandling'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- </word>
- <word name='stripping'>
- <ref name='xsltNeedElemSpaceHandling'/>
- </word>
- <word name='struct'>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltParseStylesheetUser'/>
- </word>
- <word name='structure'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='_xsltNsMap'/>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltElemPreCompDeallocator'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetFile'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltPointerListAddSize'/>
- <ref name='xsltPointerListCreate'/>
- <ref name='xsltPointerListFree'/>
- </word>
- <word name='structured'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='structures'>
- <ref name='xsltCompileAttr'/>
- <ref name='xsltFreeAVTList'/>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='stuff'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='style'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltGetTemplate'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltNewStyleDocument'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='stylesheet-level'>
- <ref name='xsltFreeStyleDocuments'/>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='stylesheet-modules'>
- <ref name='xsltFreeStyleDocuments'/>
- </word>
- <word name='stylesheet-prefix'>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='stylesheets'>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='subpattern'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='subpattern{'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='subpattern}'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='subsequent'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='subsidiary'>
- <ref name='_xsltDocument'/>
- </word>
- <word name='substituted'>
- <ref name='xsltEvalAttrValueTemplate'/>
- </word>
- <word name='substitution'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='subtree'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='success'>
- <ref name='xsltAddKey'/>
- <ref name='xsltAddStackElemList'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltInitAllDocKeys'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltLocalVariablePush'/>
- <ref name='xsltParseStylesheetImport'/>
- <ref name='xsltParseStylesheetInclude'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltRestoreDocumentNamespaces'/>
- <ref name='xsltSaveResultToString'/>
- <ref name='xsltSetDebuggerCallbacks'/>
- </word>
- <word name='successful'>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltRegisterExtModuleElement'/>
- <ref name='xsltRegisterExtModuleFunction'/>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- <ref name='xsltUnregisterExtModuleElement'/>
- <ref name='xsltUnregisterExtModuleFunction'/>
- <ref name='xsltUnregisterExtModuleTopLevel'/>
- </word>
- <word name='sucess'>
- <ref name='xslAddCall'/>
- </word>
- <word name='sucessful'>
- <ref name='xsltRegisterExtModule'/>
- <ref name='xsltRegisterExtModuleFull'/>
- <ref name='xsltUnregisterExtModule'/>
- </word>
- <word name='such'>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- </word>
- <word name='suffix'>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='suggested'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='suitable'>
- <ref name='xsltCompilePattern'/>
- </word>
- <word name='sun'>
- <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'/>
- </word>
- <word name='sure'>
- <ref name='xsltAllocateExtraCtxt'/>
- </word>
- <word name='symbol'>
- <ref name='XSLTPUBLIC'/>
- </word>
- <word name='system'>
- <ref name='xsltNewLocale'/>
- </word>
- <word name='system-property'>
- <ref name='xsltSystemPropertyFunction'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk10'>
- <letter name='t'>
- <word name='table'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltGetExtInfo'/>
- <ref name='xsltNormalizeCompSteps'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='tables'>
- <ref name='_xsltDocument'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='tag'>
- <ref name='xsltNewLocale'/>
- </word>
- <word name='target'>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='targetted'>
- <ref name='xsltApplyStylesheetUser'/>
- </word>
- <word name='temlate'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='templates'>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltCleanupTemplates'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltFreeAVTList'/>
- </word>
- <word name='templtaes'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='templtes'>
- <ref name='_xsltTemplate'/>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='temporary'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltFindDocument'/>
- </word>
- <word name='tenth'>
- <ref name='xsltTimestamp'/>
- </word>
- <word name='term'>
- <ref name='xsltCreateRVT'/>
- </word>
- <word name='term:'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='terminated'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='terms'>
- <ref name='xsltParseSequenceConstructor'/>
- </word>
- <word name='test'>
- <ref name='XSLT_IS_RES_TREE_FRAG'/>
- <ref name='xsltRegisterTestModule'/>
- </word>
- <word name='test='>
- <ref name='XSLT_FAST_IF'/>
- </word>
- <word name='tests'>
- <ref name='XSLT_FAST_IF'/>
- </word>
- <word name='text'>
- <ref name='IS_XSLT_REAL_NODE'/>
- <ref name='XSLT_IS_TEXT_NODE'/>
- <ref name='_xsltStyleItemText'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltStylesheet'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltSaveResultToString'/>
- <ref name='xsltText'/>
- </word>
- <word name='than'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='that'>
- <ref name='IS_XSLT_ELEM'/>
- <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'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='them'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='themselve'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='then'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltApplyAttributeSet'/>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltSetCtxtSortFunc'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='there'>
- <ref name='XSLT_LOCALE_NONE'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltAllocateExtraCtxt'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetXIncludeDefault'/>
- </word>
- <word name='they'>
- <ref name='xsltEvalAttrValueTemplate'/>
- </word>
- <word name='those'>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- <word name='time'>
- <ref name='_xsltTemplate'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltCompileAttr'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltExtInitFunction'/>
- <ref name='xsltExtShutdownFunction'/>
- <ref name='xsltParseGlobalVariable'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltParseStylesheetParam'/>
- <ref name='xsltParseStylesheetVariable'/>
- <ref name='xsltStyleExtInitFunction'/>
- <ref name='xsltStyleExtShutdownFunction'/>
- </word>
- <word name='time='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='top-level'>
- <ref name='xsltExtModuleTopLevelLookup'/>
- <ref name='xsltRegisterExtModuleTopLevel'/>
- <ref name='xsltUnregisterExtModuleTopLevel'/>
- </word>
- <word name='topmost'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xslDropCall'/>
- </word>
- <word name='tracing'>
- <ref name='xsltDebugGetDefaultTrace'/>
- <ref name='xsltDebugSetDefaultTrace'/>
- </word>
- <word name='track'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='transfer'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='transform'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltNewElemPreComp'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='transformation-time'>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='transformations'>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='transformed'>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='transmit'>
- <ref name='xsltTransformError'/>
- </word>
- <word name='transromation'>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='treated'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='trees'>
- <ref name='xsltFreeRVTs'/>
- </word>
- <word name='tries'>
- <ref name='xsltLoadStylesheetPI'/>
- </word>
- <word name='trigger'>
- <ref name='_xsltCompilerNodeInfo'/>
- </word>
- <word name='true'>
- <ref name='xsltEvalXPathPredicate'/>
- </word>
- <word name='try'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='tuples'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='turned'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='two'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='type'>
- <ref name='XSLT_TRACE'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltElemPreComp'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltNewLocale'/>
- </word>
- </letter>
- <letter name='u'>
- <word name='ultimately'>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='undeclare'>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='undefined'>
- <ref name='UNDEFINED_DEFAULT_NS'/>
- </word>
- <word name='unfortunately'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='unimplemented'>
- <ref name='XSLT_TODO'/>
- </word>
- <word name='unless'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='unparsed-entity-uri'>
- <ref name='xsltUnparsedEntityURIFunction'/>
- </word>
- <word name='unstructured'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='unsupported'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- </word>
- <word name='unused'>
- <ref name='xsltDocumentComp'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityForbid'/>
- </word>
- <word name='unwanted'>
- <ref name='xsltApplyStripSpaces'/>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='update'>
- <ref name='xsltGetSecurityPrefs'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='usage'>
- <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'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltRegisterExtras'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSecurityAllow'/>
- <ref name='xsltSecurityForbid'/>
- <ref name='xsltSetCtxtSecurityPrefs'/>
- <ref name='xsltSetDefaultSecurityPrefs'/>
- <ref name='xsltSetSecurityPrefs'/>
- <ref name='xsltSortFunc'/>
- <ref name='xsltTemplateProcess'/>
- <ref name='xsltTransformError'/>
- </word>
- <word name='use:'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='useful'>
- <ref name='xsltXPathGetTransformContext'/>
- </word>
- <word name='usefull'>
- <ref name='xsltInitElemPreComp'/>
- </word>
- <word name='user'>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSetSecurityPrefs'/>
- </word>
- <word name='user-code'>
- <ref name='xsltFreeRVTs'/>
- </word>
- <word name='user-provided'>
- <ref name='xsltParseStylesheetUser'/>
- </word>
- <word name='users!'>
- <ref name='xsltLocalVariablePush'/>
- </word>
- <word name='uses'>
- <ref name='xsltFormatNumberConversion'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='using'>
- <ref name='xsltDoSortFunction'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltEvalXPathString'/>
- <ref name='xsltEvalXPathStringNs'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSetCtxtParseOptions'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk11'>
- <letter name='v'>
- <word name='validates'>
- <ref name='xsltParseAnyXSLTElem'/>
- </word>
- <word name='validating'>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- </word>
- <word name='value-of'>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemSort'/>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltValueOf'/>
- </word>
- <word name='value-returning'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='values'>
- <ref name='_xsltStylePreComp'/>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltApplyStylesheetUser'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltInitCtxtKey'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltProfileStylesheet'/>
- <ref name='xsltQuoteUserParams'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='variables'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltCleanupGlobals'/>
- <ref name='xsltEvalGlobalVariables'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltFreeGlobalVariables'/>
- <ref name='xsltInitGlobals'/>
- <ref name='xsltLocalVariablePop'/>
- </word>
- <word name='varibale'>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='varibales'>
- <ref name='xsltInitCtxtKeys'/>
- </word>
- <word name='vendor'>
- <ref name='XSLT_DEFAULT_URL'/>
- <ref name='XSLT_DEFAULT_VENDOR'/>
- </word>
- <word name='version'>
- <ref name='XSLT_DEFAULT_VERSION'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='version='>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='via'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='violated'>
- <ref name='XML_CAST_FPTR'/>
- </word>
- <word name='visible'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='void'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- </letter>
- <letter name='w'>
- <word name='want'>
- <ref name='xsltEvalUserParams'/>
- </word>
- <word name='warning'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='warnings'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='was'>
- <ref name='XSLT_STRANGE'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTemplate'/>
- <ref name='xsltEvalXPathPredicate'/>
- <ref name='xsltFlagRVTs'/>
- <ref name='xsltNewLocale'/>
- <ref name='xsltNextImport'/>
- <ref name='xsltRegisterExtPrefix'/>
- </word>
- <word name='way'>
- <ref name='xsltFindTemplate'/>
- </word>
- <word name='well'>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='went'>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='were'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='when'>
- <ref name='XSLT_PARSE_OPTIONS'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltGetQNameURI2'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltRegisterPersistRVT'/>
- <ref name='xsltRegisterTmpRVT'/>
- <ref name='xsltSetCtxtParseOptions'/>
- <ref name='xsltXPathFunctionLookup'/>
- <ref name='xsltXPathGetTransformContext'/>
- <ref name='xsltXPathVariableLookup'/>
- </word>
- <word name='where'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- <ref name='xsltCopyTextString'/>
- <ref name='xsltGetQNameURI'/>
- </word>
- <word name='wherever'>
- <ref name='_xsltStylesheet'/>
- </word>
- <word name='whether'>
- <ref name='IS_XSLT_ELEM_FAST'/>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='_xsltCompilerNodeInfo'/>
- <ref name='_xsltFormatNumberInfo'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltNeedElemSpaceHandling'/>
- <ref name='xsltSetXIncludeDefault'/>
- <ref name='xsltTestCompMatchList'/>
- </word>
- <word name='which'>
- <ref name='XSLTCALL'/>
- <ref name='XSLTPUBFUN'/>
- <ref name='XSLTPUBLIC'/>
- <ref name='XSLTPUBVAR'/>
- <ref name='XSLT_ITEM_COMPATIBILITY_FIELDS'/>
- <ref name='_xsltStackElem'/>
- <ref name='_xsltTransformContext'/>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltRegisterExtElement'/>
- <ref name='xsltRegisterExtFunction'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='while'>
- <ref name='xsltAllocateExtra'/>
- <ref name='xsltSetGenericDebugFunc'/>
- <ref name='xsltSetGenericErrorFunc'/>
- <ref name='xsltSetTransformErrorFunc'/>
- </word>
- <word name='white-space'>
- <ref name='xsltNeedElemSpaceHandling'/>
- </word>
- <word name='whitespace-stripping'>
- <ref name='_xsltCompilerCtxt'/>
- </word>
- <word name='wildcards'>
- <ref name='xsltFindElemSpaceHandling'/>
- </word>
- <word name='wise'>
- <ref name='xsltApplyStylesheet'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='with'>
- <ref name='CHECK_STOPPED0'/>
- <ref name='XSLT_RVT_FUNC_RESULT'/>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- <ref name='xsltEvalAttrValueTemplate'/>
- <ref name='xsltEvalStaticAttrValueTemplate'/>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltFreeLocale'/>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNamespace'/>
- <ref name='xsltGetNsProp'/>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltGetQNameURI'/>
- <ref name='xsltGetSpecialNamespace'/>
- <ref name='xsltGetUTF8Char'/>
- <ref name='xsltInitCtxtExts'/>
- <ref name='xsltLocaleStrcmp'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='with-params'>
- <ref name='_xsltStyleItemApplyTemplates'/>
- <ref name='_xsltStyleItemCallTemplate'/>
- </word>
- <word name='within'>
- <ref name='xsltExtensionInstructionResultFinalize'/>
- <ref name='xsltFindDocument'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- <ref name='xsltLoadStylesheetPI'/>
- <ref name='xsltParseStylesheetDoc'/>
- </word>
- <word name='without'>
- <ref name='XML_CAST_FPTR'/>
- <ref name='XSLT_PAT_NO_PRIORITY'/>
- <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'/>
- </word>
- <word name='wrapped'>
- <ref name='xsltFindElemSpaceHandling'/>
- </word>
- <word name='wrapper'>
- <ref name='xsltDoSortFunction'/>
- </word>
- <word name='write'>
- <ref name='xsltCheckWrite'/>
- </word>
- <word name='written'>
- <ref name='xsltCheckWrite'/>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- </word>
- <word name='wrt'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- </letter>
- <letter name='x'>
- <word name='xmlDoc'>
- <ref name='xsltParseStylesheetDoc'/>
- <ref name='xsltParseStylesheetImportedDoc'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltParseStylesheetUser'/>
- <ref name='xsltReleaseRVT'/>
- </word>
- <word name='xmlDocPtr'>
- <ref name='xsltGetProfileInformation'/>
- <ref name='xsltRegisterLocalRVT'/>
- <ref name='xsltSaveResultTo'/>
- <ref name='xsltSaveResultToFd'/>
- <ref name='xsltSaveResultToFile'/>
- <ref name='xsltSaveResultToFilename'/>
- <ref name='xsltSaveResultToString'/>
- </word>
- <word name='xmlFree'>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='xmlFreeDoc'>
- <ref name='xsltGetProfileInformation'/>
- </word>
- <word name='xmlGetNsProp'>
- <ref name='xsltGetCNsProp'/>
- <ref name='xsltGetNsProp'/>
- </word>
- <word name='xmlGetUTF8Char'>
- <ref name='xsltGetUTF8Char'/>
- </word>
- <word name='xmlNodePtr'>
- <ref name='_xsltTransformContext'/>
- </word>
- <word name='xmlNs'>
- <ref name='_xsltNsMap'/>
- </word>
- <word name='xmlNsPtr'>
- <ref name='xsltCopyNamespace'/>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='xmlParserOption'>
- <ref name='xsltDocLoaderFunc'/>
- <ref name='xsltSetCtxtParseOptions'/>
- </word>
- <word name='xmlReadxxx'>
- <ref name='XSLT_PARSE_OPTIONS'/>
- </word>
- <word name='xmlXPathCompExprPtr'>
- <ref name='xsltXPathCompile'/>
- <ref name='xsltXPathCompileFlags'/>
- </word>
- <word name='xmlXPathCompiledEvalToBoolean'>
- <ref name='XSLT_FAST_IF'/>
- </word>
- <word name='xmlns='>
- <ref name='xsltGetSpecialNamespace'/>
- </word>
- <word name='xsl'>
- <ref name='XSLT_TRACE'/>
- </word>
- <word name='xsl:'>
- <ref name='_xsltPrincipalStylesheetData'/>
- </word>
- <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>
- <word name='xsl:comment'>
- <ref name='xsltEvalTemplateString'/>
- </word>
- <word name='xsl:for-each'>
- <ref name='xsltForEach'/>
- </word>
- <word name='xsl:if'>
- <ref name='XSLT_FAST_IF'/>
- <ref name='xsltIf'/>
- <ref name='xsltTransformFunction'/>
- </word>
- <word name='xsl:import'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='xsl:include'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='xsl:key'>
- <ref name='XSLT_REFACTORED_KEYCOMP'/>
- </word>
- <word name='xsl:message'>
- <ref name='xsltMessage'/>
- </word>
- <word name='xsl:namespace-alias'>
- <ref name='_xsltCompilerCtxt'/>
- <ref name='xsltNamespaceAlias'/>
- </word>
- <word name='xsl:param'>
- <ref name='_xsltTemplate'/>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- </word>
- <word name='xsl:processing-instruction'>
- <ref name='xsltEvalTemplateString'/>
- </word>
- <word name='xsl:sort'>
- <ref name='XSLT_MAX_SORT'/>
- <ref name='xsltSort'/>
- </word>
- <word name='xsl:template'>
- <ref name='xsltApplyOneTemplate'/>
- <ref name='xsltLocalVariablePop'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='xsl:text'>
- <ref name='xsltParseSequenceConstructor'/>
- </word>
- <word name='xsl:use-attribute-set'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltAttrTemplateProcess'/>
- </word>
- <word name='xsl:use-attribute-sets'>
- <ref name='xsltApplyAttributeSet'/>
- </word>
- <word name='xsl:variable'>
- <ref name='xsltParseStylesheetVariable'/>
- </word>
- <word name='xsl:with-param'>
- <ref name='_xsltStackElem'/>
- <ref name='xsltParseStylesheetCallerParam'/>
- <ref name='xsltProcessOneNode'/>
- </word>
- <word name='xslDebugBreak'>
- <ref name='xslHandleDebugger'/>
- </word>
- <word name='xslDebugStatus'>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltGetDebuggerStatus'/>
- <ref name='xsltSetDebuggerStatus'/>
- </word>
- <word name='xslt'>
- <ref name='IS_XSLT_ATTR_FAST'/>
- <ref name='IS_XSLT_ELEM_FAST'/>
- <ref name='xslHandleDebugger'/>
- <ref name='xsltAttribute'/>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- <ref name='xsltComment'/>
- <ref name='xsltElement'/>
- <ref name='xsltForEach'/>
- <ref name='xsltNumber'/>
- <ref name='xsltParseStylesheetProcess'/>
- <ref name='xsltProcessingInstruction'/>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltSort'/>
- <ref name='xsltText'/>
- <ref name='xsltValueOf'/>
- </word>
- <word name='xslt:text'>
- <ref name='xsltParseTemplateContent'/>
- </word>
- <word name='xsltAddTemplate'>
- <ref name='xsltFreeTemplateHashes'/>
- </word>
- <word name='xsltApplySequenceConstructor'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltGetNamespace'/>
- </word>
- <word name='xsltAttrTemplateValueProcess'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- </word>
- <word name='xsltCopyPropList'>
- <ref name='xsltGetNamespace'/>
- </word>
- <word name='xsltCopyTreeInternal'>
- <ref name='xsltCopyNamespaceList'/>
- <ref name='xsltGetNamespace'/>
- </word>
- <word name='xsltCreateRVT'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- </word>
- <word name='xsltDecimalFormatPtr'>
- <ref name='xsltDecimalFormatGetByName'/>
- <ref name='xsltDecimalFormatGetByQName'/>
- </word>
- <word name='xsltDocLoaderFunc'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='xsltDocument'>
- <ref name='xsltFreeStyleDocuments'/>
- </word>
- <word name='xsltDocumentComp'>
- <ref name='_xsltStyleItemDocument'/>
- </word>
- <word name='xsltDocumentPtr'>
- <ref name='xsltFindDocument'/>
- <ref name='xsltLoadDocument'/>
- <ref name='xsltLoadStyleDocument'/>
- </word>
- <word name='xsltElemPreComp'>
- <ref name='xsltElemPreCompDeallocator'/>
- <ref name='xsltInitElemPreComp'/>
- <ref name='xsltNewElemPreComp'/>
- </word>
- <word name='xsltElement'>
- <ref name='xsltGetNamespace'/>
- </word>
- <word name='xsltEvalAttrValueTemplate'>
- <ref name='xsltAttrTemplateValueProcessNode'/>
- </word>
- <word name='xsltEvalUserParams'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltQuoteUserParams'/>
- </word>
- <word name='xsltEvalVariable'>
- <ref name='xsltApplyOneTemplate'/>
- </word>
- <word name='xsltExtElementPreCompTest'>
- <ref name='xsltStyleGetExtData'/>
- </word>
- <word name='xsltExtInitTest'>
- <ref name='xsltStyleGetExtData'/>
- </word>
- <word name='xsltGetInheritedNsList'>
- <ref name='xsltCheckExtPrefix'/>
- </word>
- <word name='xsltGetNamespace'>
- <ref name='xsltGetPlainNamespace'/>
- </word>
- <word name='xsltGetQNameURI'>
- <ref name='xsltGetQNameURI2'/>
- </word>
- <word name='xsltGetTemplate'>
- <ref name='xsltFreeTemplateHashes'/>
- </word>
- <word name='xsltLoadType'>
- <ref name='xsltDocLoaderFunc'/>
- </word>
- <word name='xsltLocaleStrcmp'>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='xsltNewLocale'>
- <ref name='xsltFreeLocale'/>
- <ref name='xsltStrxfrm'/>
- </word>
- <word name='xsltParseExtElemPrefixes'>
- <ref name='xsltRegisterExtPrefix'/>
- </word>
- <word name='xsltParseStylesheetImportedDoc'>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='xsltParseStylesheetInclude'>
- <ref name='xsltParseStylesheetProcess'/>
- </word>
- <word name='xsltParseTemplateContent'>
- <ref name='xsltCheckExtPrefix'/>
- <ref name='xsltCheckExtURI'/>
- </word>
- <word name='xsltPointerList'>
- <ref name='xsltPointerListCreate'/>
- <ref name='xsltPointerListFree'/>
- </word>
- <word name='xsltPrecomputeStylesheet'>
- <ref name='xsltCheckExtURI'/>
- </word>
- <word name='xsltProcessOneUserParamInternal'>
- <ref name='xsltEvalOneUserParam'/>
- </word>
- <word name='xsltQuoteOneUserParam'>
- <ref name='xsltEvalOneUserParam'/>
- </word>
- <word name='xsltQuoteUserParams'>
- <ref name='xsltEvalOneUserParam'/>
- <ref name='xsltEvalUserParams'/>
- <ref name='xsltQuoteOneUserParam'/>
- </word>
- <word name='xsltRegisterAllExtras'>
- <ref name='xsltRegisterExtras'/>
- </word>
- <word name='xsltRegisterExtPrefix'>
- <ref name='xsltRegisterExtPrefix'/>
- <ref name='xsltStyleGetExtData'/>
- </word>
- <word name='xsltRegisterLocalRVT'>
- <ref name='xsltExtensionInstructionResultRegister'/>
- <ref name='xsltRegisterTmpRVT'/>
- </word>
- <word name='xsltSecurityPrefsPtr'>
- <ref name='xsltGetDefaultSecurityPrefs'/>
- </word>
- <word name='xsltSetCtxtSortFunc'>
- <ref name='xsltDoSortFunction'/>
- </word>
- <word name='xsltSetSortFunc'>
- <ref name='xsltDoSortFunction'/>
- </word>
- <word name='xsltShallowCopyElem'>
- <ref name='xsltCopyNamespaceList'/>
- </word>
- <word name='xsltShallowCopyElement'>
- <ref name='xsltGetNamespace'/>
- </word>
- <word name='xsltStackElemPtr'>
- <ref name='xsltParseStylesheetCallerParam'/>
- </word>
- <word name='xsltStrxfrm'>
- <ref name='xsltLocaleStrcmp'/>
- </word>
- <word name='xsltStylesheet'>
- <ref name='_xsltElemPreComp'/>
- </word>
- <word name='xsltStylesheetPtr'>
- <ref name='xsltNewStylesheet'/>
- </word>
- <word name='xsltTemplatePtr'>
- <ref name='xsltFindTemplate'/>
- <ref name='xsltGetTemplate'/>
- </word>
- <word name='xsltTimestamp'>
- <ref name='xsltCalibrateAdjust'/>
- </word>
- <word name='xsltTransformContextPtr'>
- <ref name='xsltNewTransformContext'/>
- </word>
- </letter>
- </chunk>
- <chunk name='chunk12'>
- <letter name='y'>
- <word name='yes'>
- <ref name='_xsltStylesheet'/>
- <ref name='xsltCompileAttr'/>
- </word>
- <word name='yet'>
- <ref name='xsltRunStylesheet'/>
- <ref name='xsltRunStylesheetUser'/>
- </word>
- <word name='you'>
- <ref name='xsltAttrListTemplateProcess'/>
- <ref name='xsltEvalUserParams'/>
- </word>
- <word name='your'>
- <ref name='xsltEvalUserParams'/>
- </word>
- </letter>
- <letter name='z'>
- <word name='zero'>
- <ref name='xsltFormatNumberConversion'/>
- </word>
- </letter>
- </chunk>
- <chunks>
- <chunk name='chunk0' start='A' end='I'/>
- <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'/>
- <chunk name='chunk6' start='h' end='k'/>
- <chunk name='chunk7' start='l' end='n'/>
- <chunk name='chunk8' start='o' end='p'/>
- <chunk name='chunk9' start='q' end='s'/>
- <chunk name='chunk10' start='t' end='u'/>
- <chunk name='chunk11' start='v' end='x'/>
- <chunk name='chunk12' start='y' end='z'/>
- </chunks>
- </index>
-</apirefs>
+++ /dev/null
-<!-- This file describes all the exported entry points from libxslt
- library, grouped by release with the first release being 1.0.11
- Add new exported entry points at the end, this will be used to
- generate libxslt.syms the definition of exported symbols from
- shared libraries
--->
-<symbols>
- <release version="1.0.11">
- <symbol file="attributes">xsltApplyAttributeSet</symbol>
- <symbol file="attributes">xsltFreeAttributeSetsHashes</symbol>
- <symbol file="attributes">xsltParseStylesheetAttributeSet</symbol>
- <symbol file="documents">xsltFindDocument</symbol>
- <symbol file="documents">xsltFreeDocuments</symbol>
- <symbol file="documents">xsltFreeStyleDocuments</symbol>
- <symbol file="documents">xsltLoadDocument</symbol>
- <symbol file="documents">xsltLoadStyleDocument</symbol>
- <symbol file="documents">xsltNewDocument</symbol>
- <symbol file="documents">xsltNewStyleDocument</symbol>
- <symbol file="extensions">xsltCheckExtPrefix</symbol>
- <symbol file="extensions">xsltExtElementLookup</symbol>
- <symbol file="extensions">xsltExtModuleElementLookup</symbol>
- <symbol file="extensions">xsltExtModuleFunctionLookup</symbol>
- <symbol file="extensions">xsltExtModuleTopLevelLookup</symbol>
- <symbol file="extensions">xsltFreeCtxtExts</symbol>
- <symbol file="extensions">xsltFreeExts</symbol>
- <symbol file="extensions">xsltGetExtData</symbol>
- <symbol file="extensions">xsltInitCtxtExts</symbol>
- <symbol file="extensions">xsltInitElemPreComp</symbol>
- <symbol file="extensions">xsltNewElemPreComp</symbol>
- <symbol file="extensions">xsltPreComputeExtModuleElement</symbol>
- <symbol file="extensions">xsltRegisterExtElement</symbol>
- <symbol file="extensions">xsltRegisterExtFunction</symbol>
- <symbol file="extensions">xsltRegisterExtModuleElement</symbol>
- <symbol file="extensions">xsltRegisterExtModuleFull</symbol>
- <symbol file="extensions">xsltRegisterExtModuleFunction</symbol>
- <symbol file="extensions">xsltRegisterExtModule</symbol>
- <symbol file="extensions">xsltRegisterExtModuleTopLevel</symbol>
- <symbol file="extensions">xsltRegisterExtPrefix</symbol>
- <symbol file="extensions">xsltRegisterTestModule</symbol>
- <symbol file="extensions">xsltShutdownCtxtExts</symbol>
- <symbol file="extensions">xsltShutdownExts</symbol>
- <symbol file="extensions">xsltStyleGetExtData</symbol>
- <symbol file="extensions">xsltUnregisterExtModuleElement</symbol>
- <symbol file="extensions">xsltUnregisterExtModuleFunction</symbol>
- <symbol file="extensions">xsltUnregisterExtModule</symbol>
- <symbol file="extensions">xsltUnregisterExtModuleTopLevel</symbol>
- <symbol file="extra">xsltDebug</symbol>
- <symbol file="extra">xsltFunctionNodeSet</symbol>
- <symbol file="extra">xsltRegisterAllExtras</symbol>
- <symbol file="extra">xsltRegisterExtras</symbol>
- <symbol file="functions">xsltDocumentFunction</symbol>
- <symbol file="functions">xsltElementAvailableFunction</symbol>
- <symbol file="functions">xsltFormatNumberFunction</symbol>
- <symbol file="functions">xsltFunctionAvailableFunction</symbol>
- <symbol file="functions">xsltGenerateIdFunction</symbol>
- <symbol file="functions">xsltKeyFunction</symbol>
- <symbol file="functions">xsltRegisterAllFunctions</symbol>
- <symbol file="functions">xsltSystemPropertyFunction</symbol>
- <symbol file="functions">xsltUnparsedEntityURIFunction</symbol>
- <symbol file="functions">xsltXPathFunctionLookup</symbol>
- <symbol file="imports">xsltFindElemSpaceHandling</symbol>
- <symbol file="imports">xsltFindTemplate</symbol>
- <symbol file="imports">xsltNeedElemSpaceHandling</symbol>
- <symbol file="imports">xsltNextImport</symbol>
- <symbol file="imports">xsltParseStylesheetImport</symbol>
- <symbol file="imports">xsltParseStylesheetInclude</symbol>
- <symbol file="keys">xsltAddKey</symbol>
- <symbol file="keys">xsltFreeDocumentKeys</symbol>
- <symbol file="keys">xsltFreeKeys</symbol>
- <symbol file="keys">xsltGetKey</symbol>
- <symbol file="keys">xsltInitCtxtKeys</symbol>
- <symbol file="namespaces">xsltCopyNamespaceList</symbol>
- <symbol file="namespaces">xsltCopyNamespace</symbol>
- <symbol file="namespaces">xsltFreeNamespaceAliasHashes</symbol>
- <symbol file="namespaces">xsltGetNamespace</symbol>
- <symbol file="namespaces">xsltGetSpecialNamespace</symbol>
- <symbol file="namespaces">xsltNamespaceAlias</symbol>
- <symbol file="pattern">xsltAddTemplate</symbol>
- <symbol file="pattern">xsltCleanupTemplates</symbol>
- <symbol file="pattern">xsltCompilePattern</symbol>
- <symbol file="pattern">xsltFreeCompMatchList</symbol>
- <symbol file="pattern">xsltFreeTemplateHashes</symbol>
- <symbol file="pattern">xsltGetTemplate</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>
- <symbol file="preproc">xsltStylePreCompute</symbol>
- <symbol file="templates">xsltAttrListTemplateProcess</symbol>
- <symbol file="templates">xsltAttrTemplateProcess</symbol>
- <symbol file="templates">xsltAttrTemplateValueProcess</symbol>
- <symbol file="templates">xsltEvalAttrValueTemplate</symbol>
- <symbol file="templates">xsltEvalStaticAttrValueTemplate</symbol>
- <symbol file="templates">xsltEvalTemplateString</symbol>
- <symbol file="templates">xsltEvalXPathPredicate</symbol>
- <symbol file="templates">xsltEvalXPathString</symbol>
- <symbol file="templates">xsltTemplateProcess</symbol>
- <symbol file="transform">xslHandleDebugger</symbol>
- <symbol file="transform">xsltApplyImports</symbol>
- <symbol file="transform">xsltApplyOneTemplate</symbol>
- <symbol file="transform">xsltApplyStripSpaces</symbol>
- <symbol file="transform">xsltApplyStylesheet</symbol>
- <symbol file="transform">xsltApplyStylesheetUser</symbol>
- <symbol file="transform">xsltApplyTemplates</symbol>
- <symbol file="transform">xsltAttribute</symbol>
- <symbol file="transform">xsltCallTemplate</symbol>
- <symbol file="transform">xsltChoose</symbol>
- <symbol file="transform">xsltComment</symbol>
- <symbol file="transform">xsltCopyOf</symbol>
- <symbol file="transform">xsltCopy</symbol>
- <symbol file="transform">xsltDocumentElem</symbol>
- <symbol file="transform">xsltElement</symbol>
- <symbol file="transform">xsltForEach</symbol>
- <symbol file="transform">xsltFreeTransformContext</symbol>
- <symbol file="transform">xsltGetXIncludeDefault</symbol>
- <symbol file="transform">xsltIf</symbol>
- <symbol file="transform">xsltNewTransformContext</symbol>
- <symbol file="transform">xsltNumber</symbol>
- <symbol file="transform">xsltProcessingInstruction</symbol>
- <symbol file="transform">xsltProfileStylesheet</symbol>
- <symbol file="transform">xsltRegisterAllElement</symbol>
- <symbol file="transform">xsltRunStylesheet</symbol>
- <symbol file="transform">xsltSetXIncludeDefault</symbol>
- <symbol file="transform">xsltSort</symbol>
- <symbol file="transform">xsltText</symbol>
- <symbol file="transform">xsltValueOf</symbol>
- <symbol file="variables">xsltAddStackElemList</symbol>
- <symbol file="variables">xsltEvalGlobalVariables</symbol>
- <symbol file="variables">xsltEvalOneUserParam</symbol>
- <symbol file="variables">xsltEvalUserParams</symbol>
- <symbol file="variables">xsltFreeGlobalVariables</symbol>
- <symbol file="variables">xsltParseGlobalParam</symbol>
- <symbol file="variables">xsltParseGlobalVariable</symbol>
- <symbol file="variables">xsltParseStylesheetCallerParam</symbol>
- <symbol file="variables">xsltParseStylesheetParam</symbol>
- <symbol file="variables">xsltParseStylesheetVariable</symbol>
- <symbol file="variables">xsltQuoteOneUserParam</symbol>
- <symbol file="variables">xsltQuoteUserParams</symbol>
- <symbol file="variables">xsltVariableLookup</symbol>
- <symbol file="variables">xsltXPathVariableLookup</symbol>
- <symbol file="xsltInternals">xsltDecimalFormatGetByName</symbol>
- <symbol file="xsltInternals">xsltFormatNumberConversion</symbol>
- <symbol file="xsltInternals">xsltFreeStackElemList</symbol>
- <symbol file="xsltInternals">xsltFreeStylesheet</symbol>
- <symbol file="xsltInternals">xsltIsBlank</symbol>
- <symbol file="xsltInternals">xsltLoadStylesheetPI</symbol>
- <symbol file="xsltInternals">xsltNewStylesheet</symbol>
- <symbol file="xsltInternals">xsltNumberFormat</symbol>
- <symbol file="xsltInternals">xsltParseStylesheetDoc</symbol>
- <symbol file="xsltInternals">xsltParseStylesheetFile</symbol>
- <symbol file="xsltInternals">xsltParseStylesheetOutput</symbol>
- <symbol file="xsltInternals">xsltParseStylesheetProcess</symbol>
- <symbol file="xsltInternals">xsltParseTemplateContent</symbol>
- <symbol file="xsltutils">xslAddCall</symbol>
- <symbol file="xsltutils">xslDropCall</symbol>
- <symbol file="xsltutils">xsltCalibrateAdjust</symbol>
- <symbol file="xsltutils">xsltDocumentSortFunction</symbol>
- <symbol file="xsltutils">xsltDoSortFunction</symbol>
- <symbol file="xsltutils">xsltGetNsProp</symbol>
- <symbol file="xsltutils">xsltGetQNameURI</symbol>
- <symbol file="xsltutils">xsltMessage</symbol>
- <symbol file="xsltutils">xsltPrintErrorContext</symbol>
- <symbol file="xsltutils">xsltSaveProfiling</symbol>
- <symbol file="xsltutils">xsltSaveResultToFd</symbol>
- <symbol file="xsltutils">xsltSaveResultToFilename</symbol>
- <symbol file="xsltutils">xsltSaveResultToFile</symbol>
- <symbol file="xsltutils">xsltSaveResultTo</symbol>
- <symbol file="xsltutils">xsltSetDebuggerCallbacks</symbol>
- <symbol file="xsltutils">xsltSetGenericDebugFunc</symbol>
- <symbol file="xsltutils">xsltSetGenericErrorFunc</symbol>
- <symbol file="xsltutils">xsltTimestamp</symbol>
- <symbol file="xslt">xsltCleanupGlobals</symbol>
- </release>
- <release version="1.0.12">
- <symbol file="xsltInternals">xsltAllocateExtraCtxt</symbol>
- <symbol file="xsltInternals">xsltAllocateExtra</symbol>
- </release>
- <release version="1.0.13">
- <symbol file="extensions">xsltExtModuleElementPreComputeLookup</symbol>
- <symbol file="extensions">xsltXPathGetTransformContext</symbol>
- </release>
- <release version="1.0.16">
- <symbol file="attributes">xsltResolveStylesheetAttributeSet</symbol>
- </release>
- <release version="1.0.17">
- <symbol file="transform">xsltRunStylesheetUser</symbol>
- </release>
- <release version="1.0.18">
- <symbol file="extensions">xsltDebugDumpExtensions</symbol>
- <symbol file="xsltutils">xsltSaveResultToString</symbol>
- </release>
- <release version="1.0.22">
- <symbol file="templates">xsltAttrTemplateValueProcessNode</symbol>
- <symbol file="security">xsltCheckRead</symbol>
- <symbol file="security">xsltCheckWrite</symbol>
- <symbol file="templates">xsltEvalXPathStringNs</symbol>
- <symbol file="security">xsltFreeSecurityPrefs</symbol>
- <symbol file="security">xsltGetDefaultSecurityPrefs</symbol>
- <symbol file="security">xsltGetSecurityPrefs</symbol>
- <symbol file="security">xsltNewSecurityPrefs</symbol>
- <symbol file="security">xsltSecurityAllow</symbol>
- <symbol file="security">xsltSecurityForbid</symbol>
- <symbol file="security">xsltSetCtxtSecurityPrefs</symbol>
- <symbol file="security">xsltSetDefaultSecurityPrefs</symbol>
- <symbol file="security">xsltSetSecurityPrefs</symbol>
- <symbol file="xsltutils">xsltSetTransformErrorFunc</symbol>
- <symbol file="xsltutils">xsltTransformError</symbol>
- </release>
- <release version="1.0.24">
- <symbol file="xsltutils">xslDebugStatus</symbol>
- <symbol file="xsltutils">xsltComputeSortResult</symbol>
- <symbol file="xsltutils">xsltDefaultSortFunction</symbol>
- <symbol file="xslt">xsltEngineVersion</symbol>
- <symbol file="preproc">xsltExtMarker</symbol>
- <symbol file="xsltutils">xsltGenericDebugContext</symbol>
- <symbol file="xsltutils">xsltGenericDebug</symbol>
- <symbol file="xsltutils">xsltGenericErrorContext</symbol>
- <symbol file="xsltutils">xsltGenericError</symbol>
- <symbol file="xsltutils">xsltGetProfileInformation</symbol>
- <symbol file="xsltutils">xsltGetUTF8Char</symbol>
- <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>
- <symbol file="xsltutils">xsltSetSortFunc</symbol>
- </release>
- <release version="1.0.30">
- <symbol file="xsltInternals">xsltCreateRVT</symbol>
- <symbol file="xsltInternals">xsltFreeRVTs</symbol>
- <symbol file="xsltInternals">xsltRegisterPersistRVT</symbol>
- <symbol file="xsltInternals">xsltRegisterTmpRVT</symbol>
- </release>
- <release version="1.0.32">
- <symbol file="transform">xsltCopyTextString</symbol>
- <symbol file="extensions">xsltGetExtInfo</symbol>
- </release>
- <release version="1.0.33">
- <symbol file="pattern">xsltNormalizeCompSteps</symbol>
- </release>
- <release version="1.1.0">
- <symbol file="xsltutils">xsltGetDebuggerStatus</symbol>
- <symbol file="xsltutils">xsltSetDebuggerStatus</symbol>
- </release>
- <release version="1.1.1">
- <symbol file="xsltutils">xsltDebugGetDefaultTrace</symbol>
- <symbol file="xsltutils">xsltDebugSetDefaultTrace</symbol>
- </release>
- <release version="1.1.2">
- <symbol file="xsltutils">xsltSetCtxtParseOptions</symbol>
- </release>
- <release version="1.1.3">
- <symbol file="xsltInternals">xsltCompileAttr</symbol>
- <symbol file="xsltInternals">xsltEvalAVT</symbol>
- <symbol file="xsltInternals">xsltFreeAVTList</symbol>
- <symbol file="xsltutils">xsltGetCNsProp</symbol>
- <symbol file="xsltutils">xsltSplitQName</symbol>
- <symbol file="xsltutils">xsltXPathCompile</symbol>
- </release>
- <release version="1.1.5">
- <symbol file="xsltutils">xsltGetQNameURI2</symbol>
- </release>
- <release version="1.1.7">
- <symbol file="namespaces">xsltGetPlainNamespace</symbol>
- </release>
- <release version="1.1.9">
- <symbol file="documents">xsltDocDefaultLoader</symbol>
- <symbol file="documents">xsltSetLoaderFunc</symbol>
- </release>
- <release version="1.1.18">
- <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 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 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 switch="REFACTORED" file="xsltInternals">xsltXSLTAttrMarker</symbol>
- </release>
- <release version="1.1.20">
- <symbol file="transform">xsltLocalVariablePop</symbol>
- <symbol file="transform">xsltLocalVariablePush</symbol>
- </release>
- <release version="1.1.23">
- <symbol file="xsltInternals">xsltInitAllDocKeys</symbol>
- </release>
- <release version="1.1.24">
- <symbol file="extensions">xsltCheckExtURI</symbol>
- </release>
- <release version="1.1.25">
- <symbol file="xsltlocale">xsltFreeLocale</symbol>
- <symbol file="xsltlocale">xsltLocaleStrcmp</symbol>
- <symbol file="xsltlocale">xsltNewLocale</symbol>
- <symbol file="xsltlocale">xsltStrxfrm</symbol>
- <symbol file="extensions">xsltInitGlobals</symbol>
- </release>
- <release version="1.1.26">
- <!-- lxml was using it even if not pusblished -->
- <symbol file="transform">xsltProcessOneNode</symbol>
- </release>
- <release version="1.1.27">
- <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>
- <release version="1.1.34">
- <symbol file="xsltInternals">xsltParseStylesheetUser</symbol>
- <symbol file="pattern">xsltCompMatchClearCache</symbol>
- </release>
-</symbols>
+++ /dev/null
-<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version="1.0">
- <xsl:output method="text" encoding="UTF-8"/>
-
- <xsl:variable name="api" select="document('libxslt-api.xml')"/>
-
- <xsl:template match="/">
- <xsl:text>#
-# Officially exported symbols, for which header
-# file definitions are installed in /usr/include/libxslt
-#
-# Automatically generated from symbols.xml and syms.xsl
-#
-# Versions here are *fixed* to match the libxslt version
-# at which the symbol was introduced. This ensures that
-# a new client app requiring symbol foo() can't accidentally
-# run with old libxslt.so not providing foo() - the global
-# soname version info can't enforce this since we never
-# change the soname
-#
-
-</xsl:text>
- <xsl:apply-templates select="/symbols/release"/>
- </xsl:template>
-
- <xsl:template match="release">
- <xsl:variable name="prev"
- select="preceding-sibling::release[position()=1]"/>
- <xsl:text>LIBXML2_</xsl:text>
- <xsl:value-of select="string(@version)"/>
- <xsl:text> {
- global:
-</xsl:text>
- <xsl:for-each select="symbol">
- <xsl:if test="string(preceding-sibling::symbol[position()=1]/@file) != string(@file)">
- <xsl:text>
-# </xsl:text>
- <xsl:value-of select="@file"/>
- <xsl:text>
-</xsl:text>
- </xsl:if>
-
- <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>
- <xsl:value-of select="$prev/@version"/>
- </xsl:if>
- <xsl:text>;
-
-</xsl:text>
- </xsl:template>
-
- <xsl:template match="symbol">
- <xsl:variable name="name" select="string(.)"/>
- <xsl:variable name="file" select="string(@file)"/>
- <xsl:choose>
- <xsl:when test="@removed">
- <xsl:text># </xsl:text>
- <xsl:value-of select="$name"/>
- <xsl:text>; removed in </xsl:text>
- <xsl:value-of select="@removed"/>
- <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"
- select="$api/api/files/file[@name = $file]/exports[@symbol = $name]"/>
- <xsl:if test="string($def/@symbol) != $name">
- <xsl:message terminate="yes">
- <xsl:text>Failed to find definition in libxslt-api.xml:</xsl:text>
- <xsl:value-of select="$name"/>
- </xsl:message>
- </xsl:if>
-
- <xsl:text> </xsl:text>
- <xsl:value-of select="$name"/>
- <xsl:text>;</xsl:text>
- <xsl:if test="$def/@type = 'variable'">
- <xsl:text> # variable</xsl:text>
- </xsl:if>
- <xsl:if test="@comment">
- <xsl:text># </xsl:text>
- <xsl:value-of select="@comment"/>
- <xsl:text>
-</xsl:text>
- </xsl:if>
- <xsl:text>
-</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
-</xsl:stylesheet>
-
/**
- * xsltICUSort.c: module provided by Richard Jinks to provide a
- * sort function replacement using ICU, it is not
- * included in standard due to the size of the ICU
+ * xsltICUSort.c: module to provide a sort function replacement using ICU,
+ * it is not included in standard due to the size of the ICU
* library
*
- * See http://mail.gnome.org/archives/xslt/2002-November/msg00093.html
- * http://oss.software.ibm.com/icu/index.html
- *
- * Copyright Richard Jinks
+ * Requires libxslt 1.1.38
*/
-#define IN_LIBXSLT
-#include "libxslt.h"
-
-#include <libxml/parserInternals.h>
-
-#include "xslt.h"
-#include "xsltInternals.h"
-#include "xsltutils.h"
-#include "transform.h"
-#include "templates.h"
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
#include <unicode/ucnv.h>
-#include <unicode/ustring.h>
-#include <unicode/utypes.h>
-#include <unicode/uloc.h>
#include <unicode/ucol.h>
/**
- * xsltICUSortFunction:
- * @ctxt: a XSLT process context
- * @sorts: array of sort nodes
- * @nbsorts: the number of sorts in the array
+ * xsltICUNewLocale:
+ * @lang: lang
*
- * reorder the current node list accordingly to the set of sorting
- * requirement provided by the arry of nodes.
- * uses the ICU library
+ * Create a new ICU collator.
*/
-void
-xsltICUSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts,
- int nbsorts) {
- xmlXPathObjectPtr *resultsTab[XSLT_MAX_SORT];
- xmlXPathObjectPtr *results = NULL, *res;
- xmlNodeSetPtr list = NULL;
- int descending, number, desc, numb;
- int len = 0;
- int i, j, incr;
- int tst;
- int depth;
- xmlNodePtr node;
- xmlXPathObjectPtr tmp;
- xsltStylePreCompPtr comp;
- int tempstype[XSLT_MAX_SORT], temporder[XSLT_MAX_SORT];
-
- /* Start ICU change */
- UCollator *coll = 0;
- UConverter *conv;
- UErrorCode status;
- UChar *target,*target2;
- int targetlen, target2len;
- /* End ICU change */
-
- if ((ctxt == NULL) || (sorts == NULL) || (nbsorts <= 0) ||
- (nbsorts >= XSLT_MAX_SORT))
- return;
- if (sorts[0] == NULL)
- return;
- comp = sorts[0]->_private;
- if (comp == NULL)
- return;
-
- list = ctxt->nodeList;
- if ((list == NULL) || (list->nodeNr <= 1))
- return; /* nothing to do */
-
- for (j = 0; j < nbsorts; j++) {
- comp = sorts[j]->_private;
- tempstype[j] = 0;
- if ((comp->stype == NULL) && (comp->has_stype != 0)) {
- comp->stype =
- xsltEvalAttrValueTemplate(ctxt, sorts[j],
- (const xmlChar *) "data-type",
- XSLT_NAMESPACE);
- if (comp->stype != NULL) {
- tempstype[j] = 1;
- if (xmlStrEqual(comp->stype, (const xmlChar *) "text"))
- comp->number = 0;
- else if (xmlStrEqual(comp->stype, (const xmlChar *) "number"))
- comp->number = 1;
- else {
- xsltTransformError(ctxt, NULL, sorts[j],
- "xsltDoSortFunction: no support for data-type = %s\n",
- comp->stype);
- comp->number = 0; /* use default */
- }
- }
- }
- temporder[j] = 0;
- if ((comp->order == NULL) && (comp->has_order != 0)) {
- comp->order = xsltEvalAttrValueTemplate(ctxt, sorts[j],
- (const xmlChar *) "order",
- XSLT_NAMESPACE);
- if (comp->order != NULL) {
- temporder[j] = 1;
- if (xmlStrEqual(comp->order, (const xmlChar *) "ascending"))
- comp->descending = 0;
- else if (xmlStrEqual(comp->order,
- (const xmlChar *) "descending"))
- comp->descending = 1;
- else {
- xsltTransformError(ctxt, NULL, sorts[j],
- "xsltDoSortFunction: invalid value %s for order\n",
- comp->order);
- comp->descending = 0; /* use default */
- }
- }
- }
- }
-
- len = list->nodeNr;
-
- resultsTab[0] = xsltComputeSortResult(ctxt, sorts[0]);
- for (i = 1;i < XSLT_MAX_SORT;i++)
- resultsTab[i] = NULL;
-
- results = resultsTab[0];
-
- comp = sorts[0]->_private;
- descending = comp->descending;
- number = comp->number;
- if (results == NULL)
- return;
+void *
+xsltICUNewLocale(const xmlChar *lang, int lowerFirst) {
+ UCollator *coll;
+ UErrorCode status = U_ZERO_ERROR;
- /* Start ICU change */
- status = U_ZERO_ERROR;
- conv = ucnv_open("UTF8", &status);
- if(U_FAILURE(status)) {
- xsltTransformError(ctxt, NULL, NULL, "xsltICUSortFunction: Error opening converter\n");
- }
- if(comp->has_lang)
- coll = ucol_open(comp->lang, &status);
- if(U_FAILURE(status) || !comp->has_lang) {
+ coll = ucol_open((const char *) lang, &status);
+ if (U_FAILURE(status)) {
status = U_ZERO_ERROR;
coll = ucol_open("en", &status);
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
}
- if(U_FAILURE(status)) {
- xsltTransformError(ctxt, NULL, NULL, "xsltICUSortFunction: Error opening collator\n");
- }
- if(comp->lower_first)
- ucol_setAttribute(coll,UCOL_CASE_FIRST,UCOL_LOWER_FIRST,&status);
+
+ if (lowerFirst)
+ ucol_setAttribute(coll, UCOL_CASE_FIRST, UCOL_LOWER_FIRST, &status);
else
- ucol_setAttribute(coll,UCOL_CASE_FIRST,UCOL_UPPER_FIRST,&status);
- if(U_FAILURE(status)) {
- xsltTransformError(ctxt, NULL, NULL, "xsltICUSortFunction: Error setting collator attribute\n");
- }
- /* End ICU change */
+ ucol_setAttribute(coll, UCOL_CASE_FIRST, UCOL_UPPER_FIRST, &status);
- /* Shell's sort of node-set */
- for (incr = len / 2; incr > 0; incr /= 2) {
- for (i = incr; i < len; i++) {
- j = i - incr;
- if (results[i] == NULL)
- continue;
+ return (void *) coll;
+}
- while (j >= 0) {
- if (results[j] == NULL)
- tst = 1;
- else {
- if (number) {
- if (results[j]->floatval == results[j + incr]->floatval)
- tst = 0;
- else if (results[j]->floatval >
- results[j + incr]->floatval)
- tst = 1;
- else tst = -1;
- } else {
-/* tst = xmlStrcmp(results[j]->stringval,
- results[j + incr]->stringval); */
- /* Start ICU change */
- targetlen = xmlStrlen(results[j]->stringval) * 2;
- target2len = xmlStrlen(results[j + incr]->stringval) * 2;
- target = xmlMalloc(targetlen * sizeof(UChar));
- target2 = xmlMalloc(target2len * sizeof(UChar));
- targetlen = ucnv_toUChars(conv, target, targetlen, results[j]->stringval, -1, &status);
- target2len = ucnv_toUChars(conv, target2, target2len, results[j+incr]->stringval, -1, &status);
- tst = ucol_strcoll(coll, target, u_strlen(target), target2, u_strlen(target2));
- /* End ICU change */
- }
- if (descending)
- tst = -tst;
- }
- if (tst == 0) {
- /*
- * Okay we need to use multi level sorts
- */
- depth = 1;
- while (depth < nbsorts) {
- if (sorts[depth] == NULL)
- break;
- comp = sorts[depth]->_private;
- if (comp == NULL)
- break;
- desc = comp->descending;
- numb = comp->number;
+/**
+ * xsltICUNewLocale:
+ * @locale: ICU collator
+ *
+ * Free the ICU collator.
+ */
+void
+xsltICUFreeLocale(void *coll) {
+ ucol_close((UCollator *) coll);
+}
- /*
- * Compute the result of the next level for the
- * full set, this might be optimized ... or not
- */
- if (resultsTab[depth] == NULL)
- resultsTab[depth] = xsltComputeSortResult(ctxt,
- sorts[depth]);
- res = resultsTab[depth];
- if (res == NULL)
- break;
- if (res[j] == NULL)
- tst = 1;
- else {
- if (numb) {
- if (res[j]->floatval == res[j + incr]->floatval)
- tst = 0;
- else if (res[j]->floatval >
- res[j + incr]->floatval)
- tst = 1;
- else tst = -1;
- } else {
-/* tst = xmlStrcmp(res[j]->stringval,
- res[j + incr]->stringval); */
- /* Start ICU change */
- targetlen = xmlStrlen(res[j]->stringval) * 2;
- target2len = xmlStrlen(res[j + incr]->stringval) * 2;
- target = xmlMalloc(targetlen * sizeof(UChar));
- target2 = xmlMalloc(target2len * sizeof(UChar));
- targetlen = ucnv_toUChars(conv, target, targetlen, res[j]->stringval, -1, &status);
- target2len = ucnv_toUChars(conv, target2, target2len, res[j+incr]->stringval, -1, &status);
- tst = ucol_strcoll(coll, target, u_strlen(target), target2, u_strlen(target2));
- /* End ICU change */
- }
- if (desc)
- tst = -tst;
- }
- /*
- * if we still can't differenciate at this level
- * try one level deeper.
- */
- if (tst != 0)
- break;
- depth++;
- }
- }
- if (tst == 0) {
- tst = results[j]->index > results[j + incr]->index;
- }
- if (tst > 0) {
- tmp = results[j];
- results[j] = results[j + incr];
- results[j + incr] = tmp;
- node = list->nodeTab[j];
- list->nodeTab[j] = list->nodeTab[j + incr];
- list->nodeTab[j + incr] = node;
- depth = 1;
- while (depth < nbsorts) {
- if (sorts[depth] == NULL)
- break;
- if (resultsTab[depth] == NULL)
- break;
- res = resultsTab[depth];
- tmp = res[j];
- res[j] = res[j + incr];
- res[j + incr] = tmp;
- depth++;
- }
- j -= incr;
- } else
- break;
- }
- }
- }
+/**
+ * xsltICUGenSortKey:
+ * @locale: ICU collator
+ * @str: source string
+ *
+ * Generate a localized sort key.
+ */
+xmlChar *
+xsltICUGenSortKey(void *coll, const xmlChar *str) {
+ UConverter *conv;
+ UChar *ustr = NULL;
+ xmlChar *result = NULL;
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t ustrLen, resultLen;
- /* Start ICU change */
- ucol_close(coll);
- ucnv_close(conv);
- /* End ICU change */
+ conv = ucnv_open("UTF8", &status);
+ if (U_FAILURE(status))
+ goto error;
- for (j = 0; j < nbsorts; j++) {
- comp = sorts[j]->_private;
- if (tempstype[j] == 1) {
- /* The data-type needs to be recomputed each time */
- xmlFree(comp->stype);
- comp->stype = NULL;
- }
- if (temporder[j] == 1) {
- /* The order needs to be recomputed each time */
- xmlFree(comp->order);
- comp->order = NULL;
- }
- if (resultsTab[j] != NULL) {
- for (i = 0;i < len;i++)
- xmlXPathFreeObject(resultsTab[j][i]);
- xmlFree(resultsTab[j]);
- }
+ ustrLen = ucnv_toUChars(conv, NULL, 0, (const char *) str, -1, &status);
+ if (U_FAILURE(status) && status != U_BUFFER_OVERFLOW_ERROR)
+ goto error;
+ status = U_ZERO_ERROR;
+ ustr = (UChar *) xmlMalloc((ustrLen + 1) * sizeof(UChar));
+ if (ustr == NULL)
+ goto error;
+ ustrLen = ucnv_toUChars(conv, ustr, ustrLen, (const char *) str, -1,
+ &status);
+ if (U_FAILURE(status))
+ goto error;
+
+ resultLen = ucol_getSortKey((UCollator *) coll, ustr, ustrLen, NULL, 0);
+ if (resultLen == 0)
+ goto error;
+ result = (xmlChar *) xmlMalloc(resultLen);
+ if (result == NULL)
+ goto error;
+ resultLen = ucol_getSortKey((UCollator *) coll, ustr, ustrLen, result,
+ resultLen);
+ if (resultLen == 0) {
+ xmlFree(result);
+ result = NULL;
+ goto error;
}
+
+error:
+ xmlFree(ustr);
+ return result;
}
+int main(void) {
+ xmlDocPtr sourceDoc = xmlReadDoc(
+ BAD_CAST
+ "<d>\n"
+ " <e>Berta</e>\n"
+ " <e>Ärger</e>\n"
+ "</d>\n",
+ NULL, NULL, 0
+ );
+ xmlDocPtr styleDoc = xmlReadDoc(
+ BAD_CAST
+ "<xsl:stylesheet"
+ " version='1.0'"
+ " xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\n"
+ " <xsl:template match='d'>\n"
+ " <xsl:for-each select='*'>\n"
+ " <xsl:sort lang='de'/>\n"
+ " <xsl:copy-of select='.'/>\n"
+ " </xsl:for-each>\n"
+ " </xsl:template>\n"
+ "</xsl:stylesheet>\n",
+ NULL, NULL, 0
+ );
+ xsltStylesheetPtr style = xsltParseStylesheetDoc(styleDoc);
+ if (style == NULL)
+ xmlFreeDoc(styleDoc);
+
+ xsltTransformContextPtr tctxt = xsltNewTransformContext(style, sourceDoc);
+ xsltSetCtxtLocaleHandlers(tctxt, xsltICUNewLocale, xsltICUFreeLocale,
+ xsltICUGenSortKey);
+
+ xmlDocPtr resultDoc = xsltApplyStylesheetUser(style, sourceDoc, NULL, NULL,
+ NULL, tctxt);
+
+ xsltFreeTransformContext(tctxt);
+
+ xsltSaveResultToFile(stdout, resultDoc, style);
+
+ xmlFreeDoc(resultDoc);
+ xsltFreeStylesheet(style);
+ xmlFreeDoc(sourceDoc);
+
+ return 0;
+}
Version: @LIBEXSLT_VERSION@
Description: EXSLT Extension library
Requires: libxml-2.0, libxslt
-Cflags: @EXSLT_INCLUDEDIR@
+Cflags: @EXSLT_INCLUDEDIR@ @LIBEXSLT_CFLAGS@
Libs: @EXSLT_LIBDIR@ -lexslt
Libs.private: @EXSLT_PRIVATE_LIBS@
-I$(top_builddir) -I$(top_builddir)/libxslt \
-I$(top_builddir)/libexslt
-AM_CFLAGS = $(LIBGCRYPT_CFLAGS) $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
-
lib_LTLIBRARIES = libexslt.la
exsltincdir = $(includedir)/libexslt
libexslt.h \
dynamic.c
+libexslt_la_CFLAGS = $(AM_CFLAGS) $(LIBGCRYPT_CFLAGS)
libexslt_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(LIBXML_LIBS) $(EXTRA_LIBS) $(LIBGCRYPT_LIBS) $(LIBM)
-libexslt_la_LDFLAGS = -version-info $(LIBEXSLT_VERSION_INFO)
+libexslt_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined \
+ -version-info $(LIBEXSLT_VERSION_INFO)
man_MANS = libexslt.3
#include <libxml/parser.h>
#include <libxml/encoding.h>
#include <libxml/uri.h>
+#include <libxml/threads.h>
#include <libxslt/xsltutils.h>
#include <libxslt/xsltInternals.h>
else if (tmp >= 'a' && tmp <= 'f')
lo = 10 + (tmp - 'a');
- result = (unsigned char) (hi << 4);
+ result = hi << 4;
result += lo;
bin[j++] = result;
}
#include "exslt.h"
+#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <errno.h>
#include <time.h>
+#if defined(_MSC_VER) && _MSC_VER >= 1400 || \
+ defined(_WIN32) && \
+ defined(__MINGW64_VERSION_MAJOR) && __MINGW64_VERSION_MAJOR >= 4
+ #define HAVE_MSVCRT
+#endif
+
/*
* types of date and/or time (from schema datatypes)
* somewhat ordered from least specific to most specific (i.e.
}
/**
- * FORMAT_GYEAR:
+ * exsltFormatGYear:
+ * @cur: a pointer to a pointer to an allocated buffer
+ * @end: a pointer to the end of @cur buffer
* @yr: the year to format
- * @cur: a pointer to an allocated buffer
*
* Formats @yr in xsl:gYear format. Result is appended to @cur and
* @cur is updated to point after the xsl:gYear.
*/
-#define FORMAT_GYEAR(yr, cur) \
- if (yr <= 0) { \
- *cur = '-'; \
- cur++; \
- } \
- { \
- long year = (yr <= 0) ? -yr + 1 : yr; \
- xmlChar tmp_buf[100], *tmp = tmp_buf; \
- /* result is in reverse-order */ \
- while (year > 0) { \
- *tmp = '0' + (xmlChar)(year % 10); \
- year /= 10; \
- tmp++; \
- } \
- /* virtually adds leading zeros */ \
- while ((tmp - tmp_buf) < 4) \
- *tmp++ = '0'; \
- /* restore the correct order */ \
- while (tmp > tmp_buf) { \
- tmp--; \
- *cur = *tmp; \
- cur++; \
- } \
- }
+static void
+exsltFormatGYear(xmlChar **cur, xmlChar *end, long yr)
+{
+ long year;
+ xmlChar tmp_buf[100], *tmp = tmp_buf, *tmp_end = tmp_buf + 99;
+
+ if (yr <= 0 && *cur < end) {
+ *(*cur)++ = '-';
+ }
+
+ year = (yr <= 0) ? -yr + 1 : yr;
+ /* result is in reverse-order */
+ while (year > 0 && tmp < tmp_end) {
+ *tmp++ = '0' + (xmlChar)(year % 10);
+ year /= 10;
+ }
+
+ /* virtually adds leading zeros */
+ while ((tmp - tmp_buf) < 4)
+ *tmp++ = '0';
+
+ /* restore the correct order */
+ while (tmp > tmp_buf && *cur < end) {
+ tmp--;
+ *(*cur)++ = *tmp;
+ }
+}
/**
* PARSE_2_DIGITS:
cur += 2;
/**
- * FORMAT_2_DIGITS:
- * @num: the integer to format
- * @cur: a pointer to an allocated buffer
+ * exsltFormat2Digits:
+ * @cur: a pointer to a pointer to an allocated buffer
+ * @end: a pointer to the end of @cur buffer
+ * @num: the integer to format
*
* Formats a 2-digits integer. Result is appended to @cur and
* @cur is updated to point after the integer.
*/
-#define FORMAT_2_DIGITS(num, cur) \
- *cur = '0' + ((num / 10) % 10); \
- cur++; \
- *cur = '0' + (num % 10); \
- cur++;
+static void
+exsltFormat2Digits(xmlChar **cur, xmlChar *end, unsigned int num)
+{
+ if (*cur < end)
+ *(*cur)++ = '0' + ((num / 10) % 10);
+ if (*cur < end)
+ *(*cur)++ = '0' + (num % 10);
+}
/**
* PARSE_FLOAT:
}
/**
- * FORMAT_FLOAT:
- * @num: the double to format
- * @cur: a pointer to an allocated buffer
- * @pad: a flag for padding to 2 integer digits
- *
- * Formats a float. Result is appended to @cur and @cur is updated to
- * point after the integer. If the @pad flag is non-zero, then the
- * float representation has a minimum 2-digits integer part. The
- * fractional part is formatted if @num has a fractional value.
- */
-#define FORMAT_FLOAT(num, cur, pad) \
- { \
- xmlChar *sav, *str; \
- if ((pad) && (num < 10.0)) \
- *cur++ = '0'; \
- str = xmlXPathCastNumberToString(num); \
- sav = str; \
- while (*str != 0) \
- *cur++ = *str++; \
- xmlFree(sav); \
- }
-
-/**
* _exsltDateParseGMonth:
* @dt: pointer to a date structure
* @str: pointer to the string to analyze
}
/**
- * FORMAT_GMONTH:
- * @mon: the month to format
- * @cur: a pointer to an allocated buffer
- *
- * Formats @mon in xsl:gMonth format. Result is appended to @cur and
- * @cur is updated to point after the xsl:gMonth.
- */
-#define FORMAT_GMONTH(mon, cur) \
- FORMAT_2_DIGITS(mon, cur)
-
-/**
* _exsltDateParseGDay:
* @dt: pointer to a date structure
* @str: pointer to the string to analyze
}
/**
- * FORMAT_GDAY:
- * @dt: the #exsltDateVal to format
- * @cur: a pointer to an allocated buffer
- *
- * Formats @dt in xsl:gDay format. Result is appended to @cur and
- * @cur is updated to point after the xsl:gDay.
- */
-#define FORMAT_GDAY(dt, cur) \
- FORMAT_2_DIGITS(dt->day, cur)
-
-/**
- * FORMAT_DATE:
+ * exsltFormatYearMonthDay:
+ * @cur: a pointer to a pointer to an allocated buffer
+ * @end: a pointer to the end of @cur buffer
* @dt: the #exsltDateVal to format
- * @cur: a pointer to an allocated buffer
*
* Formats @dt in xsl:date format. Result is appended to @cur and
* @cur is updated to point after the xsl:date.
*/
-#define FORMAT_DATE(dt, cur) \
- FORMAT_GYEAR(dt->year, cur); \
- *cur = '-'; \
- cur++; \
- FORMAT_GMONTH(dt->mon, cur); \
- *cur = '-'; \
- cur++; \
- FORMAT_GDAY(dt, cur);
+static void
+exsltFormatYearMonthDay(xmlChar **cur, xmlChar *end, const exsltDateValPtr dt)
+{
+ exsltFormatGYear(cur, end, dt->year);
+ if (*cur < end)
+ *(*cur)++ = '-';
+ exsltFormat2Digits(cur, end, dt->mon);
+ if (*cur < end)
+ *(*cur)++ = '-';
+ exsltFormat2Digits(cur, end, dt->day);
+}
/**
* _exsltDateParseTime:
}
/**
- * FORMAT_TIME:
- * @dt: the #exsltDateVal to format
- * @cur: a pointer to an allocated buffer
- *
- * Formats @dt in xsl:time format. Result is appended to @cur and
- * @cur is updated to point after the xsl:time.
- */
-#define FORMAT_TIME(dt, cur) \
- FORMAT_2_DIGITS(dt->hour, cur); \
- *cur = ':'; \
- cur++; \
- FORMAT_2_DIGITS(dt->min, cur); \
- *cur = ':'; \
- cur++; \
- FORMAT_FLOAT(dt->sec, cur, 1);
-
-/**
* _exsltDateParseTimeZone:
* @dt: pointer to a date structure
* @str: pointer to the string to analyze
}
/**
- * FORMAT_TZ:
- * @tzo: the timezone offset to format
- * @cur: a pointer to an allocated buffer
+ * exsltFormatTimeZone:
+ * @cur: a pointer to a pointer to an allocated buffer
+ * @end: a pointer to the end of @cur buffer
+ * @tzo: the timezone offset to format
*
* Formats @tzo timezone. Result is appended to @cur and
* @cur is updated to point after the timezone.
*/
-#define FORMAT_TZ(tzo, cur) \
- if (tzo == 0) { \
- *cur = 'Z'; \
- cur++; \
- } else { \
- int aTzo = (tzo < 0) ? - tzo : tzo; \
- int tzHh = aTzo / 60, tzMm = aTzo % 60; \
- *cur = (tzo < 0) ? '-' : '+' ; \
- cur++; \
- FORMAT_2_DIGITS(tzHh, cur); \
- *cur = ':'; \
- cur++; \
- FORMAT_2_DIGITS(tzMm, cur); \
- }
+static void
+exsltFormatTimeZone(xmlChar **cur, xmlChar *end, int tzo)
+{
+ if (tzo == 0) {
+ if (*cur < end)
+ *(*cur)++ = 'Z';
+ } else {
+ unsigned int aTzo = (tzo < 0) ? -tzo : tzo;
+ unsigned int tzHh = aTzo / 60, tzMm = aTzo % 60;
+ if (*cur < end)
+ *(*cur)++ = (tzo < 0) ? '-' : '+';
+ exsltFormat2Digits(cur, end, tzHh);
+ if (*cur < end)
+ *(*cur)++ = ':';
+ exsltFormat2Digits(cur, end, tzMm);
+ }
+}
/****************************************************************
* *
exsltDateCurrent (void)
{
struct tm localTm, gmTm;
-#ifndef HAVE_GMTIME_R
+#if !defined(HAVE_GMTIME_R) && !defined(HAVE_MSVCRT)
struct tm *tb = NULL;
#endif
time_t secs;
errno = 0;
secs = (time_t) strtol (source_date_epoch, NULL, 10);
if (errno == 0) {
-#if HAVE_GMTIME_R
+#ifdef HAVE_MSVCRT
+ struct tm *gm = gmtime_s(&localTm, &secs) ? NULL : &localTm;
+ if (gm != NULL)
+ override = 1;
+#elif HAVE_GMTIME_R
if (gmtime_r(&secs, &localTm) != NULL)
override = 1;
#else
/* get current time */
secs = time(NULL);
-#if HAVE_LOCALTIME_R
+#ifdef HAVE_MSVCRT
+ localtime_s(&localTm, &secs);
+#elif HAVE_LOCALTIME_R
localtime_r(&secs, &localTm);
#else
localTm = *localtime(&secs);
ret->sec = (double) localTm.tm_sec;
/* determine the time zone offset from local to gm time */
-#if HAVE_GMTIME_R
+#ifdef HAVE_MSVCRT
+ gmtime_s(&gmTm, &secs);
+#elif HAVE_GMTIME_R
gmtime_r(&secs, &gmTm);
#else
tb = gmtime(&secs);
return NULL;
}
-/**
- * FORMAT_ITEM:
- * @num: number to format
- * @cur: current location to convert number
- * @limit: max value
- * @item: char designator
- *
- */
-#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; \
+static void
+exsltFormatLong(xmlChar **cur, xmlChar *end, long num) {
+ xmlChar buf[20];
+ int i = 0;
+
+ while (i < 20) {
+ buf[i++] = '0' + num % 10;
+ num /= 10;
+ if (num == 0)
+ break;
+ }
+
+ while (i > 0) {
+ if (*cur < end)
+ *(*cur)++ = buf[--i];
+ }
+}
+
+static void
+exsltFormatNanoseconds(xmlChar **cur, xmlChar *end, long nsecs) {
+ long p10, digit;
+
+ if (nsecs > 0) {
+ if (*cur < end)
+ *(*cur)++ = '.';
+ p10 = 100000000;
+ while (nsecs > 0) {
+ digit = nsecs / p10;
+ if (*cur < end)
+ *(*cur)++ = '0' + digit;
+ nsecs -= digit * p10;
+ p10 /= 10;
}
+ }
+}
/**
* exsltDateFormatDuration:
static xmlChar *
exsltDateFormatDuration (const exsltDateDurValPtr dur)
{
- xmlChar buf[100], *cur = buf;
- double secs, days;
- double years, months;
+ xmlChar buf[100], *cur = buf, *end = buf + 99;
+ double secs, tmp;
+ long days, months, intSecs, nsecs;
if (dur == NULL)
return NULL;
return xmlStrdup((xmlChar*)"P0D");
secs = dur->sec;
- days = (double)dur->day;
- years = (double)(dur->mon / 12);
- months = (double)(dur->mon % 12);
+ days = dur->day;
+ months = dur->mon;
*cur = '\0';
if (days < 0) {
days = -days;
*cur = '-';
}
- if (years < 0) {
- years = -years;
- *cur = '-';
- }
if (months < 0) {
months = -months;
*cur = '-';
*cur++ = 'P';
- if (years != 0.0) {
- FORMAT_ITEM(years, cur, 1, 'Y');
+ if (months >= 12) {
+ long years = months / 12;
+
+ months -= years * 12;
+ exsltFormatLong(&cur, end, years);
+ if (cur < end)
+ *cur++ = 'Y';
}
- if (months != 0.0) {
- FORMAT_ITEM(months, cur, 1, 'M');
+ if (months != 0) {
+ exsltFormatLong(&cur, end, months);
+ if (cur < end)
+ *cur++ = 'M';
}
- FORMAT_ITEM(days, cur, 1, 'D');
- if (secs > 0.0) {
- *cur++ = 'T';
+ if (days != 0) {
+ exsltFormatLong(&cur, end, days);
+ if (cur < end)
+ *cur++ = 'D';
}
- FORMAT_ITEM(secs, cur, SECS_PER_HOUR, 'H');
- FORMAT_ITEM(secs, cur, SECS_PER_MIN, 'M');
- if (secs > 0.0) {
- FORMAT_FLOAT(secs, cur, 0);
- *cur++ = 'S';
+
+ tmp = floor(secs);
+ intSecs = (long) tmp;
+ /* Round to nearest to avoid issues with floating point precision */
+ nsecs = (long) floor((secs - tmp) * 1000000000 + 0.5);
+ if (nsecs >= 1000000000) {
+ nsecs -= 1000000000;
+ intSecs += 1;
+ }
+
+ if ((intSecs > 0) || (nsecs > 0)) {
+ if (cur < end)
+ *cur++ = 'T';
+
+ if (intSecs >= SECS_PER_HOUR) {
+ long hours = intSecs / SECS_PER_HOUR;
+
+ intSecs -= hours * SECS_PER_HOUR;
+ exsltFormatLong(&cur, end, hours);
+ if (cur < end)
+ *cur++ = 'H';
+ }
+
+ if (intSecs >= SECS_PER_MIN) {
+ long mins = intSecs / SECS_PER_MIN;
+
+ intSecs -= mins * SECS_PER_MIN;
+ exsltFormatLong(&cur, end, mins);
+ if (cur < end)
+ *cur++ = 'M';
+ }
+
+ if ((intSecs > 0) || (nsecs > 0)) {
+ exsltFormatLong(&cur, end, intSecs);
+ exsltFormatNanoseconds(&cur, end, nsecs);
+ if (cur < end)
+ *cur++ = 'S';
+ }
}
*cur = 0;
return xmlStrdup(buf);
}
+static void
+exsltFormatTwoDigits(xmlChar **cur, xmlChar *end, int num) {
+ if (num < 0 || num >= 100)
+ return;
+ if (*cur < end)
+ *(*cur)++ = '0' + num / 10;
+ if (*cur < end)
+ *(*cur)++ = '0' + num % 10;
+}
+
+static void
+exsltFormatTime(xmlChar **cur, xmlChar *end, exsltDateValPtr dt) {
+ double tmp;
+ long intSecs, nsecs;
+
+ exsltFormatTwoDigits(cur, end, dt->hour);
+ if (*cur < end)
+ *(*cur)++ = ':';
+
+ exsltFormatTwoDigits(cur, end, dt->min);
+ if (*cur < end)
+ *(*cur)++ = ':';
+
+ tmp = floor(dt->sec);
+ intSecs = (long) tmp;
+ /*
+ * Round to nearest to avoid issues with floating point precision,
+ * but don't carry over so seconds stay below 60.
+ */
+ nsecs = (long) floor((dt->sec - tmp) * 1000000000 + 0.5);
+ if (nsecs > 999999999)
+ nsecs = 999999999;
+ exsltFormatTwoDigits(cur, end, intSecs);
+ exsltFormatNanoseconds(cur, end, nsecs);
+}
+
/**
* exsltDateFormatDateTime:
* @dt: an #exsltDateValPtr
static xmlChar *
exsltDateFormatDateTime (const exsltDateValPtr dt)
{
- xmlChar buf[100], *cur = buf;
+ xmlChar buf[100], *cur = buf, *end = buf + 99;
if ((dt == NULL) || !VALID_DATETIME(dt))
return NULL;
- FORMAT_DATE(dt, cur);
- *cur = 'T';
- cur++;
- FORMAT_TIME(dt, cur);
- FORMAT_TZ(dt->tzo, cur);
+ exsltFormatYearMonthDay(&cur, end, dt);
+ if (cur < end)
+ *cur++ = 'T';
+ exsltFormatTime(&cur, end, dt);
+ exsltFormatTimeZone(&cur, end, dt->tzo);
*cur = 0;
return xmlStrdup(buf);
static xmlChar *
exsltDateFormatDate (const exsltDateValPtr dt)
{
- xmlChar buf[100], *cur = buf;
+ xmlChar buf[100], *cur = buf, *end = buf + 99;
if ((dt == NULL) || !VALID_DATETIME(dt))
return NULL;
- FORMAT_DATE(dt, cur);
+ exsltFormatYearMonthDay(&cur, end, dt);
if (dt->tz_flag || (dt->tzo != 0)) {
- FORMAT_TZ(dt->tzo, cur);
+ exsltFormatTimeZone(&cur, end, dt->tzo);
}
*cur = 0;
static xmlChar *
exsltDateFormatTime (const exsltDateValPtr dt)
{
- xmlChar buf[100], *cur = buf;
+ xmlChar buf[100], *cur = buf, *end = buf + 99;
if ((dt == NULL) || !VALID_TIME(dt))
return NULL;
- FORMAT_TIME(dt, cur);
+ exsltFormatTime(&cur, end, dt);
if (dt->tz_flag || (dt->tzo != 0)) {
- FORMAT_TZ(dt->tzo, cur);
+ exsltFormatTimeZone(&cur, end, dt->tzo);
}
*cur = 0;
static xmlChar *
exsltDateFormat (const exsltDateValPtr dt)
{
-
if (dt == NULL)
return NULL;
}
if (dt->type & XS_GYEAR) {
- xmlChar buf[100], *cur = buf;
+ xmlChar buf[100], *cur = buf, *end = buf + 99;
- FORMAT_GYEAR(dt->year, cur);
+ exsltFormatGYear(&cur, end, dt->year);
if (dt->type == XS_GYEARMONTH) {
- *cur = '-';
- cur++;
- FORMAT_GMONTH(dt->mon, cur);
+ if (cur < end)
+ *cur++ = '-';
+ exsltFormat2Digits(&cur, end, dt->mon);
}
if (dt->tz_flag || (dt->tzo != 0)) {
- FORMAT_TZ(dt->tzo, cur);
+ exsltFormatTimeZone(&cur, end, dt->tzo);
}
*cur = 0;
return xmlStrdup(buf);
exsltDateDurValPtr y)
{
/* months */
- if ((x->mon > 0 && y->mon > LONG_MAX - x->mon) ||
- (x->mon < 0 && y->mon < LONG_MIN - x->mon)) {
+ 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 */
- if ((x->day > 0 && y->day > LONG_MAX - x->day) ||
- (x->day < 0 && y->day < LONG_MIN - x->day)) {
+ if ((x->day > 0 && y->day > LONG_MAX - x->day) ||
+ (x->day < 0 && y->day <= LONG_MIN - x->day)) {
/* Overflow */
return 0;
}
xsltGenericError(xsltGenericErrorContext,
"Failed to register function {%s}%s\n",
URI, name);
+ xmlFree(func);
} else { /* Do the registration */
xsltGenericDebug(xsltGenericDebugContext,
"exsltFuncRegisterImportFunc: register {%s}%s\n",
void *vdata) {
exsltFuncData *data = (exsltFuncData *) vdata;
- if (data->result != NULL)
- xmlXPathFreeObject(data->result);
- xmlFree(data);
+ if (data != NULL) {
+ if (data->result != NULL)
+ xmlXPathFreeObject(data->result);
+ xmlFree(data);
+ }
}
/**
exsltFuncData *data;
exsltFuncFunctionData *func;
xmlNodePtr paramNode, oldInsert, oldXPNode, fake;
- int oldBase;
+ int oldBase, newBase;
void *oldCtxtVar;
xsltStackElemPtr params = NULL, param;
xsltTransformContextPtr tctxt = xsltXPathGetTransformContext(ctxt);
- int i, notSet;
- struct objChain {
- struct objChain *next;
- xmlXPathObjectPtr obj;
- };
- struct objChain *savedObjChain = NULL, *savedObj;
+ int i;
+ xmlXPathObjectPtr *args = NULL;
/*
* retrieve func:function template
/* Evaluating templates can change the XPath context node. */
oldXPNode = tctxt->xpathCtxt->node;
+ fake = xmlNewDocNode(tctxt->output, NULL,
+ (const xmlChar *)"fake", NULL);
+ if (fake == NULL)
+ goto error;
/*
* We have a problem with the evaluation of function parameters.
* The original library code did not evaluate XPath expressions until
* In order to give the function params and variables a new 'scope'
* we change varsBase in the context.
*/
- oldBase = tctxt->varsBase;
- tctxt->varsBase = tctxt->varsNr;
+ newBase = tctxt->varsNr;
/* If there are any parameters */
if (paramNode != NULL) {
+ args = (xmlXPathObjectPtr *) xmlMalloc(sizeof(*args) * nargs);
+ if (args == NULL)
+ goto error;
/* Fetch the stored argument values from the caller */
- for (i = 0; i < nargs; i++) {
- savedObj = xmlMalloc(sizeof(struct objChain));
- savedObj->next = savedObjChain;
- savedObj->obj = valuePop(ctxt);
- savedObjChain = savedObj;
+ for (i = nargs - 1; i >= 0; i--) {
+ args[i] = valuePop(ctxt);
}
/*
* as arguments from the caller
* Calculate the number of un-set parameters
*/
- notSet = func->nargs - nargs;
- for (; i > 0; i--) {
+ for (i = 0; i < func->nargs; i++) {
param = xsltParseStylesheetCallerParam (tctxt, paramNode);
- if (i > notSet) { /* if parameter value set */
+ if (param == NULL) {
+ xsltLocalVariablePop(tctxt, newBase, -2);
+ xsltFreeStackElemList(params);
+ for (; i < nargs; i++)
+ xmlXPathFreeObject(args[i]);
+ goto error;
+ }
+ if (i < nargs) { /* if parameter value set */
param->computed = 1;
if (param->value != NULL)
xmlXPathFreeObject(param->value);
- savedObj = savedObjChain; /* get next val from chain */
- param->value = savedObj->obj;
- savedObjChain = savedObjChain->next;
- xmlFree(savedObj);
+ param->value = args[i];
}
xsltLocalVariablePush(tctxt, param, -1);
param->next = params;
* Actual processing. The context variable is cleared and restored
* when func:result is evaluated.
*/
- fake = xmlNewDocNode(tctxt->output, NULL,
- (const xmlChar *)"fake", NULL);
+ oldBase = tctxt->varsBase;
oldInsert = tctxt->insert;
oldCtxtVar = data->ctxtVar;
data->ctxtVar = tctxt->contextVariable;
+ tctxt->varsBase = newBase;
tctxt->insert = fake;
tctxt->contextVariable = NULL;
xsltApplyOneTemplate (tctxt, tctxt->node,
* the generation of result nodes.
*/
if (fake->children != NULL) {
-#ifdef LIBXML_DEBUG_ENABLED
- xmlDebugDumpNode (stderr, fake, 1);
-#endif
xsltGenericError(xsltGenericErrorContext,
"{%s}%s: cannot write to result tree while "
"executing a function\n",
ctxt->context->functionURI, ctxt->context->function);
- xmlFreeNode(fake);
xmlXPathFreeObject(ret);
goto error;
}
- xmlFreeNode(fake);
valuePush(ctxt, ret);
error:
+ xmlFree(args);
+ xmlFreeNode(fake);
tctxt->depth--;
}
}
/* Mark as function result. */
xsltRegisterLocalRVT(ctxt, container);
- container->psvi = XSLT_RVT_FUNC_RESULT;
+ container->compression = XSLT_RVT_FUNC_RESULT;
oldInsert = ctxt->insert;
ctxt->insert = (xmlNodePtr) container;
ret = xmlHashLookup(hash, arg);
if (ret == NULL) {
- ret = xmlXPathCtxtCompile(tctxt->xpathCtxt, arg);
- if (ret == NULL) {
- xmlFree(arg);
- xmlXPathSetError(ctxt, XPATH_EXPR_ERROR);
- return;
- }
- xmlHashAddEntry(hash, arg, (void *) ret);
+ ret = xmlXPathCtxtCompile(tctxt->xpathCtxt, arg);
+ if (ret == NULL) {
+ xmlFree(arg);
+ xmlXPathSetError(ctxt, XPATH_EXPR_ERROR);
+ return;
+ }
+ if (xmlHashAddEntry(hash, arg, (void *) ret) < 0) {
+ xmlXPathFreeCompExpr(ret);
+ xmlFree(arg);
+ xmlXPathSetError(ctxt, XPATH_MEMORY_ERROR);
+ return;
+ }
}
xmlFree(arg);
/* !!! must be sorted !!! */
ret = xmlXPathDistinctSorted(ns);
- if (ret != ns)
- xmlXPathFreeNodeSet(ns);
+ if (ret != ns)
+ xmlXPathFreeNodeSet(ns);
obj = xmlXPathWrapNodeSet(ret);
- obj->user = user;
- obj->boolval = boolval;
- valuePush((ctxt), obj);
+ if (obj != NULL) {
+ obj->user = user;
+ obj->boolval = boolval;
+ }
+ valuePush(ctxt, obj);
}
/**
foreach(property IN ITEMS IMPORTED_LOCATION IMPORTED_IMPLIB)
get_target_property(${basename}_${property}_DEBUG ${target} ${property}_DEBUG)
get_target_property(${basename}_${property}_MINSIZEREL ${target} ${property}_MINSIZEREL)
+ get_target_property(${basename}_${property}_NOCONFIG ${target} ${property}_NOCONFIG)
get_target_property(${basename}_${property}_RELEASE ${target} ${property}_RELEASE)
get_target_property(${basename}_${property}_RELWITHDEBINFO ${target} ${property}_RELWITHDEBINFO)
set(${basename}_LIBRARY ${${basename}_${property}_MINSIZEREL})
elseif(${basename}_${property}_DEBUG)
set(${basename}_LIBRARY ${${basename}_${property}_DEBUG})
+ elseif(${basename}_${property}_NOCONFIG)
+ set(${basename}_LIBRARY ${${basename}_${property}_NOCONFIG})
endif()
endforeach()
endif()
if(TARGET ${target})
get_target_property(${basename}_IMPORTED_LOCATION_DEBUG ${target} IMPORTED_LOCATION_DEBUG)
get_target_property(${basename}_IMPORTED_LOCATION_MINSIZEREL ${target} IMPORTED_LOCATION_MINSIZEREL)
+ get_target_property(${basename}_IMPORTED_LOCATION_NOCONFIG ${target} IMPORTED_LOCATION_NOCONFIG)
get_target_property(${basename}_IMPORTED_LOCATION_RELEASE ${target} IMPORTED_LOCATION_RELEASE)
get_target_property(${basename}_IMPORTED_LOCATION_RELWITHDEBINFO ${target} IMPORTED_LOCATION_RELWITHDEBINFO)
set(${basename}_EXECUTABLE ${${basename}_IMPORTED_LOCATION_MINSIZEREL})
elseif(${basename}_IMPORTED_LOCATION_DEBUG)
set(${basename}_EXECUTABLE ${${basename}_IMPORTED_LOCATION_DEBUG})
+ elseif(${basename}_IMPORTED_LOCATION_NOCONFIG)
+ set(${basename}_EXECUTABLE ${${basename}_IMPORTED_LOCATION_NOCONFIG})
endif()
endif()
endmacro()
Version: @VERSION@
Description: XSLT library version 2.
Requires: libxml-2.0
-Cflags: @XSLT_INCLUDEDIR@
+Cflags: @XSLT_INCLUDEDIR@ @LIBXSLT_CFLAGS@
Libs: @XSLT_LIBDIR@ -lxslt
Libs.private: @XSLT_PRIVATE_LIBS@
rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/%{name}{,-python}-%{version}
%check
-make tests
+make check
%clean
rm -fr %{buildroot}
%doc AUTHORS NEWS README Copyright TODO FEATURES
%doc doc/libxslt-api.xml
-%doc doc/libxslt-refs.xml
%doc doc/EXSLT/libexslt-api.xml
-%doc doc/EXSLT/libexslt-refs.xml
%doc %{_mandir}/man3/libxslt.3*
%doc %{_mandir}/man3/libexslt.3*
%doc doc/*.html doc/html doc/*.gif doc/*.png
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/libxslt
-AM_CFLAGS = $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
-
lib_LTLIBRARIES = libxslt.la
xsltincdir = $(includedir)/libxslt
libxslt_la_LIBADD = $(LIBXML_LIBS) $(EXTRA_LIBS) $(LIBM)
libxslt_la_LDFLAGS = \
+ $(AM_LDFLAGS) -no-undefined \
$(LIBXSLT_VERSION_SCRIPT) \
-version-info $(LIBXSLT_VERSION_INFO)
struct _xsltAttrSetContext {
xsltStylesheetPtr topStyle;
xsltStylesheetPtr style;
+ int error;
};
static void
* Returns the newly allocated xsltAttrSetPtr or NULL in case of error.
*/
static xsltAttrSetPtr
-xsltNewAttrSet() {
+xsltNewAttrSet(void) {
xsltAttrSetPtr cur;
cur = (xsltAttrSetPtr) xmlMalloc(sizeof(xsltAttrSet));
set = xmlHashLookup2(style->attributeSets, ncname, nsUri);
if (set == NULL) {
set = xsltNewAttrSet();
- if (set == NULL)
+ if ((set == NULL) ||
+ (xmlHashAddEntry2(style->attributeSets, ncname, nsUri, set) < 0)) {
+ xsltGenericError(xsltGenericErrorContext, "memory error\n");
+ xsltFreeAttrSet(set);
return;
- xmlHashAddEntry2(style->attributeSets, ncname, nsUri, set);
+ }
}
/*
xsltStylesheetPtr topStyle = asctx->topStyle;
xsltStylesheetPtr style = asctx->style;
+ if (asctx->error) {
+ if (style != topStyle)
+ xsltFreeAttrSet(set);
+ return;
+ }
+
xsltResolveAttrSet(set, topStyle, style, name, ns, 1);
/* Move attribute sets to top stylesheet. */
xsltGenericError(xsltGenericErrorContext,
"xsl:attribute-set : internal error, can't move imported "
" attribute set %s\n", name);
+ asctx->error = 1;
+ xsltFreeAttrSet(set);
}
}
}
"Resolving attribute sets references\n");
#endif
asctx.topStyle = style;
+ asctx.error = 0;
cur = style;
while (cur != NULL) {
if (cur->attributeSets != NULL) {
#include <libxml/tree.h>
#include "xsltexports.h"
+#include "xsltInternals.h"
#ifdef __cplusplus
extern "C" {
if (avt->nb_seg >= avt->max_seg) {
size_t size = sizeof(xsltAttrVT) +
(avt->max_seg + MAX_AVT_SEG) * sizeof(void *);
- xsltAttrVTPtr tmp = (xsltAttrVTPtr) xmlRealloc(avt, size);
- if (tmp == NULL) {
- xsltFreeAttrVT(avt);
+ avt = (xsltAttrVTPtr) xmlRealloc(avt, size);
+ if (avt == NULL)
return NULL;
- }
- avt = tmp;
memset(&avt->segments[avt->nb_seg], 0, MAX_AVT_SEG*sizeof(void *));
avt->max_seg += MAX_AVT_SEG;
}
const xmlChar *cur;
xmlChar *ret = NULL;
xmlChar *expr = NULL;
- xsltAttrVTPtr avt;
+ xmlXPathCompExprPtr comp = NULL;
+ xsltAttrVTPtr avt, tmp;
int i = 0, lastavt = 0;
if ((style == NULL) || (attr == NULL) || (attr->children == NULL))
str = cur;
if (avt->nb_seg == 0)
avt->strstart = 1;
- if ((avt = xsltSetAttrVTsegment(avt, (void *) ret)) == NULL)
+ if ((tmp = xsltSetAttrVTsegment(avt, (void *) ret)) == NULL)
goto error;
+ avt = tmp;
ret = NULL;
lastavt = 0;
}
XSLT_TODO
goto error;
} else {
- xmlXPathCompExprPtr comp;
-
comp = xsltXPathCompile(style, expr);
if (comp == NULL) {
xsltTransformError(NULL, style, attr->parent,
if (avt->nb_seg == 0)
avt->strstart = 0;
if (lastavt == 1) {
- if ((avt = xsltSetAttrVTsegment(avt, NULL)) == NULL)
+ if ((tmp = xsltSetAttrVTsegment(avt, NULL)) == NULL) {
+ xsltTransformError(NULL, style, attr->parent,
+ "out of memory\n");
goto error;
+ }
+ avt = tmp;
}
- if ((avt = xsltSetAttrVTsegment(avt, (void *) comp)) == NULL)
+ if ((tmp = xsltSetAttrVTsegment(avt, (void *) comp)) == NULL) {
+ xsltTransformError(NULL, style, attr->parent,
+ "out of memory\n");
goto error;
+ }
+ avt = tmp;
lastavt = 1;
xmlFree(expr);
expr = NULL;
+ comp = NULL;
}
cur++;
str = cur;
str = cur;
if (avt->nb_seg == 0)
avt->strstart = 1;
- if ((avt = xsltSetAttrVTsegment(avt, (void *) ret)) == NULL)
+ if ((tmp = xsltSetAttrVTsegment(avt, (void *) ret)) == NULL)
goto error;
+ avt = tmp;
ret = NULL;
}
xmlFree(ret);
if (expr != NULL)
xmlFree(expr);
+ if (comp != NULL)
+ xmlXPathFreeCompExpr(comp);
}
return(NULL);
ret = xsltNewStyleDocument(style, doc);
+ if (ret == NULL)
+ xmlFreeDoc(doc);
return(ret);
}
#define IN_LIBXSLT
#include "libxslt.h"
+#include <stdlib.h>
#include <string.h>
#include <limits.h>
#endif
#include <libxml/list.h>
#include <libxml/xmlIO.h>
+#include <libxml/threads.h>
#include "xslt.h"
#include "xsltInternals.h"
+#include "xsltlocale.h"
#include "xsltutils.h"
#include "imports.h"
#include "extensions.h"
* Store the user-data in the context of the given stylesheet.
*/
dataContainer = xsltNewExtData(module, userData);
- if (dataContainer == NULL)
+ if (dataContainer == NULL) {
+ if (module->styleShutdownFunc)
+ module->styleShutdownFunc(style, URI, userData);
return (NULL);
+ }
if (xmlHashAddEntry(style->extInfos, URI,
(void *) dataContainer) < 0)
* Old behaviour.
*/
tmpStyle = style;
- while (tmpStyle != NULL) {
- if (tmpStyle->extInfos != NULL) {
- dataContainer =
- (xsltExtDataPtr) xmlHashLookup(tmpStyle->extInfos, URI);
- if (dataContainer != NULL) {
- return(dataContainer->extData);
- }
- }
- tmpStyle = xsltNextImport(tmpStyle);
+ if (tmpStyle->extInfos != NULL) {
+ dataContainer =
+ (xsltExtDataPtr) xmlHashLookup(tmpStyle->extInfos, URI);
+ if (dataContainer != NULL) {
+ return(dataContainer->extData);
+ }
}
- tmpStyle = style;
#endif
dataContainer =
return (NULL);
data = xsltNewExtData(module, extData);
- if (data == NULL)
- return (NULL);
- if (xmlHashAddEntry(ctxt->extInfos, URI, (void *) data) < 0) {
+ if ((data == NULL) ||
+ (xmlHashAddEntry(ctxt->extInfos, URI, (void *) data) < 0)) {
xsltTransformError(ctxt, NULL, NULL,
"Failed to register module data: %s\n",
URI);
}
ctxtData = xsltNewExtData(module, extData);
if (ctxtData == NULL) {
+ if (module->shutdownFunc)
+ module->shutdownFunc(ctxt->ctxt, URI, extData);
ctxt->ret = -1;
return;
}
if (ctxt->ctxt->extInfos == NULL)
ctxt->ctxt->extInfos = xmlHashCreate(10);
if (ctxt->ctxt->extInfos == NULL) {
+ if (module->shutdownFunc)
+ module->shutdownFunc(ctxt->ctxt, URI, extData);
+ xsltFreeExtData(ctxtData);
ctxt->ret = -1;
return;
}
output = stdout;
fprintf(output,
"Registered XSLT Extensions\n--------------------------\n");
- if (!xsltFunctionsHash)
+ xmlMutexLock(xsltExtMutex);
+ if (!xsltFunctionsHash) {
fprintf(output, "No registered extension functions\n");
- else {
- fprintf(output, "Registered Extension Functions:\n");
- xmlMutexLock(xsltExtMutex);
+ } else {
+ fprintf(output, "Registered extension functions:\n");
xmlHashScanFull(xsltFunctionsHash, xsltDebugDumpExtensionsCallback,
output);
- xmlMutexUnlock(xsltExtMutex);
}
- if (!xsltElementsHash)
- fprintf(output, "\nNo registered extension elements\n");
- else {
- fprintf(output, "\nRegistered Extension Elements:\n");
- xmlMutexLock(xsltExtMutex);
+ if (!xsltTopLevelsHash) {
+ fprintf(output, "\nNo registered top-level extension elements\n");
+ } else {
+ fprintf(output, "\nRegistered top-level extension elements:\n");
+ xmlHashScanFull(xsltTopLevelsHash, xsltDebugDumpExtensionsCallback,
+ output);
+ }
+ if (!xsltElementsHash) {
+ fprintf(output, "\nNo registered instruction extension elements\n");
+ } else {
+ fprintf(output, "\nRegistered instruction extension elements:\n");
xmlHashScanFull(xsltElementsHash, xsltDebugDumpExtensionsCallback,
output);
- xmlMutexUnlock(xsltExtMutex);
}
- if (!xsltExtensionsHash)
+ if (!xsltExtensionsHash) {
fprintf(output, "\nNo registered extension modules\n");
- else {
- fprintf(output, "\nRegistered Extension Modules:\n");
- xmlMutexLock(xsltExtMutex);
+ } else {
+ fprintf(output, "\nRegistered extension modules:\n");
xmlHashScanFull(xsltExtensionsHash, xsltDebugDumpExtModulesCallback,
output);
- xmlMutexUnlock(xsltExtMutex);
}
-
+ xmlMutexUnlock(xsltExtMutex);
}
obj2 = valuePop(ctxt);
}
- if (ctxt->value->type == XPATH_NODESET) {
+ if ((ctxt->value != NULL) && (ctxt->value->type == XPATH_NODESET)) {
int i;
xmlXPathObjectPtr newobj, ret;
obj = valuePop(ctxt);
ret = xmlXPathNewNodeSet(NULL);
- if ((obj != NULL) && obj->nodesetval) {
+ if ((obj != NULL) && (obj->nodesetval != NULL) && (ret != NULL)) {
for (i = 0; i < obj->nodesetval->nodeNr; i++) {
valuePush(ctxt,
xmlXPathNewNodeSet(obj->nodesetval->nodeTab[i]));
xmlXPathNewNodeSet(obj->nodesetval->
nodeTab[i]));
}
+ if (ctxt->error)
+ break;
xsltDocumentFunction(ctxt, 2);
newobj = valuePop(ctxt);
- ret->nodesetval = xmlXPathNodeSetMerge(ret->nodesetval,
- newobj->nodesetval);
- xmlXPathFreeObject(newobj);
+ if (newobj != NULL) {
+ ret->nodesetval = xmlXPathNodeSetMerge(ret->nodesetval,
+ newobj->nodesetval);
+ xmlXPathFreeObject(newobj);
+ }
}
}
* Make sure it's converted to a string
*/
xmlXPathStringFunction(ctxt, 1);
- if (ctxt->value->type != XPATH_STRING) {
+ if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_STRING)) {
xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
"document() : invalid arg expecting a string\n");
ctxt->error = XPATH_INVALID_TYPE;
xmlXPathObjectPtr newobj, ret;
ret = xmlXPathNewNodeSet(NULL);
+ if (ret == NULL) {
+ ctxt->error = XPATH_MEMORY_ERROR;
+ xmlXPathFreeObject(obj1);
+ xmlXPathFreeObject(obj2);
+ return;
+ }
if (obj2->nodesetval != NULL) {
for (i = 0; i < obj2->nodesetval->nodeNr; i++) {
xmlXPathStringFunction(ctxt, 1);
xsltKeyFunction(ctxt, 2);
newobj = valuePop(ctxt);
- ret->nodesetval = xmlXPathNodeSetMerge(ret->nodesetval,
- newobj->nodesetval);
+ if (newobj != NULL)
+ ret->nodesetval = xmlXPathNodeSetMerge(ret->nodesetval,
+ newobj->nodesetval);
xmlXPathFreeObject(newobj);
}
}
*/
valuePush(ctxt, obj2);
xmlXPathStringFunction(ctxt, 1);
- if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_STRING)) {
+ obj2 = valuePop(ctxt);
+ if ((obj2 == NULL) || (obj2->type != XPATH_STRING)) {
xsltTransformError(tctxt, NULL, tctxt->inst,
"key() : invalid arg expecting a string\n");
ctxt->error = XPATH_INVALID_TYPE;
goto error;
}
- obj2 = valuePop(ctxt);
value = obj2->stringval;
/*
obj = valuePop(ctxt);
if (obj->type != XPATH_STRING) {
obj = xmlXPathConvertString(obj);
+ if (obj == NULL) {
+ xmlXPathErr(ctxt, XPATH_MEMORY_ERROR);
+ return;
+ }
}
str = obj->stringval;
return;
}
- if (formatValues != NULL) {
+ if ((ctxt->error == 0) &&
+ (formatValues != NULL) && (formatObj != NULL) && (numberObj != NULL)) {
if (xsltFormatNumberConversion(formatValues,
formatObj->stringval,
numberObj->floatval,
*/
void
xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){
- static char base_address;
+ xsltTransformContextPtr tctxt;
xmlNodePtr cur = NULL;
xmlXPathObjectPtr obj = NULL;
- long val;
- xmlChar str[30];
+ char *str;
+ const xmlChar *nsPrefix = NULL;
+ void **psviPtr;
+ unsigned long id;
+ size_t size, nsPrefixSize;
+
+ tctxt = xsltXPathGetTransformContext(ctxt);
if (nargs == 0) {
cur = ctxt->context->node;
if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_NODESET)) {
ctxt->error = XPATH_INVALID_TYPE;
- xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+ xsltTransformError(tctxt, NULL, NULL,
"generate-id() : invalid arg expecting a node-set\n");
- return;
+ goto out;
}
obj = valuePop(ctxt);
nodelist = obj->nodesetval;
if ((nodelist == NULL) || (nodelist->nodeNr <= 0)) {
- xmlXPathFreeObject(obj);
valuePush(ctxt, xmlXPathNewCString(""));
- return;
+ goto out;
}
cur = nodelist->nodeTab[0];
for (i = 1;i < nodelist->nodeNr;i++) {
cur = nodelist->nodeTab[i];
}
} else {
- xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+ xsltTransformError(tctxt, NULL, NULL,
"generate-id() : invalid number of args %d\n", nargs);
ctxt->error = XPATH_INVALID_ARITY;
- return;
+ goto out;
}
- if (obj)
- xmlXPathFreeObject(obj);
+ size = 30; /* for "id%lu" */
+
+ if (cur->type == XML_NAMESPACE_DECL) {
+ xmlNsPtr ns = (xmlNsPtr) cur;
- val = (long)((char *)cur - (char *)&base_address);
- if (val >= 0) {
- snprintf((char *)str, sizeof(str), "idp%ld", val);
+ nsPrefix = ns->prefix;
+ if (nsPrefix == NULL)
+ nsPrefix = BAD_CAST "";
+ nsPrefixSize = xmlStrlen(nsPrefix);
+ /* For "ns" and hex-encoded string */
+ size += nsPrefixSize * 2 + 2;
+
+ /* Parent is stored in 'next'. */
+ cur = (xmlNodePtr) ns->next;
+ }
+
+ psviPtr = xsltGetPSVIPtr(cur);
+ if (psviPtr == NULL) {
+ xsltTransformError(tctxt, NULL, NULL,
+ "generate-id(): invalid node type %d\n", cur->type);
+ ctxt->error = XPATH_INVALID_TYPE;
+ goto out;
+ }
+
+ if (xsltGetSourceNodeFlags(cur) & XSLT_SOURCE_NODE_HAS_ID) {
+ id = (unsigned long) (size_t) *psviPtr;
} else {
- snprintf((char *)str, sizeof(str), "idm%ld", -val);
+ if (cur->type == XML_TEXT_NODE && cur->line == USHRT_MAX) {
+ /* Text nodes store big line numbers in psvi. */
+ cur->line = 0;
+ } else if (*psviPtr != NULL) {
+ xsltTransformError(tctxt, NULL, NULL,
+ "generate-id(): psvi already set\n");
+ ctxt->error = XPATH_MEMORY_ERROR;
+ goto out;
+ }
+
+ if (tctxt->currentId == ULONG_MAX) {
+ xsltTransformError(tctxt, NULL, NULL,
+ "generate-id(): id overflow\n");
+ ctxt->error = XPATH_MEMORY_ERROR;
+ goto out;
+ }
+
+ id = ++tctxt->currentId;
+ *psviPtr = (void *) (size_t) id;
+ xsltSetSourceNodeFlags(tctxt, cur, XSLT_SOURCE_NODE_HAS_ID);
}
- valuePush(ctxt, xmlXPathNewString(str));
+
+ str = xmlMalloc(size);
+ if (str == NULL) {
+ xsltTransformError(tctxt, NULL, NULL,
+ "generate-id(): out of memory\n");
+ ctxt->error = XPATH_MEMORY_ERROR;
+ goto out;
+ }
+ if (nsPrefix == NULL) {
+ snprintf(str, size, "id%lu", id);
+ } else {
+ size_t i, j;
+
+ snprintf(str, size, "id%luns", id);
+
+ /*
+ * Only ASCII alphanumerics are allowed, so we hex-encode the prefix.
+ */
+ j = strlen(str);
+ for (i = 0; i < nsPrefixSize; i++) {
+ int v;
+
+ v = nsPrefix[i] >> 4;
+ str[j++] = v < 10 ? '0' + v : 'A' + (v - 10);
+ v = nsPrefix[i] & 15;
+ str[j++] = v < 10 ? '0' + v : 'A' + (v - 10);
+ }
+ str[j] = '\0';
+ }
+ valuePush(ctxt, xmlXPathWrapString(BAD_CAST str));
+
+out:
+ xmlXPathFreeObject(obj);
}
/**
#include <string.h>
#include <libxml/xmlmemory.h>
-#include <libxml/tree.h>
+#include <libxml/parser.h>
#include <libxml/hash.h>
#include <libxml/xmlerror.h>
#include <libxml/uri.h>
}
}
+#define XSLT_MAX_NESTING 40
+
+static int
+xsltCheckCycle(xsltStylesheetPtr style, xmlNodePtr cur, const xmlChar *URI) {
+ xsltStylesheetPtr ancestor;
+ xsltDocumentPtr docptr;
+ int depth;
+
+ /*
+ * Check imported stylesheets.
+ */
+ depth = 0;
+ ancestor = style;
+ while (ancestor != NULL) {
+ if (++depth >= XSLT_MAX_NESTING) {
+ xsltTransformError(NULL, style, cur,
+ "maximum nesting depth exceeded: %s\n", URI);
+ return(-1);
+ }
+ if (xmlStrEqual(ancestor->doc->URL, URI)) {
+ xsltTransformError(NULL, style, cur,
+ "recursion detected on imported URL %s\n", URI);
+ return(-1);
+ }
+
+ /*
+ * Check included stylesheets.
+ */
+ docptr = ancestor->includes;
+ while (docptr != NULL) {
+ if (++depth >= XSLT_MAX_NESTING) {
+ xsltTransformError(NULL, style, cur,
+ "maximum nesting depth exceeded: %s\n", URI);
+ return(-1);
+ }
+ if (xmlStrEqual(docptr->doc->URL, URI)) {
+ xsltTransformError(NULL, style, cur,
+ "recursion detected on included URL %s\n", URI);
+ return(-1);
+ }
+ docptr = docptr->includes;
+ }
+
+ ancestor = ancestor->parent;
+ }
+
+ return(0);
+}
+
/**
* xsltParseStylesheetImport:
* @style: the XSLT stylesheet
goto error;
}
- res = style;
- while (res != NULL) {
- if (res->doc == NULL)
- break;
- if (xmlStrEqual(res->doc->URL, URI)) {
- xsltTransformError(NULL, style, cur,
- "xsl:import : recursion detected on imported URL %s\n", URI);
- goto error;
- }
- res = res->parent;
- }
+ if (xsltCheckCycle(style, cur, URI) < 0)
+ goto error;
/*
* Security framework check
xmlChar *URI = NULL;
xsltStylesheetPtr result;
xsltDocumentPtr include;
- xsltDocumentPtr docptr;
int oldNopreproc;
if ((cur == NULL) || (style == NULL))
goto error;
}
- /*
- * in order to detect recursion, we check all previously included
- * stylesheets.
- */
- docptr = style->includes;
- while (docptr != NULL) {
- if (xmlStrEqual(docptr->doc->URL, URI)) {
- xsltTransformError(NULL, style, cur,
- "xsl:include : recursion detected on included URL %s\n", URI);
- goto error;
- }
- docptr = docptr->includes;
- }
+ if (xsltCheckCycle(style, cur, URI) < 0)
+ goto error;
include = xsltLoadStyleDocument(style, URI);
if (include == NULL) {
#endif
key = xsltNewKeyDef(name, nameURI);
+ if (key == NULL)
+ return(-1);
key->match = xmlStrdup(match);
key->use = xmlStrdup(use);
key->inst = inst;
keylist = xmlXPathNodeSetCreate(cur);
if (keylist == NULL)
goto error;
- xmlHashAddEntry(table->keys, str, keylist);
+ if (xmlHashAddEntry(table->keys, str, keylist) < 0) {
+ xmlXPathFreeNodeSet(keylist);
+ goto error;
+ }
} else {
/*
* TODO: How do we know if this function failed?
*/
xmlXPathNodeSetAdd(keylist, cur);
}
- switch (cur->type) {
- case XML_ELEMENT_NODE:
- case XML_TEXT_NODE:
- case XML_CDATA_SECTION_NODE:
- case XML_PI_NODE:
- case XML_COMMENT_NODE:
- cur->psvi = keyDef;
- break;
- case XML_ATTRIBUTE_NODE:
- ((xmlAttrPtr) cur)->psvi = keyDef;
- break;
- case XML_DOCUMENT_NODE:
- case XML_HTML_DOCUMENT_NODE:
- ((xmlDocPtr) cur)->psvi = keyDef;
- break;
- default:
- break;
- }
+ xsltSetSourceNodeFlags(ctxt, cur, XSLT_SOURCE_NODE_HAS_KEY);
xmlFree(str);
str = NULL;
#
-# Officially exported symbols, for which header
-# file definitions are installed in /usr/include/libxslt
-#
-# Automatically generated from symbols.xml and syms.xsl
-#
-# Versions here are *fixed* to match the libxslt version
-# at which the symbol was introduced. This ensures that
-# a new client app requiring symbol foo() can't accidentally
-# run with old libxslt.so not providing foo() - the global
-# soname version info can't enforce this since we never
-# change the soname
+# Retained for backward compatibility. Don't add new symbols.
#
LIBXML2_1.0.11 {
#define IS_DIGIT_ONE(x) xsltIsDigitZero((x)-1)
static int
-xsltIsDigitZero(unsigned int ch)
+xsltIsDigitZero(int ch)
{
/*
* Reference: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt
i = -1;
break;
}
- *(--pointer) = (xmlChar)val;
+ *(--pointer) = val;
}
else {
/*
* Insert initial non-alphanumeric token.
* There is always such a token in the list, even if NULL
*/
- while (!xsltIsLetterDigit(val = xmlStringCurrentChar(NULL, format+ix,
- &len))) {
+ while (!xsltIsLetterDigit(val = xsltGetUTF8CharZ(format+ix, &len))) {
if (format[ix] == 0) /* if end of format string */
break; /* while */
ix += len;
tokens->end = NULL;
}
- val = xmlStringCurrentChar(NULL, format+ix, &len);
+ val = xsltGetUTF8CharZ(format+ix, &len);
if (IS_DIGIT_ONE(val) ||
IS_DIGIT_ZERO(val)) {
tokens->tokens[tokens->nTokens].width = 1;
while (IS_DIGIT_ZERO(val)) {
tokens->tokens[tokens->nTokens].width++;
ix += len;
- val = xmlStringCurrentChar(NULL, format+ix, &len);
+ val = xsltGetUTF8CharZ(format+ix, &len);
}
if (IS_DIGIT_ONE(val)) {
tokens->tokens[tokens->nTokens].token = val - 1;
ix += len;
- val = xmlStringCurrentChar(NULL, format+ix, &len);
+ val = xsltGetUTF8CharZ(format+ix, &len);
} else {
tokens->tokens[tokens->nTokens].token = '0';
tokens->tokens[tokens->nTokens].width = 1;
(val == 'i') ) {
tokens->tokens[tokens->nTokens].token = val;
ix += len;
- val = xmlStringCurrentChar(NULL, format+ix, &len);
+ val = xsltGetUTF8CharZ(format+ix, &len);
} else {
/* XSLT section 7.7
* "Any other format token indicates a numbering sequence
*/
while (xsltIsLetterDigit(val)) {
ix += len;
- val = xmlStringCurrentChar(NULL, format+ix, &len);
+ val = xsltGetUTF8CharZ(format+ix, &len);
}
/*
if (val == 0)
break; /* while */
ix += len;
- val = xmlStringCurrentChar(NULL, format+ix, &len);
+ val = xsltGetUTF8CharZ(format+ix, &len);
}
if (ix > j)
tokens->end = xmlStrndup(&format[j], ix - j);
xmlChar *the_format, *prefix = NULL, *suffix = NULL;
xmlChar *nprefix, *nsuffix = NULL;
int prefix_length, suffix_length = 0, nprefix_length, nsuffix_length;
+ int exp10;
double scale;
int j, len = 0;
int self_grouping_len;
"Invalid format (0-length)\n");
}
*result = NULL;
- switch (xmlXPathIsInf(number)) {
- case -1:
- if (self->minusSign == NULL)
- *result = xmlStrdup(BAD_CAST "-");
- else
- *result = xmlStrdup(self->minusSign);
- /* Intentional fall-through */
- case 1:
- if ((self == NULL) || (self->infinity == NULL))
- *result = xmlStrcat(*result, BAD_CAST "Infinity");
- else
- *result = xmlStrcat(*result, self->infinity);
- return(status);
- default:
- if (xmlXPathIsNaN(number)) {
- if ((self == NULL) || (self->noNumber == NULL))
- *result = xmlStrdup(BAD_CAST "NaN");
- else
- *result = xmlStrdup(self->noNumber);
- return(status);
- }
- }
-
- buffer = xmlBufferCreate();
- if (buffer == NULL) {
- return XPATH_MEMORY_ERROR;
+ if (xmlXPathIsNaN(number)) {
+ if ((self == NULL) || (self->noNumber == NULL))
+ *result = xmlStrdup(BAD_CAST "NaN");
+ else
+ *result = xmlStrdup(self->noNumber);
+ return(status);
}
format_info.integer_hash = 0;
format_info.add_decimal = TRUE;
}
+ /* Apply multiplier */
+ number *= (double)format_info.multiplier;
+ switch (xmlXPathIsInf(number)) {
+ case -1:
+ if (self->minusSign == NULL)
+ *result = xmlStrdup(BAD_CAST "-");
+ else
+ *result = xmlStrdup(self->minusSign);
+ /* Intentional fall-through */
+ case 1:
+ if ((self == NULL) || (self->infinity == NULL))
+ *result = xmlStrcat(*result, BAD_CAST "Infinity");
+ else
+ *result = xmlStrcat(*result, self->infinity);
+ return(status);
+ default:
+ break;
+ }
+
+ buffer = xmlBufferCreate();
+ if (buffer == NULL) {
+ return XPATH_MEMORY_ERROR;
+ }
+
/* Ready to output our number. First see if "default sign" is required */
if (default_sign != 0)
xmlBufferAdd(buffer, self->minusSign, xmlUTF8Strsize(self->minusSign, 1));
j += len;
}
+ /* Round to n digits */
+ number = fabs(number);
+ exp10 = format_info.frac_digits + format_info.frac_hash;
+ /* DBL_MAX_10_EXP should be 308 on IEEE platforms. */
+ if (exp10 > DBL_MAX_10_EXP) {
+ if (format_info.frac_digits > DBL_MAX_10_EXP) {
+ format_info.frac_digits = DBL_MAX_10_EXP;
+ format_info.frac_hash = 0;
+ } else {
+ format_info.frac_hash = DBL_MAX_10_EXP - format_info.frac_digits;
+ }
+ exp10 = DBL_MAX_10_EXP;
+ }
+ scale = pow(10.0, (double) exp10);
+ number += .5 / scale;
+ number -= fmod(number, 1 / scale);
+
/* Next do the integer part of the number */
- number = fabs(number) * (double)format_info.multiplier;
- scale = pow(10.0, (double)(format_info.frac_digits + format_info.frac_hash));
- number = floor((scale * number + 0.5)) / scale;
if ((self->grouping != NULL) &&
(self->grouping[0] != 0)) {
int gchar;
"xsltCompMatchAdd: memory re-allocation failure.\n");
if (ctxt->style != NULL)
ctxt->style->errors++;
- if (value)
- xmlFree(value);
- if (value2)
- xmlFree(value2);
return (-1);
}
comp->maxStep *= 2;
static int
xsltPatPushState(xsltTransformContextPtr ctxt, xsltStepStates *states,
int step, xmlNodePtr node) {
- if ((states->states == NULL) || (states->maxstates <= 0)) {
- states->maxstates = 4;
- states->nbstates = 0;
- states->states = xmlMalloc(4 * sizeof(xsltStepState));
- }
- else if (states->maxstates <= states->nbstates) {
+ if (states->maxstates <= states->nbstates) {
xsltStepState *tmp;
+ int newMax = states->maxstates == 0 ? 4 : 2 * states->maxstates;
tmp = (xsltStepStatePtr) xmlRealloc(states->states,
- 2 * states->maxstates * sizeof(xsltStepState));
+ newMax * sizeof(xsltStepState));
if (tmp == NULL) {
xsltGenericError(xsltGenericErrorContext,
"xsltPatPushState: memory re-allocation failure.\n");
return(-1);
}
states->states = tmp;
- states->maxstates *= 2;
+ states->maxstates = newMax;
}
states->states[states->nbstates].step = step;
states->states[states->nbstates++].node = node;
if (CUR == '"') {
NEXT;
cur = q = CUR_PTR;
- val = xmlStringCurrentChar(NULL, cur, &len);
+ val = xsltGetUTF8CharZ(cur, &len);
while ((xmlIsCharQ(val)) && (val != '"')) {
cur += len;
- val = xmlStringCurrentChar(NULL, cur, &len);
+ val = xsltGetUTF8CharZ(cur, &len);
}
if (!xmlIsCharQ(val)) {
ctxt->error = 1;
} else if (CUR == '\'') {
NEXT;
cur = q = CUR_PTR;
- val = xmlStringCurrentChar(NULL, cur, &len);
+ val = xsltGetUTF8CharZ(cur, &len);
while ((xmlIsCharQ(val)) && (val != '\'')) {
cur += len;
- val = xmlStringCurrentChar(NULL, cur, &len);
+ val = xsltGetUTF8CharZ(cur, &len);
}
if (!xmlIsCharQ(val)) {
ctxt->error = 1;
SKIP_BLANKS;
cur = q = CUR_PTR;
- val = xmlStringCurrentChar(NULL, cur, &len);
+ val = xsltGetUTF8CharZ(cur, &len);
if (!xmlIsBaseCharQ(val) && !xmlIsIdeographicQ(val) && (val != '_'))
return(NULL);
xmlIsCombiningQ(val) ||
xmlIsExtenderQ(val)) {
cur += len;
- val = xmlStringCurrentChar(NULL, cur, &len);
+ val = xsltGetUTF8CharZ(cur, &len);
}
ret = xmlStrndup(q, cur - q);
CUR_PTR = cur;
xmlChar *name = NULL;
const xmlChar *URI = NULL;
xmlChar *URL = NULL;
+ xmlChar *ret = NULL;
int level;
xsltAxis axis = 0;
xsltTransformError(NULL, NULL, NULL,
"xsltCompileStepPattern : Name expected\n");
ctxt->error = 1;
- xmlFree(URL);
goto error;
}
} else {
level = 0;
while (CUR == '[') {
const xmlChar *q;
- xmlChar *ret = NULL;
level++;
NEXT;
xmlFree(token);
if (name != NULL)
xmlFree(name);
+ if (URL != NULL)
+ xmlFree(URL);
+ if (ret != NULL)
+ xmlFree(ret);
}
/**
if (pat == NULL)
return(-1);
while (pat) {
+ int success = 0;
+
next = pat->next;
pat->next = NULL;
name = NULL;
if (name != NULL) {
if (style->templatesHash == NULL) {
style->templatesHash = xmlHashCreate(1024);
- if (style->templatesHash == NULL) {
- xsltFreeCompMatch(pat);
- return(-1);
- }
- xmlHashAddEntry3(style->templatesHash, name, mode, modeURI, pat);
+ success = (style->templatesHash != NULL) &&
+ (xmlHashAddEntry3(style->templatesHash, name, mode,
+ modeURI, pat) >= 0);
} else {
list = (xsltCompMatchPtr) xmlHashLookup3(style->templatesHash,
name, mode, modeURI);
if (list == NULL) {
- xmlHashAddEntry3(style->templatesHash, name,
- mode, modeURI, pat);
+ success = (xmlHashAddEntry3(style->templatesHash, name,
+ mode, modeURI, pat) >= 0);
} else {
/*
* Note '<=' since one must choose among the matching
pat->next = list->next;
list->next = pat;
}
+ success = 1;
}
}
} else if (top != NULL) {
pat->next = list->next;
list->next = pat;
}
- } else {
+ success = 1;
+ }
+ if (success == 0) {
xsltTransformError(NULL, style, NULL,
"xsltAddTemplate: invalid compiled pattern\n");
xsltFreeCompMatch(pat);
+ xsltFreeCompMatchList(next);
return(-1);
}
#ifdef WITH_XSLT_DEBUG_PATTERN
const xmlChar *name = NULL;
xsltCompMatchPtr list = NULL;
float priority;
- int keyed = 0;
if ((ctxt == NULL) || (node == NULL))
return(NULL);
list = curstyle->rootMatch;
else
list = curstyle->elemMatch;
- if (node->psvi != NULL) keyed = 1;
break;
case XML_ATTRIBUTE_NODE: {
- xmlAttrPtr attr;
-
list = curstyle->attrMatch;
- attr = (xmlAttrPtr) node;
- if (attr->psvi != NULL) keyed = 1;
break;
}
case XML_PI_NODE:
list = curstyle->piMatch;
- if (node->psvi != NULL) keyed = 1;
break;
case XML_DOCUMENT_NODE:
case XML_HTML_DOCUMENT_NODE: {
- xmlDocPtr doc;
-
list = curstyle->rootMatch;
- doc = (xmlDocPtr) node;
- if (doc->psvi != NULL) keyed = 1;
break;
}
case XML_TEXT_NODE:
case XML_CDATA_SECTION_NODE:
list = curstyle->textMatch;
- if (node->psvi != NULL) keyed = 1;
break;
case XML_COMMENT_NODE:
list = curstyle->commentMatch;
- if (node->psvi != NULL) keyed = 1;
break;
case XML_ENTITY_REF_NODE:
case XML_ENTITY_NODE:
}
keyed_match:
- if (keyed) {
+ if (xsltGetSourceNodeFlags(node) & XSLT_SOURCE_NODE_HAS_KEY) {
list = curstyle->keyMatch;
while ((list != NULL) &&
((ret == NULL) ||
if (xsltComputeAllKeys(ctxt, node) == -1)
goto error;
- switch (node->type) {
- case XML_ELEMENT_NODE:
- if (node->psvi != NULL) keyed = 1;
- break;
- case XML_ATTRIBUTE_NODE:
- if (((xmlAttrPtr) node)->psvi != NULL) keyed = 1;
- break;
- case XML_TEXT_NODE:
- case XML_CDATA_SECTION_NODE:
- case XML_COMMENT_NODE:
- case XML_PI_NODE:
- if (node->psvi != NULL) keyed = 1;
- break;
- case XML_DOCUMENT_NODE:
- case XML_HTML_DOCUMENT_NODE:
- if (((xmlDocPtr) node)->psvi != NULL) keyed = 1;
- break;
- default:
- break;
- }
- if (keyed)
+ if (xsltGetSourceNodeFlags(node) & XSLT_SOURCE_NODE_HAS_KEY)
goto keyed_match;
}
if (ret != NULL)
break;
case XSLT_FUNC_SORT: {
xsltStyleItemSortPtr item = (xsltStyleItemSortPtr) comp;
- if (item->locale != (xsltLocale)0)
- xsltFreeLocale(item->locale);
if (item->comp != NULL)
xmlXPathFreeCompExpr(item->comp);
}
break;
}
#else
- if (comp->locale != (xsltLocale)0)
- xsltFreeLocale(comp->locale);
if (comp->comp != NULL)
xmlXPathFreeCompExpr(comp->comp);
if (comp->numdata.countPat != NULL)
comp->lang = xsltEvalStaticAttrValueTemplate(style, inst,
(const xmlChar *)"lang",
NULL, &comp->has_lang);
- if (comp->lang != NULL) {
- comp->locale = xsltNewLocale(comp->lang);
- }
- else {
- comp->locale = (xsltLocale)0;
- }
comp->select = xsltGetCNsProp(style, inst,(const xmlChar *)"select", XSLT_NAMESPACE);
if (comp->select == NULL) {
#endif
#include <libxml/xmlmemory.h>
-#include <libxml/tree.h>
+#include <libxml/parser.h>
#include <libxml/uri.h>
#include "xslt.h"
#include "xsltInternals.h"
if (res != NULL) {
if (res->type != XPATH_STRING)
res = xmlXPathConvertString(res);
- if (res->type == XPATH_STRING) {
+ if ((res != NULL) && (res->type == XPATH_STRING)) {
ret = res->stringval;
res->stringval = NULL;
} else {
insert = xmlNewDocNode(ctxt->output, NULL,
(const xmlChar *)"fake", NULL);
if (insert == NULL) {
- xsltTransformError(ctxt, NULL, contextNode,
+ xsltTransformError(ctxt, NULL, inst,
"Failed to create temporary node\n");
return(NULL);
}
#include "xslt.h"
#include "xsltInternals.h"
#include "xsltutils.h"
+#include "xsltlocale.h"
#include "pattern.h"
#include "transform.h"
#include "variables.h"
static int
templPush(xsltTransformContextPtr ctxt, xsltTemplatePtr value)
{
- if (ctxt->templMax == 0) {
- ctxt->templMax = 4;
- ctxt->templTab =
- (xsltTemplatePtr *) xmlMalloc(ctxt->templMax *
- sizeof(ctxt->templTab[0]));
- if (ctxt->templTab == NULL) {
- xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
- return (0);
- }
- }
- else if (ctxt->templNr >= ctxt->templMax) {
- ctxt->templMax *= 2;
- ctxt->templTab =
- (xsltTemplatePtr *) xmlRealloc(ctxt->templTab,
- ctxt->templMax *
- sizeof(ctxt->templTab[0]));
- if (ctxt->templTab == NULL) {
+ if (ctxt->templNr >= ctxt->templMax) {
+ xsltTemplatePtr *tmp;
+ int newMax = ctxt->templMax == 0 ? 4 : ctxt->templMax * 2;
+
+ tmp = (xsltTemplatePtr *) xmlRealloc(ctxt->templTab,
+ newMax * sizeof(*tmp));
+ if (tmp == NULL) {
xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
return (0);
}
+ ctxt->templTab = tmp;
+ ctxt->templMax = newMax;
}
ctxt->templTab[ctxt->templNr] = value;
ctxt->templ = value;
*
* Returns the current default debug tracing level mask
*/
-xsltDebugTraceCodes xsltDebugGetDefaultTrace() {
+xsltDebugTraceCodes xsltDebugGetDefaultTrace(void) {
return xsltDefaultTrace;
}
cur->xinclude = xsltGetXIncludeDefault();
cur->keyInitLevel = 0;
+ cur->newLocale = xsltNewLocale;
+ cur->freeLocale = xsltFreeLocale;
+ cur->genSortKey = xsltStrxfrm;
+
return(cur);
internal_err:
/**
* xsltFreeTransformContext:
- * @ctxt: an XSLT parser context
+ * @ctxt: an XSLT transform context
*
* Free up the memory allocated by @ctxt
*/
if (xmlDictOwns(ctxt->dict, cur->content))
copy->content = cur->content;
else {
- if ((copy->content = xmlStrdup(cur->content)) == NULL)
+ if ((copy->content = xmlStrdup(cur->content)) == NULL) {
+ xmlFreeNode(copy);
return NULL;
+ }
}
ctxt->lasttext = NULL;
case XML_ELEMENT_NODE:
ctxt->xpathCtxt->contextSize = nbchild;
ctxt->xpathCtxt->proximityPosition = childno;
+
+ if (ctxt->depth >= ctxt->maxTemplateDepth) {
+ xsltTransformError(ctxt, NULL, cur,
+ "xsltDefaultProcessOneNode: Maximum template depth "
+ "exceeded.\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);
+ ctxt->state = XSLT_STATE_STOPPED;
+ return;
+ }
+ ctxt->depth++;
xsltProcessOneNode(ctxt, cur, params);
+ ctxt->depth--;
break;
case XML_CDATA_SECTION_NODE:
template = xsltGetTemplate(ctxt, cur, NULL);
xsltStackElemPtr variable,
int level)
{
- if (ctxt->varsMax == 0) {
- ctxt->varsMax = 10;
- ctxt->varsTab =
- (xsltStackElemPtr *) xmlMalloc(ctxt->varsMax *
- sizeof(ctxt->varsTab[0]));
- if (ctxt->varsTab == NULL) {
- xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
- return (-1);
- }
- }
if (ctxt->varsNr >= ctxt->varsMax) {
- ctxt->varsMax *= 2;
- ctxt->varsTab =
- (xsltStackElemPtr *) xmlRealloc(ctxt->varsTab,
- ctxt->varsMax *
- sizeof(ctxt->varsTab[0]));
- if (ctxt->varsTab == NULL) {
+ xsltStackElemPtr *tmp;
+ int newMax = ctxt->varsMax == 0 ? 10 : 2 * ctxt->varsMax;
+
+ tmp = (xsltStackElemPtr *) xmlRealloc(ctxt->varsTab,
+ newMax * sizeof(*tmp));
+ if (tmp == NULL) {
xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
return (-1);
}
+ ctxt->varsTab = tmp;
+ ctxt->varsMax = newMax;
}
ctxt->varsTab[ctxt->varsNr++] = variable;
ctxt->vars = variable;
do {
tmp = cur;
cur = (xmlDocPtr) cur->next;
- if (tmp->psvi == XSLT_RVT_LOCAL) {
+ if (tmp->compression == XSLT_RVT_LOCAL) {
xsltReleaseRVT(ctxt, tmp);
- } else if (tmp->psvi == XSLT_RVT_GLOBAL) {
+ } else if (tmp->compression == XSLT_RVT_GLOBAL) {
xsltRegisterPersistRVT(ctxt, tmp);
- } else if (tmp->psvi == XSLT_RVT_FUNC_RESULT) {
+ } else if (tmp->compression == XSLT_RVT_FUNC_RESULT) {
/*
* This will either register the RVT again or move it to the
* context variable.
*/
xsltRegisterLocalRVT(ctxt, tmp);
- tmp->psvi = XSLT_RVT_FUNC_RESULT;
+ tmp->compression = XSLT_RVT_FUNC_RESULT;
} else {
xmlGenericError(xmlGenericErrorContext,
"xsltReleaseLocalRVTs: Unexpected RVT flag %p\n",
}
/**
+ * xsltCleanupSourceDoc:
+ * @doc: Document
+ *
+ * Resets source node flags and ids stored in 'psvi' member.
+ */
+static void
+xsltCleanupSourceDoc(xmlDocPtr doc) {
+ xmlNodePtr cur = (xmlNodePtr) doc;
+ void **psviPtr;
+
+ while (1) {
+ xsltClearSourceNodeFlags(cur, XSLT_SOURCE_NODE_MASK);
+ psviPtr = xsltGetPSVIPtr(cur);
+ if (psviPtr)
+ *psviPtr = NULL;
+
+ if (cur->type == XML_ELEMENT_NODE) {
+ xmlAttrPtr prop = cur->properties;
+
+ while (prop) {
+ prop->atype &= ~(XSLT_SOURCE_NODE_MASK << 27);
+ prop->psvi = NULL;
+ prop = prop->next;
+ }
+ }
+
+ if (cur->children != NULL && cur->type != XML_ENTITY_REF_NODE) {
+ cur = cur->children;
+ } else {
+ if (cur == (xmlNodePtr) doc)
+ return;
+ while (cur->next == NULL) {
+ cur = cur->parent;
+ if (cur == (xmlNodePtr) doc)
+ return;
+ }
+
+ cur = cur->next;
+ }
+ }
+}
+
+/**
* xsltApplyStylesheetInternal:
* @style: a parsed XSLT stylesheet
* @doc: a parsed XML document
printf("# Reused variables : %d\n", ctxt->cache->dbgReusedVars);
#endif
+ if (ctxt->sourceDocDirty)
+ xsltCleanupSourceDoc(doc);
+
if ((ctxt != NULL) && (userCtxt == NULL))
xsltFreeTransformContext(ctxt);
return(-1);
RVT->prev = NULL;
- RVT->psvi = XSLT_RVT_LOCAL;
+ RVT->compression = XSLT_RVT_LOCAL;
/*
* We'll restrict the lifetime of user-created fragments
return(-1);
RVT->prev = NULL;
- RVT->psvi = XSLT_RVT_LOCAL;
+ RVT->compression = XSLT_RVT_LOCAL;
/*
* When evaluating "select" expressions of xsl:variable
* Returns 0 in case of success and -1 in case of error.
*/
int
-xsltFlagRVTs(xsltTransformContextPtr ctxt, xmlXPathObjectPtr obj, void *val) {
+xsltFlagRVTs(xsltTransformContextPtr ctxt, xmlXPathObjectPtr obj, int val) {
int i;
xmlNodePtr cur;
xmlDocPtr doc;
return(-1);
}
if (doc->name && (doc->name[0] == ' ') &&
- doc->psvi != XSLT_RVT_GLOBAL) {
+ doc->compression != XSLT_RVT_GLOBAL) {
/*
* This is a result tree fragment.
- * We store ownership information in the @psvi field.
+ * We store ownership information in the @compression field.
* TODO: How do we know if this is a doc acquired via the
* document() function?
*/
#ifdef WITH_XSLT_DEBUG_VARIABLE
- XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
- "Flagging RVT %p: %p -> %p\n", doc, doc->psvi, val));
+ XSLT_TRACE(ctxt, XSLT_TRACE_VARIABLES,
+ xsltGenericDebug(xsltGenericDebugContext,
+ "Flagging RVT %p: %d -> %d\n",
+ (void *) doc, doc->compression, val));
#endif
if (val == XSLT_RVT_LOCAL) {
- if (doc->psvi == XSLT_RVT_FUNC_RESULT)
- doc->psvi = XSLT_RVT_LOCAL;
+ if (doc->compression == XSLT_RVT_FUNC_RESULT)
+ doc->compression = XSLT_RVT_LOCAL;
} else if (val == XSLT_RVT_GLOBAL) {
- if (doc->psvi != XSLT_RVT_LOCAL) {
+ if (doc->compression != XSLT_RVT_LOCAL) {
xmlGenericError(xmlGenericErrorContext,
- "xsltFlagRVTs: Invalid transition %p => GLOBAL\n",
- doc->psvi);
- doc->psvi = XSLT_RVT_GLOBAL;
+ "xsltFlagRVTs: Invalid transition %d => GLOBAL\n",
+ doc->compression);
+ doc->compression = XSLT_RVT_GLOBAL;
return(-1);
}
/* Will be registered as persistant in xsltReleaseLocalRVTs. */
- doc->psvi = XSLT_RVT_GLOBAL;
+ doc->compression = XSLT_RVT_GLOBAL;
} else if (val == XSLT_RVT_FUNC_RESULT) {
- doc->psvi = val;
+ doc->compression = val;
}
}
}
/*
* Reset the ownership information.
*/
- RVT->psvi = NULL;
+ RVT->compression = 0;
RVT->next = (xmlNodePtr) ctxt->cache->RVT;
ctxt->cache->RVT = RVT;
{
if ((ctxt == NULL) || (RVT == NULL)) return(-1);
- RVT->psvi = XSLT_RVT_GLOBAL;
+ RVT->compression = XSLT_RVT_GLOBAL;
RVT->prev = NULL;
RVT->next = (xmlNodePtr) ctxt->persistRVT;
if (ctxt->persistRVT != NULL)
cur = elem->fragment;
elem->fragment = (xmlDocPtr) cur->next;
- if (cur->psvi == XSLT_RVT_LOCAL) {
+ if (cur->compression == XSLT_RVT_LOCAL) {
xsltReleaseRVT(elem->context, cur);
- } else if (cur->psvi == XSLT_RVT_FUNC_RESULT) {
+ } else if (cur->compression == XSLT_RVT_FUNC_RESULT) {
xsltRegisterLocalRVT(elem->context, cur);
- cur->psvi = XSLT_RVT_FUNC_RESULT;
+ cur->compression = XSLT_RVT_FUNC_RESULT;
} else {
xmlGenericError(xmlGenericErrorContext,
- "xsltFreeStackElem: Unexpected RVT flag %p\n",
- cur->psvi);
+ "xsltFreeStackElem: Unexpected RVT flag %d\n",
+ cur->compression);
}
}
}
return(-1);
do {
- if (ctxt->varsMax == 0) {
- ctxt->varsMax = 10;
- ctxt->varsTab =
- (xsltStackElemPtr *) xmlMalloc(ctxt->varsMax *
- sizeof(ctxt->varsTab[0]));
- if (ctxt->varsTab == NULL) {
- xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
- return (-1);
- }
- }
if (ctxt->varsNr >= ctxt->varsMax) {
- ctxt->varsMax *= 2;
- ctxt->varsTab =
- (xsltStackElemPtr *) xmlRealloc(ctxt->varsTab,
- ctxt->varsMax *
- sizeof(ctxt->varsTab[0]));
- if (ctxt->varsTab == NULL) {
- xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
- return (-1);
- }
+ xsltStackElemPtr *tmp;
+ int newMax = ctxt->varsMax == 0 ? 10 : 2 * ctxt->varsMax;
+
+ tmp = (xsltStackElemPtr *) xmlRealloc(ctxt->varsTab,
+ newMax * sizeof(*tmp));
+ if (tmp == NULL) {
+ xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
+ return (-1);
+ }
+ ctxt->varsTab = tmp;
+ ctxt->varsMax = newMax;
}
ctxt->varsTab[ctxt->varsNr++] = elem;
ctxt->vars = elem;
* the Result Tree Fragment.
*/
variable->fragment = container;
- container->psvi = XSLT_RVT_LOCAL;
+ container->compression = XSLT_RVT_LOCAL;
oldOutput = ctxt->output;
oldInsert = ctxt->insert;
if (def == NULL) {
def = xsltCopyStackElem(elem);
- xmlHashAddEntry2(ctxt->globalVars,
- elem->name, elem->nameURI, def);
+ if (xmlHashAddEntry2(ctxt->globalVars,
+ elem->name, elem->nameURI, def) < 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "hash update failed\n");
+ xsltFreeStackElem(def);
+ return(-1);
+ }
} else if ((elem->comp != NULL) &&
(elem->comp->type == XSLT_FUNC_VARIABLE)) {
/*
int
xsltEvalUserParams(xsltTransformContextPtr ctxt, const char **params) {
- int indx = 0;
+ size_t indx = 0;
const xmlChar *name;
const xmlChar *value;
int
xsltQuoteUserParams(xsltTransformContextPtr ctxt, const char **params) {
- int indx = 0;
+ size_t indx = 0;
const xmlChar *name;
const xmlChar *value;
#endif /* else of XSLT_REFACTORED */
variable = xsltBuildVariable(ctxt, (xsltStylePreCompPtr) comp, tree);
- xsltAddStackElem(ctxt, variable);
+ if (xsltAddStackElem(ctxt, variable) < 0) {
+ xsltFreeStackElem(variable);
+ return(-1);
+ }
return(0);
}
*
* RVT is destroyed after the current instructions ends.
*/
-#define XSLT_RVT_LOCAL ((void *)1)
+#define XSLT_RVT_LOCAL 1
/**
* XSLT_RVT_FUNC_RESULT:
* 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 *)2)
+#define XSLT_RVT_FUNC_RESULT 2
/**
* XSLT_RVT_GLOBAL:
*
* RVT is part of a global variable.
*/
-#define XSLT_RVT_GLOBAL ((void *)3)
+#define XSLT_RVT_GLOBAL 3
/*
* Interfaces for the variable module.
#ifdef XSLT_LOCALE_WINAPI
extern xmlRMutexPtr xsltLocaleMutex;
#endif
-/*
- * Harmless but avoiding a problem when compiling against a
- * libxml <= 2.3.11 without LIBXML_DEBUG_ENABLED
- */
-#ifndef LIBXML_DEBUG_ENABLED
-double xmlXPathStringEvalNumber(const xmlChar *str);
-#endif
+
/*
* Useful macros
*/
{
int i;
- if (style->exclPrefixMax == 0) {
- style->exclPrefixMax = 4;
- style->exclPrefixTab =
- (xmlChar * *)xmlMalloc(style->exclPrefixMax *
- sizeof(style->exclPrefixTab[0]));
- if (style->exclPrefixTab == NULL) {
- xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
- return (-1);
- }
- }
/* do not push duplicates */
for (i = 0;i < style->exclPrefixNr;i++) {
if (xmlStrEqual(style->exclPrefixTab[i], value))
return(-1);
}
if (style->exclPrefixNr >= style->exclPrefixMax) {
- style->exclPrefixMax *= 2;
- style->exclPrefixTab =
- (xmlChar * *)xmlRealloc(style->exclPrefixTab,
- style->exclPrefixMax *
- sizeof(style->exclPrefixTab[0]));
- if (style->exclPrefixTab == NULL) {
+ xmlChar **tmp;
+ size_t max = style->exclPrefixMax ? style->exclPrefixMax * 2 : 4;
+
+ tmp = xmlRealloc(style->exclPrefixTab,
+ max * sizeof(style->exclPrefixTab[0]));
+ if (tmp == NULL) {
xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
return (-1);
}
+ style->exclPrefixTab = tmp;
+ style->exclPrefixMax = max;
}
style->exclPrefixTab[style->exclPrefixNr] = value;
style->exclPrefix = value;
xmlNodePtr node)
{
xmlNsPtr cur;
- xmlNsPtr *ret = NULL;
+ xmlNsPtr *ret = NULL, *tmp;
int nbns = 0;
- int maxns = 10;
+ int maxns = 0;
int i;
if ((style == NULL) || (template == NULL) || (node == NULL) ||
if (xmlStrEqual(cur->href, style->exclPrefixTab[i]))
goto skip_ns;
}
- if (ret == NULL) {
- ret =
- (xmlNsPtr *) xmlMalloc((maxns + 1) *
- sizeof(xmlNsPtr));
- if (ret == NULL) {
- xmlGenericError(xmlGenericErrorContext,
- "xsltGetInheritedNsList : out of memory!\n");
- return(0);
- }
- ret[nbns] = NULL;
- }
/*
* Skip shadowed namespace bindings.
*/
}
if (i >= nbns) {
if (nbns >= maxns) {
- maxns *= 2;
- ret = (xmlNsPtr *) xmlRealloc(ret,
- (maxns +
- 1) *
- sizeof(xmlNsPtr));
- if (ret == NULL) {
+ maxns = (maxns == 0) ? 10 : 2 * maxns;
+ tmp = (xmlNsPtr *) xmlRealloc(ret,
+ (maxns + 1) * sizeof(xmlNsPtr));
+ if (tmp == NULL) {
xmlGenericError(xmlGenericErrorContext,
"xsltGetInheritedNsList : realloc failed!\n");
+ xmlFree(ret);
return(0);
}
+ ret = tmp;
}
ret[nbns++] = cur;
ret[nbns] = NULL;
if (elements != NULL) {
if (style->cdataSection == NULL)
style->cdataSection = xmlHashCreate(10);
- if (style->cdataSection == NULL)
+ if (style->cdataSection == NULL) {
+ xmlFree(elements);
return;
+ }
element = elements;
while (*element != 0) {
if (style->stripSpaces == NULL)
style->stripSpaces = xmlHashCreate(10);
- if (style->stripSpaces == NULL)
+ if (style->stripSpaces == NULL) {
+ xmlFree(elements);
return;
+ }
element = elements;
while (*element != 0) {
if ((cur == NULL) || (style == NULL) || (cur->type != XML_ELEMENT_NODE))
return;
+ if (style->stripSpaces == NULL)
+ style->stripSpaces = xmlHashCreate(10);
+ if (style->stripSpaces == NULL)
+ return;
+
elements = xmlGetNsProp(cur, (const xmlChar *)"elements", NULL);
if (elements == NULL) {
xsltTransformError(NULL, style, cur,
return;
}
- if (style->stripSpaces == NULL)
- style->stripSpaces = xmlHashCreate(10);
- if (style->stripSpaces == NULL)
- return;
-
element = elements;
while (*element != 0) {
while (IS_BLANK(*element)) element++;
return(item);
}
-/**
- * xsltParseFindTopLevelElem:
- */
static int
xsltParseFindTopLevelElem(xsltCompilerCtxtPtr cctxt,
xmlNodePtr cur,
}
#endif /* else of XSLT_REFACTORED */
+ if (style->parent == NULL)
+ xsltResolveStylesheetAttributeSet(style);
+
if (style->errors != 0) {
/*
* Detach the doc from the stylesheet; otherwise the doc
return(-1);
}
- if (style->parent == NULL)
- xsltResolveStylesheetAttributeSet(style);
-
return(0);
}
/**
* xsltParseStylesheetDoc:
- * @doc: and xmlDoc parsed XML
+ * @doc: an xmlDoc parsed XML
*
* parse an XSLT stylesheet, building the associated structures. doc
* is kept as a reference within the returned stylesheet, so changes
if (val == NULL)
return(NULL);
if ((xmlStrcasecmp(val, BAD_CAST "text/xml")) &&
- (xmlStrcasecmp(val, BAD_CAST "text/xsl"))) {
+ (xmlStrcasecmp(val, BAD_CAST "text/xsl")) &&
+ (xmlStrcasecmp(val, BAD_CAST "application/xslt+xml"))) {
xmlFree(val);
break;
}
#include <libxml/xmlstring.h>
#include <libxslt/xslt.h>
#include "xsltexports.h"
-#include "xsltlocale.h"
#include "numbersInternals.h"
#ifdef __cplusplus
int descending; /* sort */
const xmlChar *lang; /* sort */
int has_lang; /* sort */
- xsltLocale locale; /* sort */
const xmlChar *case_order; /* sort */
int lower_first; /* sort */
int descending; /* sort */
const xmlChar *lang; /* sort */
int has_lang; /* sort */
- xsltLocale locale; /* sort */
const xmlChar *case_order; /* sort */
int lower_first; /* sort */
XSLT_OUTPUT_TEXT
} xsltOutputType;
+typedef void *
+(*xsltNewLocaleFunc)(const xmlChar *lang, int lowerFirst);
+typedef void
+(*xsltFreeLocaleFunc)(void *locale);
+typedef xmlChar *
+(*xsltGenSortKeyFunc)(void *locale, const xmlChar *lang);
+
typedef enum {
XSLT_STATE_OK = 0,
XSLT_STATE_ERROR,
int maxTemplateVars;
unsigned long opLimit;
unsigned long opCount;
+ int sourceDocDirty;
+ unsigned long currentId; /* For generate-id() */
+
+ xsltNewLocaleFunc newLocale;
+ xsltFreeLocaleFunc freeLocale;
+ xsltGenSortKeyFunc genSortKey;
};
/**
xsltFlagRVTs(
xsltTransformContextPtr ctxt,
xmlXPathObjectPtr obj,
- void *val);
+ int val);
XSLTPUBFUN void XSLTCALL
xsltFreeRVTs (xsltTransformContextPtr ctxt);
XSLTPUBFUN void XSLTCALL
#include <string.h>
#include <libxml/xmlmemory.h>
+#include <libxml/threads.h>
#include "xsltlocale.h"
#include "xsltutils.h"
+#ifdef HAVE_STRXFRM_L
+
+ #define XSLT_LOCALE_POSIX
+
+ #ifdef HAVE_LOCALE_H
+ #include <locale.h>
+ #endif
+ #ifdef HAVE_XLOCALE_H
+ #include <xlocale.h>
+ #endif
+
+#elif defined(_WIN32)
+
+ #define XSLT_LOCALE_WINAPI
+
+ #include <windows.h>
+ #include <winnls.h>
+
+#else
+
+ #define XSLT_LOCALE_NONE
+
+#endif
+
#define TOUPPER(c) (c & ~0x20)
#define TOLOWER(c) (c | 0x20)
#define ISALPHA(c) ((unsigned)(TOUPPER(c) - 'A') < 26)
struct xsltRFC1766Info_s {
/*note typedef unsigned char xmlChar !*/
xmlChar tag[XSLTMAX_LANGTAGLEN+1];
- /*note typedef LCID xsltLocale !*/
- xsltLocale lcid;
+ LCID lcid;
};
typedef struct xsltRFC1766Info_s xsltRFC1766Info;
static xsltRFC1766Info *xsltLocaleList = NULL;
-static xsltLocale
+static void *
xslt_locale_WINAPI(const xmlChar *languageTag) {
int k;
xsltRFC1766Info *p = xsltLocaleList;
for (k=0; k<xsltLocaleListSize; k++, p++)
- if (xmlStrcmp(p->tag, languageTag) == 0) return p->lcid;
- return((xsltLocale)0);
+ if (xmlStrcmp(p->tag, languageTag) == 0)
+ return(&p->lcid);
+ return(NULL);
}
static void xsltEnumSupportedLocales(void);
*
* Returns the locale or NULL on error or if no matching locale was found
*/
-xsltLocale
-xsltNewLocale(const xmlChar *languageTag) {
+void *
+xsltNewLocale(const xmlChar *languageTag, int lowerFirst ATTRIBUTE_UNUSED) {
#ifdef XSLT_LOCALE_POSIX
- xsltLocale locale;
- char localeName[XSLTMAX_LANGTAGLEN+6]; /* 6 chars for ".utf8\0" */
+ locale_t locale;
+ char localeName[XSLTMAX_LANGTAGLEN+7]; /* 7 chars for ".UTF-8\0" */
const xmlChar *p = languageTag;
const char *region = NULL;
char *q = localeName;
int i, llen;
- /* Convert something like "pt-br" to "pt_BR.utf8" */
+ /* Convert something like "pt-br" to "pt_BR.UTF-8" */
if (languageTag == NULL)
return(NULL);
if (i == 0 || *p)
return(NULL);
- memcpy(q, ".utf8", 6);
+ memcpy(q, ".UTF-8", 7);
locale = newlocale(LC_COLLATE_MASK, localeName, NULL);
if (locale != NULL)
return(locale);
/* Try locale without territory, e.g. for Esperanto (eo) */
- memcpy(q, ".utf8", 6);
+ memcpy(q, ".UTF-8", 7);
locale = newlocale(LC_COLLATE_MASK, localeName, NULL);
if (locale != NULL)
return(locale);
*q++ = '_';
*q++ = region[0];
*q++ = region[1];
- memcpy(q, ".utf8", 6);
+ memcpy(q, ".UTF-8", 7);
locale = newlocale(LC_COLLATE_MASK, localeName, NULL);
return(locale);
#ifdef XSLT_LOCALE_WINAPI
{
- xsltLocale locale = (xsltLocale)0;
+ void *locale = NULL;
xmlChar localeName[XSLTMAX_LANGTAGLEN+1];
xmlChar *q = localeName;
const xmlChar *p = languageTag;
* Frees a locale created with xsltNewLocale
*/
void
-xsltFreeLocale(xsltLocale locale) {
+xsltFreeLocale(void *locale) {
#ifdef XSLT_LOCALE_POSIX
if (locale != NULL)
freelocale(locale);
+#else
+ (void) locale;
#endif
}
* @locale: locale created with xsltNewLocale
* @string: UTF-8 string to transform
*
- * Transforms a string according to locale. The transformed string must then be
- * compared with xsltLocaleStrcmp and freed with xmlFree.
+ * Transforms a string according to locale. The transformed string must be
+ * freed with xmlFree.
*
* Returns the transformed string or NULL on error
*/
-xsltLocaleChar *
-xsltStrxfrm(xsltLocale locale, const xmlChar *string)
+xmlChar *
+xsltStrxfrm(void *vlocale, const xmlChar *string)
{
#ifdef XSLT_LOCALE_NONE
return(NULL);
#else
- size_t xstrlen, r;
- xsltLocaleChar *xstr;
+ xmlChar *xstr;
#ifdef XSLT_LOCALE_POSIX
- xstrlen = strxfrm_l(NULL, (const char *)string, 0, locale) + 1;
- xstr = (xsltLocaleChar *) xmlMalloc(xstrlen);
+ size_t xstrlen, r;
+
+ xstrlen = strxfrm_l(NULL, (const char *)string, 0, vlocale) + 1;
+ xstr = (xmlChar *) xmlMalloc(xstrlen);
if (xstr == NULL) {
xsltTransformError(NULL, NULL, NULL,
"xsltStrxfrm : out of memory error\n");
return(NULL);
}
- r = strxfrm_l((char *)xstr, (const char *)string, xstrlen, locale);
+ r = strxfrm_l((char *)xstr, (const char *)string, xstrlen, vlocale);
+
+ if (r >= xstrlen) {
+ xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : strxfrm failed\n");
+ xmlFree(xstr);
+ return(NULL);
+ }
#endif
#ifdef XSLT_LOCALE_WINAPI
- xstrlen = MultiByteToWideChar(CP_UTF8, 0, (char *) string, -1, NULL, 0);
- if (xstrlen == 0) {
+ int wstrlen, xstrlen, r;
+ wchar_t *wstr;
+ LCID *lcid = vlocale;
+
+ wstrlen = MultiByteToWideChar(CP_UTF8, 0, (char *) string, -1, NULL, 0);
+ if (wstrlen == 0) {
xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : MultiByteToWideChar check failed\n");
return(NULL);
}
- xstr = (xsltLocaleChar*) xmlMalloc(xstrlen * sizeof(xsltLocaleChar));
- if (xstr == NULL) {
+ wstr = (wchar_t *) xmlMalloc(wstrlen * sizeof(wchar_t));
+ if (wstr == NULL) {
xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : out of memory\n");
return(NULL);
}
- r = MultiByteToWideChar(CP_UTF8, 0, (char *) string, -1, xstr, xstrlen);
+ r = MultiByteToWideChar(CP_UTF8, 0, (char *) string, -1, wstr, wstrlen);
if (r == 0) {
xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : MultiByteToWideChar failed\n");
- xmlFree(xstr);
+ xmlFree(wstr);
return(NULL);
}
- return(xstr);
-#endif /* XSLT_LOCALE_WINAPI */
-
- if (r >= xstrlen) {
- xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : strxfrm failed\n");
+ /* This returns the size in bytes. */
+ xstrlen = LCMapStringW(*lcid, LCMAP_SORTKEY, wstr, wstrlen, NULL, 0);
+ if (xstrlen == 0) {
+ xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : LCMapStringW failed\n");
+ xmlFree(wstr);
+ return(NULL);
+ }
+ xstr = (xmlChar*) xmlMalloc(xstrlen);
+ if (xstr == NULL) {
+ xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : out of memory\n");
+ xmlFree(wstr);
+ return(NULL);
+ }
+ r = LCMapStringW(*lcid, LCMAP_SORTKEY, wstr, wstrlen, (wchar_t *) xstr,
+ xstrlen);
+ xmlFree(wstr);
+ if (r == 0) {
+ xsltTransformError(NULL, NULL, NULL, "xsltStrxfrm : LCMapStringW failed\n");
xmlFree(xstr);
return(NULL);
}
+#endif /* XSLT_LOCALE_WINAPI */
return(xstr);
#endif /* XSLT_LOCALE_NONE */
/**
* xsltLocaleStrcmp:
- * @locale: a locale identifier
+ * @locale: unused
* @str1: a string transformed with xsltStrxfrm
* @str2: a string transformed with xsltStrxfrm
*
- * Compares two strings transformed with xsltStrxfrm
+ * DEPRECATED: Same as xmlStrcmp.
+ *
+ * Compares two strings transformed with xsltStrxfrm.
*
* Returns a value < 0 if str1 sorts before str2,
* a value > 0 if str1 sorts after str2,
* 0 if str1 and str2 are equal wrt sorting
*/
int
-xsltLocaleStrcmp(xsltLocale locale, const xsltLocaleChar *str1, const xsltLocaleChar *str2) {
+xsltLocaleStrcmp(void *locale, const xmlChar *str1, const xmlChar *str2) {
(void)locale;
-#ifdef XSLT_LOCALE_WINAPI
-{
- int ret;
- if (str1 == str2) return(0);
- if (str1 == NULL) return(-1);
- if (str2 == NULL) return(1);
- ret = CompareStringW(locale, 0, str1, -1, str2, -1);
- if (ret == 0) {
- xsltTransformError(NULL, NULL, NULL, "xsltLocaleStrcmp : CompareStringW fail\n");
- return(0);
- }
- return(ret - 2);
-}
-#else
return(xmlStrcmp(str1, str2));
-#endif
}
#ifdef XSLT_LOCALE_WINAPI
*
* Returns TRUE
*/
-BOOL CALLBACK
+static BOOL CALLBACK
xsltCountSupportedLocales(LPSTR lcid) {
(void) lcid;
++xsltLocaleListSize;
*
* Returns TRUE if not at the end of the array
*/
-BOOL CALLBACK
+static BOOL CALLBACK
xsltIterateSupportedLocales(LPSTR lcid) {
static int count = 0;
xmlChar iso639lang [XSLTMAX_ISO639LANGLEN +1];
int k, l;
xsltRFC1766Info *p = xsltLocaleList + count;
- k = sscanf(lcid, "%lx", (long*)&p->lcid);
+ k = sscanf(lcid, "%lx", (unsigned long*)&p->lcid);
if (k < 1) goto end;
/*don't count terminating null character*/
k = GetLocaleInfoA(p->lcid, LOCALE_SISO639LANGNAME,
#include <libxml/xmlstring.h>
#include "xsltexports.h"
-#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>
+#ifdef __cplusplus
+extern "C" {
#endif
-#ifdef HAVE_XLOCALE_H
-#include <xlocale.h>
-#endif
-
-typedef locale_t xsltLocale;
-typedef xmlChar xsltLocaleChar;
-
-#elif defined(_WIN32)
-
-/*
- * XSLT_LOCALE_WINAPI:
- * Macro indicating to use WinAPI for extended locale support
- */
-#define XSLT_LOCALE_WINAPI
-
-#include <windows.h>
-#include <winnls.h>
-
-typedef LCID xsltLocale;
-typedef wchar_t xsltLocaleChar;
-
-#else
-/*
- * XSLT_LOCALE_NONE:
- * Macro indicating that there's no extended locale support
- */
-#define XSLT_LOCALE_NONE
+XSLTPUBFUN void * XSLTCALL
+ xsltNewLocale (const xmlChar *langName,
+ int lowerFirst);
+XSLTPUBFUN void XSLTCALL
+ xsltFreeLocale (void *locale);
+XSLTPUBFUN xmlChar * XSLTCALL
+ xsltStrxfrm (void *locale,
+ const xmlChar *string);
+XSLTPUBFUN void XSLTCALL
+ xsltFreeLocales (void);
+/* Backward compatibility */
typedef void *xsltLocale;
typedef xmlChar xsltLocaleChar;
+XSLTPUBFUN int XSLTCALL
+ xsltLocaleStrcmp (void *locale,
+ const xmlChar *str1,
+ const xmlChar *str2);
+#ifdef __cplusplus
+}
#endif
-XSLTPUBFUN xsltLocale XSLTCALL
- xsltNewLocale (const xmlChar *langName);
-XSLTPUBFUN void XSLTCALL
- xsltFreeLocale (xsltLocale locale);
-XSLTPUBFUN xsltLocaleChar * XSLTCALL
- xsltStrxfrm (xsltLocale locale,
- const xmlChar *string);
-XSLTPUBFUN int XSLTCALL
- xsltLocaleStrcmp (xsltLocale locale,
- const xsltLocaleChar *str1,
- const xsltLocaleChar *str2);
-XSLTPUBFUN void XSLTCALL
- xsltFreeLocales (void);
-
#endif /* __XML_XSLTLOCALE_H__ */
#include "transform.h"
#if defined(_WIN32)
+#include <windows.h>
#define XSLT_WIN32_PERFORMANCE_COUNTER
#endif
return(-1);
}
+/**
+ * xsltGetUTF8CharZ:
+ * @utf: a sequence of UTF-8 encoded bytes
+ * @len: a pointer to @bytes len
+ *
+ * Read one UTF8 Char from a null-terminated string.
+ *
+ * Returns the char value or -1 in case of error and update @len with the
+ * number of bytes used
+ */
+int
+xsltGetUTF8CharZ(const unsigned char *utf, int *len) {
+ unsigned int c;
+
+ if (utf == NULL)
+ goto error;
+ if (len == NULL)
+ goto error;
+
+ c = utf[0];
+ if (c & 0x80) {
+ if ((utf[1] & 0xc0) != 0x80)
+ goto error;
+ if ((c & 0xe0) == 0xe0) {
+ if ((utf[2] & 0xc0) != 0x80)
+ goto error;
+ if ((c & 0xf0) == 0xf0) {
+ if ((c & 0xf8) != 0xf0 || (utf[3] & 0xc0) != 0x80)
+ goto error;
+ *len = 4;
+ /* 4-byte code */
+ c = (utf[0] & 0x7) << 18;
+ c |= (utf[1] & 0x3f) << 12;
+ c |= (utf[2] & 0x3f) << 6;
+ c |= utf[3] & 0x3f;
+ } else {
+ /* 3-byte code */
+ *len = 3;
+ c = (utf[0] & 0xf) << 12;
+ c |= (utf[1] & 0x3f) << 6;
+ c |= utf[2] & 0x3f;
+ }
+ } else {
+ /* 2-byte code */
+ *len = 2;
+ c = (utf[0] & 0x1f) << 6;
+ c |= utf[1] & 0x3f;
+ }
+ } else {
+ /* 1-byte code */
+ *len = 1;
+ }
+ return(c);
+
+error:
+ if (len != NULL)
+ *len = 0;
+ return(-1);
+}
+
#ifdef XSLT_REFACTORED
/**
}
/**
- * xsltComputeSortResultiInternal:
+ * xsltComputeSortResultInternal:
* @ctxt: a XSLT process context
- * @sort: node list
- * @xfrm: Transform strings according to locale
+ * @sort: xsl:sort node
+ * @number: data-type is number
+ * @locale: transform strings according to locale
*
* reorder the current node list accordingly to the set of sorting
* requirement provided by the array of nodes.
*/
static xmlXPathObjectPtr *
xsltComputeSortResultInternal(xsltTransformContextPtr ctxt, xmlNodePtr sort,
- int xfrm) {
+ int number, void *locale) {
#ifdef XSLT_REFACTORED
xsltStyleItemSortPtr comp;
#else
- xsltStylePreCompPtr comp;
+ const xsltStylePreComp *comp;
#endif
xmlXPathObjectPtr *results = NULL;
xmlNodeSetPtr list = NULL;
if (res != NULL) {
if (res->type != XPATH_STRING)
res = xmlXPathConvertString(res);
- if (comp->number)
+ if (number)
res = xmlXPathConvertNumber(res);
+ }
+ if (res != NULL) {
res->index = i; /* Save original pos for dupl resolv */
- if (comp->number) {
+ if (number) {
if (res->type == XPATH_NUMBER) {
results[i] = res;
} else {
}
} else {
if (res->type == XPATH_STRING) {
- if ((xfrm) && (comp->locale != (xsltLocale)0)) {
+ if (locale != NULL) {
xmlChar *str = res->stringval;
- res->stringval = (xmlChar *) xsltStrxfrm(comp->locale, str);
- xmlFree(str);
+ xmlChar *sortKey = ctxt->genSortKey(locale, str);
+
+ if (sortKey == NULL) {
+ xsltTransformError(ctxt, NULL, sort,
+ "xsltComputeSortResult: sort key is null\n");
+ } else {
+ res->stringval = sortKey;
+ xmlFree(str);
+ }
}
results[i] = res;
*/
xmlXPathObjectPtr *
xsltComputeSortResult(xsltTransformContextPtr ctxt, xmlNodePtr sort) {
- return xsltComputeSortResultInternal(ctxt, sort, /* xfrm */ 0);
+ const xsltStylePreComp *comp = sort->psvi;
+ int number = 0;
+
+ if (comp != NULL)
+ number = comp->number;
+ return xsltComputeSortResultInternal(ctxt, sort, number,
+ /* locale */ NULL);
}
/**
#ifdef XSLT_REFACTORED
xsltStyleItemSortPtr comp;
#else
- xsltStylePreCompPtr comp;
+ const xsltStylePreComp *comp;
#endif
xmlXPathObjectPtr *resultsTab[XSLT_MAX_SORT];
xmlXPathObjectPtr *results = NULL, *res;
xmlNodeSetPtr list = NULL;
- int descending, number, desc, numb;
int len = 0;
int i, j, incr;
int tst;
int depth;
xmlNodePtr node;
xmlXPathObjectPtr tmp;
- int tempstype[XSLT_MAX_SORT], temporder[XSLT_MAX_SORT],
- templang[XSLT_MAX_SORT];
+ int number[XSLT_MAX_SORT], desc[XSLT_MAX_SORT];
+ void *locale[XSLT_MAX_SORT];
if ((ctxt == NULL) || (sorts == NULL) || (nbsorts <= 0) ||
(nbsorts >= XSLT_MAX_SORT))
return; /* nothing to do */
for (j = 0; j < nbsorts; j++) {
+ xmlChar *lang;
+
comp = sorts[j]->psvi;
- tempstype[j] = 0;
if ((comp->stype == NULL) && (comp->has_stype != 0)) {
- comp->stype =
+ xmlChar *stype =
xsltEvalAttrValueTemplate(ctxt, sorts[j],
- (const xmlChar *) "data-type",
- NULL);
- if (comp->stype != NULL) {
- tempstype[j] = 1;
- if (xmlStrEqual(comp->stype, (const xmlChar *) "text"))
- comp->number = 0;
- else if (xmlStrEqual(comp->stype, (const xmlChar *) "number"))
- comp->number = 1;
+ BAD_CAST "data-type", NULL);
+ number[j] = 0;
+ if (stype != NULL) {
+ if (xmlStrEqual(stype, (const xmlChar *) "text"))
+ ;
+ else if (xmlStrEqual(stype, (const xmlChar *) "number"))
+ number[j] = 1;
else {
xsltTransformError(ctxt, NULL, sorts[j],
"xsltDoSortFunction: no support for data-type = %s\n",
- comp->stype);
- comp->number = 0; /* use default */
+ stype);
}
+ xmlFree(stype);
}
- }
- temporder[j] = 0;
+ } else {
+ number[j] = comp->number;
+ }
if ((comp->order == NULL) && (comp->has_order != 0)) {
- comp->order = xsltEvalAttrValueTemplate(ctxt, sorts[j],
- (const xmlChar *) "order",
- NULL);
- if (comp->order != NULL) {
- temporder[j] = 1;
- if (xmlStrEqual(comp->order, (const xmlChar *) "ascending"))
- comp->descending = 0;
- else if (xmlStrEqual(comp->order,
- (const xmlChar *) "descending"))
- comp->descending = 1;
+ xmlChar *order = xsltEvalAttrValueTemplate(ctxt, sorts[j],
+ BAD_CAST "order", NULL);
+ desc[j] = 0;
+ if (order != NULL) {
+ if (xmlStrEqual(order, (const xmlChar *) "ascending"))
+ ;
+ else if (xmlStrEqual(order, (const xmlChar *) "descending"))
+ desc[j] = 1;
else {
xsltTransformError(ctxt, NULL, sorts[j],
"xsltDoSortFunction: invalid value %s for order\n",
- comp->order);
- comp->descending = 0; /* use default */
+ order);
}
+ xmlFree(order);
}
+ } else {
+ desc[j] = comp->descending;
}
- templang[j] = 0;
if ((comp->lang == NULL) && (comp->has_lang != 0)) {
- xmlChar *lang = xsltEvalAttrValueTemplate(ctxt, sorts[j],
+ lang = xsltEvalAttrValueTemplate(ctxt, sorts[j],
(xmlChar *) "lang",
NULL);
- if (lang != NULL) {
- templang[j] = 1;
- comp->locale = xsltNewLocale(lang);
+ } else {
+ lang = (xmlChar *) comp->lang;
+ }
+ if (lang != NULL) {
+ locale[j] = ctxt->newLocale(lang, comp->lower_first);
+ if (lang != comp->lang)
xmlFree(lang);
- }
- }
+ } else {
+ locale[j] = NULL;
+ }
}
len = list->nodeNr;
- resultsTab[0] = xsltComputeSortResultInternal(ctxt, sorts[0],
- /* xfrm */ 1);
+ resultsTab[0] = xsltComputeSortResultInternal(ctxt, sorts[0], number[0],
+ locale[0]);
for (i = 1;i < XSLT_MAX_SORT;i++)
resultsTab[i] = NULL;
results = resultsTab[0];
comp = sorts[0]->psvi;
- descending = comp->descending;
- number = comp->number;
if (results == NULL)
goto cleanup;
if (results[j] == NULL)
tst = 1;
else {
- if (number) {
+ if (number[0]) {
/* We make NaN smaller than number in accordance
with XSLT spec */
if (xmlXPathIsNaN(results[j]->floatval)) {
results[j + incr]->floatval)
tst = 1;
else tst = -1;
- } else if(comp->locale != (xsltLocale)0) {
- tst = xsltLocaleStrcmp(
- comp->locale,
- (xsltLocaleChar *) results[j]->stringval,
- (xsltLocaleChar *) results[j + incr]->stringval);
} else {
tst = xmlStrcmp(results[j]->stringval,
results[j + incr]->stringval);
}
- if (descending)
+ if (desc[0])
tst = -tst;
}
if (tst == 0) {
comp = sorts[depth]->psvi;
if (comp == NULL)
break;
- desc = comp->descending;
- numb = comp->number;
/*
* Compute the result of the next level for the
resultsTab[depth] =
xsltComputeSortResultInternal(ctxt,
sorts[depth],
- /* xfrm */ 1);
+ number[depth],
+ locale[depth]);
res = resultsTab[depth];
if (res == NULL)
break;
} else if (res[j+incr] == NULL) {
tst = -1;
} else {
- if (numb) {
+ if (number[depth]) {
/* We make NaN smaller than number in
accordance with XSLT spec */
if (xmlXPathIsNaN(res[j]->floatval)) {
res[j + incr]->floatval)
tst = 1;
else tst = -1;
- } else if(comp->locale != (xsltLocale)0) {
- tst = xsltLocaleStrcmp(
- comp->locale,
- (xsltLocaleChar *) res[j]->stringval,
- (xsltLocaleChar *) res[j + incr]->stringval);
} else {
tst = xmlStrcmp(res[j]->stringval,
res[j + incr]->stringval);
}
- if (desc)
+ if (desc[depth])
tst = -tst;
}
cleanup:
for (j = 0; j < nbsorts; j++) {
- comp = sorts[j]->psvi;
- if (tempstype[j] == 1) {
- /* The data-type needs to be recomputed each time */
- xmlFree((void *)(comp->stype));
- comp->stype = NULL;
- }
- if (temporder[j] == 1) {
- /* The order needs to be recomputed each time */
- xmlFree((void *)(comp->order));
- comp->order = NULL;
- }
- if (templang[j] == 1) {
- xsltFreeLocale(comp->locale);
- comp->locale = (xsltLocale)0;
- }
+ if (locale[j] != NULL) {
+ ctxt->freeLocale(locale[j]);
+ }
if (resultsTab[j] != NULL) {
for (i = 0;i < len;i++)
xmlXPathFreeObject(resultsTab[j][i]);
* xsltSetSortFunc:
* @handler: the new handler function
*
+ * DEPRECATED: Use xsltSetCtxtLocaleHandlers.
+ *
* Function to reset the global handler for XSLT sorting.
* If the handler is NULL, the default sort function will be used.
*/
* @ctxt: a XSLT process context
* @handler: the new handler function
*
+ * DEPRECATED: Use xsltSetCtxtLocaleHandlers.
+ *
* Function to set the handler for XSLT sorting
* for the specified context.
* If the handler is NULL, then the global
ctxt->sortfunc = handler;
}
+/**
+ * xsltSetCtxtLocaleHandlers:
+ * @ctxt: an XSLT transform context
+ * @newLocale: locale constructor
+ * @freeLocale: locale destructor
+ * @genSortKey: sort key generator
+ *
+ * Set the locale handlers.
+ */
+void
+xsltSetCtxtLocaleHandlers(xsltTransformContextPtr ctxt,
+ xsltNewLocaleFunc newLocale,
+ xsltFreeLocaleFunc freeLocale,
+ xsltGenSortKeyFunc genSortKey) {
+ if (ctxt == NULL)
+ return;
+
+ ctxt->newLocale = newLocale;
+ ctxt->freeLocale = freeLocale;
+ ctxt->genSortKey = genSortKey;
+}
+
/************************************************************************
* *
* Parsing options *
(const xmlChar *) "UTF-8")))
encoder = NULL;
buf = xmlAllocOutputBuffer(encoder);
+ if (buf == NULL)
+ xmlCharEncCloseFunc(encoder);
} else {
buf = xmlAllocOutputBuffer(NULL);
}
return 0;
}
+/**
+ * xsltGetSourceNodeFlags:
+ * @node: Node from source document
+ *
+ * Returns the flags for a source node.
+ */
+int
+xsltGetSourceNodeFlags(xmlNodePtr node) {
+ /*
+ * Squeeze the bit flags into the upper bits of
+ *
+ * - 'int properties' member in struct _xmlDoc
+ * - 'xmlAttributeType atype' member in struct _xmlAttr
+ * - 'unsigned short extra' member in struct _xmlNode
+ */
+ switch (node->type) {
+ case XML_DOCUMENT_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+ return ((xmlDocPtr) node)->properties >> 27;
+
+ case XML_ATTRIBUTE_NODE:
+ return ((xmlAttrPtr) node)->atype >> 27;
+
+ case XML_ELEMENT_NODE:
+ case XML_TEXT_NODE:
+ case XML_CDATA_SECTION_NODE:
+ case XML_PI_NODE:
+ case XML_COMMENT_NODE:
+ return node->extra >> 12;
+
+ default:
+ return 0;
+ }
+}
+
+/**
+ * xsltSetSourceNodeFlags:
+ * @node: Node from source document
+ * @flags: Flags
+ *
+ * Sets the specified flags to 1.
+ *
+ * Returns 0 on success, -1 on error.
+ */
+int
+xsltSetSourceNodeFlags(xsltTransformContextPtr ctxt, xmlNodePtr node,
+ int flags) {
+ if (node->doc == ctxt->initialContextDoc)
+ ctxt->sourceDocDirty = 1;
+
+ switch (node->type) {
+ case XML_DOCUMENT_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+ ((xmlDocPtr) node)->properties |= flags << 27;
+ return 0;
+
+ case XML_ATTRIBUTE_NODE:
+ ((xmlAttrPtr) node)->atype |= flags << 27;
+ return 0;
+
+ case XML_ELEMENT_NODE:
+ case XML_TEXT_NODE:
+ case XML_CDATA_SECTION_NODE:
+ case XML_PI_NODE:
+ case XML_COMMENT_NODE:
+ node->extra |= flags << 12;
+ return 0;
+
+ default:
+ return -1;
+ }
+}
+
+/**
+ * xsltClearSourceNodeFlags:
+ * @node: Node from source document
+ * @flags: Flags
+ *
+ * Sets the specified flags to 0.
+ *
+ * Returns 0 on success, -1 on error.
+ */
+int
+xsltClearSourceNodeFlags(xmlNodePtr node, int flags) {
+ switch (node->type) {
+ case XML_DOCUMENT_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+ ((xmlDocPtr) node)->properties &= ~(flags << 27);
+ return 0;
+
+ case XML_ATTRIBUTE_NODE:
+ ((xmlAttrPtr) node)->atype &= ~(flags << 27);
+ return 0;
+
+ case XML_ELEMENT_NODE:
+ case XML_TEXT_NODE:
+ case XML_CDATA_SECTION_NODE:
+ case XML_PI_NODE:
+ case XML_COMMENT_NODE:
+ node->extra &= ~(flags << 12);
+ return 0;
+
+ default:
+ return -1;
+ }
+}
+
+/**
+ * xsltGetPSVIPtr:
+ * @cur: Node
+ *
+ * Returns a pointer to the psvi member of a node or NULL on error.
+ */
+void **
+xsltGetPSVIPtr(xmlNodePtr cur) {
+ switch (cur->type) {
+ case XML_DOCUMENT_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+ return &((xmlDocPtr) cur)->psvi;
+
+ case XML_ATTRIBUTE_NODE:
+ return &((xmlAttrPtr) cur)->psvi;
+
+ case XML_ELEMENT_NODE:
+ case XML_TEXT_NODE:
+ case XML_CDATA_SECTION_NODE:
+ case XML_PI_NODE:
+ case XML_COMMENT_NODE:
+ return &cur->psvi;
+
+ default:
+ return NULL;
+ }
+}
+
#ifdef WITH_PROFILER
/************************************************************************
XSLTPUBFUN int XSLTCALL
xsltGetUTF8Char (const unsigned char *utf,
int *len);
+#ifdef IN_LIBXSLT
+/** DOC_DISABLE */
+XSLTPUBFUN int XSLTCALL
+ xsltGetUTF8CharZ (const unsigned char *utf,
+ int *len);
+/** DOC_ENABLE */
+#endif
/*
* XSLT Debug Tracing Tracing Types
xsltSetCtxtSortFunc (xsltTransformContextPtr ctxt,
xsltSortFunc handler);
XSLTPUBFUN void XSLTCALL
+ xsltSetCtxtLocaleHandlers (xsltTransformContextPtr ctxt,
+ xsltNewLocaleFunc newLocale,
+ xsltFreeLocaleFunc freeLocale,
+ xsltGenSortKeyFunc genSortKey);
+XSLTPUBFUN void XSLTCALL
xsltDefaultSortFunction (xsltTransformContextPtr ctxt,
xmlNodePtr *sorts,
int nbsorts);
const xmlChar *str,
int flags);
+#ifdef IN_LIBXSLT
+/** DOC_DISABLE */
+#define XSLT_SOURCE_NODE_MASK 15u
+#define XSLT_SOURCE_NODE_HAS_KEY 1u
+#define XSLT_SOURCE_NODE_HAS_ID 2u
+int
+xsltGetSourceNodeFlags(xmlNodePtr node);
+int
+xsltSetSourceNodeFlags(xsltTransformContextPtr ctxt, xmlNodePtr node,
+ int flags);
+int
+xsltClearSourceNodeFlags(xmlNodePtr node, int flags);
+void **
+xsltGetPSVIPtr(xmlNodePtr cur);
+/** DOC_ENABLE */
+#endif
+
+#ifdef WITH_PROFILER
/*
* Profiling.
*/
xsltTimestamp (void);
XSLTPUBFUN void XSLTCALL
xsltCalibrateAdjust (long delta);
+#endif
/**
* XSLT_TIMESTAMP_TICS_PER_SEC:
typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source);
typedef void (*xsltDropCallCallback) (void);
-XSLTPUBFUN void XSLTCALL
- xsltSetDebuggerStatus (int value);
XSLTPUBFUN int XSLTCALL
xsltGetDebuggerStatus (void);
+#ifdef WITH_DEBUGGER
+XSLTPUBFUN void XSLTCALL
+ xsltSetDebuggerStatus (int value);
XSLTPUBFUN int XSLTCALL
xsltSetDebuggerCallbacks (int no, void *block);
XSLTPUBFUN int XSLTCALL
xmlNodePtr source);
XSLTPUBFUN void XSLTCALL
xslDropCall (void);
+#endif
#ifdef __cplusplus
}
--- /dev/null
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
+#
+# DESCRIPTION
+#
+# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
+# added in between.
+#
+# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
+# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains
+# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly
+# FLAG.
+#
+# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 8
+
+AC_DEFUN([AX_APPEND_FLAG],
+[dnl
+AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF
+AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])
+AS_VAR_SET_IF(FLAGS,[
+ AS_CASE([" AS_VAR_GET(FLAGS) "],
+ [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])],
+ [
+ AS_VAR_APPEND(FLAGS,[" $1"])
+ AC_RUN_LOG([: FLAGS="$FLAGS"])
+ ])
+ ],
+ [
+ AS_VAR_SET(FLAGS,[$1])
+ AC_RUN_LOG([: FLAGS="$FLAGS"])
+ ])
+AS_VAR_POPDEF([FLAGS])dnl
+])dnl AX_APPEND_FLAG
--- /dev/null
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_append_link_flags.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_APPEND_LINK_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+# For every FLAG1, FLAG2 it is checked whether the linker works with the
+# flag. If it does, the flag is added FLAGS-VARIABLE
+#
+# If FLAGS-VARIABLE is not specified, the linker's flags (LDFLAGS) is
+# used. During the check the flag is always added to the linker's flags.
+#
+# If EXTRA-FLAGS is defined, it is added to the linker's default flags
+# when the check is done. The check is thus made with the flags: "LDFLAGS
+# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
+# issue an error when a bad flag is given.
+#
+# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
+#
+# NOTE: This macro depends on the AX_APPEND_FLAG and AX_CHECK_LINK_FLAG.
+# Please keep this macro in sync with AX_APPEND_COMPILE_FLAGS.
+#
+# LICENSE
+#
+# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 7
+
+AC_DEFUN([AX_APPEND_LINK_FLAGS],
+[AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
+AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
+for flag in $1; do
+ AX_CHECK_LINK_FLAG([$flag], [AX_APPEND_FLAG([$flag], [m4_default([$2], [LDFLAGS])])], [], [$3], [$4])
+done
+])dnl AX_APPEND_LINK_FLAGS
--- /dev/null
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+# Check whether the given FLAG works with the linker or gives an error.
+# (Warnings, however, are ignored)
+#
+# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
+# success/failure.
+#
+# If EXTRA-FLAGS is defined, it is added to the linker's default flags
+# when the check is done. The check is thus made with the flags: "LDFLAGS
+# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
+# issue an error when a bad flag is given.
+#
+# INPUT gives an alternative input source to AC_LINK_IFELSE.
+#
+# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
+# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 6
+
+AC_DEFUN([AX_CHECK_LINK_FLAG],
+[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
+AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS $4 $1"
+ AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
+ [AS_VAR_SET(CACHEVAR,[yes])],
+ [AS_VAR_SET(CACHEVAR,[no])])
+ LDFLAGS=$ax_check_save_flags])
+AS_VAR_IF(CACHEVAR,yes,
+ [m4_default([$2], :)],
+ [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_LINK_FLAGS
--- /dev/null
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_require_defined.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_REQUIRE_DEFINED(MACRO)
+#
+# DESCRIPTION
+#
+# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have
+# been defined and thus are available for use. This avoids random issues
+# where a macro isn't expanded. Instead the configure script emits a
+# non-fatal:
+#
+# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found
+#
+# It's like AC_REQUIRE except it doesn't expand the required macro.
+#
+# Here's an example:
+#
+# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
+#
+# LICENSE
+#
+# Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 2
+
+AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
+ m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
+])dnl AX_REQUIRE_DEFINED
-# Makefile for libxml2 python library
+# Makefile for libxslt python library
+
+# We use a rule with multiple output files which creates problems with
+# parallel builds.
+.NOTPARALLEL:
SUBDIRS = . tests
libxml_wrap.h \
libxslt_wrap.h \
libxsl.py \
- libxslt-python-api.xml
+ libxslt-python-api.xml \
+ pyproject.toml \
+ setup.py.in
if WITH_PYTHON
libxsltmod_la_CPPFLAGS = \
-I$(top_srcdir)/libxslt \
-I$(top_srcdir) \
- -I../libexslt \
- $(PYTHON_CFLAGS) $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
+ -I../libexslt
+libxsltmod_la_CFLAGS = $(AM_CFLAGS) $(PYTHON_CFLAGS)
libxsltmod_la_SOURCES = libxslt.c types.c
nodist_libxsltmod_la_SOURCES = libxslt-py.c
libxsltmod_la_LIBADD = \
$(top_builddir)/libxslt/libxslt.la \
$(top_builddir)/libexslt/libexslt.la \
$(PYTHON_LIBS) $(LIBXML_LIBS)
-libxsltmod_la_LDFLAGS = -module -avoid-version
+libxsltmod_la_LDFLAGS = $(AM_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version
libxslt.py: $(srcdir)/libxsl.py libxsltclass.py
cat $(srcdir)/libxsl.py libxsltclass.py > $@
#######################################################################
skipped_modules = {
- 'xmlmemory': None,
- 'DOCBparser': None,
- 'SAX': None,
- 'hash': None,
- 'list': None,
- 'threads': None,
- 'xpointer': None,
'transform': None,
}
skipped_types = {
'xmlBufferPtr': "internal representation not suitable for python",
'FILE *': None,
}
+skipped_functions = {
+ 'xsltMatchPattern': True,
+ # Debugger
+ 'xslAddCall': True,
+ 'xslDropCall': True,
+ 'xslHandleDebugger': True,
+ 'xsltSetDebuggerCallbacks': True,
+ 'xsltSetDebuggerStatus': True,
+}
#######################################################################
#
#######################################################################
def skip_function(name):
- if name[0:12] == "xmlXPathWrap":
- return 1
- if name == "xsltMatchPattern":
+ if name in skipped_functions:
return 1
-# if name[0:11] == "xmlXPathNew":
-# return 1
return 0
def print_function_wrapper(name, output, export, include):
export.close()
wrapper.close()
- print("Generated %d wrapper functions, %d failed, %d skipped\n" % (nb_wrap,
+ print("Generated %d wrapper functions, %d failed, %d skipped" % (nb_wrap,
failed, skipped))
- print("Missing type converters:")
- for type in list(unknown_types.keys()):
- print("%s:%d " % (type, len(unknown_types[type])))
- print()
+# print("Missing type converters:")
+# for type in list(unknown_types.keys()):
+# print("%s:%d " % (type, len(unknown_types[type])))
+# print()
#######################################################################
#
</function>
<function name='xsltGetLoaderFunc' file='python'>
<info>Get the function for controlling document loading</info>
- <return type='pythonObject *' info='the function'/>
+ <return type='pythonObject' info='the function'/>
</function>
<function name='xsltNewTransformContext' file='python'>
<info>Create a new XSLT TransformContext</info>
/* #define DEBUG_EXTENSIONS */
/* #define DEBUG_EXTENSIONS */
+#if PY_MAJOR_VERSION >= 3
+PyObject* PyInit_libxsltmod(void);
+#else
void initlibxsltmod(void);
+#endif
/************************************************************************
* *
pyobj_element_f);
Py_INCREF(pyobj_precomp_f); /* Protect refcount against reentrant manipulation of callback hash */
- result = PyEval_CallObject(pyobj_precomp_f, args);
+ result = PyObject_CallObject(pyobj_precomp_f, args);
Py_DECREF(pyobj_precomp_f);
Py_DECREF(args);
libxslt_xsltElemPreCompPtrWrap(comp));
Py_INCREF(func); /* Protect refcount against reentrant manipulation of callback hash */
- result = PyEval_CallObject(func, args);
+ result = PyObject_CallObject(func, args);
Py_DECREF(func);
Py_DECREF(args);
}
Py_INCREF(current_function);
- result = PyEval_CallObject(current_function, list);
+ result = PyObject_CallObject(current_function, list);
Py_DECREF(current_function);
Py_DECREF(list);
}
PyObject *
-libxslt_xsltGetLoaderFunc(void) {
+libxslt_xsltGetLoaderFunc(PyObject *self ATTRIBUTE_UNUSED,
+ PyObject *args ATTRIBUTE_UNUSED) {
PyObject *py_retval;
py_retval = pythonDocLoaderObject;
PyObject *pyobj_transformCtxt;
const char **params = NULL;
int len = 0, i, j;
- ssize_t ppos = 0;
+ Py_ssize_t ppos = 0;
PyObject *name;
PyObject *value;
PyObject *pyobj_params;
const char **params = NULL;
int len = 0, i, j, params_size;
- ssize_t ppos = 0;
+ Py_ssize_t ppos = 0;
PyObject *name;
PyObject *value;
Py_XINCREF(libxslt_xsltPythonErrorFuncCtxt);
message = libxml_charPtrWrap(str);
PyTuple_SetItem(list, 1, message);
- result = PyEval_CallObject(libxslt_xsltPythonErrorFuncHandler, list);
+ result = PyObject_CallObject(libxslt_xsltPythonErrorFuncHandler, list);
Py_XDECREF(list);
Py_XDECREF(result);
}
#ifdef MERGED_MODULES
#if PY_MAJOR_VERSION >= 3
-extern PyObject* PyInit_libxml2mod(void);
+PyObject* PyInit_libxml2mod(void);
#else
-extern void initlibxml2mod(void);
+void initlibxml2mod(void);
#endif
#endif
* Specific XSLT initializations
*/
libxslt_xsltErrorInitialize();
- xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
/*
* Register the EXSLT extensions and the test module
*/
#include "libxml_wrap.h"
#include <libxslt/xslt.h>
#include <libxslt/xsltInternals.h>
+#include <libxslt/xsltlocale.h>
#include <libxslt/xsltutils.h>
#include <libxslt/attributes.h>
#include <libxslt/documents.h>
--- /dev/null
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
--- /dev/null
+#!/usr/bin/python -u
+#
+# Setup script for libxml2 and libxslt if found
+#
+import sys, os, subprocess
+
+try:
+ from setuptools import setup, Extension
+except ImportError:
+ try:
+ # Using distutils, for python < 3.12
+ from distutils.core import setup, Extension
+ except ImportError:
+ # distutils is not present in python 3.12 and greater
+ print("setuptools is required for python >= 3.12")
+ sys.exit(1)
+
+# Below ROOT, we expect to find include, include/libxml2, lib and bin.
+# On *nix, it is not needed (but should not harm),
+# on Windows, it is set by configure.js.
+ROOT = r'@prefix@'
+
+# If this flag is set (windows only),
+# a private copy of the dlls are included in the package.
+# If this flag is not set, the libxml2 and libxslt
+# dlls must be found somewhere in the PATH at runtime.
+WITHDLLS = 1 and sys.platform.startswith('win')
+
+def missing(file):
+ if os.access(file, os.R_OK) == 0:
+ return 1
+ return 0
+
+try:
+ HOME = os.environ['HOME']
+except:
+ HOME="C:"
+
+if sys.platform.startswith('win'):
+ libraryPrefix = 'lib'
+ platformLibs = []
+else:
+ libraryPrefix = ''
+ platformLibs = ["m","z"]
+
+# those are examined to find
+# - libxslt/xsltconfig.h
+includes_dir = [
+"/usr/include",
+"/usr/local/include",
+"/opt/include",
+os.path.join(ROOT,'include'),
+HOME
+];
+
+# those are added in the linker search path for libraries
+libdirs = [
+os.path.join(ROOT,'lib'),
+]
+
+xslt_files = ["libxslt-api.xml", "libxslt-python-api.xml",
+ "libxslt.c", "libxsl.py", "libxslt_wrap.h",
+ "generator.py"]
+
+if WITHDLLS:
+ def altImport(s):
+ s = s.replace("import libxml2mod","from libxmlmods import libxml2mod")
+ s = s.replace("import libxsltmod","from libxsltmods import libxsltmod")
+ return s
+
+if missing("libxslt-py.c") or missing("libxslt.py"):
+ if missing("generator.py") or missing(os.path.join("..", "doc", "libxslt-api.xml")):
+ print("libxslt stub generator not found, libxslt not built")
+ else:
+ try:
+ if hasattr(subprocess, 'run'):
+ subprocess.run([sys.executable,
+ 'generator.py',
+ os.path.join('..', 'doc', 'libxslt-api.xml'),
+ 'libxslt-python-api.xml'
+ ], check=True)
+ else:
+ subprocess.check_output([sys.executable,
+ 'generator.py',
+ os.path.join('..', 'doc', 'libxslt-api.xml'),
+ 'libxslt-python-api.xml'])
+ except:
+ print("failed to generate stubs for libxslt, aborting ...")
+ print(sys.exc_info()[0], sys.exc_info()[1])
+ else:
+ head = open("libxsl.py", "r")
+ generated = open("libxsltclass.py", "r")
+ result = open("libxslt.py", "w")
+ for line in head.readlines():
+ if WITHDLLS:
+ result.write(altImport(line))
+ else:
+ result.write(line)
+ for line in generated.readlines():
+ result.write(line)
+ head.close()
+ generated.close()
+ result.close()
+
+xml_includes=""
+for dir in includes_dir:
+ if not missing(dir + "/libxml2/libxml/tree.h"):
+ xml_includes=dir + "/libxml2"
+ break;
+
+if xml_includes == "":
+ print("failed to find headers for libxml2: update includes_dir")
+ sys.exit(1)
+
+xslt_includes=""
+for dir in includes_dir:
+ if not missing(dir + "/libxslt/xsltconfig.h"):
+ xslt_includes=dir + "/libxslt"
+ break;
+
+if xslt_includes == "":
+ print("failed to find headers for libxslt: update includes_dir")
+
+if WITHDLLS:
+ # libxslt dlls (expected in ROOT/bin)
+ dlls = ['libxslt.dll','libexslt.dll']
+
+ packaged_dlls = [os.path.join(ROOT,'bin',dll) for dll in dlls]
+
+ # create __init__.py for the libxsltmods package
+ if not os.path.exists("libxsltmods"):
+ os.mkdir("libxsltmods")
+ open("libxsltmods/__init__.py","w").close()
+
+ packaged_dlls = [os.path.join(ROOT,'bin',dll) for dll in dlls]
+
+descr = "libxslt package"
+modules = [ 'libxslt']
+if WITHDLLS:
+ modules.append('libxsltmods.__init__')
+c_files = []
+includes= [xslt_includes, xml_includes]
+libs = platformLibs
+macros = []
+
+descr = "libxslt package"
+if not sys.platform.startswith('win'):
+ #
+ # We are gonna build 2 identical shared libs with merge initializing
+ # both libxml2mod and libxsltmod
+ #
+ c_files = c_files + ['libxslt-py.c', 'libxslt.c']
+ xslt_c_files = c_files
+else:
+ #
+ # On windows the MERGED_MODULE option is not needed
+ # (and does not work)
+ #
+ xslt_c_files = ['libxslt-py.c', 'libxslt.c', 'types.c']
+libs.insert(0, libraryPrefix + 'exslt')
+libs.insert(0, libraryPrefix + 'xslt')
+libs.insert(0, libraryPrefix + 'xml2')
+includes.append(xslt_includes)
+modules.append('libxslt')
+
+
+extens=[Extension('libxsltmod', xslt_c_files, include_dirs=includes,
+ library_dirs=libdirs,
+ libraries=libs, define_macros=macros)]
+
+if missing("MANIFEST"):
+
+ manifest = open("MANIFEST", "w")
+ manifest.write("setup.py\n")
+ for file in xslt_files:
+ manifest.write(file + "\n")
+ manifest.close()
+
+if WITHDLLS:
+ ext_package = "libxsltmods"
+ if sys.version >= "2.2":
+ base = "lib/site-packages/"
+ else:
+ base = ""
+ data_files = [(base+ext_package,packaged_dlls)]
+else:
+ ext_package = None
+ data_files = []
+
+setup (name = "libxslt-python",
+ # On *nix, the version number is created from setup.py.in
+ # On windows, it is set by configure.js
+ version = "@VERSION@",
+ description = descr,
+ author = "Daniel Veillard",
+ author_email = "veillard@redhat.com",
+ url = "https://gitlab.gnome.org/GNOME/libxslt",
+ licence="MIT Licence",
+ py_modules=modules,
+ ext_modules=extens,
+ ext_package=ext_package,
+ data_files=data_files,
+ install_requires=['libxml2_python>=@LIBXML_REQUIRED_VERSION@'],
+ )
+
+sys.exit(0)
+
extfunc.py
exampledir = $(docdir)/python/examples
-dist_example_DATA = test.xml test.xsl pyxsltproc.py $(TESTSPY)
+dist_example_DATA = test.xml test.xsl pyxsltproc.py setup_test.py $(TESTSPY)
-tests: $(TESTSPY)
- @(PYTHONPATH="`pwd`/..:`pwd`/../.libs:$(srcdir)/.."; \
+check-local: $(TESTSPY)
+ @(export PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH"; \
+ export LD_LIBRARY_PATH="$(top_builddir)/libxslt/.libs:$(top_builddir)/libexslt/.libs:$$LD_LIBRARY_PATH"; \
+ export DYLD_LIBRARY_PATH="$(top_builddir)/libxslt/.libs:$(top_builddir)/libexslt/.libs:$$DYLD_LIBRARY_PATH"; \
+ export PATH="$(top_builddir)/libxslt/.libs:$(top_builddir)/libexslt/.libs:$$PATH" ; \
if test "x$(LIBXML_SRC)" != "x" ; then \
- PYTHONPATH="$$PYTHONPATH:$(LIBXML_SRC)/python:$(LIBXML_SRC)/python/.libs"; \
+ PYTHONPATH="$(LIBXML_SRC)/python:$(LIBXML_SRC)/python/.libs:$$PYTHONPATH"; \
+ LD_LIBRARY_PATH="$(LIBXML_SRC)/.libs:$$LD_LIBRARY_PATH"; \
+ DYLD_LIBRARY_PATH="$(LIBXML_SRC)/.libs:$$DYLD_LIBRARY_PATH"; \
+ PATH="$(LIBXML_SRC)/.libs:$$PATH" ; \
fi; \
- export PYTHONPATH; \
for test in $(TESTSPY) ; do \
echo "-- $$test" ; \
- (cd $(srcdir) && $(PYTHON) $$test ) || exit 1; \
+ LIBXML_SRC="$(LIBXML_SRC)" $(PYTHON) $(srcdir)/$$test; \
done)
-else
-tests:
endif
CLEANFILES = *.pyc core
#!/usr/bin/env python
+import os
import sys
+import setup_test
import libxml2
# Memory debug specific
libxml2.debugMemory(1)
import libxslt
+basedir = os.path.dirname(os.path.realpath(__file__))
-
-styledoc = libxml2.parseFile("test.xsl")
+styledoc = libxml2.parseFile("%s/test.xsl" % basedir)
style = libxslt.parseStylesheetDoc(styledoc)
-doc = libxml2.parseFile("test.xml")
+doc = libxml2.parseFile("%s/test.xml" % basedir)
result = style.applyStylesheet(doc, None)
style.saveResultToFilename("foo", result, 0)
+os.remove("foo")
stringval = style.saveResultToString(result)
if (len(stringval) != 68):
print("Error in saveResultToString")
#!/usr/bin/env python
import sys
+import setup_test
import libxml2
# Memory debug specific
libxml2.debugMemory(1)
#!/usr/bin/env python
import sys
import string
+import setup_test
import libxml2
# Memory debug specific
libxml2.debugMemory(1)
#!/usr/bin/env python
import sys
import string
+import setup_test
import libxml2
# Memory debug specific
libxml2.debugMemory(1)
--- /dev/null
+import os
+
+if hasattr(os, 'add_dll_directory'):
+ os.add_dll_directory(os.path.join(os.getcwd(), '..', '..', 'libxslt', '.libs'))
+ os.add_dll_directory(os.path.join(os.getcwd(), '..', '..', 'libexslt', '.libs'))
+ libxml_src = os.getenv('LIBXML_SRC')
+ if libxml_src is not None and libxml_src != '':
+ os.add_dll_directory(os.path.join(libxml_src, '.libs'))
#if PY_MAJOR_VERSION >= 3
#include <stdio.h>
+#include <stdint.h>
+
+#ifdef _WIN32
+
+#ifndef XML_IGNORE_FPTR_CAST_WARNINGS
+#define XML_IGNORE_FPTR_CAST_WARNINGS
+#endif
+#ifndef XML_POP_WARNINGS
+#define XML_POP_WARNINGS
+#endif
+
+#include <windows.h>
+#include <crtdbg.h>
+
+/* Taken from info on MSDN site, as we may not have the Windows WDK/DDK headers */
+typedef struct _IO_STATUS_BLOCK {
+ union {
+ NTSTATUS Status;
+ PVOID Pointer;
+ } DUMMYUNIONNAME;
+ ULONG_PTR Information;
+} IO_STATUS_BLOCK;
+
+typedef struct _FILE_ACCESS_INFORMATION {
+ ACCESS_MASK AccessFlags;
+} FILE_ACCESS_INFORMATION;
+
+typedef NTSTATUS (*t_NtQueryInformationFile) (HANDLE FileHandle,
+ IO_STATUS_BLOCK *IoStatusBlock,
+ PVOID FileInformation,
+ ULONG Length,
+ int FileInformationClass); /* this is an Enum */
+
+#if (defined (_MSC_VER) && _MSC_VER >= 1400)
+/*
+ * This is the (empty) invalid parameter handler
+ * that is used for Visual C++ 2005 (and later) builds
+ * so that we can use this instead of the system automatically
+ * aborting the process.
+ *
+ * This is necessary as we use _get_oshandle() to check the validity
+ * of the file descriptors as we close them, so when an invalid file
+ * descriptor is passed into that function as we check on it, we get
+ * -1 as the result, instead of the gspawn helper program aborting.
+ *
+ * Please see http://msdn.microsoft.com/zh-tw/library/ks2530z6%28v=vs.80%29.aspx
+ * for an explanation on this.
+ */
+void
+myInvalidParameterHandler(const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file,
+ unsigned int line,
+ uintptr_t pReserved)
+{
+}
+#endif
+#else
#include <unistd.h>
#include <fcntl.h>
+#endif
FILE *
libxml_PyFileGet(PyObject *f) {
- int fd, flags;
FILE *res;
const char *mode;
+ int fd = PyObject_AsFileDescriptor(f);
+
+#ifdef _WIN32
+ intptr_t w_fh = -1;
+ HMODULE hntdll = NULL;
+ IO_STATUS_BLOCK status_block;
+ FILE_ACCESS_INFORMATION ai;
+ t_NtQueryInformationFile NtQueryInformationFile;
+ BOOL is_read = FALSE;
+ BOOL is_write = FALSE;
+ BOOL is_append = FALSE;
+
+#if (defined (_MSC_VER) && _MSC_VER >= 1400)
+ /* set up our empty invalid parameter handler */
+ _invalid_parameter_handler oldHandler, newHandler;
+ newHandler = myInvalidParameterHandler;
+ oldHandler = _set_invalid_parameter_handler(newHandler);
+
+ /* Disable the message box for assertions. */
+ _CrtSetReportMode(_CRT_ASSERT, 0);
+#endif
+
+ w_fh = _get_osfhandle(fd);
+
+ if (w_fh == -1)
+ return(NULL);
+
+ hntdll = GetModuleHandleW(L"ntdll.dll");
+
+ if (hntdll == NULL)
+ return(NULL);
+XML_IGNORE_FPTR_CAST_WARNINGS
+ NtQueryInformationFile = (t_NtQueryInformationFile)GetProcAddress(hntdll, "NtQueryInformationFile");
+XML_POP_WARNINGS
+
+ if (NtQueryInformationFile != NULL &&
+ (NtQueryInformationFile((HANDLE)w_fh,
+ &status_block,
+ &ai,
+ sizeof(FILE_ACCESS_INFORMATION),
+ 8) == 0)) /* 8 means "FileAccessInformation" */
+ {
+ if (ai.AccessFlags & FILE_READ_DATA)
+ is_read = TRUE;
+ if (ai.AccessFlags & FILE_WRITE_DATA)
+ is_write = TRUE;
+ if (ai.AccessFlags & FILE_APPEND_DATA)
+ is_append = TRUE;
+
+ if (is_write) {
+ if (is_read) {
+ if (is_append)
+ mode = "a+";
+ else
+ mode = "rw";
+ } else {
+ if (is_append)
+ mode = "a";
+ else
+ mode = "w";
+ }
+ } else {
+ if (is_append)
+ mode = "r+";
+ else
+ mode = "r";
+ }
+ }
+
+ FreeLibrary(hntdll);
+
+ if (!is_write && !is_read) /* also happens if we did not load or run NtQueryInformationFile() successfully */
+ return(NULL);
+#else
+ int flags;
- fd = PyObject_AsFileDescriptor(f);
/*
- * Get the flags on the fd to understand how it was opened
+ * macOS returns O_RDWR for standard streams, but fails to write to
+ * stdout or stderr when opened with fdopen(dup_fd, "rw").
*/
- flags = fcntl(fd, F_GETFL, 0);
- switch (flags & O_ACCMODE) {
- case O_RDWR:
- if (flags & O_APPEND)
- mode = "a+";
- else
- mode = "rw";
- break;
- case O_RDONLY:
- if (flags & O_APPEND)
- mode = "r+";
- else
- mode = "r";
- break;
- case O_WRONLY:
- if (flags & O_APPEND)
- mode = "a";
- else
- mode = "w";
- break;
- default:
- return(NULL);
+ switch (fd) {
+ case STDIN_FILENO:
+ mode = "r";
+ break;
+ case STDOUT_FILENO:
+ case STDERR_FILENO:
+ mode = "w";
+ break;
+ default:
+ /*
+ * Get the flags on the fd to understand how it was opened
+ */
+ flags = fcntl(fd, F_GETFL, 0);
+ switch (flags & O_ACCMODE) {
+ case O_RDWR:
+ if (flags & O_APPEND)
+ mode = "a+";
+ else
+ mode = "rw";
+ break;
+ case O_RDONLY:
+ if (flags & O_APPEND)
+ mode = "r+";
+ else
+ mode = "r";
+ break;
+ case O_WRONLY:
+ if (flags & O_APPEND)
+ mode = "a";
+ else
+ mode = "w";
+ break;
+ default:
+ return(NULL);
+ }
}
+#endif
/*
* the FILE struct gets a new fd, so that it can be closed
## Process this file with automake to produce Makefile.in
-SUBDIRS=docs REC1 REC2 REC general namespaces keys numbers documents \
- extensions reports xmlspec multiple xinclude XSLTMark docbook \
- exslt plugins fuzz
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
-all:
+SUBDIRS = xmlspec multiple xinclude XSLTMark docbook fuzz
+
+DEPENDENCIES = $(top_builddir)/libxslt/libxslt.la \
+ $(top_builddir)/libexslt/libexslt.la
+
+LDADD = $(top_builddir)/libxslt/libxslt.la \
+ $(top_builddir)/libexslt/libexslt.la \
+ $(LIBXML_LIBS)
+
+check_PROGRAMS = runtest
+
+runtest_SOURCES = runtest.c
+
+if WITH_MODULES
-# Each subdirectory has it's own Makefile to cater for the unique
-# requirements of that subdirectory. In general, xsltproc will be
-# run on the *.xsl / *.xml file combinations, and the output of that
-# run will be compared with the "expected" output contained in *.out
-# and (if errors are expected) in *.err
-test tests:
- @(cur=`pwd` ; for dir in $(SUBDIRS) ; do cd $$dir ; $(MAKE) CHECKER='$(CHECKER)' tests ; cd $$cur ; done)
+check_LTLIBRARIES = xmlsoft_org_xslt_testplugin.la
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- @echo '## Go get a cup of coffee it is gonna take a while ...'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
+# our rpath is a rather unorthodox location as we
+# don't want to pollute $(DESTDIR) with the test plugin
+
+plugindir = $(abs_builddir)/.libs
+
+xmlsoft_org_xslt_testplugin_la_CFLAGS = $(AM_CFLAGS) -DMODULE_COMPILE
+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 = \
+ $(AM_LDFLAGS) -no-undefined \
+ -module -avoid-version -rpath $(plugindir)
+
+endif
+
+all:
-full: tests docbook_tests
+check-local:
+ cd $(srcdir) && LIBXSLT_PLUGINS_PATH=$(plugindir) $(abs_builddir)/runtest
docbook_tests:
@(cd docbook ; $(MAKE) full)
+dist-hook:
+ cp -a $(srcdir)/REC $(distdir)
+ cp -a $(srcdir)/REC2 $(distdir)
+ cp -a $(srcdir)/documents $(distdir)
+ cp -a $(srcdir)/encoding $(distdir)
+ cp -a $(srcdir)/exslt $(distdir)
+ cp -a $(srcdir)/extensions $(distdir)
+ cp -a $(srcdir)/general $(distdir)
+ cp -a $(srcdir)/keys $(distdir)
+ cp -a $(srcdir)/namespaces $(distdir)
+ cp -a $(srcdir)/numbers $(distdir)
+ cp -a $(srcdir)/plugins $(distdir)
+ cp -a $(srcdir)/reports $(distdir)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- article.xsl bigfont.xsl \
- test-10-1.out test-10-1.xml test-10-1.xsl \
- test-10-2.out test-10-2.xml test-10-2.xsl \
- test-11.2-1.out test-11.2-1.xml test-11.2-1.xsl \
- test-11.2-2.out test-11.2-2.xml test-11.2-2.xsl \
- test-11.2-3.out test-11.2-3.xml test-11.2-3.xsl \
- test-11.2-4.out test-11.2-4.xml test-11.2-4.xsl \
- test-11.2-5.out test-11.2-5.xml test-11.2-5.xsl \
- test-11.2-6.out test-11.2-6.xml test-11.2-6.xsl \
- test-12.2-1.out test-12.2-1.xml test-12.2-1.xsl \
- test-12.2-2.out test-12.2-2.xml test-12.2-2.xsl \
- test-15-1.out test-15-1.xml test-15-1.xsl \
- test-16.1-1.out test-16.1-1.xml test-16.1-1.xsl \
- test-16.1-2.out test-16.1-2.xml test-16.1-2.xsl \
- test-2.3-1.out test-2.3-1.xml test-2.3-1.xsl \
- test-2.3-2.out test-2.3-2.xml test-2.3-2.xsl \
- test-3.4-1.out test-3.4-1.xml test-3.4-1.xsl \
- test-3.4-2.out test-3.4-2.xml test-3.4-2.xsl \
- test-3.4-3.out test-3.4-3.xml test-3.4-3.xsl \
- test-2.5-1.out test-2.5-1.xml test-2.5-1.xsl test-2.5-1.err \
- test-2.6.2-1.out test-2.6.2-1.xml test-2.6.2-1.xsl \
- test-5.2-1.out test-5.2-1.xml test-5.2-1.xsl \
- test-5.2-2.out test-5.2-2.xml test-5.2-2.xsl \
- test-5.2-3.out test-5.2-3.xml test-5.2-3.xsl \
- test-5.2-4.out test-5.2-4.xml test-5.2-4.xsl \
- test-5.2-5.out test-5.2-5.xml test-5.2-5.xsl \
- test-5.2-6.out test-5.2-6.xml test-5.2-6.xsl \
- test-5.2-7.out test-5.2-7.xml test-5.2-7.xsl \
- test-5.2-8.out test-5.2-8.xml test-5.2-8.xsl \
- test-5.2-9.out test-5.2-9.xml test-5.2-9.xsl \
- test-5.2-10.out test-5.2-10.xml test-5.2-10.xsl \
- test-5.2-11.out test-5.2-11.xml test-5.2-11.xsl \
- test-5.2-12.out test-5.2-12.xml test-5.2-12.xsl \
- test-5.2-13.out test-5.2-13.xml test-5.2-13.xsl \
- test-5.2-14.out test-5.2-14.xml test-5.2-14.xsl \
- test-5.2-15.out test-5.2-15.xml test-5.2-15.xsl \
- test-5.2-16.out test-5.2-16.xml test-5.2-16.xsl \
- test-5.2-17.out test-5.2-17.xml test-5.2-17.xsl \
- test-5.2-18.out test-5.2-18.xml test-5.2-18.xsl \
- test-5.2-19.out test-5.2-19.xml test-5.2-19.xsl \
- test-5.2-20.out test-5.2-20.xml test-5.2-20.xsl \
- test-5.2-21.out test-5.2-21.xml test-5.2-21.xsl \
- test-5.2-22.out test-5.2-22.xml test-5.2-22.xsl \
- test-5.3.out test-5.3.xml test-5.3.xsl \
- test-5.4-1.out test-5.4-1.xml test-5.4-1.xsl \
- test-5.4-2.out test-5.4-2.xml test-5.4-2.xsl \
- test-5.4-3.out test-5.4-3.xml test-5.4-3.xsl \
- test-5.4-4.out test-5.4-4.xml test-5.4-4.xsl \
- test-5.4-5.out test-5.4-5.xml test-5.4-5.xsl \
- test-5.8.out test-5.8.xml test-5.8.xsl \
- test-6.out test-6.xml test-6.xsl \
- test-6.1.out test-6.1.xml test-6.1.xsl test-6.1.err \
- test-7.1.1.out test-7.1.1.xml test-7.1.1.xsl \
- test-7.1.1-2.out test-7.1.1-2.xml test-7.1.1-2.xsl \
- test-7.1.1-3.out test-7.1.1-3.xml test-7.1.1-3.xsl \
- test-7.1.3.out test-7.1.3.xml test-7.1.3.xsl \
- test-7.1.4.out test-7.1.4.xml test-7.1.4.xsl \
- test-7.3.out test-7.3.xml test-7.3.xsl \
- test-7.4.out test-7.4.xml test-7.4.xsl \
- test-7.5-1.out test-7.5-1.xml test-7.5-1.xsl \
- test-7.6.1-1.out test-7.6.1-1.xml test-7.6.1-1.xsl \
- test-7.6.1-2.out test-7.6.1-2.xml test-7.6.1-2.xsl \
- test-7.6.1-3.out test-7.6.1-3.xml test-7.6.1-3.xsl \
- test-7.6.2-1.out test-7.6.2-1.xml test-7.6.2-1.xsl \
- test-7.6.2-2.out test-7.6.2-2.xml test-7.6.2-2.xsl \
- test-7.7-1.out test-7.7-1.xml test-7.7-1.xsl \
- test-7.7-2.out test-7.7-2.xml test-7.7-2.xsl \
- test-7.7-3.out test-7.7-3.xml test-7.7-3.xsl \
- test-7.7-4.out test-7.7-4.xml test-7.7-4.xsl \
- test-7.7-5.out test-7.7-5.xml test-7.7-5.xsl \
- test-7.7-6.out test-7.7-6.xml test-7.7-6.xsl \
- test-8-1.out test-8-1.xml test-8-1.xsl \
- test-9.1-1.out test-9.1-1.xml test-9.1-1.xsl \
- test-9.1-2.out test-9.1-2.xml test-9.1-2.xsl \
- test-9.2-1.xsl \
- stand-2.7-1.dtd stand-2.7-1.stand.out stand-2.7-1.xsl \
- stand-2.7-1.out stand-2.7-1.xml \
- stand-2.7-2.stand.out stand-2.7-2.xml stand-2.7-3.xml \
- stand-2.7-3.stand.out
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @(echo > .memdump)
- @echo '## Running REC tests'
- -@(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then \
- continue ; \
- fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml \
- > $$name.res 2>$$name.bad ; \
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- cp $$name.bad $(srcdir)/$$name.err ; \
- fi ; \
- else \
- if [ ! -f $$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 ; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | \
- grep -v "MEMORY ALLOCATED : 0" || true` ; \
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
- @(for i in $(srcdir)/stand*.xml ; do \
- name=`basename $$i .xml` ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xml > $$name.res 2>$$name.bad ;\
- if [ ! -f $(srcdir)/$$name.stand.out ] ; then \
- cp $$name.res $(srcdir)/$$name.stand.out ; \
- if [ -s $$name.bad ] ; then \
- cp $$name.bad $(srcdir)/$$name.stand.err ; \
- fi ; \
- else \
- if [ ! -f $$name.res ] ; then \
- echo "Fatal error, no $$name.res\n" ; \
- else \
- diff $(srcdir)/$$name.stand.out $$name.res ; \
- if [ -s $(srcdir)/$$name.stand.err ] ; then \
- diff $(srcdir)/$$name.stand.err $$name.bad ; \
- else \
- diff /dev/null $$name.bad; \
- fi ; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
- @echo '## Running REC tests without dictionaries'
- -@(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then \
- continue ; \
- fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml \
- > $$name.res 2>$$name.bad ; \
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- cp $$name.bad $(srcdir)/$$name.err ; \
- fi ; \
- else \
- if [ ! -f $$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 ; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | \
- grep -v "MEMORY ALLOCATED : 0" || true` ; \
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
- @(for i in $(srcdir)/stand*.xml ; do \
- name=`basename $$i .xml` ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict \
- $(srcdir)/$$name.xml > $$name.res 2>$$name.bad ;\
- if [ ! -f $(srcdir)/$$name.stand.out ] ; then \
- cp $$name.res $(srcdir)/$$name.stand.out ; \
- if [ -s $$name.bad ] ; then \
- cp $$name.bad $(srcdir)/$$name.stand.err ; \
- fi ; \
- else \
- if [ ! -f $$name.res ] ; then \
- echo "Fatal error, no $$name.res\n" ; \
- else \
- diff $(srcdir)/$$name.stand.out $$name.res ; \
- if [ -s $(srcdir)/$$name.stand.err ] ; then \
- diff $(srcdir)/$$name.stand.err $$name.bad ; \
- else \
- diff /dev/null $$name.bad; \
- fi ; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true` ; \
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
-
--- /dev/null
+<?xml version="1.0"?>
+<ul><li>Peter Märtens</li><li>Peter Möller</li><li>Peter Mueller</li></ul>
--- /dev/null
+<employees>
+ <employee>
+ <name>
+ <given>Peter</given>
+ <family>Mueller</family>
+ </name>
+ </employee>
+ <employee>
+ <name>
+ <given>Peter</given>
+ <family>Möller</family>
+ </name>
+ </employee>
+ <employee>
+ <name>
+ <given>Peter</given>
+ <family>Märtens</family>
+ </name>
+ </employee>
+</employees>
--- /dev/null
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="employees">
+ <ul>
+ <xsl:apply-templates select="employee">
+ <xsl:sort select="name/family" lang="de"/>
+ <xsl:sort select="name/given" lang="de"/>
+ </xsl:apply-templates>
+ </ul>
+</xsl:template>
+
+<xsl:template match="employee">
+ <li>
+ <xsl:value-of select="name/given"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="name/family"/>
+ </li>
+</xsl:template>
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>
+<result>
+ <document>id1</document>
+ <element>id2</element>
+ <attribute>id3</attribute>
+ <namespace>id2ns</namespace>
+ <namespace>id2nsC3A4C3B6C3BC</namespace>
+ <text>id4</text>
+ <comment>id5</comment>
+ <processing-instruction>id6</processing-instruction>
+</result>
--- /dev/null
+<doc xmlns="s:def">
+ <elem attr="value" xmlns:äöü="uri"/>
+ <text>text</text>
+ <!-- comment -->
+ <?pi content?>
+</doc>
--- /dev/null
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:d="s:def"
+ exclude-result-prefixes="d">
+
+<xsl:output indent="yes"/>
+
+<xsl:template match="/">
+ <result>
+ <document>
+ <xsl:value-of select="generate-id(/)"/>
+ </document>
+ <element>
+ <xsl:value-of select="generate-id(/d:doc/d:elem)"/>
+ </element>
+ <attribute>
+ <xsl:value-of select="generate-id(d:doc/d:elem/@attr)"/>
+ </attribute>
+ <namespace>
+ <xsl:value-of select="generate-id(d:doc/d:elem/namespace::*[local-name()=''])"/>
+ </namespace>
+ <namespace>
+ <xsl:value-of select="generate-id(d:doc/d:elem/namespace::äöü)"/>
+ </namespace>
+ <text>
+ <xsl:value-of select="generate-id(d:doc/d:text/text())"/>
+ </text>
+ <comment>
+ <xsl:value-of select="generate-id(d:doc/comment())"/>
+ </comment>
+ <processing-instruction>
+ <xsl:value-of select="generate-id(d:doc/processing-instruction())"/>
+ </processing-instruction>
+ </result>
+</xsl:template>
+
+</xsl:stylesheet>
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = doc.xsl doc.xml doc.dtd result.xml
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-# No special stuff here, just a single test that either works or doesn't!
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running REC1 tests'
- @(echo > .memdump)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/doc.xsl $(srcdir)/doc.xml > doc.res ; \
- diff $(srcdir)/result.xml doc.res ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true; \
- rm -f doc.res)
-
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = data.xml vrml.xsl vrml.xml svg.xsl svg.xml html.xsl html.xml
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-# Just 3 specific files tested, they either work or don't!
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running REC2 tests'
- @(echo > .memdump)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/vrml.xsl $(srcdir)/data.xml > vrml.res ; \
- diff $(srcdir)/vrml.xml vrml.res ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f vrml.res)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/svg.xsl $(srcdir)/data.xml > svg.res ; \
- diff $(srcdir)/svg.xml svg.res ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f svg.res)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/html.xsl $(srcdir)/data.xml > html.res ; \
- diff $(srcdir)/html.xml html.res ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f html.res)
-
+++ /dev/null
-<sales>
-
- <division id="North">
- <revenue>10</revenue>
- <growth>9</growth>
- <bonus>7</bonus>
- </division>
-
- <division id="South">
- <revenue>4</revenue>
- <growth>3</growth>
- <bonus>4</bonus>
- </division>
-
- <division id="West">
- <revenue>6</revenue>
- <growth>-1.5</growth>
- <bonus>2</bonus>
- </division>
-
-</sales>
--- /dev/null
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Sales Results By Division</title>
+</head>
+<body><table border="1">
+<tr>
+<th>Division</th>
+<th>Revenue</th>
+<th>Growth</th>
+<th>Bonus</th>
+</tr>
+<tr>
+<td><em>North</em></td>
+<td>10</td>
+<td>9</td>
+<td>7</td>
+</tr>
+<tr>
+<td><em>West</em></td>
+<td>6</td>
+<td style="color:red">-1.5</td>
+<td>2</td>
+</tr>
+<tr>
+<td><em>South</em></td>
+<td>4</td>
+<td>3</td>
+<td>4</td>
+</tr>
+</table></body>
+</html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Sales Results By Division</title>
-</head>
-<body><table border="1">
-<tr>
-<th>Division</th>
-<th>Revenue</th>
-<th>Growth</th>
-<th>Bonus</th>
-</tr>
-<tr>
-<td><em>North</em></td>
-<td>10</td>
-<td>9</td>
-<td>7</td>
-</tr>
-<tr>
-<td><em>West</em></td>
-<td>6</td>
-<td style="color:red">-1.5</td>
-<td>2</td>
-</tr>
-<tr>
-<td><em>South</em></td>
-<td>4</td>
-<td>3</td>
-<td>4</td>
-</tr>
-</table></body>
-</html>
+<sales>
+
+ <division id="North">
+ <revenue>10</revenue>
+ <growth>9</growth>
+ <bonus>7</bonus>
+ </division>
+
+ <division id="South">
+ <revenue>4</revenue>
+ <growth>3</growth>
+ <bonus>4</bonus>
+ </division>
+
+ <division id="West">
+ <revenue>6</revenue>
+ <growth>-1.5</growth>
+ <bonus>2</bonus>
+ </division>
+
+</sales>
--- /dev/null
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/Graphics/SVG/SVG-19990812.dtd" width="3in" height="3in">
+ <g style="stroke: #000000">
+ <line x1="0" x2="150" y1="150" y2="150"/>
+ <line x1="0" x2="0" y1="0" y2="150"/>
+ <text x="0" y="10">Revenue</text>
+ <text x="150" y="165">Division</text>
+ <rect x="10" y="50" width="20" height="100"/>
+ <text x="10" y="165">North</text>
+ <text x="10" y="45">10</text>
+ <rect x="50" y="110" width="20" height="40"/>
+ <text x="50" y="165">South</text>
+ <text x="50" y="105">4</text>
+ <rect x="90" y="90" width="20" height="60"/>
+ <text x="90" y="165">West</text>
+ <text x="90" y="85">6</text>
+ </g>
+</svg>
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/Graphics/SVG/SVG-19990812.dtd" width="3in" height="3in">
- <g style="stroke: #000000">
- <line x1="0" x2="150" y1="150" y2="150"/>
- <line x1="0" x2="0" y1="0" y2="150"/>
- <text x="0" y="10">Revenue</text>
- <text x="150" y="165">Division</text>
- <rect x="10" y="50" width="20" height="100"/>
- <text x="10" y="165">North</text>
- <text x="10" y="45">10</text>
- <rect x="50" y="110" width="20" height="40"/>
- <text x="50" y="165">South</text>
- <text x="50" y="105">4</text>
- <rect x="90" y="90" width="20" height="60"/>
- <text x="90" y="165">West</text>
- <text x="90" y="85">6</text>
- </g>
-</svg>
+<sales>
+
+ <division id="North">
+ <revenue>10</revenue>
+ <growth>9</growth>
+ <bonus>7</bonus>
+ </division>
+
+ <division id="South">
+ <revenue>4</revenue>
+ <growth>3</growth>
+ <bonus>4</bonus>
+ </division>
+
+ <division id="West">
+ <revenue>6</revenue>
+ <growth>-1.5</growth>
+ <bonus>2</bonus>
+ </division>
+
+</sales>
--- /dev/null
+#VRML V2.0 utf8
+
+# externproto definition of a single bar element
+EXTERNPROTO bar [
+ field SFInt32 x
+ field SFInt32 y
+ field SFInt32 z
+ field SFString name
+ ]
+ "http://www.vrml.org/WorkingGroups/dbwork/barProto.wrl"
+
+# inline containing the graph axes
+Inline {
+ url "http://www.vrml.org/WorkingGroups/dbwork/barAxes.wrl"
+ }
+
+
+bar {
+ x 10
+ y 9
+ z 7
+ name "North"
+ }
+
+bar {
+ x 4
+ y 3
+ z 4
+ name "South"
+ }
+
+bar {
+ x 6
+ y -1.5
+ z 2
+ name "West"
+ }
+
\ No newline at end of file
-#VRML V2.0 utf8
-
-# externproto definition of a single bar element
-EXTERNPROTO bar [
- field SFInt32 x
- field SFInt32 y
- field SFInt32 z
- field SFString name
- ]
- "http://www.vrml.org/WorkingGroups/dbwork/barProto.wrl"
-
-# inline containing the graph axes
-Inline {
- url "http://www.vrml.org/WorkingGroups/dbwork/barAxes.wrl"
- }
-
-
-bar {
- x 10
- y 9
- z 7
- name "North"
- }
-
-bar {
- x 4
- y 3
- z 4
- name "South"
- }
-
-bar {
- x 6
- y -1.5
- z 2
- name "West"
- }
-
\ No newline at end of file
+<sales>
+
+ <division id="North">
+ <revenue>10</revenue>
+ <growth>9</growth>
+ <bonus>7</bonus>
+ </division>
+
+ <division id="South">
+ <revenue>4</revenue>
+ <growth>3</growth>
+ <bonus>4</bonus>
+ </division>
+
+ <division id="West">
+ <revenue>6</revenue>
+ <growth>-1.5</growth>
+ <bonus>2</bonus>
+ </division>
+
+</sales>
$(xsltproc):
cd ../../xsltproc && $(MAKE) xsltproc
-test tests:
+check-local:
@echo '## Running XSLTMark tests'
@$(MAKE) $(ALL_TESTS)
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
CLEANFILES = *.tmp *~ .memdump core db100.xml db1000.xml db10000.xml
fi
@rm -f $@.tmp
-.PHONY: test tests valgrind $(ALL_TESTS)
+.PHONY: $(ALL_TESTS)
## Process this file with automake to produce Makefile.in
-tests:
+check-local:
@$(MAKE) single
@$(MAKE) xtchunk
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
$(top_builddir)/xsltproc/xsltproc:
@(cd ../../xsltproc ; $(MAKE) xsltproc)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-#
-# Contains only test documents
-#
-
-EXTRA_DIST = \
- bug-1-.xml \
- bug-2-.xml \
- bug-3-.xml \
- bug-4-.xml \
- bug-5-.xml \
- bug-6-.xml \
- bug-7-.xml \
- bug-8-.xml \
- bug-9-.xml \
- bug-10-.xml \
- bug-11-.xml \
- bug-12-.xml \
- bug-13-.xml \
- bug-14-.xml \
- bug-15-.xml \
- bug-16-.xml \
- bug-17-.xml \
- bug-18-.xml \
- bug-19-.xml \
- bug-20-.xml \
- bug-21-.xml \
- bug-22-.xml \
- bug-23-.xml \
- bug-24-.xml \
- bug-25-.xml \
- bug-26-.xml \
- bug-27-.xml \
- bug-28-.xml \
- bug-29-.xml bug-29-.ent \
- bug-30-.xml \
- bug-31-.xml \
- bug-32-.xml \
- bug-33-.xml \
- bug-35-.xml \
- bug-36-.xml \
- bug-37-.xml \
- bug-38-.xml \
- bug-39-.xml \
- bug-40-.xml \
- bug-41-.xml \
- bug-42-.xml \
- bug-43-.xml \
- bug-44-.xml \
- bug-45-.xml \
- bug-46-.xml \
- bug-47-.xml \
- bug-48-.xml \
- bug-49-.xml \
- bug-50-.xml \
- bug-52.xml \
- bug-53.xml \
- bug-54.xml \
- bug-55.xml \
- bug-56.xml \
- bug-57.xml \
- bug-59.xml \
- bug-60.xml \
- bug-61.xml \
- bug-62.xml \
- bug-63.xml \
- bug-64.xml \
- bug-65.xml \
- bug-66.xml \
- bug-68.xml \
- bug-69.xml \
- bug-70.xml \
- bug-71.xml \
- bug-72.xml \
- bug-73.xml \
- bug-74.xml \
- bug-75.xml \
- bug-76.xml \
- bug-77.xml \
- bug-78.xml \
- bug-79.xml \
- bug-80.xml \
- bug-81.xml \
- bug-82.xml \
- bug-83.xml \
- bug-84.xml \
- bug-86.xml \
- bug-87.xml \
- bug-88.xml \
- bug-89.xml \
- bug-90.xml \
- bug-91.xml \
- bug-92.xml \
- bug-93.xml \
- bug-94.xml \
- bug-95.xml \
- bug-96.xml \
- bug-97.xml \
- bug-98.xml \
- bug-99.xml \
- bug-100.xml \
- bug-101.xml \
- bug-102.xml \
- bug-103.xml \
- bug-104.xml \
- bug-105.xml \
- bug-106.xml \
- bug-107.xml \
- bug-108.xml \
- bug-109.xml \
- bug-110.xml bug-110.ent \
- bug-111.xml \
- bug-112.xml \
- bug-113.xml \
- bug-114.xml \
- bug-115.xml \
- bug-116.xml \
- bug-117.xml \
- bug-118.xml \
- bug-119.xml \
- bug-120.xml \
- bug-121.xml \
- bug-122.xml \
- bug-123.xml \
- bug-124.xml \
- bug-125.xml \
- bug-126.xml \
- bug-127.xml \
- bug-128.xml \
- bug-129.xml \
- bug-130.xml bug-130.doc \
- bug-131.xml \
- bug-132.xml \
- bug-133.xml \
- bug-134.xml \
- bug-135.xml \
- bug-136.xml \
- bug-137.xml \
- bug-138.xml \
- bug-139.xml \
- bug-140.xml \
- bug-141.xml \
- bug-142.xml \
- bug-143.xml \
- bug-144.xml \
- bug-145.xml \
- bug-146.xml \
- bug-147.xml \
- bug-148.xml \
- bug-149.xml \
- bug-150.xml \
- bug-151.xml \
- bug-152.xml \
- bug-153.xml bug-153.doc \
- bug-154.xml \
- bug-155.xml \
- bug-156.xml \
- bug-157.xml \
- bug-158.xml bug-158.doc \
- bug-159.xml \
- bug-160.xml \
- bug-161.xml \
- bug-163.xml \
- bug-164.xml \
- bug-165.xml \
- bug-166.xml \
- bug-167.xml \
- bug-168.xml \
- bug-169.xml \
- bug-170.xml \
- bug-171.xml \
- bug-172.xml \
- bug-173.xml \
- bug-174.xml \
- bug-175.xml \
- bug-176.xml \
- bug-177.xml \
- bug-178.xml \
- bug-179.xml \
- bug-180.xml \
- bug-181.xml \
- bug-182.xml \
- bug-183.xml \
- bug-184.xml \
- bug-186.xml \
- bug-187.xml \
- bug-188.xml \
- bug-189.xml \
- bug-190.xml \
- bug-191.xml \
- bug-192.xml \
- bug-193.xml \
- bug-194.xml \
- bug-195.xml \
- bug-196.xml \
- bug-197.xml \
- bug-198.xml \
- bug-199.xml \
- bug-200.xml \
- bug-201.xml \
- bug-202.xml \
- bug-203.xml \
- bug-204.xml \
- bug-205.xml \
- bug-206.xml \
- bug-207.xml \
- bug-208.xml \
- bug-209.xml \
- bug-210.xml \
- bug-211.xml \
- bug-212.xml \
- bug-213.xml \
- bug-214.xml \
- bug-215.xml \
- bug-216.xml \
- bug-217.xml \
- bug-218.xml \
- bug-219.xml \
- bug-220.xml \
- bug-221.xml \
- bug-222.xml \
- character.xml \
- date_add.xml \
- array.xml \
- items.xml
-
-tests:
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- bredfort.css bredfort.xsl doc_file.xml docfile.xml \
- fragment2.xml fragment.result fragment.xml fragment.xsl \
- index.xml menu.xml message.result message.xml message.xsl \
- result.xhtml system.xml test_bad.err test_bad.result \
- test_bad.xml test.result test.xml test.xsl worklog.xml
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @(echo > .memdump)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/bredfort.xsl $(srcdir)/index.xml > result ; \
- diff $(srcdir)/result.xhtml result; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f result)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/test.xsl $(srcdir)/test.xml > result ; \
- diff $(srcdir)/test.result result; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f result)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/test.xsl $(srcdir)/test_bad.xml > result 2>err ; \
- diff $(srcdir)/test_bad.result result; \
- diff $(srcdir)/test_bad.err err; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f result err)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/message.xsl $(srcdir)/message.xml > result 2>&1 ; \
- diff $(srcdir)/message.result result; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f result)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/fragment.xsl $(srcdir)/fragment.xml > result 2>&1 ; \
- diff $(srcdir)/fragment.result result; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f result)
-
-warning: failed to load external entity "foofile.xml"
-warning: failed to load external entity "foo_file.xml"
+I/O warning : failed to load external entity "foofile.xml"
+I/O warning : failed to load external entity "foo_file.xml"
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+<xsl:output method="text" encoding="iso-8859-1"/>
+
+<xsl:template match="/files/file">
+ <xsl:variable name="file" select="document(@name)"/>
+ <xsl:if test="not($file)">
+ <xsl:text>Can't Open File: </xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:if>
+ <xsl:value-of select="$file/tag1"/>
+</xsl:template>
+
+</xsl:stylesheet>
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-SUBDIRS=common functions math saxon sets strings dynamic date $(CRYPTO_TESTDIR)
-DIST_SUBDIRS = common functions math saxon sets strings dynamic date crypto
-
-test tests:
- @(cur=`pwd` ; for dir in $(SUBDIRS) ; do cd $$dir ; $(MAKE) CHECKER='$(CHECKER)' tests ; cd $$cur ; done)
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- node-set.1.xml node-set.1.xsl node-set.1.out \
- node-set.2.xml node-set.2.xsl node-set.2.out \
- node-set.3.xml node-set.3.xsl node-set.3.out \
- node-set.4.xml node-set.4.xsl node-set.4.out \
- node-set.5.xml node-set.5.xsl node-set.5.out \
- node-set.6.xml node-set.6.xsl node-set.6.out \
- node-set.7.xml node-set.7.xsl node-set.7.out \
- node-set.8.xml node-set.8.xsl node-set.8.out \
- object-type.1.xml object-type.1.xsl object-type.1.out \
- import-test1a.imp import-test1b.imp import-test1.out \
- import-test1.xml import-test1.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt common tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad; \
- done)
--- /dev/null
+<?xml version="1.0"?>
+<result xmlns:exsl="http://exslt.org/common">
+ <id>id1</id>
+ <id>id2</id>
+ <id>id3</id>
+ <id>id4</id>
+ <id>id5</id>
+ <id>id6</id>
+ <id>id7</id>
+ <id>id8</id>
+ <id>id9</id>
+ <id>id10</id>
+</result>
--- /dev/null
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common">
+
+<xsl:output indent="yes"/>
+
+<xsl:template name="dynamic-id">
+ <id>
+ <xsl:value-of select="generate-id(exsl:node-set('string'))"/>
+ </id>
+</xsl:template>
+
+<xsl:template match="/">
+ <result>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ <xsl:call-template name="dynamic-id"/>
+ </result>
+</xsl:template>
+
+</xsl:stylesheet>
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- crypt.1.out crypt.1.xml crypt.1.xsl \
- hash.1.out hash.1.xml hash.1.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt crypto tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- current.xsl \
- date.1.out date.1.xml date.1.xsl \
- date.2.out date.2.xml date.2.xsl \
- datetime.1.out datetime.1.xml datetime.1.xsl \
- datetime.2.out datetime.2.xml datetime.2.xsl \
- gday.1.out gday.1.xml gday.1.xsl \
- gday.2.out gday.2.xml gday.2.xsl \
- gmonth.1.out gmonth.1.xml gmonth.1.xsl \
- gmonth.2.out gmonth.2.xml gmonth.2.xsl \
- gmonthday.1.out gmonthday.1.xml gmonthday.1.xsl \
- gmonthday.2.out gmonthday.2.xml gmonthday.2.xsl \
- gyear.1.out gyear.1.xml gyear.1.xsl \
- gyear.2.out gyear.2.xml gyear.2.xsl \
- gyearmonth.1.out gyearmonth.1.xml gyearmonth.1.xsl \
- gyearmonth.2.out gyearmonth.2.xml gyearmonth.2.xsl \
- time.1.out time.1.xml time.1.xsl \
- time.2.out time.2.xml time.2.xsl \
- add.1.out add.1.xml add.1.xsl \
- add.2.out add.2.xml add.2.xsl \
- add-duration.1.out add-duration.1.xml add-duration.1.xsl \
- add-duration.2.out add-duration.2.xml add-duration.2.xsl \
- sum.1.out sum.1.xml sum.1.xsl \
- sum.2.out sum.2.xml sum.2.xsl sum.2.err \
- difference.1.out difference.1.xml difference.1.xsl \
- difference.2.out difference.2.xml difference.2.xsl \
- duration.1.out duration.1.xml duration.1.xsl \
- duration.2.out duration.2.xml duration.2.xsl \
- seconds.1.out seconds.1.xml seconds.1.xsl \
- seconds.2.out seconds.2.xml seconds.2.xsl
-
-CLEANFILES = .memdump
-
-test-current:
- @(echo > .memdump)
- @(if [ -z "$$CI" ]; 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'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad; \
- done)
duration : 9999999999999
result : P115740740DT17H46M39S
duration : -2999999999
-result : -P34722DT5H19M59S
\ No newline at end of file
+result : -P34722DT5H19M59S
+duration : 3599.99999999999
+result : PT1H
\ No newline at end of file
<date seconds="-60"/>
<date seconds="9999999999999"/>
<date seconds="-2999999999"/>
+ <date seconds="3599.99999999999"/>
</page>
hour-in-day : 15
minute-in-hour : 55
second-in-minute : 55
+
+ Test Date : 15:55:59.99999999999
+ year : NaN
+ leap-year : NaN
+ month-in-year : NaN
+ month-name :
+ month-abbreviation :
+ week-in-year : NaN
+ day-in-year : NaN
+ day-in-month : NaN
+ day-of-week-in-month : NaN
+ day-in-week : NaN
+ day-name :
+ day-abbreviation :
+ time : 15:55:59.999999999
+ hour-in-day : 15
+ minute-in-hour : 55
+ second-in-minute : 59.99999999999
<date date="23:33:33"/>\r
<date date="14:44:44"/>\r
<date date="15:55:55"/>\r
+ <date date="15:55:59.99999999999"/>\r
</page>\r
\r
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- dynmap.out \
- dynmap.xml \
- dynmap.xsl \
- recursion.err \
- recursion.out \
- recursion.xml \
- recursion.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt dynamic tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- function.1.out function.1.xml function.1.xsl \
- function.2.out function.2.xml function.2.xsl \
- function.3.out function.3.xml function.3.xsl \
- function.4.out function.4.xml function.4.xsl \
- function.5.out function.5.xml function.5.xsl \
- function.6.out function.6.xml function.6.xsl \
- 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.11.out function.11.xml function.11.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt function tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- highest.1.out highest.1.xml highest.1.xsl \
- highest.2.out highest.2.xml highest.2.xsl \
- highest.5.out highest.5.xml highest.5.xsl \
- lowest.1.out lowest.1.xml lowest.1.xsl \
- lowest.2.out lowest.2.xml lowest.2.xsl \
- max.1.out max.1.xml max.1.xsl \
- max.2.out max.2.xml max.2.xsl \
- max.3.out max.3.xml max.3.xsl \
- max.5.out max.5.xml max.5.xsl \
- power.1.out power.1.xml power.1.xsl \
- min.1.out min.1.xml min.1.xsl \
- min.2.out min.2.xml min.2.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt math tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- eval.1.out eval.1.xml eval.1.xsl \
- eval.2.out eval.2.xml eval.2.xsl eval.2.err \
- eval.3.out eval.3.xml eval.3.xsl eval.3.err \
- lineno.1.out lineno.1.xml lineno.1.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt saxon tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- mv $$name.bad $(srcdir)/$$name.err ; \
- fi ; \
- 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 ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- difference.1.out difference.1.xml difference.1.xsl \
- distinct.1.out distinct.1.xml distinct.1.xsl \
- has-same-node.1.out has-same-node.1.xml has-same-node.1.xsl \
- leading.1.out leading.1.xml leading.1.xsl \
- trailing.1.out trailing.1.xml trailing.1.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt sets tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- align.1.xml align.1.xsl align.1.out \
- padding.1.xml padding.1.xsl padding.1.out \
- replace.1.xml replace.1.xsl replace.1.out \
- split.1.xml split.1.xsl split.1.out \
- tokenize.1.xml tokenize.1.xsl tokenize.1.out \
- tokenize.2.xml tokenize.2.xsl tokenize.2.out \
- tokenize.3.xml tokenize.3.xsl tokenize.3.out \
- uri.xml uri.xsl uri.out
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running exslt string tests'
- @(echo > .memdump)
- @(for i in $(srcdir)/*.xsl ; do \
- name=`basename $$i .xsl` ; \
- if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
- if [ ! -f $(srcdir)/$$name.out ] ; then \
- cp $$name.res $(srcdir)/$$name.out ; \
- if [ -s $$name.bad ] ; then \
- 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 ; \
- fi ; \
- fi; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f $$name.res $$name.bad ; \
- done)
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- evaluate.xml evaluate.xsl evaluate.out \
- module.xml module.xsl module.out \
- list.xml list.xsl list.out
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running extensions tests'
- @(echo > .memdump)
- -@(for i in $(srcdir)/*.xml ; do \
- if [ -d $$i ] ; then continue ; fi ; \
- doc=`basename $$i .xml` ; \
- j=$(srcdir)/$$doc*.xsl ; \
- if [ ! -f $$j ] ; then continue ; fi ; \
- if [ -d $$j ] ; then continue ; fi ; \
- name=`basename $$j .xsl`; \
- out=$(srcdir)/"$$name".out; \
- err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
- > result.$$name 2>err.$$name; \
- if [ ! -f $$out ] ; then \
- cp result.$$name $$out ; \
- if [ -s err.$$name ] ; then \
- cp err.$$name $$err ; \
- fi ; \
- else \
- diff $$out result.$$name; \
- if [ -s $$err ] ; then \
- diff $$err err.$$name; \
- else \
- diff /dev/null err.$$name; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f result.$$name err.$$name; \
- done)
-
/corpus/
+/genSeed
+/seed/
/testTargets
/xpath
/xslt
LIBXSLT_LIBS = $(top_builddir)/libxslt/libxslt.la \
$(top_builddir)/libexslt/libexslt.la
-EXTRA_PROGRAMS = xpath xslt
+EXTRA_PROGRAMS = genSeed xpath xslt
check_PROGRAMS = testTargets
-EXTRA_DIST = xpath.dict xpath.xml xslt.dict xslt.xml seed
+EXTRA_DIST = xpath.dict xslt.dict
CLEANFILES = $(EXTRA_PROGRAMS)
AM_CPPFLAGS = -I$(top_srcdir)
-AM_CFLAGS = $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
DEPENDENCIES = $(LIBXSLT_LIBS)
LDADD = $(LIBXSLT_LIBS) \
$(LIBXML_LIBS) $(EXTRA_LIBS) $(LIBM)
-xpath_SOURCES = xpath.c fuzz.c fuzz.h
-xpath_LDFLAGS = -fsanitize=fuzzer
-
-xslt_SOURCES = xslt.c fuzz.c fuzz.h
-xslt_LDFLAGS = -fsanitize=fuzzer
-
testTargets_SOURCES = testTargets.c fuzz.c fuzz.h
$(top_builddir)/libxslt/libxslt.la:
$(top_builddir)/libexslt/libexslt.la: $(top_builddir)/libxslt/libxslt.la
cd $(top_builddir)/libexslt && $(MAKE) libexslt.la
-.PHONY: tests fuzz-xpath fuzz-xslt
-
-tests:
+.PHONY: fuzz-xpath fuzz-xslt
-fuzz: $(check_PROGRAMS)
+check-local: $(check_PROGRAMS)
@echo '## Running fuzz target tests'
- @./testTargets $(srcdir)
+ @./testTargets
+
+# Seed corpus
+
+genSeed_SOURCES = genSeed.c fuzz.c
+
+# XPath fuzzer
-fuzz-xpath: xpath$(EXEEXT)
+seed/xpath.stamp: genSeed$(EXEEXT)
+ @mkdir -p seed/xpath
+ @./genSeed$(EXEEXT) xpath "$(top_srcdir)/tests"
+ @touch seed/xpath.stamp
+
+xpath_SOURCES = xpath.c fuzz.c fuzz.h
+xpath_LDFLAGS = -fsanitize=fuzzer
+
+fuzz-xpath: xpath$(EXEEXT) seed/xpath.stamp
@mkdir -p corpus/xpath
./xpath$(EXEEXT) \
- -max_len=256 \
-dict=$(srcdir)/xpath.dict \
corpus/xpath $(srcdir)/seed/xpath
-fuzz-xslt: xslt$(EXEEXT)
+# XSLT fuzzer
+
+seed/xslt.stamp: genSeed$(EXEEXT)
+ @mkdir -p seed/xslt
+ @./genSeed$(EXEEXT) xslt "$(top_srcdir)/tests"
+ @touch seed/xslt.stamp
+
+xslt_SOURCES = xslt.c fuzz.c fuzz.h
+xslt_LDFLAGS = -fsanitize=fuzzer
+
+fuzz-xslt: xslt$(EXEEXT) seed/xslt.stamp
@mkdir -p corpus/xslt
./xslt$(EXEEXT) \
-dict=$(srcdir)/xslt.dict \
* See Copyright for the status of this software.
*/
-#include <stdlib.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
-#include "fuzz.h"
-
-#include <libxml/tree.h>
#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/tree.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <libxslt/extensions.h>
#include <libxslt/xsltInternals.h>
#include <libxslt/xsltutils.h>
#include <libexslt/exslt.h>
+#include "fuzz.h"
#if defined(_WIN32)
#define DIR_SEP '\\'
#define DIR_SEP '/'
#endif
-static xmlDocPtr doc;
-static xsltSecurityPrefsPtr sec;
+static xsltSecurityPrefsPtr globalSec;
+static xsltStylesheetPtr globalStyle;
static xsltTransformContextPtr tctxt;
-static xmlHashTablePtr saxonExtHash;
static void
xsltFuzzXmlErrorFunc(void *vctxt, const char *msg ATTRIBUTE_UNUSED, ...) {
static void
xsltFuzzInit(void) {
+ xmlFuzzMemSetup();
+
/* Init libxml2, libxslt and libexslt */
xmlInitParser();
xsltInit();
xsltSetGenericErrorFunc(NULL, xsltFuzzXsltErrorFunc);
/* Disallow I/O */
- sec = xsltNewSecurityPrefs();
- xsltSetSecurityPrefs(sec, XSLT_SECPREF_READ_FILE, xsltSecurityForbid);
- xsltSetSecurityPrefs(sec, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid);
- xsltSetSecurityPrefs(sec, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid);
- xsltSetSecurityPrefs(sec, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid);
- xsltSetSecurityPrefs(sec, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid);
-}
-
-static xmlDocPtr
-xsltFuzzLoadDoc(const char *argv0, const char *dir, const char *filename) {
- char *path;
-
- if (dir != NULL) {
- path = malloc(strlen(dir) + 1 + strlen(filename) + 1);
- sprintf(path, "%s/%s", dir, filename);
- doc = xmlReadFile(path, NULL, 0);
- if (doc == NULL)
- fprintf(stderr, "Error: unable to parse file '%s' in '%s'\n",
- filename, dir);
- } else {
- const char *end;
- size_t dirLen;
-
- end = strrchr(argv0, DIR_SEP);
- dirLen = (end == NULL) ? 0 : end - argv0 + 1;
- path = malloc(dirLen + strlen(filename) + 1);
- memcpy(path, argv0, dirLen);
- path[dirLen] = '\0';
- strcat(path, filename);
- doc = xmlReadFile(path, NULL, 0);
-
- if (doc == NULL && dirLen > 0) {
- /* Binary might be in .libs, try parent directory */
- path[dirLen-1] = 0;
- end = strrchr(path, DIR_SEP);
- dirLen = (end == NULL) ? 0 : end - path + 1;
- path[dirLen] = '\0';
- strcat(path, filename);
- doc = xmlReadFile(path, NULL, 0);
- }
-
- if (doc == NULL)
- fprintf(stderr, "Error: unable to parse file '%s'\n", filename);
- }
-
- free(path);
-
- return doc;
+ globalSec = xsltNewSecurityPrefs();
+ xsltSetSecurityPrefs(globalSec, XSLT_SECPREF_READ_FILE,
+ xsltSecurityForbid);
+ xsltSetSecurityPrefs(globalSec, XSLT_SECPREF_WRITE_FILE,
+ xsltSecurityForbid);
+ xsltSetSecurityPrefs(globalSec, XSLT_SECPREF_CREATE_DIRECTORY,
+ xsltSecurityForbid);
+ xsltSetSecurityPrefs(globalSec, XSLT_SECPREF_READ_NETWORK,
+ xsltSecurityForbid);
+ xsltSetSecurityPrefs(globalSec, XSLT_SECPREF_WRITE_NETWORK,
+ xsltSecurityForbid);
}
/* XPath fuzzer
*/
int
-xsltFuzzXPathInit(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p,
- const char *dir) {
- const char *xmlFilename = "xpath.xml";
- xsltStylesheetPtr style;
- xmlXPathContextPtr xpctxt;
-
+xsltFuzzXPathInit(void) {
xsltFuzzInit();
+ globalStyle = xsltNewStylesheet();
+ return(0);
+}
+
+xmlXPathObjectPtr
+xsltFuzzXPath(const char *data, size_t size) {
+ xmlXPathContextPtr xpctxt = NULL;
+ xmlXPathObjectPtr xpathObj = NULL;
+ xmlDocPtr doc;
+ xmlNodePtr root;
+ const char *xpathExpr, *xml;
+ size_t maxAllocs, xmlSize;
+
+ xmlFuzzDataInit(data, size);
- /* Load XML document */
- doc = xsltFuzzLoadDoc((*argv_p)[0], dir, xmlFilename);
+ maxAllocs = xmlFuzzReadInt(4) % (size + 1);
+ xpathExpr = xmlFuzzReadString(NULL);
+ xml = xmlFuzzReadString(&xmlSize);
+
+ /* Recovery mode allows more input to be fuzzed. */
+ doc = xmlReadMemory(xml, xmlSize, NULL, NULL, XML_PARSE_RECOVER);
if (doc == NULL)
- return -1;
+ goto error;
+ root = xmlDocGetRootElement(doc);
+ if (root != NULL) {
+ xmlNewNs(root, BAD_CAST "a", BAD_CAST "a");
+ xmlNewNs(root, BAD_CAST "b", BAD_CAST "b");
+ xmlNewNs(root, BAD_CAST "c", BAD_CAST "c");
+ }
- style = xsltNewStylesheet();
- tctxt = xsltNewTransformContext(style, doc);
- xsltSetCtxtSecurityPrefs(sec, tctxt);
+ tctxt = xsltNewTransformContext(globalStyle, doc);
+ if (tctxt == NULL) {
+ xmlFreeDoc(doc);
+ goto error;
+ }
+ xsltSetCtxtSecurityPrefs(globalSec, tctxt);
/*
* Some extension functions need the current instruction.
*/
tctxt->inst = xmlDocGetRootElement(doc);
- saxonExtHash = (xmlHashTablePtr)
- xsltStyleGetExtData(style, SAXON_NAMESPACE);
-
/* Set up XPath context */
xpctxt = tctxt->xpathCtxt;
/* Resource limits to avoid timeouts and call stack overflows */
xpctxt->opLimit = 500000;
- /* Test namespaces used in xpath.xml */
+ /* Test namespaces */
xmlXPathRegisterNs(xpctxt, BAD_CAST "a", BAD_CAST "a");
xmlXPathRegisterNs(xpctxt, BAD_CAST "b", BAD_CAST "b");
xmlXPathRegisterNs(xpctxt, BAD_CAST "c", BAD_CAST "c");
xpctxt, BAD_CAST "n",
xmlXPathEval(BAD_CAST "//node() | /*/*/namespace::*", xpctxt));
- return 0;
-}
-
-xmlXPathObjectPtr
-xsltFuzzXPath(const char *data, size_t size) {
- xmlXPathContextPtr xpctxt = tctxt->xpathCtxt;
- xmlChar *xpathExpr;
-
- /* Null-terminate */
- xpathExpr = malloc(size + 1);
- memcpy(xpathExpr, data, size);
- xpathExpr[size] = 0;
-
/* Compile and return early if the expression is invalid */
- xmlXPathCompExprPtr compExpr = xmlXPathCtxtCompile(xpctxt, xpathExpr);
- free(xpathExpr);
+ xmlXPathCompExprPtr compExpr = xmlXPathCtxtCompile(xpctxt,
+ (const xmlChar *) xpathExpr);
if (compExpr == NULL)
- return NULL;
+ goto error;
/* Initialize XPath evaluation context and evaluate */
- xpctxt->node = (xmlNodePtr) doc; /* Maybe test different context nodes? */
+ xmlFuzzMemSetLimit(maxAllocs);
+ /* Maybe test different context nodes? */
+ xpctxt->node = (xmlNodePtr) doc;
xpctxt->contextSize = 1;
xpctxt->proximityPosition = 1;
xpctxt->opCount = 0;
- xmlXPathObjectPtr xpathObj = xmlXPathCompiledEval(compExpr, xpctxt);
+ xpathObj = xmlXPathCompiledEval(compExpr, xpctxt);
xmlXPathFreeCompExpr(compExpr);
- /* Clean object cache */
- xmlXPathContextSetCache(xpctxt, 0, 0, 0);
- xmlXPathContextSetCache(xpctxt, 1, -1, 0);
-
- /* Clean dictionaries */
- if (xmlDictSize(tctxt->dict) > 0) {
- xmlDictFree(tctxt->dict);
- xmlDictFree(tctxt->style->dict);
- tctxt->style->dict = xmlDictCreate();
- tctxt->dict = xmlDictCreateSub(tctxt->style->dict);
- }
-
- /* Clean saxon:expression cache */
- if (xmlHashSize(saxonExtHash) > 0) {
- /* There doesn't seem to be a cheaper way with the public API. */
- xsltShutdownCtxtExts(tctxt);
- xsltInitCtxtExts(tctxt);
- saxonExtHash = (xmlHashTablePtr)
- xsltStyleGetExtData(tctxt->style, SAXON_NAMESPACE);
- }
+error:
+ xmlFuzzMemSetLimit(0);
+ xmlXPathRegisteredNsCleanup(xpctxt);
+ xmlFuzzDataCleanup();
return xpathObj;
}
xsltFuzzXPathFreeObject(xmlXPathObjectPtr obj) {
xmlXPathFreeObject(obj);
- /* Some XSLT extension functions create RVTs. */
- xsltFreeRVTs(tctxt);
+ if (tctxt != NULL) {
+ xmlDocPtr doc = tctxt->document->doc;
+
+ xsltFreeTransformContext(tctxt);
+ tctxt = NULL;
+ xmlFreeDoc(doc);
+ }
}
void
xsltFuzzXPathCleanup(void) {
- xsltStylesheetPtr style = tctxt->style;
-
- xmlXPathRegisteredNsCleanup(tctxt->xpathCtxt);
- xsltFreeSecurityPrefs(sec);
- sec = NULL;
- xsltFreeTransformContext(tctxt);
- tctxt = NULL;
- xsltFreeStylesheet(style);
- style = NULL;
- xmlFreeDoc(doc);
- doc = NULL;
+ xsltFreeSecurityPrefs(globalSec);
+ globalSec = NULL;
+ xsltFreeStylesheet(globalStyle);
+ globalStyle = NULL;
}
/*
*/
int
-xsltFuzzXsltInit(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p,
- const char *dir) {
- const char *xmlFilename = "xslt.xml";
-
+xsltFuzzXsltInit(void) {
xsltFuzzInit();
-
- /* Load XML document */
- doc = xsltFuzzLoadDoc((*argv_p)[0], dir, xmlFilename);
- if (doc == NULL)
- return -1;
-
- return 0;
+ xmlSetExternalEntityLoader(xmlFuzzEntityLoader);
+ return(0);
}
xmlChar *
xsltFuzzXslt(const char *data, size_t size) {
- xmlDocPtr xsltDoc;
- xmlDocPtr result;
- xmlNodePtr xsltRoot;
- xsltStylesheetPtr sheet;
- xsltTransformContextPtr ctxt;
+ const char *xsltBuffer, *xsltUrl, *docBuffer, *docUrl;
+ xmlDocPtr xsltDoc = NULL, doc = NULL;
+ xmlDocPtr result = NULL;
+ xmlNodePtr root;
+ xsltStylesheetPtr sheet = NULL;
+ xsltTransformContextPtr ctxt = NULL;
xmlChar *ret = NULL;
+ size_t xsltSize, docSize, maxAllocs;
int retLen;
- xsltDoc = xmlReadMemory(data, size, NULL, NULL, 0);
+ xmlFuzzDataInit(data, size);
+ maxAllocs = xmlFuzzReadInt(4) % (size + 1);
+
+ xmlFuzzReadEntities();
+ xsltBuffer = xmlFuzzMainEntity(&xsltSize);
+ xsltUrl = xmlFuzzMainUrl();
+ docBuffer = xmlFuzzSecondaryEntity(&docSize);
+ docUrl = xmlFuzzSecondaryUrl();
+ if ((xsltBuffer == NULL) || (docBuffer == NULL))
+ goto exit;
+
+ doc = xmlReadMemory(docBuffer, docSize, docUrl, NULL, XSLT_PARSE_OPTIONS);
+ if (doc == NULL)
+ goto exit;
+
+ xsltDoc = xmlReadMemory(xsltBuffer, xsltSize, xsltUrl, NULL,
+ XSLT_PARSE_OPTIONS);
if (xsltDoc == NULL)
- return NULL;
- xsltRoot = xmlDocGetRootElement(xsltDoc);
- xmlNewNs(xsltRoot, EXSLT_COMMON_NAMESPACE, BAD_CAST "exsl");
- xmlNewNs(xsltRoot, EXSLT_COMMON_NAMESPACE, BAD_CAST "exslt");
- xmlNewNs(xsltRoot, EXSLT_CRYPTO_NAMESPACE, BAD_CAST "crypto");
- xmlNewNs(xsltRoot, EXSLT_DATE_NAMESPACE, BAD_CAST "date");
- xmlNewNs(xsltRoot, EXSLT_DYNAMIC_NAMESPACE, BAD_CAST "dyn");
- xmlNewNs(xsltRoot, EXSLT_MATH_NAMESPACE, BAD_CAST "math");
- xmlNewNs(xsltRoot, EXSLT_SETS_NAMESPACE, BAD_CAST "set");
- xmlNewNs(xsltRoot, EXSLT_STRINGS_NAMESPACE, BAD_CAST "str");
- xmlNewNs(xsltRoot, SAXON_NAMESPACE, BAD_CAST "saxon");
+ goto exit;
+ root = xmlDocGetRootElement(xsltDoc);
+ if (root != NULL) {
+ xmlNewNs(root, XSLT_NAMESPACE, BAD_CAST "x");
+ xmlNewNs(root, EXSLT_COMMON_NAMESPACE, BAD_CAST "exsl");
+ xmlNewNs(root, EXSLT_COMMON_NAMESPACE, BAD_CAST "exslt");
+ xmlNewNs(root, EXSLT_CRYPTO_NAMESPACE, BAD_CAST "crypto");
+ xmlNewNs(root, EXSLT_DATE_NAMESPACE, BAD_CAST "date");
+ xmlNewNs(root, EXSLT_DYNAMIC_NAMESPACE, BAD_CAST "dyn");
+ xmlNewNs(root, EXSLT_MATH_NAMESPACE, BAD_CAST "math");
+ xmlNewNs(root, EXSLT_SETS_NAMESPACE, BAD_CAST "set");
+ xmlNewNs(root, EXSLT_STRINGS_NAMESPACE, BAD_CAST "str");
+ xmlNewNs(root, SAXON_NAMESPACE, BAD_CAST "saxon");
+ }
+ xmlFuzzMemSetLimit(maxAllocs);
sheet = xsltNewStylesheet();
- if (sheet == NULL) {
- xmlFreeDoc(xsltDoc);
- return NULL;
- }
+ if (sheet == NULL)
+ goto exit;
sheet->xpathCtxt->opLimit = 100000;
sheet->xpathCtxt->opCount = 0;
- if (xsltParseStylesheetUser(sheet, xsltDoc) != 0) {
- xsltFreeStylesheet(sheet);
- xmlFreeDoc(xsltDoc);
- return NULL;
+ if (xsltParseStylesheetUser(sheet, xsltDoc) != 0)
+ goto exit;
+ xsltDoc = NULL;
+
+ root = xmlDocGetRootElement(doc);
+ if (root != NULL) {
+ xmlNewNs(root, BAD_CAST "a", BAD_CAST "a");
+ xmlNewNs(root, BAD_CAST "b", BAD_CAST "b");
+ xmlNewNs(root, BAD_CAST "c", BAD_CAST "c");
}
ctxt = xsltNewTransformContext(sheet, doc);
- xsltSetCtxtSecurityPrefs(sec, ctxt);
+ if (ctxt == NULL)
+ goto exit;
+ xsltSetCtxtSecurityPrefs(globalSec, ctxt);
ctxt->maxTemplateDepth = 100;
ctxt->opLimit = 20000;
ctxt->xpathCtxt->opLimit = 100000;
if (result != NULL)
xsltSaveResultToString(&ret, &retLen, result, sheet);
+exit:
+ xmlFuzzMemSetLimit(0);
xmlFreeDoc(result);
xsltFreeTransformContext(ctxt);
xsltFreeStylesheet(sheet);
+ xmlFreeDoc(xsltDoc);
+ xmlFreeDoc(doc);
+ xmlFuzzDataCleanup();
return ret;
}
void
xsltFuzzXsltCleanup(void) {
- xsltFreeSecurityPrefs(sec);
- sec = NULL;
- xmlFreeDoc(doc);
- doc = NULL;
+ xsltFreeSecurityPrefs(globalSec);
+ globalSec = NULL;
+}
+
+/*
+ * Utility functions, copied from libxml2
+ */
+
+typedef struct {
+ const char *data;
+ size_t size;
+} xmlFuzzEntityInfo;
+
+/* Single static instance for now */
+static struct {
+ /* Original data */
+ const char *data;
+ size_t size;
+
+ /* Remaining data */
+ const char *ptr;
+ size_t remaining;
+
+ /* Buffer for unescaped strings */
+ char *outBuf;
+ char *outPtr; /* Free space at end of buffer */
+
+ xmlHashTablePtr entities; /* Maps URLs to xmlFuzzEntityInfos */
+
+ /* The first entity is the main entity. */
+ const char *mainUrl;
+ xmlFuzzEntityInfo *mainEntity;
+ const char *secondaryUrl;
+ xmlFuzzEntityInfo *secondaryEntity;
+} fuzzData;
+
+size_t fuzzNumAllocs;
+size_t fuzzMaxAllocs;
+
+/**
+ * xmlFuzzErrorFunc:
+ *
+ * An error function that simply discards all errors.
+ */
+void
+xmlFuzzErrorFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg ATTRIBUTE_UNUSED,
+ ...) {
+}
+
+/*
+ * Malloc failure injection.
+ *
+ * Quick tip to debug complicated issues: Increase MALLOC_OFFSET until
+ * the crash disappears (or a different issue is triggered). Then set
+ * the offset to the highest value that produces a crash and set
+ * MALLOC_ABORT to 1 to see which failed memory allocation causes the
+ * issue.
+ */
+
+#define XML_FUZZ_MALLOC_OFFSET 0
+#define XML_FUZZ_MALLOC_ABORT 0
+
+static void *
+xmlFuzzMalloc(size_t size) {
+ if (fuzzMaxAllocs > 0) {
+ if (fuzzNumAllocs >= fuzzMaxAllocs - 1)
+#if XML_FUZZ_MALLOC_ABORT
+ abort();
+#else
+ return(NULL);
+#endif
+ fuzzNumAllocs += 1;
+ }
+ return malloc(size);
+}
+
+static void *
+xmlFuzzRealloc(void *ptr, size_t size) {
+ if (fuzzMaxAllocs > 0) {
+ if (fuzzNumAllocs >= fuzzMaxAllocs - 1)
+#if XML_FUZZ_MALLOC_ABORT
+ abort();
+#else
+ return(NULL);
+#endif
+ fuzzNumAllocs += 1;
+ }
+ return realloc(ptr, size);
+}
+
+void
+xmlFuzzMemSetup(void) {
+ xmlMemSetup(free, xmlFuzzMalloc, xmlFuzzRealloc, xmlMemStrdup);
+}
+
+void
+xmlFuzzMemSetLimit(size_t limit) {
+ fuzzNumAllocs = 0;
+ fuzzMaxAllocs = limit ? limit + XML_FUZZ_MALLOC_OFFSET : 0;
+}
+
+/**
+ * xmlFuzzDataInit:
+ *
+ * Initialize fuzz data provider.
+ */
+void
+xmlFuzzDataInit(const char *data, size_t size) {
+ fuzzData.data = data;
+ fuzzData.size = size;
+ fuzzData.ptr = data;
+ fuzzData.remaining = size;
+
+ fuzzData.outBuf = xmlMalloc(size + 1);
+ fuzzData.outPtr = fuzzData.outBuf;
+
+ fuzzData.entities = xmlHashCreate(8);
+ fuzzData.mainUrl = NULL;
+ fuzzData.mainEntity = NULL;
+ fuzzData.secondaryUrl = NULL;
+ fuzzData.secondaryEntity = NULL;
+}
+
+/**
+ * xmlFuzzDataFree:
+ *
+ * Cleanup fuzz data provider.
+ */
+void
+xmlFuzzDataCleanup(void) {
+ xmlFree(fuzzData.outBuf);
+ xmlHashFree(fuzzData.entities, xmlHashDefaultDeallocator);
+}
+
+/**
+ * xmlFuzzWriteInt:
+ * @out: output file
+ * @v: integer to write
+ * @size: size of integer in bytes
+ *
+ * Write an integer to the fuzz data.
+ */
+void
+xmlFuzzWriteInt(FILE *out, size_t v, int size) {
+ int shift;
+
+ while (size > (int) sizeof(size_t)) {
+ putc(0, out);
+ size--;
+ }
+
+ shift = size * 8;
+ while (shift > 0) {
+ shift -= 8;
+ putc((v >> shift) & 255, out);
+ }
+}
+
+/**
+ * xmlFuzzReadInt:
+ * @size: size of integer in bytes
+ *
+ * Read an integer from the fuzz data.
+ */
+size_t
+xmlFuzzReadInt(int size) {
+ size_t ret = 0;
+
+ while ((size > 0) && (fuzzData.remaining > 0)) {
+ unsigned char c = (unsigned char) *fuzzData.ptr++;
+ fuzzData.remaining--;
+ ret = (ret << 8) | c;
+ size--;
+ }
+
+ return ret;
+}
+
+/**
+ * xmlFuzzReadRemaining:
+ * @size: size of string in bytes
+ *
+ * Read remaining bytes from fuzz data.
+ */
+const char *
+xmlFuzzReadRemaining(size_t *size) {
+ const char *ret = fuzzData.ptr;
+
+ *size = fuzzData.remaining;
+ fuzzData.ptr += fuzzData.remaining;
+ fuzzData.remaining = 0;
+
+ return(ret);
+}
+
+/*
+ * xmlFuzzWriteString:
+ * @out: output file
+ * @str: string to write
+ *
+ * Write a random-length string to file in a format similar to
+ * FuzzedDataProvider. Backslash followed by newline marks the end of the
+ * string. Two backslashes are used to escape a backslash.
+ */
+void
+xmlFuzzWriteString(FILE *out, const char *str) {
+ for (; *str; str++) {
+ int c = (unsigned char) *str;
+ putc(c, out);
+ if (c == '\\')
+ putc(c, out);
+ }
+ putc('\\', out);
+ putc('\n', out);
+}
+
+/**
+ * xmlFuzzReadString:
+ * @size: size of string in bytes
+ *
+ * Read a random-length string from the fuzz data.
+ *
+ * The format is similar to libFuzzer's FuzzedDataProvider but treats
+ * backslash followed by newline as end of string. This makes the fuzz data
+ * more readable. A backslash character is escaped with another backslash.
+ *
+ * Returns a zero-terminated string or NULL if the fuzz data is exhausted.
+ */
+const char *
+xmlFuzzReadString(size_t *size) {
+ const char *out = fuzzData.outPtr;
+
+ while (fuzzData.remaining > 0) {
+ int c = *fuzzData.ptr++;
+ fuzzData.remaining--;
+
+ if ((c == '\\') && (fuzzData.remaining > 0)) {
+ int c2 = *fuzzData.ptr;
+
+ if (c2 == '\n') {
+ fuzzData.ptr++;
+ fuzzData.remaining--;
+ if (size != NULL)
+ *size = fuzzData.outPtr - out;
+ *fuzzData.outPtr++ = '\0';
+ return(out);
+ }
+ if (c2 == '\\') {
+ fuzzData.ptr++;
+ fuzzData.remaining--;
+ }
+ }
+
+ *fuzzData.outPtr++ = c;
+ }
+
+ if (fuzzData.outPtr > out) {
+ if (size != NULL)
+ *size = fuzzData.outPtr - out;
+ *fuzzData.outPtr++ = '\0';
+ return(out);
+ }
+
+ if (size != NULL)
+ *size = 0;
+ return(NULL);
+}
+
+/**
+ * xmlFuzzReadEntities:
+ *
+ * Read entities like the main XML file, external DTDs, external parsed
+ * entities from fuzz data.
+ */
+void
+xmlFuzzReadEntities(void) {
+ size_t num = 0;
+
+ while (1) {
+ const char *url, *entity;
+ size_t entitySize;
+ xmlFuzzEntityInfo *entityInfo;
+
+ url = xmlFuzzReadString(NULL);
+ if (url == NULL) break;
+
+ entity = xmlFuzzReadString(&entitySize);
+ if (entity == NULL) break;
+
+ if (xmlHashLookup(fuzzData.entities, (xmlChar *)url) == NULL) {
+ entityInfo = xmlMalloc(sizeof(xmlFuzzEntityInfo));
+ if (entityInfo == NULL)
+ break;
+ entityInfo->data = entity;
+ entityInfo->size = entitySize;
+
+ xmlHashAddEntry(fuzzData.entities, (xmlChar *)url, entityInfo);
+
+ if (num == 0) {
+ fuzzData.mainUrl = url;
+ fuzzData.mainEntity = entityInfo;
+ } else if (num == 1) {
+ fuzzData.secondaryUrl = url;
+ fuzzData.secondaryEntity = entityInfo;
+ }
+
+ num++;
+ }
+ }
+}
+
+/**
+ * xmlFuzzMainUrl:
+ *
+ * Returns the main URL.
+ */
+const char *
+xmlFuzzMainUrl(void) {
+ return(fuzzData.mainUrl);
+}
+
+/**
+ * xmlFuzzMainEntity:
+ * @size: size of the main entity in bytes
+ *
+ * Returns the main entity.
+ */
+const char *
+xmlFuzzMainEntity(size_t *size) {
+ if (fuzzData.mainEntity == NULL)
+ return(NULL);
+ *size = fuzzData.mainEntity->size;
+ return(fuzzData.mainEntity->data);
+}
+
+/**
+ * xmlFuzzSecondaryUrl:
+ *
+ * Returns the secondary URL.
+ */
+const char *
+xmlFuzzSecondaryUrl(void) {
+ return(fuzzData.secondaryUrl);
+}
+
+/**
+ * xmlFuzzSecondaryEntity:
+ * @size: size of the secondary entity in bytes
+ *
+ * Returns the secondary entity.
+ */
+const char *
+xmlFuzzSecondaryEntity(size_t *size) {
+ if (fuzzData.secondaryEntity == NULL)
+ return(NULL);
+ *size = fuzzData.secondaryEntity->size;
+ return(fuzzData.secondaryEntity->data);
+}
+
+/**
+ * xmlFuzzEntityLoader:
+ *
+ * The entity loader for fuzz data.
+ */
+xmlParserInputPtr
+xmlFuzzEntityLoader(const char *URL, const char *ID ATTRIBUTE_UNUSED,
+ xmlParserCtxtPtr ctxt) {
+ xmlParserInputPtr input;
+ xmlFuzzEntityInfo *entity;
+
+ if (URL == NULL)
+ return(NULL);
+ entity = xmlHashLookup(fuzzData.entities, (xmlChar *) URL);
+ if (entity == NULL)
+ return(NULL);
+
+ input = xmlNewInputStream(ctxt);
+ if (input == NULL)
+ return(NULL);
+ input->filename = (char *) xmlCharStrdup(URL);
+ input->buf = xmlParserInputBufferCreateMem(entity->data, entity->size,
+ XML_CHAR_ENCODING_NONE);
+ if (input->buf == NULL) {
+ xmlFreeInputStream(input);
+ return(NULL);
+ }
+ input->base = input->cur = xmlBufContent(input->buf->buffer);
+ input->end = input->base + xmlBufUse(input->buf->buffer);
+
+ return input;
}
#include <libxml/xpath.h>
int
-xsltFuzzXPathInit(int *argc_p, char ***argv_p, const char *dir);
+LLVMFuzzerInitialize(int *argc, char ***argv);
+
+int
+LLVMFuzzerTestOneInput(const char *data, size_t size);
+
+int
+xsltFuzzXPathInit(void);
xmlXPathObjectPtr
xsltFuzzXPath(const char *data, size_t size);
xsltFuzzXPathCleanup(void);
int
-xsltFuzzXsltInit(int *argc_p, char ***argv_p, const char *dir);
+xsltFuzzXsltInit(void);
xmlChar *
xsltFuzzXslt(const char *data, size_t size);
void
xsltFuzzXsltCleanup(void);
+/* Utility functions */
+
+void
+xmlFuzzErrorFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg ATTRIBUTE_UNUSED,
+ ...);
+
+void
+xmlFuzzMemSetup(void);
+
+void
+xmlFuzzMemSetLimit(size_t limit);
+
+void
+xmlFuzzDataInit(const char *data, size_t size);
+
+void
+xmlFuzzDataCleanup(void);
+
+void
+xmlFuzzWriteInt(FILE *out, size_t v, int size);
+
+size_t
+xmlFuzzReadInt(int size);
+
+const char *
+xmlFuzzReadRemaining(size_t *size);
+
+void
+xmlFuzzWriteString(FILE *out, const char *str);
+
+const char *
+xmlFuzzReadString(size_t *size);
+
+void
+xmlFuzzReadEntities(void);
+
+const char *
+xmlFuzzMainUrl(void);
+
+const char *
+xmlFuzzMainEntity(size_t *size);
+
+const char *
+xmlFuzzSecondaryUrl(void);
+
+const char *
+xmlFuzzSecondaryEntity(size_t *size);
+
+xmlParserInputPtr
+xmlFuzzEntityLoader(const char *URL, const char *ID, xmlParserCtxtPtr ctxt);
+
#endif
--- /dev/null
+/*
+ * genSeed.c: Generate the seed corpora for fuzzing.
+ *
+ * See Copyright for the status of this software.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <glob.h>
+#include <libgen.h>
+#include <sys/stat.h>
+
+#ifdef _WIN32
+#include <direct.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <libxml/parserInternals.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/xsltutils.h>
+#include "fuzz.h"
+
+#define PATH_SIZE 500
+#define SEED_BUF_SIZE 16384
+
+typedef int
+(*fileFunc)(const char *base, FILE *out);
+
+typedef int
+(*mainFunc)(const char *testsDir);
+
+static struct {
+ FILE *out;
+ xmlHashTablePtr entities; /* Maps URLs to xmlFuzzEntityInfos */
+ xmlExternalEntityLoader oldLoader;
+ fileFunc processFile;
+ const char *fuzzer;
+ const char *docDir;
+ char cwd[PATH_SIZE];
+} globalData;
+
+/*
+ * A custom entity loader that writes all external DTDs or entities to a
+ * single file in the format expected by xmlFuzzEntityLoader.
+ */
+static xmlParserInputPtr
+fuzzEntityRecorder(const char *URL, const char *ID, xmlParserCtxtPtr ctxt) {
+ xmlParserInputPtr in;
+ xmlChar *data;
+ static const int chunkSize = 16384;
+ int len;
+
+ in = xmlNoNetExternalEntityLoader(URL, ID, ctxt);
+ if (in == NULL)
+ return(NULL);
+
+ if (globalData.entities == NULL) {
+ globalData.entities = xmlHashCreate(4);
+ } else if (xmlHashLookup(globalData.entities,
+ (const xmlChar *) URL) != NULL) {
+ return(in);
+ }
+
+ do {
+ len = xmlParserInputBufferGrow(in->buf, chunkSize);
+ if (len < 0) {
+ fprintf(stderr, "Error reading %s\n", URL);
+ xmlFreeInputStream(in);
+ return(NULL);
+ }
+ } while (len > 0);
+
+ data = xmlStrdup(xmlBufContent(in->buf->buffer));
+ if (data == NULL) {
+ fprintf(stderr, "Error allocating entity data\n");
+ xmlFreeInputStream(in);
+ return(NULL);
+ }
+
+ xmlFreeInputStream(in);
+
+ xmlHashAddEntry(globalData.entities, (const xmlChar *) URL, data);
+
+ return(xmlNoNetExternalEntityLoader(URL, ID, ctxt));
+}
+
+static void
+fuzzRecorderInit(FILE *out) {
+ globalData.out = out;
+ globalData.entities = xmlHashCreate(8);
+ globalData.oldLoader = xmlGetExternalEntityLoader();
+ xmlSetExternalEntityLoader(fuzzEntityRecorder);
+}
+
+static void
+fuzzRecorderWriteAndFree(void *entry, const xmlChar *file) {
+ char *data = entry;
+ xmlFuzzWriteString(globalData.out, (const char *) file);
+ xmlFuzzWriteString(globalData.out, data);
+ xmlFree(data);
+}
+
+static void
+fuzzRecorderWrite(const char *file) {
+ xmlHashRemoveEntry(globalData.entities, (const xmlChar *) file,
+ fuzzRecorderWriteAndFree);
+}
+
+static void
+fuzzRecorderCleanup() {
+ xmlSetExternalEntityLoader(globalData.oldLoader);
+ /* Write remaining entities (in random order). */
+ xmlHashFree(globalData.entities, fuzzRecorderWriteAndFree);
+ globalData.out = NULL;
+ globalData.entities = NULL;
+ globalData.oldLoader = NULL;
+}
+
+static int
+processXslt(const char *sheetFile, FILE *out) {
+ struct stat statbuf;
+ xsltStylesheetPtr sheet;
+ xmlDocPtr doc;
+ char docFile[PATH_SIZE];
+ char base[PATH_SIZE] = "";
+ size_t len, size;
+
+ len = strlen(sheetFile);
+ if ((len < 5) || (len >= PATH_SIZE) ||
+ (strcmp(sheetFile + len - 4, ".xsl") != 0)) {
+ fprintf(stderr, "invalid stylesheet file: %s\n", sheetFile);
+ return(-1);
+ }
+ strncat(base, sheetFile, len - 4);
+
+ if (globalData.docDir == NULL) {
+ size = snprintf(docFile, sizeof(docFile), "%s.xml", base);
+ } else {
+ size = snprintf(docFile, sizeof(docFile), "%s/%s.xml",
+ globalData.docDir, base);
+ }
+ if (size >= sizeof(docFile)) {
+ fprintf(stderr, "creating pattern failed\n");
+ return(-1);
+ }
+
+ /* Document might not exist, for example with imported stylesheets. */
+ if (stat(docFile, &statbuf) != 0)
+ return(-1);
+
+ /* Malloc limit. */
+ xmlFuzzWriteInt(out, 0, 4);
+
+ fuzzRecorderInit(out);
+
+ sheet = xsltParseStylesheetFile(BAD_CAST sheetFile);
+ doc = xmlReadFile(docFile, NULL, XSLT_PARSE_OPTIONS);
+ xmlFreeDoc(xsltApplyStylesheet(sheet, doc, NULL));
+ xmlFreeDoc(doc);
+ xsltFreeStylesheet(sheet);
+
+ fuzzRecorderWrite(sheetFile);
+ fuzzRecorderWrite(docFile);
+ fuzzRecorderCleanup();
+
+ return(0);
+}
+
+static int
+processPattern(const char *pattern) {
+ glob_t globbuf;
+ int ret = 0;
+ int res;
+ size_t i;
+
+ res = glob(pattern, 0, NULL, &globbuf);
+ if (res == GLOB_NOMATCH)
+ return(0);
+ if (res != 0) {
+ fprintf(stderr, "couldn't match pattern %s\n", pattern);
+ return(-1);
+ }
+
+ for (i = 0; i < globbuf.gl_pathc; i++) {
+ struct stat statbuf;
+ char outPath[PATH_SIZE];
+ char *dirBuf = NULL;
+ char *baseBuf = NULL;
+ const char *path, *dir, *base;
+ FILE *out = NULL;
+ int dirChanged = 0;
+ size_t size;
+
+ res = -1;
+ path = globbuf.gl_pathv[i];
+
+ if ((stat(path, &statbuf) != 0) || (!S_ISREG(statbuf.st_mode)))
+ continue;
+
+ dirBuf = (char *) xmlCharStrdup(path);
+ baseBuf = (char *) xmlCharStrdup(path);
+ if ((dirBuf == NULL) || (baseBuf == NULL)) {
+ fprintf(stderr, "memory allocation failed\n");
+ ret = -1;
+ goto error;
+ }
+ dir = dirname(dirBuf);
+ base = basename(baseBuf);
+
+ size = snprintf(outPath, sizeof(outPath), "seed/%s/%s",
+ globalData.fuzzer, base);
+ if (size >= sizeof(outPath)) {
+ fprintf(stderr, "creating path failed\n");
+ ret = -1;
+ goto error;
+ }
+ out = fopen(outPath, "wb");
+ if (out == NULL) {
+ fprintf(stderr, "couldn't open %s for writing\n", outPath);
+ ret = -1;
+ goto error;
+ }
+ if (chdir(dir) != 0) {
+ fprintf(stderr, "couldn't chdir to %s\n", dir);
+ ret = -1;
+ goto error;
+ }
+ dirChanged = 1;
+ res = globalData.processFile(base, out);
+
+error:
+ if ((dirChanged) && (chdir(globalData.cwd) != 0)) {
+ fprintf(stderr, "couldn't chdir to %s\n", globalData.cwd);
+ ret = -1;
+ break;
+ }
+ if (out != NULL) {
+ fclose(out);
+ if (res != 0) {
+ unlink(outPath);
+ ret = -1;
+ }
+ }
+ xmlFree(dirBuf);
+ xmlFree(baseBuf);
+ }
+
+ globfree(&globbuf);
+ return(ret);
+}
+
+static int
+processTestDir(const char *testsDir, const char *subDir, const char *docDir) {
+ char pattern[PATH_SIZE];
+ size_t size;
+
+ size = snprintf(pattern, sizeof(pattern), "%s/%s/*.xsl",
+ testsDir, subDir);
+ if (size >= sizeof(pattern)) {
+ fprintf(stderr, "creating pattern failed\n");
+ return -1;
+ }
+
+ globalData.docDir = docDir;
+ return processPattern(pattern);
+}
+
+static int
+processTests(const char *testsDir) {
+ processTestDir(testsDir, "REC", NULL);
+ processTestDir(testsDir, "general", "../docs");
+ processTestDir(testsDir, "exslt/*", NULL);
+
+ return 0;
+}
+
+static int
+processXPath(const char *testsDir ATTRIBUTE_UNUSED) {
+#define UTF8_Auml "\xC3\x84"
+#define UTF8_szlig "\xC3\x9F"
+#define UTF8_ALPHA "\xCE\xB1"
+#define UTF8_DEJA "d\xC3\xA9j\xC3\xA0"
+ static const char *xml =
+ "<?pi content?>\n"
+ "<a xmlns:a=\"a\">\n"
+ " <b xmlns:b=\"b\" a=\"1\" id=\"b\">\n"
+ " <c b=\"2\">" UTF8_Auml "rger</c>\n"
+ " <b:d b=\"3\">text</b:d>\n"
+ " <!-- comment -->\n"
+ " <a:b b=\"4\">" UTF8_szlig "😀</a:b>\n"
+ " <b:c a=\"4\"><![CDATA[text]]></b:c>\n"
+ " </b>\n"
+ " <?pi content?>\n"
+ " <a:e xmlns:c=\"c\" a=\"" UTF8_ALPHA "\">\n"
+ " <c:d b=\"2\"/>\n"
+ " <a:c>99</a:c>\n"
+ " <e a=\"2\">content</e>\n"
+ " </a:e>\n"
+ " <b/>\n"
+ " <a:a/>\n"
+ " <!-- comment -->\n"
+ "</a>\n";
+ static const char *exprs[] = {
+ "crypto:md4('a')",
+ "crypto:md5('a')",
+ "crypto:rc4_decrypt(crypto:rc4_encrypt('key','msg'))",
+ "crypto:sha1('a')",
+ "date:add('2016-01-01T12:00:00','-P1Y2M3DT10H30M45S')",
+ "date:add-duration('-P1Y2M3DT10H30M45S','-P1Y2M3DT10H30M45S')",
+ "date:date('2016-01-01T12:00:00')",
+ "date:date-time()",
+ "date:day-abbreviation('2016-01-01T12:00:00')",
+ "date:day-in-month('2016-01-01T12:00:00')",
+ "date:day-in-week('2016-01-01T12:00:00')",
+ "date:day-in-year('2016-01-01T12:00:00')",
+ "date:day-name('2016-01-01T12:00:00')",
+ "date:day-of-week-in-month('2016-01-01T12:00:00')",
+ "date:difference('1999-06-10T20:03:48','2016-01-01T12:00:00')",
+ "date:duration('1234567890')",
+ "date:format-date('2016-01-01T12:00:00','GyyyyMMwwWWDDddFFEaHHkkKKhhMMssSSSzZ')",
+ "date:hour-in-day('2016-01-01T12:00:00')",
+ "date:leap-year('2016-01-01T12:00:00')",
+ "date:minute-in-hour('2016-01-01T12:00:00')",
+ "date:month-abbreviation('2016-01-01T12:00:00')",
+ "date:month-in-year('2016-01-01T12:00:00')",
+ "date:month-name('2016-01-01T12:00:00')",
+ "date:parse-date('20160101120000','yyyyMMddkkmmss')",
+ "date:second-in-minute('2016-01-01T12:00:00')",
+ "date:seconds('2016-01-01T12:00:00')",
+ "date:sum(str:split('-P1Y2M3DT10H30M45S,-P1Y2M3DT10H30M45S,P999999999S',','))",
+ "date:time('2016-01-01T12:00:00')",
+ "date:week-in-month('2016-01-01T12:00:00')",
+ "date:week-in-year('2016-01-01T12:00:00')",
+ "date:year('2016-01-01T12:00:00')",
+ "dyn:evaluate('1+1')",
+ "dyn:map(//*,'.')",
+ "(1.1+-24.5)*0.8-(25div3.5)mod0.2",
+ "/a/b/c/text()|//e/c:d/@b",
+ "(//*[@*][1])[1]",
+ "exsl:node-set($n)",
+ "exsl:node-set('s')",
+ "exsl:object-type(1)",
+ "boolean(.)",
+ "ceiling(.)",
+ "concat(.,'a')",
+ "contains(.,'e')",
+ "count(.)",
+ "false()",
+ "floor(.)",
+ "id(.)",
+ "lang(.)",
+ "last()",
+ "local-name(.)",
+ "name(.)",
+ "namespace-uri(.)",
+ "normalize-space(.)",
+ "not(.)",
+ "number(.)",
+ "number('1.0')",
+ "position()",
+ "round(.)",
+ "starts-with(.,'t')",
+ "string-length(.)",
+ "string(.)",
+ "string(1.0)",
+ "substring(.,2,3)",
+ "substring-after(.,'e')",
+ "substring-before(.,'e')",
+ "sum(*)",
+ "translate(.,'e','a')",
+ "true()",
+ "math:abs(-1.5)",
+ "math:acos(-0.5)",
+ "math:asin(-0.5)",
+ "math:atan(-0.5)",
+ "math:atan2(-1.5,-1.5)",
+ "math:constant('E',20)",
+ "math:cos(-1.5)",
+ "math:exp(-1.5)",
+ "math:highest(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))",
+ "math:log(2.0)",
+ "math:lowest(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))",
+ "math:max(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))",
+ "math:min(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))",
+ "math:power(2.0,0.5)",
+ "math:random()",
+ "math:sin(-1.5)",
+ "math:sqrt(2.0)",
+ "math:tan(-1.5)",
+ "saxon:eval(saxon:expression('1+1'))",
+ "saxon:evaluate('1+1')",
+ "saxon:line-number()",
+ "saxon:line-number(*)",
+ "saxon:systemId()",
+ "set:difference(//*,//a:*)",
+ "set:distinct(//*)",
+ "set:has-same-node(//*,//a:*)",
+ "set:intersection(//*,//a:*)",
+ "set:leading(//*,/*/*[3])",
+ "set:trailing(//*,/*/*[2])",
+ "str:align('" UTF8_DEJA "','--------','center')",
+ "str:align('" UTF8_DEJA "','--------','left')",
+ "str:align('" UTF8_DEJA "','--------','right')",
+ "str:concat(str:split('ab,cd,ef',','))",
+ "str:decode-uri('%41%00%2d')",
+ "str:encode-uri(';/?:@&=+$,[]',true())",
+ "str:encode-uri('|<>',false())",
+ "str:padding(81,' ')",
+ "str:replace('abcdefgh',str:split('a,c,e,g',','),str:split('w,x,y,z',','))",
+ "str:split('a, sim, lis',', ')",
+ "str:tokenize('2016-01-01T12:00:00','-T:')",
+ "current()",
+ "document('')",
+ "element-available('exsl:document')",
+ "format-number(1.0,'##,##,00.00##')",
+ "format-number(1.0,'#.#;-0.0%')",
+ "function-available('exsl:node-set')",
+ "generate-id(.)",
+ "system-property('xsl:version')",
+ "unparsed-entity-uri('a')"
+ };
+ size_t numExprs = sizeof(exprs) / sizeof(*exprs);
+ size_t i, size;
+ int ret = 0;
+
+ for (i = 0; i < numExprs; i++) {
+ char outPath[PATH_SIZE];
+ FILE *out;
+
+ size = snprintf(outPath, sizeof(outPath), "seed/xpath/%03d", (int) i);
+ if (size >= PATH_SIZE) {
+ ret = -1;
+ continue;
+ }
+ out = fopen(outPath, "wb");
+ if (out == NULL) {
+ ret = -1;
+ continue;
+ }
+ /* Memory limit. */
+ xmlFuzzWriteInt(out, 0, 4);
+ xmlFuzzWriteString(out, exprs[i]);
+ xmlFuzzWriteString(out, xml);
+
+ fclose(out);
+ }
+
+ return(ret);
+}
+
+int
+main(int argc, const char **argv) {
+ mainFunc process = processTests;
+ const char *fuzzer;
+ int ret = 0;
+
+ if (argc < 3) {
+ fprintf(stderr, "usage: genSeed [FUZZER] [PATTERN...]\n");
+ return(1);
+ }
+
+ xmlSetGenericErrorFunc(NULL, xmlFuzzErrorFunc);
+ xsltSetGenericErrorFunc(NULL, xmlFuzzErrorFunc);
+
+ fuzzer = argv[1];
+ if (strcmp(fuzzer, "xslt") == 0) {
+ globalData.processFile = processXslt;
+ } else if (strcmp(fuzzer, "xpath") == 0) {
+ process = processXPath;
+ } else {
+ fprintf(stderr, "unknown fuzzer %s\n", fuzzer);
+ return(1);
+ }
+ globalData.fuzzer = fuzzer;
+
+ if (getcwd(globalData.cwd, PATH_SIZE) == NULL) {
+ fprintf(stderr, "couldn't get current directory\n");
+ return(1);
+ }
+
+ process(argv[2]);
+
+ return(ret);
+}
+
+++ /dev/null
-crypto:md4('a')
+++ /dev/null
-crypto:md5('a')
+++ /dev/null
-crypto:rc4_decrypt(crypto:rc4_encrypt('key','msg'))
+++ /dev/null
-crypto:sha1('a')
+++ /dev/null
-date:add('2016-01-01T12:00:00','-P1Y2M3DT10H30M45S')
+++ /dev/null
-date:add-duration('-P1Y2M3DT10H30M45S','-P1Y2M3DT10H30M45S')
+++ /dev/null
-date:date('2016-01-01T12:00:00')
+++ /dev/null
-date:date-time()
+++ /dev/null
-date:day-abbreviation('2016-01-01T12:00:00')
+++ /dev/null
-date:day-in-month('2016-01-01T12:00:00')
+++ /dev/null
-date:day-in-week('2016-01-01T12:00:00')
+++ /dev/null
-date:day-in-year('2016-01-01T12:00:00')
+++ /dev/null
-date:day-name('2016-01-01T12:00:00')
+++ /dev/null
-date:day-of-week-in-month('2016-01-01T12:00:00')
+++ /dev/null
-date:difference('1999-06-10T20:03:48','2016-01-01T12:00:00')
+++ /dev/null
-date:duration('1234567890')
+++ /dev/null
-date:format-date('2016-01-01T12:00:00','GyyyyMMwwWWDDddFFEaHHkkKKhhMMssSSSzZ')
+++ /dev/null
-date:hour-in-day('2016-01-01T12:00:00')
+++ /dev/null
-date:leap-year('2016-01-01T12:00:00')
+++ /dev/null
-date:minute-in-hour('2016-01-01T12:00:00')
+++ /dev/null
-date:month-abbreviation('2016-01-01T12:00:00')
+++ /dev/null
-date:month-in-year('2016-01-01T12:00:00')
+++ /dev/null
-date:month-name('2016-01-01T12:00:00')
+++ /dev/null
-date:parse-date('20160101120000','yyyyMMddkkmmss')
+++ /dev/null
-date:second-in-minute('2016-01-01T12:00:00')
+++ /dev/null
-date:seconds('2016-01-01T12:00:00')
+++ /dev/null
-date:sum(str:split('-P1Y2M3DT10H30M45S,-P1Y2M3DT10H30M45S,P999999999S',','))
+++ /dev/null
-date:time('2016-01-01T12:00:00')
+++ /dev/null
-date:week-in-month('2016-01-01T12:00:00')
+++ /dev/null
-date:week-in-year('2016-01-01T12:00:00')
+++ /dev/null
-date:year('2016-01-01T12:00:00')
+++ /dev/null
-dyn:evaluate('1+1')
+++ /dev/null
-dyn:map(//*,'.')
+++ /dev/null
-(1.1+-24.5)*0.8-(25div3.5)mod0.2
+++ /dev/null
-/a/b/c/text()|//e/c:d/@b
+++ /dev/null
-(//*[@*][1])[1]
+++ /dev/null
-exsl:node-set($n)
+++ /dev/null
-exsl:node-set('s')
+++ /dev/null
-exsl:object-type(1)
+++ /dev/null
-boolean(.)
+++ /dev/null
-ceiling(.)
+++ /dev/null
-concat(.,'a')
+++ /dev/null
-contains(.,'e')
+++ /dev/null
-local-name(.)
+++ /dev/null
-namespace-uri(.)
+++ /dev/null
-normalize-space(.)
+++ /dev/null
-number('1.0')
+++ /dev/null
-position()
+++ /dev/null
-starts-with(.,'t')
+++ /dev/null
-string-length(.)
+++ /dev/null
-string(1.0)
+++ /dev/null
-substring(.,2,3)
+++ /dev/null
-substring-after(.,'e')
+++ /dev/null
-substring-before(.,'e')
+++ /dev/null
-translate(.,'e','a')
+++ /dev/null
-math:abs(-1.5)
+++ /dev/null
-math:acos(-0.5)
+++ /dev/null
-math:asin(-0.5)
+++ /dev/null
-math:atan(-0.5)
+++ /dev/null
-math:atan2(-1.5,-1.5)
+++ /dev/null
-math:constant('E',20)
+++ /dev/null
-math:cos(-1.5)
+++ /dev/null
-math:exp(-1.5)
+++ /dev/null
-math:highest(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))
+++ /dev/null
-math:log(2.0)
+++ /dev/null
-math:lowest(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))
+++ /dev/null
-math:max(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))
+++ /dev/null
-math:min(str:split('1.2,-0.5,-2.2e8,-0.1e-5',','))
+++ /dev/null
-math:power(2.0,0.5)
+++ /dev/null
-math:random()
+++ /dev/null
-math:sin(-1.5)
+++ /dev/null
-math:sqrt(2.0)
+++ /dev/null
-math:tan(-1.5)
+++ /dev/null
-saxon:eval(saxon:expression('1+1'))
+++ /dev/null
-saxon:evaluate('1+1')
+++ /dev/null
-saxon:line-number()
+++ /dev/null
-saxon:line-number(*)
+++ /dev/null
-saxon:systemId()
+++ /dev/null
-set:difference(//*,//a:*)
+++ /dev/null
-set:distinct(//*)
+++ /dev/null
-set:has-same-node(//*,//a:*)
+++ /dev/null
-set:intersection(//*,//a:*)
+++ /dev/null
-set:leading(//*,/*/*[3])
+++ /dev/null
-set:trailing(//*,/*/*[2])
+++ /dev/null
-str:align('déjà','--------','center')
+++ /dev/null
-str:align('déjà','--------','left')
+++ /dev/null
-str:align('déjà','--------','right')
+++ /dev/null
-str:concat(str:split('ab,cd,ef',','))
+++ /dev/null
-str:decode-uri('%41%00%2d')
+++ /dev/null
-str:encode-uri(';/?:@&=+$,[]',true())
+++ /dev/null
-str:encode-uri('|<>',false())
+++ /dev/null
-str:padding(81,' ')
+++ /dev/null
-str:replace('abcdefgh',str:split('a,c,e,g',','),str:split('w,x,y,z',','))
+++ /dev/null
-str:split('a, sim, lis',', ')
+++ /dev/null
-str:tokenize('2016-01-01T12:00:00','-T:')
+++ /dev/null
-document('')
+++ /dev/null
-element-available('exsl:document')
+++ /dev/null
-format-number(1.0,'##,##,00.00##')
+++ /dev/null
-format-number(1.0,'#.#;-0.0%')
+++ /dev/null
-function-available('exsl:node-set')
+++ /dev/null
-generate-id(.)
+++ /dev/null
-system-property('xsl:version')
+++ /dev/null
-unparsed-entity-uri('a')
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:attribute-set name="s"><x:attribute name="a:f" namespace="a">v</x:attribute></x:attribute-set>
-<x:attribute-set name="t" use-attribute-sets="s"><x:attribute name="g">w</x:attribute></x:attribute-set>
-<x:template match="a:*">
-<x:element name="e" use-attribute-sets="t"/>
-<a:e x:use-attribute-sets="t"/>
-<x:copy use-attribute-sets="t"></x:copy>
-</x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet version="1.0" xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b">
-<x:output cdata-section-elements="b a:c"/>
-<x:template match="*"><x:copy><x:apply-templates select="node()"/></x:copy></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" version="1.0">
-<x:decimal-format name="f"
-decimal-separator="•" grouping-separator="`"
-infinity="∞" minus-sign="–" NaN="🀀"
-percent="⁄" per-mille="*"
-zero-digit="0" digit="÷"
-pattern-separator="|"/>
-<x:template match="*">
-<n><x:value-of select="format-number(123456789.123456,'_÷÷`÷`00•00÷÷_','f')"/></n>
-<n><x:value-of select="format-number(-1.5,'÷•÷*|–0•0⁄','f')"/></n>
-<n><x:value-of select="format-number(-1 div 0,'0','f')"/></n>
-<n><x:value-of select="format-number(0 div 0,'0','f')"/></n>
-</x:template>
-</x:stylesheet>
-
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:template match="*"><x:element name="e"><x:apply-templates select="node()|@*"/></x:element></x:template>
-<x:template match="@*"><x:attribute name="{local-name()}"></x:attribute></x:template>
-<x:template match="text()"><x:text></x:text></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" xmlns:e1="e1" xmlns:e2="e2" xmlns:e3="e3" version="1.0" extension-element-prefixes="e1 e2 e3">
-<x:template match="*">
-<e3:e><x:fallback><f3/></x:fallback></e3:e>
-<x:foo><x:fallback><foo/></x:fallback></x:foo>
-<x:apply-templates select="*"/>
-</x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:a="a" xmlns:b="b" exclude-result-prefixes="a b">
-<x:output method="html" version="4.0" encoding="iso-8859-1" indent="yes" media-type="t/h"/>
-<x:template match="*"><div><img/><x:apply-templates select="node()"/></div></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:key name="k" match="*" use="."/>
-<x:template match="a:*"><x:copy-of select="key('k',.)"/></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:template match="*"><a:e a="{1+1}"><a:f/></a:e></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:template match="a:*"><x:apply-templates select="*" mode="m"/></x:template>
-<x:template match="*" mode="m"><r/></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" version="1.0">
-<x:template match="*">
-<x:number level="any" count="*" from="*" format="1.i.I.A.a"/>
-<x:number level="multiple" count="*" format="A.a.I.i.1"/>
-<x:number level="single" from="*"/>
-<x:number value="123456789" format="1" grouping-separator="’" grouping-size="3"/>
-<x:apply-templates select="*"/>
-</x:template>
-</x:stylesheet>
-
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:a="a" xmlns:b="b" exclude-result-prefixes="a b">
-<x:output method="xml" version="1.0" encoding="iso-8859-1" omit-xml-declaration="yes" standalone="yes" doctype-public="p" doctype-system="s" cdata-section-elements="a" indent="yes" media-type="t/x"/>
-<x:template match="@*|node()"><x:copy><x:apply-templates select="@*|node()"/></x:copy></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:template match="*">
-<x:call-template name="n"><x:with-param name="p" select="."/></x:call-template>
-</x:template>
-<x:template name="n">
-<x:param name="p"/><x:value-of select="$p"/>
-</x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:template match="*">
-<x:for-each select="*"><x:sort select="count(.)" data-type="number" order="ascending"/><x:value-of select="local-name()"/></x:for-each>
-<x:copy><x:apply-templates select="*"><x:sort select="." order="descending" lang="en"/></x:apply-templates></x:copy>
-</x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:strip-space elements="a b a:*"/>
-<x:preserve-space elements="a:e"/>
-<x:output indent="yes"/>
-<x:template match="*"><x:copy><x:apply-templates select="node()"/></x:copy></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:output method="text" encoding="iso-8859-1" media-type="t/p"/>
-<x:template match="*"><x:copy><x:apply-templates select="node()"/></x:copy></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" xmlns:a="a" xmlns:b="b" version="1.0">
-<x:variable name="g" select="/*"/>
-<x:template match="a:*"><x:variable name="v" select="*"/><x:value-of select="$v"/></x:template>
-</x:stylesheet>
+++ /dev/null
-<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:a="a" xmlns:b="b" exclude-result-prefixes="a b">
-<x:output encoding="iso-8859-1" media-type="t/h" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
-<x:template match="*"><div><img/><x:apply-templates select="node()"/></div></x:template>
-</x:stylesheet>
#include "fuzz.h"
#include <libxml/globals.h>
-int
-testXPath(int argc, char **argv) {
+static int
+testXPath(void) {
xmlXPathObjectPtr obj;
- const char expr[] = "count(//node())";
+ const char data[] =
+ "\0\0\0\0count(//node())\\\n"
+ "<d><e><f/></e></d>";
int ret = 0;
- if (xsltFuzzXPathInit(&argc, &argv, argv[1]) != 0) {
+ if (xsltFuzzXPathInit() != 0) {
xsltFuzzXPathCleanup();
return 1;
}
- obj = xsltFuzzXPath(expr, sizeof(expr) - 1);
+ obj = xsltFuzzXPath(data, sizeof(data) - 1);
if ((obj == NULL) || (obj->type != XPATH_NUMBER)) {
fprintf(stderr, "Expression doesn't evaluate to number\n");
ret = 1;
- } else if (obj->floatval != 39.0) {
+ } else if (obj->floatval != 3.0) {
fprintf(stderr, "Expression returned %f, expected %f\n",
- obj->floatval, 39.0);
+ obj->floatval, 3.0);
ret = 1;
}
return ret;
}
-int
-testXslt(int argc, char **argv) {
+static int
+testXslt(void) {
xmlChar *result;
- const char styleBuf[] =
+ const char fuzzData[] =
+ "\0\0\0\0stylesheet.xsl\\\n"
"<xsl:stylesheet"
" xmlns:xsl='http://www.w3.org/1999/XSL/Transform'"
" version='1.0'"
"<xsl:template match='/'>\n"
" <r><xsl:value-of select='count(//node())'/></r>\n"
"</xsl:template>\n"
- "</xsl:stylesheet>\n";
+ "</xsl:stylesheet>\\\n"
+ "document.xml\\\n"
+ "<d><e><f/></e></d>";
int ret = 0;
- if (xsltFuzzXsltInit(&argc, &argv, argv[1]) != 0) {
+ if (xsltFuzzXsltInit() != 0) {
xsltFuzzXsltCleanup();
return 1;
}
- result = xsltFuzzXslt(styleBuf, sizeof(styleBuf) - 1);
+ result = xsltFuzzXslt(fuzzData, sizeof(fuzzData) - 1);
if (result == NULL) {
fprintf(stderr, "Result is NULL\n");
ret = 1;
- } else if (xmlStrcmp(result, BAD_CAST "<r>42</r>\n") != 0) {
+ } else if (xmlStrcmp(result, BAD_CAST "<r>3</r>\n") != 0) {
fprintf(stderr, "Stylesheet returned\n%sexpected \n%s\n",
- result, "<r>42</r>");
+ result, "<r>3</r>");
ret = 1;
}
return ret;
}
-int main(int argc, char **argv) {
+int
+main(void) {
int ret = 0;
- if (testXPath(argc, argv) != 0)
+ if (testXPath() != 0)
ret = 1;
- if (testXslt(argc, argv) != 0)
+ if (testXslt() != 0)
ret = 1;
return ret;
#include "fuzz.h"
int
-LLVMFuzzerInitialize(int *argc_p, char ***argv_p) {
- return xsltFuzzXPathInit(argc_p, argv_p, NULL);
+LLVMFuzzerInitialize(int *argc_p ATTRIBUTE_UNUSED,
+ char ***argv_p ATTRIBUTE_UNUSED) {
+ return xsltFuzzXPathInit();
}
int
utf8_2="\xC3\x84"
utf8_3="\xE2\x80\x9C"
utf8_4="\xF0\x9F\x98\x80"
+
+# XML
+
+elem_start_end="<a></a>"
+elem_ns_start_end="<a:a></a:a>"
+
+attr=" a='a'"
+
+ns_decl=" xmlns:a='a'"
+ns_default=" xmlns='a'"
+ns_prefix="a:"
+
+cdata_section="<![CDATA[ ]]>"
+comment="<!-- -->"
+pi="<?a?>"
+++ /dev/null
-<?pi content?>
-<a xmlns:a="a">
- <b xmlns:b="b" a="1" id="b">
- <c b="2">Ärger</c>
- <b:d b="3">text</b:d>
- <!-- comment -->
- <a:b b="4">ß😀</a:b>
- <b:c a="4"><![CDATA[text]]></b:c>
- </b>
- <?pi content?>
- <a:e xmlns:c="c" a="αβγ">
- <c:d b="2"/>
- <a:c>99</a:c>
- <e a="2">content</e>
- </a:e>
- <b/>
- <a:a/>
- <!-- comment -->
-</a>
#include <libxml/globals.h>
int
-LLVMFuzzerInitialize(int *argc_p, char ***argv_p) {
- return xsltFuzzXsltInit(argc_p, argv_p, NULL);
+LLVMFuzzerInitialize(int *argc_p ATTRIBUTE_UNUSED,
+ char ***argv_p ATTRIBUTE_UNUSED) {
+ return xsltFuzzXsltInit();
}
int
utf8_2="\xC3\x84"
utf8_3="\xE2\x80\x9C"
utf8_4="\xF0\x9F\x98\x80"
+
+# XML
+
+elem_start_end="<a></a>"
+elem_ns_start_end="<a:a></a:a>"
+
+attr=" a='a'"
+
+ns_decl=" xmlns:a='a'"
+ns_default=" xmlns='a'"
+ns_prefix="a:"
+
+cdata_section="<![CDATA[ ]]>"
+comment="<!-- -->"
+pi="<?a?>"
+++ /dev/null
-<?pi content?>
-<a xmlns:a="a">
- <b xmlns:b="b" a="1" id="b">
- <c b="2">Ärger</c>
- <b:d b="3">text & <></b:d>
- <!-- comment -->
- <a:b b="4">
- <a:c>ß😀</a:c>
- </a:b>
- <b:c a="4"><![CDATA[text]]></b:c>
- </b>
- <?pi content?>
- <a:e xmlns:c="c" a="αβγ">
- <c:d b="2"/>
- <a:c>99</a:c>
- <e a="2">content</e>
- </a:e>
- <b/>
- <a:a/>
- <!-- comment -->
-</a>
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- bug-1-.out bug-1-.xsl \
- bug-2-.out bug-2-.xsl \
- bug-3-.out bug-3-.xsl \
- bug-4-.out bug-4-.xsl \
- bug-5-.out bug-5-.xsl \
- bug-6-.out bug-6-.xsl \
- bug-7-.out bug-7-.xsl \
- bug-8-.out bug-8-.xsl \
- bug-9-.out bug-9-.xsl \
- bug-10-.out bug-10-.xsl \
- bug-11-.out bug-11-.xsl \
- bug-12-.out bug-12-.xsl \
- bug-13-.out bug-13-.xsl \
- bug-14-.out bug-14-.xsl \
- bug-15-.out bug-15-.xsl \
- bug-16-.out bug-16-.xsl \
- bug-17-.out bug-17-.xsl \
- bug-18-.out bug-18-.xsl \
- bug-19-.out bug-19-.xsl \
- bug-20-.out bug-20-.xsl \
- bug-21-.out bug-21-.xsl \
- bug-22-.out bug-22-.xsl \
- bug-23-.out bug-23-.xsl \
- bug-24-.out bug-24-.xsl \
- bug-25-.out bug-25-.xsl \
- bug-26-.out bug-26-.xsl \
- bug-27-.out bug-27-.xsl \
- bug-28-.out bug-28-.xsl \
- bug-29-.out bug-29-.xsl \
- bug-30-.out bug-30-.xsl \
- bug-31-.out bug-31-.xsl \
- bug-32-.out bug-32-.xsl \
- bug-33-.out bug-33-.xsl \
- bug-35-.out bug-35-.xsl \
- bug-36-.out bug-36-.xsl \
- bug-36-inc.out bug-36-inc.xsl \
- bug-37-.out bug-37-.xsl \
- bug-37-inc.out bug-37-inc.xsl \
- array.out array.xsl \
- bug-38-.out bug-38-.xsl \
- bug-39-.out bug-39-.xsl \
- bug-40-.out bug-40-.xsl \
- bug-41-.out bug-41-.xsl \
- bug-42-.out bug-42-.xsl \
- bug-43-.out bug-43-.xsl \
- bug-44-.out bug-44-.xsl \
- bug-45-.out bug-45-.xsl \
- bug-46-.out bug-46-.xsl \
- bug-47-.out bug-47-.xsl \
- bug-48-.out bug-48-.xsl \
- bug-49-.out bug-49-.xsl \
- bug-50-.out bug-50-.xsl \
- bug-52.out bug-52.xsl \
- bug-53.out bug-53.xsl \
- bug-54.out bug-54.xsl \
- bug-55.out bug-55.xsl \
- bug-56.out bug-56.xsl \
- bug-57.out bug-57.xsl \
- bug-59.out bug-59.xsl \
- bug-60.out bug-60.xsl bug-60.err \
- bug-61.out bug-61.xsl \
- bug-62-inc.out bug-62-inc.xsl \
- bug-62.out bug-62.xsl \
- bug-63.out bug-63.xsl \
- bug-64.out bug-64.xsl \
- bug-65.ent bug-65.out bug-65.xsl \
- bug-66.out bug-66.xsl \
- bug-68.out bug-68.xsl \
- bug-69.out bug-69.xsl \
- bug-70.out bug-70.xsl \
- bug-71.out bug-71.xsl \
- bug-72.out bug-72.xsl \
- bug-73.out bug-73.xsl \
- bug-74.out bug-74.xsl \
- bug-75.out bug-75.xsl \
- bug-76.out bug-76.xsl \
- bug-77.out bug-77.xsl \
- bug-78.out bug-78.xsl \
- bug-79.out bug-79.xsl \
- bug-80.out bug-80.xsl \
- bug-81.out bug-81.xsl \
- bug-82.out bug-82.xsl \
- bug-83.out bug-83.xsl \
- bug-84.out bug-84.xsl \
- bug-86.out bug-86.xsl \
- bug-87.out bug-87.xsl \
- bug-88.out bug-88.xsl \
- bug-89.out bug-89.xsl \
- bug-90.out bug-90.xsl \
- bug-91.out bug-91.xsl \
- bug-92.out bug-92.xsl \
- bug-93.out bug-93.xsl \
- bug-93-inc.out bug-93-inc.xsl \
- bug-94.out bug-94.xsl \
- bug-95.out bug-95.xsl \
- bug-96.out bug-96.xsl \
- bug-97.out bug-97.xsl \
- bug-98.out bug-98.xsl \
- bug-99.out bug-99.xsl \
- bug-100.out bug-100.xsl \
- bug-101.out bug-101.xsl \
- bug-102.out bug-102.xsl \
- bug-102-inc.out bug-102-inc.xsl \
- bug-103.out bug-103.xsl \
- bug-104.out bug-104.xsl \
- bug-105.out bug-105.xsl \
- bug-106.out bug-106.xsl \
- bug-107.out bug-107.xsl \
- bug-108.out bug-108.xsl \
- bug-109.out bug-109.xsl \
- bug-110.out bug-110.xsl bug-110.err \
- bug-111.out bug-111.xsl \
- bug-112.out bug-112.xsl \
- bug-113.out bug-113.xsl \
- bug-114.out bug-114.xsl \
- bug-115.out bug-115.xsl \
- bug-116.out bug-116.xsl \
- bug-117.out bug-117.xsl \
- bug-118.out bug-118.xsl \
- bug-119.out bug-119.xsl \
- bug-120.out bug-120.xsl \
- bug-121.out bug-121.xsl \
- bug-122.out bug-122.xsl \
- bug-123.out bug-123.xsl \
- bug-124.out bug-124.xsl \
- bug-125.out bug-125.xsl \
- bug-126.out bug-126.xsl \
- bug-127.out bug-127.xsl \
- bug-128.out bug-128.xsl \
- bug-129.out bug-129.xsl \
- bug-130.out bug-130.xsl \
- bug-130-imp1.imp bug-130-imp2.imp bug-130-imp3.imp bug-130-imp4.imp \
- bug-131.out bug-131.xsl bug-131-imp.imp \
- bug-132.out bug-132.xsl \
- bug-133.out bug-133.xsl \
- bug-134.out bug-134.xsl \
- bug-135.out bug-135.xsl \
- bug-136.out bug-136.xsl \
- bug-137.imp bug-137.out bug-137.xsl \
- bug-138.out bug-138.xsl \
- bug-139.out bug-139.xsl \
- bug-140.out bug-140.xsl \
- bug-141.out bug-141.xsl \
- bug-142.out bug-142.xsl \
- bug-143.out bug-143.xsl \
- bug-144.out bug-144.xsl \
- bug-145.out bug-145.xsl bug-145.err \
- bug-146.out bug-146.xsl \
- bug-147.out bug-147.xsl \
- bug-147-1.imp bug-147-2.imp bug-147-3.imp \
- bug-147-4.imp bug-147-5.imp bug-147-6.imp \
- bug-148.out bug-148.xsl \
- bug-149.out bug-149.xsl \
- bug-150.out bug-150.xsl \
- bug-151.out bug-151.xsl \
- bug-152.out bug-152.xsl \
- bug-153.out bug-153.xsl \
- bug-154.out bug-154.xsl \
- bug-155.out bug-155.xsl \
- bug-156.err bug-156.out bug-156.xsl \
- bug-156.imp1.imp bug-156.imp2.imp \
- bug-157.err bug-157.out bug-157.xsl \
- bug-158.out bug-158.xsl \
- bug-159.out bug-159.xsl \
- bug-160.out bug-160.xsl \
- bug-161.out bug-161.xsl \
- bug-163.out bug-163.xsl \
- bug-164.out bug-164.xsl \
- bug-165.out bug-165.xsl bug-165.err \
- bug-166.out bug-166.xsl \
- bug-167.out bug-167.xsl \
- bug-168.out bug-168.xsl \
- bug-169.out bug-169.xsl bug-169.imp \
- bug-170.out bug-170.xsl \
- bug-171.out bug-171.xsl \
- bug-172.out bug-172.xsl \
- bug-173.out bug-173.xsl \
- bug-174.out bug-174.xsl bug-174.err \
- bug-175.out bug-175.xsl bug-175.err \
- bug-176.out bug-176.xsl \
- bug-177.out bug-177.xsl \
- bug-178.out bug-178.xsl \
- bug-179.out bug-179.xsl \
- bug-180.out bug-180.xsl bug-180.err \
- bug-181.out bug-181.xsl \
- bug-182.out bug-182.xsl \
- bug-183.out bug-183.xsl \
- bug-184.out bug-184.xsl bug-184.err \
- bug-186.out bug-186.xsl \
- bug-187.out bug-187.xsl bug-187.err \
- bug-188.out bug-188.xsl bug-188-imp.out bug-188-imp.xsl \
- bug-189.out bug-189.xsl \
- bug-190.out bug-190.xsl bug-190-imp.out bug-190-imp.xsl \
- bug-191.out bug-191.xsl bug-191.err bug-191-imp.out bug-191-imp.xsl \
- bug-192.out bug-192.xsl \
- bug-193.out bug-193.xsl \
- bug-194.out bug-194.xsl bug-194.err \
- bug-195.out bug-195.xsl \
- bug-196.out bug-196.xsl \
- bug-197.out bug-197.xsl \
- bug-198.out bug-198.xsl \
- bug-199.out bug-199.xsl \
- bug-200.out bug-200.xsl \
- bug-201.out bug-201.xsl bug-201.err \
- bug-202.out bug-202.xsl bug-202.err \
- bug-203.out bug-203.xsl bug-203.err \
- bug-204.out bug-204.xsl bug-204.err \
- bug-205.out bug-205.xsl \
- bug-206.out bug-206.xsl \
- bug-207.out bug-207.xsl \
- bug-208.out bug-208.xsl bug-208.err \
- bug-209.out bug-209.xsl \
- bug-210.out bug-210.xsl \
- bug-211.out bug-211.xsl \
- bug-212.out bug-212.xsl \
- bug-213.out bug-213.xsl \
- bug-214.out bug-214.xsl \
- bug-215.out bug-215.xsl bug-215.err \
- bug-216.out bug-216.xsl \
- bug-217.out bug-217.xsl \
- bug-218.out bug-218.xsl \
- bug-219.out bug-219.xsl \
- bug-220.out bug-220.xsl \
- bug-221.out bug-221.xsl \
- bug-222.out bug-222.xsl \
- character.out character.xsl \
- character2.out character2.xsl \
- itemschoose.out itemschoose.xsl \
- inner.xsl \
- date_add.out date_add.xsl
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running general tests'
- @(echo > .memdump)
- -@(for i in $(srcdir)/../docs/*.xml ; do \
- if [ -d $$i ] ; then continue ; fi ; \
- doc=`basename $$i .xml` ; \
- for j in $(srcdir)/$$doc*.xsl ; do \
- if [ ! -f $$j ] ; then continue ; fi ; \
- if [ -d $$j ] ; then continue ; fi ; \
- name=`basename $$j .xsl`; \
- out=$(srcdir)/"$$name".out; \
- err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --maxdepth 200 $$j $$i \
- > result.$$name 2>err.$$name; \
- if [ ! -f $$out ] ; then \
- cp result.$$name $$out ; \
- if [ -s err.$$name ] ; then \
- cp err.$$name $$err ; \
- fi ; \
- else \
- diff $$out result.$$name; \
- if [ -s $$err ] ; then \
- diff $$err err.$$name; \
- else \
- diff /dev/null err.$$name; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f result.$$name err.$$name; \
- done ; done)
- @echo '## Running general tests without dictionaries'
- -@(for i in $(srcdir)/../docs/*.xml ; do \
- if [ -d $$i ] ; then continue ; fi ; \
- doc=`basename $$i .xml` ; \
- for j in $(srcdir)/$$doc*.xsl ; do \
- if [ ! -f $$j ] ; then continue ; fi ; \
- if [ -d $$j ] ; then continue ; fi ; \
- name=`basename $$j .xsl`; \
- out=$(srcdir)/"$$name".out; \
- err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict --maxdepth 200 $$j $$i \
- > result.$$name 2>err.$$name; \
- if [ ! -f $$out ] ; then \
- cp result.$$name $$out ; \
- if [ -s err.$$name ] ; then \
- cp err.$$name $$err ; \
- fi ; \
- else \
- diff $$out result.$$name; \
- if [ -s $$err ] ; then \
- diff $$err err.$$name; \
- else \
- diff /dev/null err.$$name; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f result.$$name err.$$name; \
- done ; done)
-
+++ /dev/null
-<font text-align="start" size="+1">
- foo
- </font>
<xsl:output method="html" indent="no"/>
-<xsl:variable name="g.doc.root" select="document('../docs/bug-130.doc')"/>
+<xsl:variable name="g.doc.root" select="document('bug-130.doc')"/>
<xsl:template match="/">
<html>
xsl:version is missing: document may not be a stylesheet
runtime error: file ./bug-145.xsl line 6 element call-template
The called template '{a}a' was not found.
-no result for ./../docs/bug-145.xml
+no result for ./bug-145.xml
<xsl:template match="c">
<p>
- <xsl:value-of select="document('../docs/bug-153.doc')/ch/v[@name=current()/v]"/>
+ <xsl:value-of select="document('bug-153.doc')/ch/v[@name=current()/v]"/>
</p>
</xsl:template>
xmlns="http://www.w3.org/1999/xhtml">
<xsl:variable name="myPath" select="/dsl:page/@path" />
-<xsl:variable name="layout" select="document('../docs/bug-158.doc')"/>
+<xsl:variable name="layout" select="document('bug-158.doc')"/>
<xsl:variable name="root"><xsl:value-of select="$layout//layout:page[@path=$myPath]" />
</xsl:variable>
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
+no result for ./bug-165.xml
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
+no result for ./bug-180.xml
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
+no result for ./bug-184.xml
XPath error : Undefined variable
runtime error: file ./bug-194.xsl line 5 element param
Failed to evaluate the expression of variable 'p2'.
-no result for ./../docs/bug-194.xml
+no result for ./bug-194.xml
XPath error : Stack usage error
runtime error: file ./bug-201.xsl line 8 element param
Failed to evaluate the expression of variable 'var'.
-no result for ./../docs/bug-201.xml
+no result for ./bug-201.xml
XPath error : Undefined namespace prefix
XPath error : Undefined namespace prefix
XPath error : Undefined namespace prefix
-no result for ./../docs/bug-208.xml
+no result for ./bug-208.xml
<?xml version="1.0"?>
-../docs/test.jpg
+test.jpg
- ELEMENT fake
-element fake: error : Node has no parent
- ELEMENT elem
{DEF}f: cannot write to result tree while executing a function
XPath error : Stack usage error
runtime error: file ./bug-215.xsl line 5 element variable
Evaluating global variable var/param being computed failed
-no result for ./../docs/bug-215.xml
+no result for ./bug-215.xml
--- /dev/null
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:x="urn:math"
+ xmlns:func="http://exslt.org/functions"
+ extension-element-prefixes="func">
+
+ <func:function name="x:pow">
+ <xsl:param name="number"/>
+ <func:result select="$number * $number"/>
+ </func:function>
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:x="urn:math"
+ xmlns:func="http://exslt.org/functions"
+ extension-element-prefixes="func">
+
+ <func:function name="x:sqrt">
+ <xsl:param name="number"/>
+ <func:result select="$number div $number"/>
+ </func:function>
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:x="urn:math">
+
+ <xsl:import href="bug-223-imp.xsl"/>
+ <xsl:include href="bug-223-inc.xsl"/>
+
+ <xsl:output omit-xml-declaration="yes"/>
+
+ <xsl:template match="/">
+ <xsl:value-of select="x:pow(count(cd))"/>
+ <xsl:value-of select="' '"/>
+ <xsl:value-of select="x:sqrt(count(cd))"/>
+ </xsl:template>
+
+</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0"?>
-<root>
-some text
-</root>
+++ /dev/null
-<?xml version="1.0"?>
-<root>
-some text
-</root>
-Graphic file=../docs/graphic.gif
+Graphic file=graphic.gif
+++ /dev/null
-<font size="+1">
-foo
- </font>
+++ /dev/null
-<?xml version="1.0"?>
-Balance Bluff Climb Diplomacy Escape artist Gather info Hide Jump Listen Move silently Perform Ride Search Sense motive Spot Swim Tumble Use rope
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-version="1.0">
- <xsl:output method="xml" indent="yes"/>
-
-<xsl:template match="character">
- <xsl:apply-templates select="skills"/>
-</xsl:template>
-
-<xsl:template match="skills">
- <xsl:for-each select="*">
- <xsl:value-of select="./@name"/>
- <xsl:text> </xsl:text>
- </xsl:for-each>
-</xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0"?>
-<doc xmlns:fo="http://www.w3.org/1999/XSL/Format">
-
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem1</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem2</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem3</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem4</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem5</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem6</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>
-
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>
-
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>
- </fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.2</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.3</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.4</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.5</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.6</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>
- </fo:list-item-body></fo:list-item>
-
- </fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.2</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.3</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.4</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.5</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.6</fo:list-item-body></fo:list-item>
- <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>
- </fo:list-item-body></fo:list-item>
-
- </fo:list-item-body></fo:list-item>
-
-</doc>
+++ /dev/null
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:fo="http://www.w3.org/1999/XSL/Format">
-
-<xsl:strip-space elements="itemlist"/>
-
-<xsl:template match="doc">
-<doc>
-<xsl:apply-templates/>
-</doc>
-</xsl:template>
-
-<xsl:template match="orderedlist/listitem">
- <fo:list-item indent-start='2pi'>
- <fo:list-item-label>
- <xsl:variable name="level"
- select="count(ancestor::orderedlist) mod 3"/>
- <xsl:choose>
- <xsl:when test='$level=1'>
- <number format="i"/>
- </xsl:when>
- <xsl:when test='$level=2'>
- <number format="a"/>
- </xsl:when>
- <xsl:otherwise>
- <number format="1"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text>. </xsl:text>
- </fo:list-item-label>
- <fo:list-item-body>
- <xsl:apply-templates/>
- </fo:list-item-body>
- </fo:list-item>
-</xsl:template>
-</xsl:stylesheet>
-
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = dates.xml month.xml month.xsl month.out
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running keys tests'
- @(echo > .memdump)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/month.xsl $(srcdir)/dates.xml > month.res ; \
- if [ -r $(srcdir)/month.out ] ; \
- then diff $(srcdir)/month.out month.res ; \
- else mv month.res $(srcdir)/month.out ; fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f month.res)
-
CLEANFILES = .memdump
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
+check-local: $(top_builddir)/xsltproc/xsltproc
@echo '## Running multiple tests'
@(echo > .memdump)
@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/dict.xsl $(srcdir)/dict.xml > dict.res ; \
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- extra.xml extra.xsl extra.out \
- extra2.xml extra2.xsl extra2.out extra2.err\
- tst.xml tst.xsl tst.out \
- tst2.xml tst2.xsl tst2.out \
- tst3.xml tst3.xsl tst3.out \
- tst4.xml tst4.xsl tst4.out \
- tst5.xml tst5.xsl tst5.out \
- tst6.xml tst6.xsl tst6.out \
- tst7.xml tst7.xsl tst7.out \
- tst8.xml tst8.xsl tst8.out \
- tst9.xml tst9.xsl tst9.out
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running namespaces tests'
- @(echo > .memdump)
- -@(for i in $(srcdir)/*.xml ; do \
- if [ -d $$i ] ; then continue ; fi ; \
- doc=`basename $$i .xml` ; \
- j=$(srcdir)/$$doc.xsl ; \
- if [ ! -f $$j ] ; then continue ; fi ; \
- if [ -d $$j ] ; then continue ; fi ; \
- name=`basename $$j .xsl`; \
- out=$(srcdir)/"$$name".out; \
- err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
- > result.$$name 2>err.$$name; \
- if [ ! -f $$out ] ; then \
- cp result.$$name $$out ; \
- if [ -s err.$$name ] ; then \
- cp err.$$name $$err ; \
- fi ; \
- else \
- diff $$out result.$$name; \
- if [ -s $$err ] ; then \
- diff $$err err.$$name; \
- else \
- diff /dev/null err.$$name; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f result.$$name err.$$name; \
- done)
-
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = format-number.xsl format-number.xml format-number.out
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running numbers tests'
- @(echo > .memdump)
- @($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/format-number.xsl $(srcdir)/format-number.xml > format-number.res ; \
- diff $(srcdir)/format-number.out format-number.res ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
- rm -f format-number.res)
-
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = plugin.out plugin.xml plugin.xsl
-
-AM_CPPFLAGS = -I$(top_srcdir) -I../../libxslt
-
-CLEANFILES = *.res
-
-if WITH_MODULES
-
-noinst_LTLIBRARIES = xmlsoft_org_xslt_testplugin.la
-
-# our rpath is a rather unorthodox location as we
-# don't want to pollute $(DESTDIR) with the test plugin
-
-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)
-
-test-logall:
- @echo '## Running plugin tests'
-
-test tests: $(top_builddir)/xsltproc/xsltproc test-logall $(noinst_LTLIBRARIES)
- @LD_LIBRARY_PATH=$(plugindir):$(top_builddir)/libxslt/.libs:$(LD_LIBRARY_PATH) \
- LIBXSLT_PLUGINS_PATH=$(plugindir) \
- $(top_builddir)/xsltproc/xsltproc plugin.xsl plugin.xml > plugin.res
- @diff plugin.out plugin.res
- @rm plugin.res
-
-else
-
-test tests:
- @echo Skipping the plugin tests.
-
-endif
-
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-$(top_builddir)/xsltproc/xsltproc:
- @(cd ../../xsltproc ; $(MAKE) xsltproc)
-
-EXTRA_DIST = \
- cmdlineparams.xml cmdlineparams.xsl cmdlineparams.out \
- tst-1.xml tst-1.xsl tst-1.out tst-1.err \
- tst-2.xml tst-2.xsl tst-2.out tst-2.err \
- undefvar.xml undefvar.xsl undefvar.out undefvar.err \
- recglobparam.xsl recglobvar.xsl reclocparam.xsl reclocvar.xsl \
- recglobparam.xml recglobvar.xml reclocparam.xml reclocvar.xml
-
-CLEANFILES = .memdump
-
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
- @echo '## Running reports tests'
- @(echo > .memdump)
- -@(for i in $(srcdir)/../docs/*.xml ; do \
- if [ -d $$i ] ; then continue ; fi ; \
- doc=`basename $$i .xml` ; \
- for j in $(srcdir)/$$doc*.xsl ; do \
- if [ ! -f $$j ] ; then continue ; fi ; \
- if [ -d $$j ] ; then continue ; fi ; \
- name=`basename $$j .xsl`; \
- out=$(srcdir)/"$$name".out; \
- err=$(srcdir)/"$$name".err; \
- log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
- --stringparam test passed_value \
- --stringparam test2 passed_value2 \
- $$j $$i > result.$$name \
- 2> err.$$name ; \
- if [ ! -f $$out ] ; then \
- cp result.$$name $$out ; \
- if [ -s err.$$name ] ; then \
- cp err.$$name $$err ; \
- fi ; \
- else \
- diff $$out result.$$name; \
- if [ -s $$err ] ; then \
- diff $$err err.$$name; \
- else \
- diff /dev/null err.$$name; \
- fi ; \
- fi ; \
- grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true`;\
- if [ -n "$$log" ] ; then \
- echo $$name result ; \
- echo "$$log" ; \
- fi ; \
- rm -f result.$$name err.$$name; \
- done ; done)
-
runtime error: file ./recglobparam.xsl line 4 element param
Recursive definition of ok
runtime error: file ./recglobparam.xsl line 4 element value-of
-unregistered variable ok
-xmlXPathCompiledEval: evaluation failed
+Variable 'ok' has not been declared.
+XPath error : Undefined variable
runtime error: file ./recglobparam.xsl line 4 element value-of
-xsltValueOf: text copy failed
+XPath evaluation returned no result.
no result for ./recglobparam.xml
runtime error: file ./recglobvar.xsl line 4 element variable
Recursive definition of ok
runtime error: file ./recglobvar.xsl line 4 element value-of
-unregistered variable ok
-xmlXPathCompiledEval: evaluation failed
+Variable 'ok' has not been declared.
+XPath error : Undefined variable
runtime error: file ./recglobvar.xsl line 4 element value-of
-xsltValueOf: text copy failed
+XPath evaluation returned no result.
no result for ./recglobvar.xml
runtime error: file ./reclocparam.xsl line 5 element value-of
-unregistered variable ok
-xmlXPathCompiledEval: evaluation failed
+Variable 'ok' has not been declared.
+XPath error : Undefined variable
runtime error: file ./reclocparam.xsl line 5 element value-of
-xsltValueOf: text copy failed
+XPath evaluation returned no result.
no result for ./reclocparam.xml
runtime error: file ./reclocvar.xsl line 5 element value-of
-unregistered variable ok
-xmlXPathCompiledEval: evaluation failed
+Variable 'ok' has not been declared.
+XPath error : Undefined variable
runtime error: file ./reclocvar.xsl line 5 element value-of
-xsltValueOf: text copy failed
+XPath evaluation returned no result.
no result for ./reclocvar.xml
-compilation error: file ./tst-2.xsl line 2 element text
-misplaced text element: '
+compilation error: file ./tst-2.xsl line 6 element text
+misplaced text node: '
a not allowed top level element
runtime error: file ./undefvar.xsl line 6 element value-of
-unregistered variable one
-xmlXPathCompOpEval: parameter error
-xmlXPathCompiledEval: 1 object left on the stack
+Variable 'one' has not been declared.
+XPath error : Undefined variable
runtime error: file ./undefvar.xsl line 6 element value-of
-xsltValueOf: text copy failed
+XPath evaluation returned no result.
no result for ./undefvar.xml
--- /dev/null
+/*
+ * runtest.c: libxslt test suite
+ *
+ * See Copyright for the status of this software.
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#ifdef _WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
+ #include <io.h>
+#else
+ #include <unistd.h>
+ #include <glob.h>
+#endif
+
+#include <libxml/parser.h>
+#include <libxslt/extensions.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/xsltlocale.h>
+#include <libxslt/xsltutils.h>
+#include <libexslt/exslt.h>
+
+/*
+ * O_BINARY is just for Windows compatibility - if it isn't defined
+ * on this system, avoid any compilation error
+ */
+#ifdef O_BINARY
+#define RD_FLAGS O_RDONLY | O_BINARY
+#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC | O_BINARY
+#else
+#define RD_FLAGS O_RDONLY
+#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC
+#endif
+
+typedef int (*functest) (const char *filename, int options);
+
+typedef struct testDesc testDesc;
+typedef testDesc *testDescPtr;
+struct testDesc {
+ const char *desc; /* description of the test */
+ functest func; /* function implementing the test */
+ const char *dir; /* directory to change to */
+ const char *in; /* glob to path for input files */
+ int options; /* parser options for the test */
+};
+
+static int update_results = 0;
+static char* temp_directory = NULL;
+static int checkTestFile(const char *filename);
+
+#if defined(_WIN32)
+
+typedef struct
+{
+ size_t gl_pathc; /* Count of paths matched so far */
+ char **gl_pathv; /* List of matched pathnames. */
+ size_t gl_offs; /* Slots to reserve in 'gl_pathv'. */
+} glob_t;
+
+#define GLOB_DOOFFS 0
+static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags,
+ ATTRIBUTE_UNUSED int errfunc(const char *epath, int eerrno),
+ glob_t *pglob) {
+ glob_t *ret;
+ WIN32_FIND_DATA FindFileData;
+ HANDLE hFind;
+ unsigned int nb_paths = 0;
+ char directory[500];
+ int len;
+
+ if ((pattern == NULL) || (pglob == NULL)) return(-1);
+
+ strncpy(directory, pattern, 499);
+ for (len = strlen(directory);len >= 0;len--) {
+ if (directory[len] == '/') {
+ len++;
+ directory[len] = 0;
+ break;
+ }
+ }
+ if (len <= 0)
+ len = 0;
+
+
+ ret = pglob;
+ memset(ret, 0, sizeof(glob_t));
+
+ hFind = FindFirstFileA(pattern, &FindFileData);
+ if (hFind == INVALID_HANDLE_VALUE)
+ return(0);
+ nb_paths = 20;
+ ret->gl_pathv = (char **) malloc(nb_paths * sizeof(char *));
+ if (ret->gl_pathv == NULL) {
+ FindClose(hFind);
+ return(-1);
+ }
+ strncpy(directory + len, FindFileData.cFileName, 499 - len);
+ ret->gl_pathv[ret->gl_pathc] = strdup(directory);
+ if (ret->gl_pathv[ret->gl_pathc] == NULL)
+ goto done;
+ ret->gl_pathc++;
+ while(FindNextFileA(hFind, &FindFileData)) {
+ if (FindFileData.cFileName[0] == '.')
+ continue;
+ if (ret->gl_pathc + 2 > nb_paths) {
+ char **tmp = realloc(ret->gl_pathv, nb_paths * 2 * sizeof(char *));
+ if (tmp == NULL)
+ break;
+ ret->gl_pathv = tmp;
+ nb_paths *= 2;
+ }
+ strncpy(directory + len, FindFileData.cFileName, 499 - len);
+ ret->gl_pathv[ret->gl_pathc] = strdup(directory);
+ if (ret->gl_pathv[ret->gl_pathc] == NULL)
+ break;
+ ret->gl_pathc++;
+ }
+ ret->gl_pathv[ret->gl_pathc] = NULL;
+
+done:
+ FindClose(hFind);
+ return(0);
+}
+
+
+
+static void globfree(glob_t *pglob) {
+ unsigned int i;
+ if (pglob == NULL)
+ return;
+
+ for (i = 0;i < pglob->gl_pathc;i++) {
+ if (pglob->gl_pathv[i] != NULL)
+ free(pglob->gl_pathv[i]);
+ }
+}
+
+#endif
+
+/************************************************************************
+ * *
+ * Libxml2 specific routines *
+ * *
+ ************************************************************************/
+
+static int nb_tests = 0;
+static int nb_errors = 0;
+
+static int
+fatalError(void) {
+ fprintf(stderr, "Exiting tests on fatal error\n");
+ exit(1);
+}
+
+/*
+ * Trapping the error messages at the generic level to grab the equivalent of
+ * stderr messages on CLI tools.
+ */
+static char testErrors[32769];
+static int testErrorsSize = 0;
+
+static void XMLCDECL
+testErrorHandler(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) {
+ va_list args;
+ int res;
+
+ if (testErrorsSize >= 32768)
+ return;
+ va_start(args, msg);
+ res = vsnprintf(&testErrors[testErrorsSize],
+ 32768 - testErrorsSize,
+ msg, args);
+ va_end(args);
+ if (testErrorsSize + res >= 32768) {
+ /* buffer is full */
+ testErrorsSize = 32768;
+ testErrors[testErrorsSize] = 0;
+ } else {
+ testErrorsSize += res;
+ }
+ testErrors[testErrorsSize] = 0;
+}
+
+static void XMLCDECL
+channel(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) {
+ va_list args;
+ int res;
+
+ if (testErrorsSize >= 32768)
+ return;
+ va_start(args, msg);
+ res = vsnprintf(&testErrors[testErrorsSize],
+ 32768 - testErrorsSize,
+ msg, args);
+ va_end(args);
+ if (testErrorsSize + res >= 32768) {
+ /* buffer is full */
+ testErrorsSize = 32768;
+ testErrors[testErrorsSize] = 0;
+ } else {
+ testErrorsSize += res;
+ }
+ testErrors[testErrorsSize] = 0;
+}
+
+/**
+ * xmlParserPrintFileContext:
+ * @input: an xmlParserInputPtr input
+ *
+ * Displays current context within the input content for error tracking
+ */
+
+static void
+xmlParserPrintFileContextInternal(xmlParserInputPtr input ,
+ xmlGenericErrorFunc chanl, void *data ) {
+ const xmlChar *cur, *base;
+ unsigned int n, col; /* GCC warns if signed, because compared with sizeof() */
+ xmlChar content[81]; /* space for 80 chars + line terminator */
+ xmlChar *ctnt;
+
+ if (input == NULL) return;
+ cur = input->cur;
+ base = input->base;
+ /* skip backwards over any end-of-lines */
+ while ((cur > base) && ((*(cur) == '\n') || (*(cur) == '\r'))) {
+ cur--;
+ }
+ n = 0;
+ /* search backwards for beginning-of-line (to max buff size) */
+ while ((n++ < (sizeof(content)-1)) && (cur > base) &&
+ (*(cur) != '\n') && (*(cur) != '\r'))
+ cur--;
+ if ((*(cur) == '\n') || (*(cur) == '\r')) cur++;
+ /* calculate the error position in terms of the current position */
+ col = input->cur - cur;
+ /* search forward for end-of-line (to max buff size) */
+ n = 0;
+ ctnt = content;
+ /* copy selected text to our buffer */
+ while ((*cur != 0) && (*(cur) != '\n') &&
+ (*(cur) != '\r') && (n < sizeof(content)-1)) {
+ *ctnt++ = *cur++;
+ n++;
+ }
+ *ctnt = 0;
+ /* print out the selected text */
+ chanl(data ,"%s\n", content);
+ /* create blank line with problem pointer */
+ n = 0;
+ ctnt = content;
+ /* (leave buffer space for pointer + line terminator) */
+ while ((n<col) && (n++ < sizeof(content)-2) && (*ctnt != 0)) {
+ if (*(ctnt) != '\t')
+ *(ctnt) = ' ';
+ ctnt++;
+ }
+ *ctnt++ = '^';
+ *ctnt = 0;
+ chanl(data ,"%s\n", content);
+}
+
+static void
+testStructuredErrorHandler(void *ctx ATTRIBUTE_UNUSED, const xmlError *err) {
+ char *file = NULL;
+ int line = 0;
+ int code = -1;
+ int domain;
+ void *data = NULL;
+ const char *str;
+ const xmlChar *name = NULL;
+ xmlNodePtr node;
+ xmlErrorLevel level;
+ xmlParserInputPtr input = NULL;
+ xmlParserInputPtr cur = NULL;
+ xmlParserCtxtPtr ctxt = NULL;
+
+ if (err == NULL)
+ return;
+
+ file = err->file;
+ line = err->line;
+ code = err->code;
+ domain = err->domain;
+ level = err->level;
+ node = err->node;
+ if ((domain == XML_FROM_PARSER) || (domain == XML_FROM_HTML) ||
+ (domain == XML_FROM_DTD) || (domain == XML_FROM_NAMESPACE) ||
+ (domain == XML_FROM_IO) || (domain == XML_FROM_VALID)) {
+ ctxt = err->ctxt;
+ }
+ str = err->message;
+
+ if (code == XML_ERR_OK)
+ return;
+
+ if ((node != NULL) && (node->type == XML_ELEMENT_NODE))
+ name = node->name;
+
+ /*
+ * Maintain the compatibility with the legacy error handling
+ */
+ if (ctxt != NULL) {
+ input = ctxt->input;
+ if ((input != NULL) && (input->filename == NULL) &&
+ (ctxt->inputNr > 1)) {
+ cur = input;
+ input = ctxt->inputTab[ctxt->inputNr - 2];
+ }
+ if (input != NULL) {
+ if (input->filename)
+ channel(data, "%s:%d: ", input->filename, input->line);
+ else if ((line != 0) && (domain == XML_FROM_PARSER))
+ channel(data, "Entity: line %d: ", input->line);
+ }
+ } else {
+ if (file != NULL)
+ channel(data, "%s:%d: ", file, line);
+ else if ((line != 0) && (domain == XML_FROM_PARSER))
+ channel(data, "Entity: line %d: ", line);
+ }
+ if (name != NULL) {
+ channel(data, "element %s: ", name);
+ }
+ if (code == XML_ERR_OK)
+ return;
+ switch (domain) {
+ case XML_FROM_PARSER:
+ channel(data, "parser ");
+ break;
+ case XML_FROM_NAMESPACE:
+ channel(data, "namespace ");
+ break;
+ case XML_FROM_DTD:
+ case XML_FROM_VALID:
+ channel(data, "validity ");
+ break;
+ case XML_FROM_HTML:
+ channel(data, "HTML parser ");
+ break;
+ case XML_FROM_MEMORY:
+ channel(data, "memory ");
+ break;
+ case XML_FROM_OUTPUT:
+ channel(data, "output ");
+ break;
+ case XML_FROM_IO:
+ channel(data, "I/O ");
+ break;
+ case XML_FROM_XINCLUDE:
+ channel(data, "XInclude ");
+ break;
+ case XML_FROM_XPATH:
+ channel(data, "XPath ");
+ break;
+ case XML_FROM_XPOINTER:
+ channel(data, "parser ");
+ break;
+ case XML_FROM_REGEXP:
+ channel(data, "regexp ");
+ break;
+ case XML_FROM_MODULE:
+ channel(data, "module ");
+ break;
+ case XML_FROM_SCHEMASV:
+ channel(data, "Schemas validity ");
+ break;
+ case XML_FROM_SCHEMASP:
+ channel(data, "Schemas parser ");
+ break;
+ case XML_FROM_RELAXNGP:
+ channel(data, "Relax-NG parser ");
+ break;
+ case XML_FROM_RELAXNGV:
+ channel(data, "Relax-NG validity ");
+ break;
+ case XML_FROM_CATALOG:
+ channel(data, "Catalog ");
+ break;
+ case XML_FROM_C14N:
+ channel(data, "C14N ");
+ break;
+ case XML_FROM_XSLT:
+ channel(data, "XSLT ");
+ break;
+ default:
+ break;
+ }
+ if (code == XML_ERR_OK)
+ return;
+ switch (level) {
+ case XML_ERR_NONE:
+ channel(data, ": ");
+ break;
+ case XML_ERR_WARNING:
+ channel(data, "warning : ");
+ break;
+ case XML_ERR_ERROR:
+ channel(data, "error : ");
+ break;
+ case XML_ERR_FATAL:
+ channel(data, "error : ");
+ break;
+ }
+ if (code == XML_ERR_OK)
+ return;
+ if (str != NULL) {
+ int len;
+ len = xmlStrlen((const xmlChar *)str);
+ if ((len > 0) && (str[len - 1] != '\n'))
+ channel(data, "%s\n", str);
+ else
+ channel(data, "%s", str);
+ } else {
+ channel(data, "%s\n", "out of memory error");
+ }
+ if (code == XML_ERR_OK)
+ return;
+
+ if (ctxt != NULL) {
+ xmlParserPrintFileContextInternal(input, channel, data);
+ if (cur != NULL) {
+ if (cur->filename)
+ channel(data, "%s:%d: \n", cur->filename, cur->line);
+ else if ((line != 0) && (domain == XML_FROM_PARSER))
+ channel(data, "Entity: line %d: \n", cur->line);
+ xmlParserPrintFileContextInternal(cur, channel, data);
+ }
+ }
+ if ((domain == XML_FROM_XPATH) && (err->str1 != NULL) &&
+ (err->int1 < 100) &&
+ (err->int1 < xmlStrlen((const xmlChar *)err->str1))) {
+ xmlChar buf[150];
+ int i;
+
+ channel(data, "%s\n", err->str1);
+ for (i=0;i < err->int1;i++)
+ buf[i] = ' ';
+ buf[i++] = '^';
+ buf[i] = 0;
+ channel(data, "%s\n", buf);
+ }
+}
+
+static void
+initializeLibxml2(void) {
+ xmlInitParser();
+ xmlSetExternalEntityLoader(xmlNoNetExternalEntityLoader);
+ xmlSetGenericErrorFunc(NULL, testErrorHandler);
+ xsltSetGenericErrorFunc(NULL, testErrorHandler);
+ xmlSetStructuredErrorFunc(NULL, testStructuredErrorHandler);
+ exsltRegisterAll();
+ xsltRegisterTestModule();
+ xsltMaxDepth = 200;
+}
+
+
+/************************************************************************
+ * *
+ * File name and path utilities *
+ * *
+ ************************************************************************/
+
+static char *
+changeSuffix(const char *filename, const char *suffix) {
+ const char *dot;
+ char *ret;
+ char res[500];
+ int baseLen;
+
+ dot = strrchr(filename, '.');
+ baseLen = dot ? dot - filename : (int) strlen(filename);
+ snprintf(res, sizeof(res), "%.*s%s", baseLen, filename, suffix);
+
+ ret = strdup(res);
+ if (ret == NULL) {
+ fprintf(stderr, "strdup failed\n");
+ fatalError();
+ }
+
+ return(ret);
+}
+
+static int
+checkTestFile(const char *filename) {
+ struct stat buf;
+
+ if (stat(filename, &buf) == -1)
+ return(0);
+
+#if defined(_WIN32)
+ if (!(buf.st_mode & _S_IFREG))
+ return(0);
+#else
+ if (!S_ISREG(buf.st_mode))
+ return(0);
+#endif
+
+ return(1);
+}
+
+static int compareFileMem(const char *filename, const char *mem, int size) {
+ int res;
+ int fd;
+ char bytes[4096];
+ int idx = 0;
+ struct stat info;
+
+ if (update_results) {
+ if (size == 0) {
+ unlink(filename);
+ return(0);
+ }
+ fd = open(filename, WR_FLAGS, 0644);
+ if (fd < 0) {
+ fprintf(stderr, "failed to open %s for writing", filename);
+ return(-1);
+ }
+ res = write(fd, mem, size);
+ close(fd);
+ return(res != size);
+ }
+
+ if (stat(filename, &info) < 0) {
+ if (size == 0)
+ return(0);
+ fprintf(stderr, "failed to stat %s\n", filename);
+ return(-1);
+ }
+ if (info.st_size != size) {
+ fprintf(stderr, "file %s is %ld bytes, result is %d bytes\n",
+ filename, (long) info.st_size, size);
+ return(-1);
+ }
+ fd = open(filename, RD_FLAGS);
+ if (fd < 0) {
+ fprintf(stderr, "failed to open %s for reading", filename);
+ return(-1);
+ }
+ while (idx < size) {
+ res = read(fd, bytes, 4096);
+ if (res <= 0)
+ break;
+ if (res + idx > size)
+ break;
+ if (memcmp(bytes, &mem[idx], res) != 0) {
+ int ix;
+ for (ix=0; ix<res; ix++)
+ if (bytes[ix] != mem[idx+ix])
+ break;
+ fprintf(stderr,"Compare error at position %d\n", idx+ix);
+ close(fd);
+ return(1);
+ }
+ idx += res;
+ }
+ close(fd);
+ if (idx != size) {
+ fprintf(stderr,"Compare error index %d, size %d\n", idx, size);
+ }
+ return(idx != size);
+}
+
+/************************************************************************
+ * *
+ * Tests implementations *
+ * *
+ ************************************************************************/
+
+/************************************************************************
+ * *
+ * XSLT tests *
+ * *
+ ************************************************************************/
+
+static int
+xsltTest(const char *filename, int options) {
+ xsltStylesheetPtr style;
+ xmlDocPtr styleDoc, doc = NULL, outDoc;
+ xmlChar *out = NULL;
+ const char *outSuffix, *errSuffix;
+ char *docFilename, *outFilename, *errFilename;
+ int outSize = 0;
+ int res;
+ int ret = 0;
+
+ if (strcmp(filename, "./test-10-3.xsl") == 0) {
+ void *locale = xsltNewLocale(BAD_CAST "de", 0);
+ /* Skip test requiring "de" locale */
+ if (locale == NULL)
+ return(0);
+ xsltFreeLocale(locale);
+ }
+
+ styleDoc = xmlReadFile(filename, NULL, XSLT_PARSE_OPTIONS | options);
+ style = xsltLoadStylesheetPI(styleDoc);
+ if (style != NULL) {
+ /* Standalone stylesheet */
+ doc = styleDoc;
+ docFilename = strdup(filename);
+
+ outSuffix = ".stand.out";
+ errSuffix = ".stand.err";
+ } else {
+ docFilename = changeSuffix(filename, ".xml");
+ if (!checkTestFile(docFilename)) {
+ xmlFreeDoc(styleDoc);
+ goto out;
+ }
+ style = xsltParseStylesheetDoc(styleDoc);
+ if (style == NULL) {
+ xmlFreeDoc(styleDoc);
+ } else {
+ doc = xmlReadFile(docFilename, NULL, XSLT_PARSE_OPTIONS | options);
+ }
+
+ outSuffix = ".out";
+ errSuffix = ".err";
+ }
+
+ if (style != NULL) {
+ const char *params[] = {
+ "test", "'passed_value'",
+ "test2", "'passed_value2'",
+ NULL
+ };
+
+ outDoc = xsltApplyStylesheet(style, doc, params);
+ if (outDoc == NULL) {
+ /* xsltproc compat */
+ channel(NULL, "no result for %s\n", docFilename);
+ } else {
+ xsltSaveResultToString(&out, &outSize, outDoc, style);
+ xmlFreeDoc(outDoc);
+ }
+ xsltFreeStylesheet(style);
+ }
+ xmlFreeDoc(doc);
+
+ outFilename = changeSuffix(filename, outSuffix);
+ res = compareFileMem(outFilename, (char *) out, outSize);
+ if (res != 0) {
+ fprintf(stderr, "Result for %s failed\n", filename);
+ /* printf("####\n%s####\n", out); */
+ ret = -1;
+ }
+ free(outFilename);
+ xmlFree(out);
+
+ errFilename = changeSuffix(filename, errSuffix);
+ res = compareFileMem(errFilename, testErrors, testErrorsSize);
+ if (res != 0) {
+ fprintf(stderr, "Error for %s failed\n", filename);
+ /* printf("####\n%s####\n", testErrors); */
+ ret = -1;
+ }
+ free(errFilename);
+
+out:
+ free(docFilename);
+ return(ret);
+}
+
+/************************************************************************
+ * *
+ * Tests Descriptions *
+ * *
+ ************************************************************************/
+
+static
+testDesc testDescriptions[] = {
+ { "REC2 tests",
+ xsltTest, "REC2", "./*.xsl", 0 },
+ { "REC tests",
+ xsltTest, "REC", "./*.xsl", 0 },
+ { "REC tests (standalone)",
+ xsltTest, "REC", "./stand*.xml", 0 },
+ { "REC tests without dictionaries",
+ xsltTest, "REC", "./*.xsl", XML_PARSE_NODICT },
+ { "REC tests without dictionaries (standalone)",
+ xsltTest, "REC", "./stand*.xml", XML_PARSE_NODICT },
+ { "general tests",
+ xsltTest, "general", "./*.xsl", 0 },
+ { "general tests without dictionaries",
+ xsltTest, "general", "./*.xsl", XML_PARSE_NODICT },
+#if defined(LIBXML_ICONV_ENABLED) || defined(LIBXML_ICU_ENABLED)
+ { "encoding tests",
+ xsltTest, "encoding", "./*.xsl", 0 },
+#endif
+ { "documents tests",
+ xsltTest, "documents", "./*.xsl", 0 },
+ { "numbers tests",
+ xsltTest, "numbers", "./*.xsl", 0 },
+ { "keys tests",
+ xsltTest, "keys", "./*.xsl", 0 },
+ { "namespaces tests",
+ xsltTest, "namespaces", "./*.xsl", 0 },
+ { "extensions tests",
+ xsltTest, "extensions", "./*.xsl", 0 },
+ { "reports tests",
+ xsltTest, "reports", "./*.xsl", 0 },
+ { "exslt common tests",
+ xsltTest, "exslt/common", "./*.xsl", 0 },
+#if defined(EXSLT_CRYPTO_ENABLED) && !defined(_WIN32)
+ { "exslt crypto tests",
+ xsltTest, "exslt/crypto", "./*.xsl", 0 },
+#endif
+ { "exslt date tests",
+ xsltTest, "exslt/date", "./*.xsl", 0 },
+ { "exslt dynamic tests",
+ xsltTest, "exslt/dynamic", "./*.xsl", 0 },
+ { "exslt functions tests",
+ xsltTest, "exslt/functions", "./*.xsl", 0 },
+ { "exslt math tests",
+ xsltTest, "exslt/math", "./*.xsl", 0 },
+ { "exslt saxon tests",
+ xsltTest, "exslt/saxon", "./*.xsl", 0 },
+ { "exslt sets tests",
+ xsltTest, "exslt/sets", "./*.xsl", 0 },
+ { "exslt strings tests",
+ xsltTest, "exslt/strings", "./*.xsl", 0 },
+#ifdef LIBXSLT_DEFAULT_PLUGINS_PATH
+ { "plugin tests",
+ xsltTest, "plugins", "./*.xsl", 0 },
+#endif
+ {NULL, NULL, NULL, NULL, 0}
+};
+
+/************************************************************************
+ * *
+ * The main code driving the tests *
+ * *
+ ************************************************************************/
+
+static int
+launchTests(testDescPtr tst) {
+ int res = 0, err = 0;
+ size_t i;
+ char oldDir[500] = {0};
+
+ if (tst->dir) {
+ if (getcwd(oldDir, sizeof(oldDir)) == NULL) {
+ fprintf(stderr, "Can't can't get current directory\n");
+ nb_errors++;
+ return(1);
+ }
+ if (chdir(tst->dir) < 0) {
+ fprintf(stderr, "Can't change directory to %s\n", tst->dir);
+ nb_errors++;
+ return(1);
+ }
+ }
+
+ if (tst->in != NULL) {
+ glob_t globbuf;
+
+ globbuf.gl_offs = 0;
+ glob(tst->in, GLOB_DOOFFS, NULL, &globbuf);
+ for (i = 0;i < globbuf.gl_pathc;i++) {
+ testErrorsSize = 0;
+ testErrors[0] = 0;
+ nb_tests++;
+ res = tst->func(globbuf.gl_pathv[i], tst->options);
+ xmlResetLastError();
+ if (res != 0) {
+ fprintf(stderr, "File %s generated an error\n",
+ globbuf.gl_pathv[i]);
+ nb_errors++;
+ err++;
+ }
+ testErrorsSize = 0;
+ }
+ globfree(&globbuf);
+ } else {
+ testErrorsSize = 0;
+ testErrors[0] = 0;
+ nb_tests++;
+ res = tst->func(NULL, tst->options);
+ if (res != 0) {
+ nb_errors++;
+ err++;
+ }
+ }
+
+ if (oldDir[0] && chdir(oldDir) < 0) {
+ fprintf(stderr, "Can't change directory to %s\n", oldDir);
+ nb_errors++;
+ err++;
+ }
+
+ return(err);
+}
+
+static int verbose = 0;
+static int tests_quiet = 0;
+
+static int
+runtest(int i) {
+ int ret = 0, res;
+ int old_errors, old_tests;
+
+ old_errors = nb_errors;
+ old_tests = nb_tests;
+ if ((tests_quiet == 0) && (testDescriptions[i].desc != NULL))
+ printf("## Running %s\n", testDescriptions[i].desc);
+ res = launchTests(&testDescriptions[i]);
+ if (res != 0)
+ ret++;
+ if (verbose) {
+ if (nb_errors == old_errors)
+ printf("Ran %d tests, no errors\n", nb_tests - old_tests);
+ else
+ printf("Ran %d tests, %d errors\n",
+ nb_tests - old_tests,
+ nb_errors - old_errors);
+ }
+ return(ret);
+}
+
+int
+main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
+ int i, a, ret = 0;
+ int subset = 0;
+
+#if defined(_WIN32)
+ setvbuf(stdout, NULL, _IONBF, 0);
+ setvbuf(stderr, NULL, _IONBF, 0);
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 && _MSC_VER < 1900
+ _set_output_format(_TWO_DIGIT_EXPONENT);
+#endif
+
+ initializeLibxml2();
+
+ for (a = 1; a < argc;a++) {
+ if (!strcmp(argv[a], "-v"))
+ verbose = 1;
+ else if (!strcmp(argv[a], "-u"))
+ update_results = 1;
+ else if (!strcmp(argv[a], "-quiet"))
+ tests_quiet = 1;
+ else if (!strcmp(argv[a], "--out"))
+ temp_directory = argv[++a];
+ else {
+ for (i = 0; testDescriptions[i].func != NULL; i++) {
+ if (strstr(testDescriptions[i].desc, argv[a])) {
+ ret += runtest(i);
+ subset++;
+ }
+ }
+ }
+ }
+ if (subset == 0) {
+ for (i = 0; testDescriptions[i].func != NULL; i++) {
+ ret += runtest(i);
+ }
+ }
+ if (nb_errors == 0) {
+ ret = 0;
+ printf("Total %d tests, no errors\n",
+ nb_tests);
+ } else {
+ ret = 1;
+ printf("Total %d tests, %d errors\n",
+ nb_tests, nb_errors);
+ }
+ xmlCleanupParser();
+
+ return(ret);
+}
CLEANFILES = .memdump
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
+check-local: $(top_builddir)/xsltproc/xsltproc
@echo '## Running XInclude test'
@(echo > .memdump)
@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/e.xsl $(srcdir)/e.xml > res ; \
CLEANFILES = .memdump debug
-valgrind:
- @echo '## Running the regression tests under Valgrind'
- $(MAKE) CHECKER='libtool --mode=execute valgrind -q --leak-check=full' tests
-
-test tests: $(top_builddir)/xsltproc/xsltproc
+check-local: $(top_builddir)/xsltproc/xsltproc
@echo '## Running xmlspec tests'
@(echo > .memdump)
@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc -timing \
XSLT_BASENAME = lib$(XSLT_NAME)
XSLT_SO = $(XSLT_BASENAME).dll
XSLT_IMP = $(XSLT_BASENAME).lib
-XSLT_DEF = $(XSLT_BASENAME).def
XSLT_A = $(XSLT_BASENAME)_a.lib
EXSLT_NAME = exslt
EXSLT_BASENAME = lib$(EXSLT_NAME)
EXSLT_SO = $(EXSLT_BASENAME).dll
EXSLT_IMP = $(EXSLT_BASENAME).lib
-EXSLT_DEF = $(EXSLT_BASENAME).def
EXSLT_A = $(EXSLT_BASENAME)_a.lib
# Places where intermediate files produced by the compiler go
# Compiles static libxslt source. Uses the implicit rule for commands.
$(XSLT_OBJS_A) : $(XSLT_INTDIR_A)
-# Creates the export definition file (DEF) for libxslt.
-$(XSLT_INTDIR)\$(XSLT_DEF) : $(XSLT_INTDIR) $(XSLT_DEF).src
- $(CPP) $(CPPFLAGS) $(XSLT_DEF).src > $(XSLT_INTDIR)\$(XSLT_DEF)
-
# Creates the libxslt shared object.
-$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF)
+$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS)
$(LD) $(LDFLAGS) /DLL \
/VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \
/IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \
$(XSLT_OBJS) $(LIBS) libxml2.lib
@$(_VC_MANIFEST_EMBED_DLL)
-#$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF)
-# $(LD) $(LDFLAGS) /DLL /DEF:$(XSLT_INTDIR)\$(XSLT_DEF) \
-# /VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \
-# /IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \
-# $(XSLT_OBJS) $(LIBS) libxml2.lib
-
# Creates the libxslt archive.
$(BINDIR)\$(XSLT_A) : $(BINDIR) $(XSLT_OBJS_A)
$(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XSLT_A) $(XSLT_OBJS_A)
# Compiles libxslt source. Uses the implicit rule for commands.
$(EXSLT_OBJS_A) : $(EXSLT_INTDIR_A)
-# Creates the export definition file (DEF) for libxslt.
-$(EXSLT_INTDIR)\$(EXSLT_DEF) : $(EXSLT_INTDIR) $(EXSLT_DEF).src
- $(CPP) $(CPPFLAGS) $(EXSLT_DEF).src > $(EXSLT_INTDIR)\$(EXSLT_DEF)
-
# Creates the libexslt shared object.
-$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt
+$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) libxslt
$(LD) $(LDFLAGS) /DLL \
/VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \
/IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \
$(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib
@$(_VC_MANIFEST_EMBED_DLL)
-#$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt
-# $(LD) $(LDFLAGS) /DLL /DEF:$(EXSLT_INTDIR)\$(EXSLT_DEF) \
-# /VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \
-# /IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \
-# $(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib
-
# Creates the libexslt archive.
$(BINDIR)\$(EXSLT_A) : $(BINDIR) $(EXSLT_OBJS_A) libxslta
$(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(EXSLT_A) $(EXSLT_OBJS_A)
then you really should do an automatic configuration. Which files must
be generated and what needs to be done with their sources in order to
generate them is something people who have built this software before
-allready know. You will not find any explanations for that
-here. Please configure the source manually only if you allready know
+already know. You will not find any explanations for that
+here. Please configure the source manually only if you already know
what you must do. Otherwise, you have the choice of either getting a
precompiled binary distribution, or performing the automatic
configuration.
the software. You will have to use the make tool which comes with
your compiler. If you, for example, configured the source to build
with Microsoft's MSVC compiler, you would use the NMAKE utility. If
-ýou configured it to build with GNU C compiler, mingw edition, you
+you configured it to build with GNU C compiler, mingw edition, you
would use the GNU make. Assuming you use MSVC, type
nmake
var verMajorExslt;
var verMinorExslt;
var verMicroExslt;
+var verLibxmlReq;
var verCvs;
var useCvsVer = true;
/* Libxslt features. */
var withCrypto = true;
var withModules = false;
var withProfiler = true;
+var withPython = false;
/* Win32 build options. */
var dirSep = "\\";
var compiler = "msvc";
txt += " crypto: Enable Crypto support (" + (withCrypto? "yes" : "no") + ")\n";
txt += " modules: Enable Module support (" + (withModules? "yes" : "no") + ")\n";
txt += " profiler: Enable Profiler support (" + (withProfiler? "yes" : "no") + ")\n";
+ txt += " python: Build Python bindings (" + (withPython? "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";
} else if(s.search(/^LIBEXSLT_MICRO_VERSION=/) != -1) {
vf.WriteLine(s);
verMicroExslt = s.substring(s.indexOf("=") + 1, s.length);
+ } else if(s.search(/^LIBXML_REQUIRED_VERSION=/) != -1) {
+ vf.WriteLine(s);
+ verLibxmlReq = s.substring(s.indexOf("=") + 1, s.length);
}
}
cf.Close();
vf.WriteLine("WITH_CRYPTO=" + (withCrypto? "1" : "0"));
vf.WriteLine("WITH_MODULES=" + (withModules? "1" : "0"));
vf.WriteLine("WITH_PROFILER=" + (withProfiler? "1" : "0"));
+ vf.WriteLine("WITH_PYTHON=" + (withPython? "1" : "0"));
vf.WriteLine("DEBUG=" + (buildDebug? "1" : "0"));
vf.WriteLine("STATIC=" + (buildStatic? "1" : "0"));
vf.WriteLine("PREFIX=" + buildPrefix);
of.Close();
}
+/* Configures Python bindings. Otherwise identical to the above */
+function configureLibxsltPy()
+{
+ var pyOptsFileIn = baseDir + "\\python\\setup.py.in";
+ var pyOptsFile = baseDir + "\\python\\setup.py";
+ var fso, ofi, of, ln, s;
+ fso = new ActiveXObject("Scripting.FileSystemObject");
+ ofi = fso.OpenTextFile(pyOptsFileIn, 1);
+ of = fso.CreateTextFile(pyOptsFile, true);
+ while (ofi.AtEndOfStream != true) {
+ ln = ofi.ReadLine();
+ s = new String(ln);
+ if (s.search(/\@VERSION\@/) != -1) {
+ of.WriteLine(s.replace(/\@VERSION\@/,
+ verMajorXslt + "." + verMinorXslt + "." + verMicroXslt));
+ } else if (s.search(/\@prefix\@/) != -1) {
+ of.WriteLine(s.replace(/\@prefix\@/, buildPrefix));
+ } else if (s.search(/\@LIBXSLT_VERSION_NUMBER\@/) != -1) {
+ of.WriteLine(s.replace(/\@LIBXSLT_VERSION_NUMBER\@/,
+ verMajorXslt*10000 + verMinorXslt*100 + verMicroXslt*1));
+ } else if (s.search(/\@LIBXSLT_VERSION_EXTRA\@/) != -1) {
+ of.WriteLine(s.replace(/\@LIBXSLT_VERSION_EXTRA\@/, verCvs));
+ } else if (s.search(/\@WITH_TRIO\@/) != -1) {
+ of.WriteLine(s.replace(/\@WITH_TRIO\@/, withTrio? "1" : "0"));
+ } else if (s.search(/\@WITH_XSLT_DEBUG\@/) != -1) {
+ of.WriteLine(s.replace(/\@WITH_XSLT_DEBUG\@/, withXsltDebug? "1" : "0"));
+ } else if (s.search(/\@WITH_MEM_DEBUG\@/) != -1) {
+ of.WriteLine(s.replace(/\@WITH_MEM_DEBUG\@/, withMemDebug? "1" : "0"));
+ } else if (s.search(/\@WITH_DEBUGGER\@/) != -1) {
+ 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(/\@WITH_PROFILER\@/) != -1) {
+ of.WriteLine(s.replace(/\@WITH_PROFILER\@/, withProfiler? "1" : "0"));
+ } else if (s.search(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/) != -1) {
+ of.WriteLine(s.replace(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/, "NULL"));
+ } else if (s.search(/\@LIBXML_REQUIRED_VERSION\@/) != -1) {
+ of.WriteLine(s.replace(/\@LIBXML_REQUIRED_VERSION\@/, verLibxmlReq));
+ } else
+ of.WriteLine(ln);
+ }
+ ofi.Close();
+ of.Close();
+}
+
/* Creates the readme file for the binary distribution of 'bname', for the
version 'ver' in the file 'file'. This one is called from the Makefile when
generating a binary distribution. The parameters are passed by make. */
withModules = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "profiler")
withProfiler = strToBool(arg.substring(opt.length + 1, arg.length));
+ else if (opt == "python")
+ withPython = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "compiler")
compiler = arg.substring(opt.length + 1, arg.length);
else if (opt == "cruntime")
WScript.Quit(error);
}
+if (withPython == true) {
+ configureLibxsltPy();
+ if (error != 0) {
+ WScript.Echo("Configuration failed, aborting.");
+ WScript.Quit(error);
+ }
+
+}
+
// Configure libexslt.
configureExslt();
if (error != 0) {
txtOut += " Crypto: " + boolToStr(withCrypto) + "\n";
txtOut += " Modules: " + boolToStr(withModules) + "\n";
txtOut += " Profiler: " + boolToStr(withProfiler) + "\n";
+txtOut += " Python bindings: " + boolToStr(withPython) + "\n";
txtOut += "\n";
txtOut += "Win32 build configuration\n";
txtOut += "-------------------------\n";
+++ /dev/null
-<?xml version="1.0"?>
-<!--
- win32/defgen.xsl
- This stylesheet is used to transform doc/lib[e]xslt-api.xml into a pseudo-source,
- which can then be preprocessed to get the .DEF file for the Microsoft's linker.
-
- Use any XSLT processor to produce a file called lib[e]xslt.def.src in the win32
- subdirectory, for example, run xsltproc from the win32 subdirectory:
-
- xsltproc -o libxslt.def.src defgen.xsl ../doc/libxslt-api.xml
- xsltproc -o libexslt.def.src defgen.xsl ../doc/libexslt-api.xml
-
- Once that finishes, rest assured, the Makefile will know what to do with the
- generated file.
-
- May 2003, Igor Zlatkovic <igor@zlatkovic.com>
--->
-<!DOCTYPE xsl:stylesheet [ <!ENTITY nl '
'> ]>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:strip-space elements="*"/>
- <xsl:output method="text"/>
- <xsl:template match="/">
- <xsl:text>LIBRARY </xsl:text>
- <xsl:value-of select="/api/@name"/>
- <xsl:text>&nl;</xsl:text>
- <xsl:text>EXPORTS&nl;</xsl:text>
- <xsl:for-each select="/api/symbols/*[self::variable or self::function]">
- <xsl:if test="@name='xsltExtFunctionLookup' or
- @name='xsltMatchPattern'">
- <xsl:text>/*</xsl:text>
- </xsl:if>
- <xsl:value-of select="@name"/>
- <xsl:if test="self::variable">
- <xsl:text> DATA</xsl:text>
- </xsl:if>
- <xsl:if test="@name='xsltExtFunctionLookup' or
- @name='xsltMatchPattern'">
- <xsl:text>*/</xsl:text>
- </xsl:if>
- <xsl:text>&nl;</xsl:text>
- </xsl:for-each>
- </xsl:template>
-</xsl:stylesheet>
-
+++ /dev/null
-LIBRARY libexslt
-EXPORTS
-exsltLibexsltVersion DATA
-exsltLibraryVersion DATA
-exsltLibxmlVersion DATA
-exsltLibxsltVersion DATA
-exsltCommonRegister
-exsltCryptoRegister
-exsltDateRegister
-exsltDateXpathCtxtRegister
-exsltDynRegister
-exsltFuncRegister
-exsltMathRegister
-exsltMathXpathCtxtRegister
-exsltRegisterAll
-exsltSaxonRegister
-exsltSetsRegister
-exsltSetsXpathCtxtRegister
-exsltStrRegister
-exsltStrXpathCtxtRegister
+++ /dev/null
-LIBRARY libxslt
-EXPORTS
-xslDebugStatus DATA
-xsltConstNamespaceNameXSLT DATA
-xsltDocDefaultLoader DATA
-xsltEngineVersion DATA
-xsltExtMarker DATA
-xsltGenericDebug DATA
-xsltGenericDebugContext DATA
-xsltGenericError DATA
-xsltGenericErrorContext DATA
-xsltLibxmlVersion DATA
-xsltLibxsltVersion DATA
-xsltMaxDepth DATA
-xsltMaxVars DATA
-xsltXSLTAttrMarker DATA
-xslAddCall
-xslDropCall
-xslHandleDebugger
-xsltAddKey
-xsltAddStackElemList
-xsltAddTemplate
-xsltAllocateExtra
-xsltAllocateExtraCtxt
-xsltApplyAttributeSet
-xsltApplyImports
-xsltApplyOneTemplate
-xsltApplyStripSpaces
-xsltApplyStylesheet
-xsltApplyStylesheetUser
-xsltApplyTemplates
-xsltAttrListTemplateProcess
-xsltAttrTemplateProcess
-xsltAttrTemplateValueProcess
-xsltAttrTemplateValueProcessNode
-xsltAttribute
-xsltCalibrateAdjust
-xsltCallTemplate
-xsltCheckExtPrefix
-xsltCheckExtURI
-xsltCheckRead
-xsltCheckWrite
-xsltChoose
-xsltCleanupGlobals
-xsltCleanupTemplates
-xsltComment
-xsltCompMatchClearCache
-xsltCompileAttr
-xsltCompilePattern
-xsltComputeSortResult
-xsltCopy
-xsltCopyNamespace
-xsltCopyNamespaceList
-xsltCopyOf
-xsltCopyTextString
-xsltCreateRVT
-xsltDebug
-xsltDebugDumpExtensions
-xsltDebugGetDefaultTrace
-xsltDebugSetDefaultTrace
-xsltDecimalFormatGetByName
-xsltDecimalFormatGetByQName
-xsltDefaultSortFunction
-xsltDoSortFunction
-xsltDocumentComp
-xsltDocumentElem
-xsltDocumentFunction
-xsltDocumentSortFunction
-xsltElement
-xsltElementAvailableFunction
-xsltEvalAVT
-xsltEvalAttrValueTemplate
-xsltEvalGlobalVariables
-xsltEvalOneUserParam
-xsltEvalStaticAttrValueTemplate
-xsltEvalTemplateString
-xsltEvalUserParams
-xsltEvalXPathPredicate
-xsltEvalXPathString
-xsltEvalXPathStringNs
-xsltExtElementLookup
-xsltExtModuleElementLookup
-xsltExtModuleElementPreComputeLookup
-xsltExtModuleFunctionLookup
-xsltExtModuleTopLevelLookup
-xsltExtensionInstructionResultFinalize
-xsltExtensionInstructionResultRegister
-xsltFindDocument
-xsltFindElemSpaceHandling
-xsltFindTemplate
-xsltFlagRVTs
-xsltForEach
-xsltFormatNumberConversion
-xsltFormatNumberFunction
-xsltFreeAVTList
-xsltFreeAttributeSetsHashes
-xsltFreeCompMatchList
-xsltFreeCtxtExts
-xsltFreeDocumentKeys
-xsltFreeDocuments
-xsltFreeExts
-xsltFreeGlobalVariables
-xsltFreeKeys
-xsltFreeLocale
-xsltFreeLocales
-xsltFreeNamespaceAliasHashes
-xsltFreeRVTs
-xsltFreeSecurityPrefs
-xsltFreeStackElemList
-xsltFreeStyleDocuments
-xsltFreeStylePreComps
-xsltFreeStylesheet
-xsltFreeTemplateHashes
-xsltFreeTransformContext
-xsltFunctionAvailableFunction
-xsltFunctionNodeSet
-xsltGenerateIdFunction
-xsltGetCNsProp
-xsltGetDebuggerStatus
-xsltGetDefaultSecurityPrefs
-xsltGetExtData
-xsltGetExtInfo
-xsltGetKey
-xsltGetNamespace
-xsltGetNsProp
-xsltGetPlainNamespace
-xsltGetProfileInformation
-xsltGetQNameURI
-xsltGetQNameURI2
-xsltGetSecurityPrefs
-xsltGetSpecialNamespace
-xsltGetTemplate
-xsltGetUTF8Char
-xsltGetXIncludeDefault
-xsltIf
-xsltInit
-xsltInitAllDocKeys
-xsltInitCtxtExts
-xsltInitCtxtKey
-xsltInitCtxtKeys
-xsltInitElemPreComp
-xsltInitGlobals
-xsltIsBlank
-xsltKeyFunction
-xsltLoadDocument
-xsltLoadStyleDocument
-xsltLoadStylesheetPI
-xsltLocalVariablePop
-xsltLocalVariablePush
-xsltLocaleStrcmp
-/*xsltMatchPattern*/
-xsltMessage
-xsltNamespaceAlias
-xsltNeedElemSpaceHandling
-xsltNewDocument
-xsltNewElemPreComp
-xsltNewLocale
-xsltNewSecurityPrefs
-xsltNewStyleDocument
-xsltNewStylesheet
-xsltNewTransformContext
-xsltNextImport
-xsltNormalizeCompSteps
-xsltNumber
-xsltNumberFormat
-xsltParseAnyXSLTElem
-xsltParseGlobalParam
-xsltParseGlobalVariable
-xsltParseSequenceConstructor
-xsltParseStylesheetAttributeSet
-xsltParseStylesheetCallerParam
-xsltParseStylesheetDoc
-xsltParseStylesheetFile
-xsltParseStylesheetImport
-xsltParseStylesheetImportedDoc
-xsltParseStylesheetInclude
-xsltParseStylesheetOutput
-xsltParseStylesheetParam
-xsltParseStylesheetProcess
-xsltParseStylesheetUser
-xsltParseStylesheetVariable
-xsltParseTemplateContent
-xsltPointerListAddSize
-xsltPointerListClear
-xsltPointerListCreate
-xsltPointerListFree
-xsltPreComputeExtModuleElement
-xsltPrintErrorContext
-xsltProcessOneNode
-xsltProcessingInstruction
-xsltProfileStylesheet
-xsltQuoteOneUserParam
-xsltQuoteUserParams
-xsltRegisterAllElement
-xsltRegisterAllExtras
-xsltRegisterAllFunctions
-xsltRegisterExtElement
-xsltRegisterExtFunction
-xsltRegisterExtModule
-xsltRegisterExtModuleElement
-xsltRegisterExtModuleFull
-xsltRegisterExtModuleFunction
-xsltRegisterExtModuleTopLevel
-xsltRegisterExtPrefix
-xsltRegisterExtras
-xsltRegisterLocalRVT
-xsltRegisterPersistRVT
-xsltRegisterTestModule
-xsltRegisterTmpRVT
-xsltReleaseRVT
-xsltResolveStylesheetAttributeSet
-xsltRestoreDocumentNamespaces
-xsltRunStylesheet
-xsltRunStylesheetUser
-xsltSaveProfiling
-xsltSaveResultTo
-xsltSaveResultToFd
-xsltSaveResultToFile
-xsltSaveResultToFilename
-xsltSaveResultToString
-xsltSecurityAllow
-xsltSecurityForbid
-xsltSetCtxtParseOptions
-xsltSetCtxtSecurityPrefs
-xsltSetCtxtSortFunc
-xsltSetDebuggerCallbacks
-xsltSetDebuggerStatus
-xsltSetDefaultSecurityPrefs
-xsltSetGenericDebugFunc
-xsltSetGenericErrorFunc
-xsltSetLoaderFunc
-xsltSetSecurityPrefs
-xsltSetSortFunc
-xsltSetTransformErrorFunc
-xsltSetXIncludeDefault
-xsltShutdownCtxtExts
-xsltShutdownExts
-xsltSort
-xsltSplitQName
-xsltStrxfrm
-xsltStyleGetExtData
-xsltStylePreCompute
-xsltStyleStylesheetLevelGetExtData
-xsltSystemPropertyFunction
-xsltTemplateProcess
-xsltTestCompMatchList
-xsltText
-xsltTimestamp
-xsltTransformError
-xsltUninit
-xsltUnparsedEntityURIFunction
-xsltUnregisterExtModule
-xsltUnregisterExtModuleElement
-xsltUnregisterExtModuleFunction
-xsltUnregisterExtModuleTopLevel
-xsltValueOf
-xsltVariableLookup
-xsltXPathCompile
-xsltXPathCompileFlags
-xsltXPathFunctionLookup
-xsltXPathGetTransformContext
-xsltXPathVariableLookup
;;
--cflags)
- cflags="@LIBXML_CFLAGS@ @LIBXSLT_CFLAGS@"
+ cflags="@LIBXML_CFLAGS@ @LIBXSLT_CFLAGS@ @LIBEXSLT_CFLAGS@"
if test "$includedir" != "/usr/include"; then
cflags="$cflags @XSLT_INCLUDEDIR@"
fi
-I$(top_builddir) -I$(top_builddir)/libxslt \
-I$(top_builddir)/libexslt
-EXTRA_PROGRAMS=
bin_PROGRAMS = xsltproc
-noinst_PROGRAMS=testThreads
-
-AM_CFLAGS = $(LIBGCRYPT_CFLAGS) $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
+check_PROGRAMS = testThreads
xsltproc_SOURCES = xsltproc.c
xsltproc_LDFLAGS =
$(top_builddir)/libexslt/libexslt.la: $(top_builddir)/libxslt/libxslt.la
cd $(top_builddir)/libexslt && $(MAKE) libexslt.la
-tests: testThreads
+check-local:
@echo > .memdump
@echo '## Running testThreads'
@($(CHECKER) ./testThreads > /dev/null; grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true)
xmlChar *result;
int len;
xsltStylesheetPtr cur;
- int id = (int)(unsigned long) data;
+ int id = (int) (size_t) data;
input = xmlReadMemory(doc, strlen(doc), "doc.xml", NULL, 0);
if (input == NULL) {
for (i = 0; i < num_threads; i++) {
ret = pthread_create(&tid[i], NULL, threadRoutine1,
- (void *) (unsigned long) i);
+ (void *) (size_t) i);
if (ret != 0) {
perror("pthread_create");
exit(1);
#include <sys/timeb.h>
#endif
+#ifdef LIBXML_DEBUG_ENABLED
static int debug = 0;
+#endif
static int repeat = 0;
static int timing = 0;
static int dumpextensions = 0;