diff --git a/configure.in b/configure.in
index d230e180..e0f9bd7f 100644
--- a/configure.in
+++ b/configure.in
@@ -112,6 +112,8 @@ AC_PROG_CPP
AC_PATH_PROG(RM, rm, /bin/rm)
AC_PATH_PROG(MV, mv, /bin/mv)
AC_PATH_PROG(TAR, tar, /bin/tar)
+AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint)
+AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
AC_STDC_HEADERS
@@ -121,6 +123,18 @@ AM_PROG_LIBTOOL
AC_CHECK_HEADERS(sys/types.h sys/time.h stdlib.h unistd.h string.h)
+dnl
+dnl if the system support linker version scripts for symbol versioning
+dnl then add it
+dnl
+VERSION_SCRIPT_FLAGS=
+$(/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null) && \
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+test "`uname`" == "SunOS" && \
+ VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
+AC_SUBST(VERSION_SCRIPT_FLAGS)
+AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+
dnl Look for pthread.h, needed for testThreads
THREAD_LIBS=""
AC_CHECK_HEADER(pthread.h,
diff --git a/doc/EXSLT/libexslt-api.xml b/doc/EXSLT/libexslt-api.xml
index a0625f02..cf02b23d 100644
--- a/doc/EXSLT/libexslt-api.xml
+++ b/doc/EXSLT/libexslt-api.xml
@@ -81,7 +81,7 @@
-
+ Registers the EXSLT - Crypto module
diff --git a/doc/EXSLT/libexslt-refs.xml b/doc/EXSLT/libexslt-refs.xml
index 629ca706..7279e062 100644
--- a/doc/EXSLT/libexslt-refs.xml
+++ b/doc/EXSLT/libexslt-refs.xml
@@ -114,6 +114,9 @@
+
+
+
@@ -134,6 +137,7 @@
+
@@ -169,6 +173,7 @@
+
@@ -260,6 +265,7 @@
+
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 515dfba1..d8aaf2b1 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -32,6 +32,9 @@ EXTRA_DIST = \
EXSLT/libexslt-refs.xml \
libxslt-api.xml \
libxslt-refs.xml \
+ symbols.xml \
+ checkapisym.xsl \
+ syms.xsl \
libxslt.xsa \
newapi.xsl \
news.xsl \
@@ -137,10 +140,12 @@ EXSLT/html/index.html: EXSLT/libexslt-api.xml \
libxslt-api.xml libxslt-refs.xml EXSLT/libexslt-api.xml \
- EXSLT/libexslt-refs.xml: $(srcdir)/apibuild.py $(top_srcdir)/libxslt/*.h \
+ EXSLT/libexslt-refs.xml ../libxslt/libxslt.syms : $(srcdir)/apibuild.py $(top_srcdir)/libxslt/*.h \
$(top_srcdir)/libxslt/*.c $(top_srcdir)/libexslt/*.h \
$(top_srcdir)/libexslt/*.c
-($(srcdir)/apibuild.py)
+ ($(XSLTPROC) checkapisym.xsl libxslt-api.xml)
+ ($(XSLTPROC) -o ../libxslt/libxslt.syms syms.xsl symbols.xml)
xsltproc.1: xsltproc.xml
-@(xsltproc --nonet xsltproc.xml)
diff --git a/doc/apibuild.py b/doc/apibuild.py
index e512cd75..df1d66b9 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -45,7 +45,8 @@ ignored_words = {
"ATTRIBUTE_UNUSED": (0, "macro keyword"),
"LIBEXSLT_PUBLIC": (0, "macro keyword"),
"X_IN_Y": (5, "macro function builder"),
- "XSLT_ITEM_COMMON_FIELDS": (0, "Special macro")
+ "XSLT_ITEM_COMMON_FIELDS": (0, "Special macro"),
+ "CALLBACK": (0, "macro keyword"),
}
def escape(raw):
diff --git a/doc/checkapisym.xsl b/doc/checkapisym.xsl
new file mode 100644
index 00000000..85913932
--- /dev/null
+++ b/doc/checkapisym.xsl
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+ Looking for functions in symbols.xml
+
+
+
+ Found
+
+ functions
+
+
+ Looking for variables in symbols.xml
+
+
+
+ Found
+
+ variables
+
+
+
+
+
+
+
+
+ Failed to find export in symbols.xml:
+
+
+
+
+
+
+
diff --git a/doc/libxslt-api.xml b/doc/libxslt-api.xml
index b35515fc..330760df 100644
--- a/doc/libxslt-api.xml
+++ b/doc/libxslt-api.xml
@@ -39,7 +39,7 @@
-
+
@@ -299,10 +299,8 @@
Daniel Veillard
-
-
@@ -314,20 +312,16 @@
-
-
-
-
@@ -575,6 +569,18 @@
+
+ Locale handling
+ Interfaces for locale handling. Needed for language dependent sorting.
+ Nick Wellnhofer
+
+
+
+
+
+
+
+
set of utilities for the XSLT engine
interfaces for the utilities module of the XSLT engine. things like message handling, profiling, and other generally useful routines.
@@ -718,12 +724,6 @@
The default version of XSLT supported.
-
-
-
-
-
-
Internal define to enable usage of xmlXPathCompiledEvalToBoolean() for XSLT "tests"; e.g. in <xsl:if test="/foo/bar">
@@ -760,6 +760,9 @@
This is the libxslt namespace for specific extensions.
+
+ Macro indicating that locale are not supported
+
internal macro to set up tree fragments
@@ -814,8 +817,6 @@
Macro to flag that a problem was detected internally.
-
-
Sampling precision for profiling
@@ -825,10 +826,6 @@
Control the type of xsl debugtrace messages emitted.
-
-
-
-
This is the Apache project XALAN processor namespace for extensions.
@@ -1056,6 +1053,8 @@ corresponding to this item end of common part'/>
+
+
@@ -1271,6 +1270,7 @@ TODO: Check if we need.'/>
+
@@ -1315,6 +1315,7 @@ TODO: Check if we need.'/>
+
@@ -2013,13 +2014,6 @@ exits'/>
-
-
-
-
-
-
-
A function called at initialization time of an XSLT extension module.
@@ -2154,6 +2148,11 @@ exits'/>
+
+ Frees a locale created with xsltNewLocale
+
+
+
Free up the memory used by namespaces aliases
@@ -2348,8 +2347,8 @@ exits'/>
INTERNAL ROUTINE ONLY Check if any keys on the current document need to be computed
-
-
+
+
Initialize the set of modules with registered stylesheet data
@@ -2378,6 +2377,10 @@ exits'/>
+
+ Initialize the global variables for extensions
+
+
Check if a string is ignorable
@@ -2420,6 +2423,13 @@ exits'/>
+
+ Compares two strings transformed with xsltStrxfrm
+
+
+
+
+
@@ -2460,6 +2470,11 @@ exits'/>
+
+ Creates a new locale of an opaque system dependent type based on the language tag. Three-letter language codes (ISO 639-2 Alpha-3) are not supported.
+
+
+
Create a new security preference block
@@ -2584,10 +2599,10 @@ exits'/>
-
-
-
-
+ Parses an XSLT stylesheet, adding the associated structures. Called by: xsltParseStylesheetImportedDoc() (xslt.c) xsltParseStylesheetInclude() (imports.c)
+
+
+
Registers a local XSLT 'variable' instruction at transformation time and evaluates its value.
@@ -2786,10 +2801,10 @@ exits'/>
-
-
-
-
+ Restore the namespaces for the document
+
+
+
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
@@ -2984,6 +2999,12 @@ exits'/>
+
+ Transforms a string according to locale. The transformed string must then be compared with xsltLocaleStrcmp and freed with xmlFree.
+
+
+
+
A function called at initialization time of an XSLT extension module.
diff --git a/doc/libxslt-refs.xml b/doc/libxslt-refs.xml
index 31563380..dd003827 100644
--- a/doc/libxslt-refs.xml
+++ b/doc/libxslt-refs.xml
@@ -30,9 +30,6 @@
-
-
-
@@ -79,6 +76,7 @@
+
@@ -106,7 +104,6 @@
-
@@ -129,8 +126,6 @@
-
-
@@ -269,7 +264,6 @@
-
@@ -296,6 +290,7 @@
+
@@ -337,6 +332,7 @@
+
@@ -351,6 +347,9 @@
+
+
+
@@ -358,6 +357,7 @@
+
@@ -463,6 +463,7 @@
+
@@ -609,9 +610,6 @@
-
-
-
@@ -658,6 +656,7 @@
+
@@ -685,7 +684,6 @@
-
@@ -708,8 +706,6 @@
-
-
@@ -852,7 +848,6 @@
-
@@ -879,6 +874,7 @@
+
@@ -920,6 +916,7 @@
+
@@ -934,6 +931,9 @@
+
+
+
@@ -941,6 +941,7 @@
+
@@ -1046,6 +1047,7 @@
+
@@ -1219,7 +1221,6 @@
-
@@ -1252,6 +1253,12 @@
+
+
+
+
+
+
@@ -1334,7 +1341,6 @@
-
@@ -1351,6 +1357,7 @@
+
@@ -1363,6 +1370,7 @@
+
@@ -1380,6 +1388,9 @@
+
+
+
@@ -1634,6 +1645,11 @@
+
+
+
+
+
@@ -1822,7 +1838,6 @@
-
@@ -1932,7 +1947,6 @@
-
@@ -1945,6 +1959,7 @@
+
@@ -2157,9 +2172,6 @@
-
-
-
@@ -2215,9 +2227,6 @@
-
-
-
@@ -2425,6 +2434,15 @@
+
+
+
+
+
+
+
+
+
@@ -2547,6 +2565,9 @@
+
+
+
@@ -2581,6 +2602,7 @@
+
@@ -2624,6 +2646,9 @@
+
+
+
@@ -2657,6 +2682,7 @@
+
@@ -2813,6 +2839,7 @@
+
@@ -2853,6 +2880,7 @@
+
@@ -2873,6 +2901,7 @@
+
@@ -2955,6 +2984,7 @@
+
@@ -3074,6 +3104,7 @@
+
@@ -3170,6 +3201,9 @@
+
+
+
@@ -3220,6 +3254,9 @@
+
+
+
@@ -3363,9 +3400,15 @@
+
+
+
+
+
+
@@ -3397,6 +3440,7 @@
+
@@ -3476,6 +3520,7 @@
+
@@ -3515,6 +3560,7 @@
+
@@ -3543,6 +3589,9 @@
+
+
+
@@ -3553,6 +3602,7 @@
+
@@ -3635,6 +3685,9 @@
+
+
+
@@ -3715,6 +3768,7 @@
+
@@ -3730,6 +3784,8 @@
+
+
@@ -3786,6 +3842,7 @@
+
@@ -3850,6 +3907,7 @@
+
@@ -3863,6 +3921,7 @@
+
@@ -3979,6 +4038,7 @@
+
@@ -4187,6 +4247,9 @@
+
+
+
@@ -4217,6 +4280,9 @@
+
+
+
@@ -4389,9 +4455,11 @@
+
+
@@ -4537,6 +4605,9 @@
+
+
+
@@ -4754,6 +4825,9 @@
+
+
+
@@ -4798,6 +4872,7 @@
+
@@ -4907,6 +4982,7 @@
+
@@ -4941,11 +5017,13 @@
+
+
@@ -5065,6 +5143,7 @@
+
@@ -5101,6 +5180,7 @@
+
@@ -5118,6 +5198,7 @@
+
@@ -5265,6 +5346,7 @@
+
@@ -5376,6 +5458,9 @@
+
+
+
@@ -5405,6 +5490,7 @@
+
@@ -5433,6 +5519,7 @@
+
@@ -5692,6 +5779,7 @@
+
@@ -5799,6 +5887,13 @@
+
+
+
+
+
+
+
@@ -5856,6 +5951,7 @@
+
@@ -5891,6 +5987,7 @@
+
@@ -6001,6 +6098,7 @@
+
@@ -6040,6 +6138,7 @@
+
@@ -6273,6 +6372,9 @@
+
+
+
@@ -6383,6 +6485,7 @@
+
@@ -6432,6 +6535,7 @@
+
@@ -6963,6 +7067,9 @@
+
+
+
@@ -7199,6 +7306,9 @@
+
+
+
@@ -7206,6 +7316,7 @@
+
@@ -7213,6 +7324,7 @@
+
@@ -7346,6 +7458,12 @@
+
+
+
+
+
+
@@ -7355,6 +7473,7 @@
+
@@ -7393,6 +7512,7 @@
+
@@ -7407,6 +7527,7 @@
+
@@ -7453,6 +7574,7 @@
+
@@ -7465,6 +7587,7 @@
+
@@ -7502,10 +7625,15 @@
+
+
+
+
+
@@ -7526,6 +7654,9 @@
+
+
+
@@ -7610,6 +7741,7 @@
+
@@ -7643,6 +7775,7 @@
+
@@ -7703,6 +7836,7 @@
+
@@ -7712,6 +7846,10 @@
+
+
+
+
@@ -7751,12 +7889,16 @@
+
+
+
+
@@ -7907,6 +8049,7 @@
+
@@ -7963,6 +8106,7 @@
+
@@ -7972,6 +8116,9 @@
+
+
+
@@ -8049,6 +8196,7 @@
+
@@ -8057,7 +8205,9 @@
+
+
@@ -8101,11 +8251,15 @@
+
+
+
+
@@ -8117,6 +8271,9 @@
+
+
+
@@ -8245,6 +8402,7 @@
+
@@ -8330,9 +8488,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8384,6 +8555,9 @@
+
+
+
diff --git a/doc/symbols.xml b/doc/symbols.xml
new file mode 100644
index 00000000..63ffac0a
--- /dev/null
+++ b/doc/symbols.xml
@@ -0,0 +1,308 @@
+
+
+
+ xsltApplyAttributeSet
+ xsltFreeAttributeSetsHashes
+ xsltParseStylesheetAttributeSet
+ xsltFindDocument
+ xsltFreeDocuments
+ xsltFreeStyleDocuments
+ xsltLoadDocument
+ xsltLoadStyleDocument
+ xsltNewDocument
+ xsltNewStyleDocument
+ xsltCheckExtPrefix
+ xsltExtElementLookup
+ xsltExtModuleElementLookup
+ xsltExtModuleFunctionLookup
+ xsltExtModuleTopLevelLookup
+ xsltFreeCtxtExts
+ xsltFreeExts
+ xsltGetExtData
+ xsltInitCtxtExts
+ xsltInitElemPreComp
+ xsltNewElemPreComp
+ xsltPreComputeExtModuleElement
+ xsltRegisterExtElement
+ xsltRegisterExtFunction
+ xsltRegisterExtModuleElement
+ xsltRegisterExtModuleFull
+ xsltRegisterExtModuleFunction
+ xsltRegisterExtModule
+ xsltRegisterExtModuleTopLevel
+ xsltRegisterExtPrefix
+ xsltRegisterTestModule
+ xsltShutdownCtxtExts
+ xsltShutdownExts
+ xsltStyleGetExtData
+ xsltUnregisterExtModuleElement
+ xsltUnregisterExtModuleFunction
+ xsltUnregisterExtModule
+ xsltUnregisterExtModuleTopLevel
+ xsltDebug
+ xsltFunctionNodeSet
+ xsltRegisterAllExtras
+ xsltRegisterExtras
+ xsltDocumentFunction
+ xsltElementAvailableFunction
+ xsltFormatNumberFunction
+ xsltFunctionAvailableFunction
+ xsltGenerateIdFunction
+ xsltKeyFunction
+ xsltRegisterAllFunctions
+ xsltSystemPropertyFunction
+ xsltUnparsedEntityURIFunction
+ xsltXPathFunctionLookup
+ xsltFindElemSpaceHandling
+ xsltFindTemplate
+ xsltNeedElemSpaceHandling
+ xsltNextImport
+ xsltParseStylesheetImport
+ xsltParseStylesheetInclude
+ xsltAddKey
+ xsltFreeDocumentKeys
+ xsltFreeKeys
+ xsltGetKey
+ xsltInitCtxtKeys
+ xsltCopyNamespaceList
+ xsltCopyNamespace
+ xsltFreeNamespaceAliasHashes
+ xsltGetNamespace
+ xsltGetSpecialNamespace
+ xsltNamespaceAlias
+ xsltAddTemplate
+ xsltCleanupTemplates
+ xsltCompilePattern
+ xsltFreeCompMatchList
+ xsltFreeTemplateHashes
+ xsltGetTemplate
+ xsltMatchPattern
+ xsltTestCompMatchList
+ xsltDocumentComp
+ xsltFreeStylePreComps
+ xsltStylePreCompute
+ xsltAttrListTemplateProcess
+ xsltAttrTemplateProcess
+ xsltAttrTemplateValueProcess
+ xsltEvalAttrValueTemplate
+ xsltEvalStaticAttrValueTemplate
+ xsltEvalTemplateString
+ xsltEvalXPathPredicate
+ xsltEvalXPathString
+ xsltTemplateProcess
+ xslHandleDebugger
+ xsltApplyImports
+ xsltApplyOneTemplate
+ xsltApplyStripSpaces
+ xsltApplyStylesheet
+ xsltApplyStylesheetUser
+ xsltApplyTemplates
+ xsltAttribute
+ xsltCallTemplate
+ xsltChoose
+ xsltComment
+ xsltCopyOf
+ xsltCopy
+ xsltDocumentElem
+ xsltElement
+ xsltForEach
+ xsltFreeTransformContext
+ xsltGetXIncludeDefault
+ xsltIf
+ xsltNewTransformContext
+ xsltNumber
+ xsltProcessingInstruction
+ xsltProfileStylesheet
+ xsltRegisterAllElement
+ xsltRunStylesheet
+ xsltSetXIncludeDefault
+ xsltSort
+ xsltText
+ xsltValueOf
+ xsltAddStackElemList
+ xsltEvalGlobalVariables
+ xsltEvalOneUserParam
+ xsltEvalUserParams
+ xsltFreeGlobalVariables
+ xsltParseGlobalParam
+ xsltParseGlobalVariable
+ xsltParseStylesheetCallerParam
+ xsltParseStylesheetParam
+ xsltParseStylesheetVariable
+ xsltQuoteOneUserParam
+ xsltQuoteUserParams
+ xsltVariableLookup
+ xsltXPathVariableLookup
+ xsltDecimalFormatGetByName
+ xsltFormatNumberConversion
+ xsltFreeStackElemList
+ xsltFreeStylesheet
+ xsltIsBlank
+ xsltLoadStylesheetPI
+ xsltNewStylesheet
+ xsltNumberFormat
+ xsltParseStylesheetDoc
+ xsltParseStylesheetFile
+ xsltParseStylesheetOutput
+ xsltParseStylesheetProcess
+ xsltParseTemplateContent
+ xslAddCall
+ xslDropCall
+ xsltCalibrateAdjust
+ xsltDocumentSortFunction
+ xsltDoSortFunction
+ xsltGetNsProp
+ xsltGetQNameURI
+ xsltMessage
+ xsltPrintErrorContext
+ xsltSaveProfiling
+ xsltSaveResultToFd
+ xsltSaveResultToFilename
+ xsltSaveResultToFile
+ xsltSaveResultTo
+ xsltSetDebuggerCallbacks
+ xsltSetGenericDebugFunc
+ xsltSetGenericErrorFunc
+ xsltTimestamp
+ xsltCleanupGlobals
+
+
+ xsltAllocateExtraCtxt
+ xsltAllocateExtra
+
+
+ xsltExtModuleElementPreComputeLookup
+ xsltXPathGetTransformContext
+
+
+ xsltResolveStylesheetAttributeSet
+
+
+ xsltRunStylesheetUser
+
+
+ xsltDebugDumpExtensions
+ xsltSaveResultToString
+
+
+ xsltAttrTemplateValueProcessNode
+ xsltCheckRead
+ xsltCheckWrite
+ xsltEvalXPathStringNs
+ xsltFreeSecurityPrefs
+ xsltGetDefaultSecurityPrefs
+ xsltGetSecurityPrefs
+ xsltNewSecurityPrefs
+ xsltSecurityAllow
+ xsltSecurityForbid
+ xsltSetCtxtSecurityPrefs
+ xsltSetDefaultSecurityPrefs
+ xsltSetSecurityPrefs
+ xsltSetTransformErrorFunc
+ xsltTransformError
+
+
+ xslDebugStatus
+ xsltComputeSortResult
+ xsltDefaultSortFunction
+ xsltEngineVersion
+ xsltExtMarker
+ xsltGenericDebugContext
+ xsltGenericDebug
+ xsltGenericErrorContext
+ xsltGenericError
+ xsltGetProfileInformation
+ xsltGetUTF8Char
+ xsltLibxmlVersion
+ xsltLibxsltVersion
+ xsltMaxDepth
+ xsltParseStylesheetImportedDoc
+ xsltSetCtxtSortFunc
+ xsltSetSortFunc
+
+
+ xsltCreateRVT
+ xsltFreeRVTs
+ xsltRegisterPersistRVT
+ xsltRegisterTmpRVT
+
+
+ xsltCopyTextString
+ xsltGetExtInfo
+
+
+ xsltNormalizeCompSteps
+
+
+ xsltGetDebuggerStatus
+ xsltSetDebuggerStatus
+
+
+ xsltDebugGetDefaultTrace
+ xsltDebugSetDefaultTrace
+
+
+ xsltSetCtxtParseOptions
+
+
+ xsltCompileAttr
+ xsltEvalAVT
+ xsltFreeAVTList
+ xsltGetCNsProp
+ xsltSplitQName
+ xsltXPathCompile
+
+
+ xsltGetQNameURI2
+
+
+ xsltGetPlainNamespace
+
+
+ xsltDocDefaultLoader
+ xsltSetLoaderFunc
+
+
+ xsltConstNamespaceNameXSLT
+ xsltExtensionInstructionResultFinalize
+ xsltExtensionInstructionResultRegister
+ xsltInitCtxtKey
+ xsltInit
+ xsltParseAnyXSLTElem
+ xsltParseSequenceConstructor
+ xsltPointerListAddSize
+ xsltPointerListClear
+ xsltPointerListCreate
+ xsltPointerListFree
+ xsltRegisterLocalRVT
+ xsltReleaseRVT
+ xsltRestoreDocumentNamespaces
+ xsltStyleStylesheetLevelGetExtData
+ xsltTransStorageAdd
+ xsltTransStorageRemove
+ xsltUninit
+ xsltXSLTAttrMarker
+
+
+ xsltLocalVariablePop
+ xsltLocalVariablePush
+
+
+ xsltInitAllDocKeys
+
+
+ xsltCheckExtURI
+
+
+ xsltFreeLocale
+ xsltLocaleStrcmp
+ xsltNewLocale
+ xsltStrxfrm
+ xsltInitGlobals
+
+
diff --git a/doc/syms.xsl b/doc/syms.xsl
new file mode 100644
index 00000000..3965e90c
--- /dev/null
+++ b/doc/syms.xsl
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+ #
+# 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
+#
+
+
+
+
+
+
+
+ LIBXML2_
+
+ {
+ global:
+
+
+
+
+#
+
+
+
+
+
+
+
+
+ }
+
+ LIBXML2_
+
+
+ ;
+
+
+
+
+
+
+
+
+
+ #
+
+ ; removed in
+
+
+
+
+
+
+
+
+
+ Failed to find definition in libxslt-api.xml:
+
+
+
+
+
+
+ ;
+
+ # variable
+
+
+ #
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libexslt/crypto.c b/libexslt/crypto.c
index f88f6e96..e2700d6b 100644
--- a/libexslt/crypto.c
+++ b/libexslt/crypto.c
@@ -140,7 +140,7 @@ exsltCryptoCryptoApiReportError (xmlXPathParserContextPtr ctxt,
LocalFree (lpMsgBuf);
}
-HCRYPTHASH
+static HCRYPTHASH
exsltCryptoCryptoApiCreateHash (xmlXPathParserContextPtr ctxt,
HCRYPTPROV hCryptProv, ALG_ID algorithm,
const char *msg, unsigned int msglen,
@@ -203,7 +203,7 @@ exsltCryptoCryptoApiHash (xmlXPathParserContextPtr ctxt,
CryptReleaseContext (hCryptProv, 0);
}
-void
+static void
exsltCryptoCryptoApiRc4Encrypt (xmlXPathParserContextPtr ctxt,
const unsigned char *key,
const unsigned char *msg, int msglen,
@@ -254,7 +254,7 @@ exsltCryptoCryptoApiRc4Encrypt (xmlXPathParserContextPtr ctxt,
CryptReleaseContext (hCryptProv, 0);
}
-void
+static void
exsltCryptoCryptoApiRc4Decrypt (xmlXPathParserContextPtr ctxt,
const unsigned char *key,
const unsigned char *msg, int msglen,
@@ -801,6 +801,11 @@ exsltCryptoRegister (void) {
}
#else
+/**
+ * exsltCryptoRegister:
+ *
+ * Registers the EXSLT - Crypto module
+ */
void
exsltCryptoRegister (void) {
}
diff --git a/libxslt/Makefile.am b/libxslt/Makefile.am
index dfb9fb96..bead72ce 100644
--- a/libxslt/Makefile.am
+++ b/libxslt/Makefile.am
@@ -52,12 +52,21 @@ libxslt_la_SOURCES = \
xsltwin32config.h.in \
libxslt.h
+if USE_VERSION_SCRIPT
+LIBXSLT_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxslt.syms
+else
+LIBXSLT_VERSION_SCRIPT =
+endif
+
libxslt_la_LIBADD = $(EXTRA_LIBS)
-libxslt_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -version-info @LIBXSLT_VERSION_INFO@
+libxslt_la_LDFLAGS = \
+ $(WIN32_EXTRA_LDFLAGS) \
+ $(LIBXSLT_VERSION_SCRIPT) \
+ -version-info @LIBXSLT_VERSION_INFO@
man_MANS = libxslt.3
-EXTRA_DIST = $(man_MANS) trio.h triodef.h
+EXTRA_DIST = $(man_MANS) trio.h triodef.h libxslt.syms
xsltproc: all
@(cd ../xsltproc ; $(MAKE))
diff --git a/libxslt/keys.c b/libxslt/keys.c
index 79b4bba8..d28aea67 100644
--- a/libxslt/keys.c
+++ b/libxslt/keys.c
@@ -517,10 +517,13 @@ fprintf(stderr, "xsltInitDocKeyTable %s done\n", name);
/**
* xsltInitAllDocKeys:
+ * @ctxt: transformation context
*
* INTERNAL ROUTINE ONLY
*
* Check if any keys on the current document need to be computed
+ *
+ * Returns 0 in case of success, -1 in case of failure
*/
int
xsltInitAllDocKeys(xsltTransformContextPtr ctxt)
diff --git a/libxslt/libxslt.syms b/libxslt/libxslt.syms
new file mode 100644
index 00000000..9f15acb8
--- /dev/null
+++ b/libxslt/libxslt.syms
@@ -0,0 +1,472 @@
+#
+# 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
+#
+
+LIBXML2_1.0.11 {
+ global:
+
+# attributes
+ xsltApplyAttributeSet;
+ xsltFreeAttributeSetsHashes;
+ xsltParseStylesheetAttributeSet;
+
+# documents
+ xsltFindDocument;
+ xsltFreeDocuments;
+ xsltFreeStyleDocuments;
+ xsltLoadDocument;
+ xsltLoadStyleDocument;
+ xsltNewDocument;
+ xsltNewStyleDocument;
+
+# extensions
+ xsltCheckExtPrefix;
+ xsltExtElementLookup;
+ xsltExtModuleElementLookup;
+ xsltExtModuleFunctionLookup;
+ xsltExtModuleTopLevelLookup;
+ xsltFreeCtxtExts;
+ xsltFreeExts;
+ xsltGetExtData;
+ xsltInitCtxtExts;
+ xsltInitElemPreComp;
+ xsltNewElemPreComp;
+ xsltPreComputeExtModuleElement;
+ xsltRegisterExtElement;
+ xsltRegisterExtFunction;
+ xsltRegisterExtModuleElement;
+ xsltRegisterExtModuleFull;
+ xsltRegisterExtModuleFunction;
+ xsltRegisterExtModule;
+ xsltRegisterExtModuleTopLevel;
+ xsltRegisterExtPrefix;
+ xsltRegisterTestModule;
+ xsltShutdownCtxtExts;
+ xsltShutdownExts;
+ xsltStyleGetExtData;
+ xsltUnregisterExtModuleElement;
+ xsltUnregisterExtModuleFunction;
+ xsltUnregisterExtModule;
+ xsltUnregisterExtModuleTopLevel;
+
+# extra
+ xsltDebug;
+ xsltFunctionNodeSet;
+ xsltRegisterAllExtras;
+ xsltRegisterExtras;
+
+# functions
+ xsltDocumentFunction;
+ xsltElementAvailableFunction;
+ xsltFormatNumberFunction;
+ xsltFunctionAvailableFunction;
+ xsltGenerateIdFunction;
+ xsltKeyFunction;
+ xsltRegisterAllFunctions;
+ xsltSystemPropertyFunction;
+ xsltUnparsedEntityURIFunction;
+ xsltXPathFunctionLookup;
+
+# imports
+ xsltFindElemSpaceHandling;
+ xsltFindTemplate;
+ xsltNeedElemSpaceHandling;
+ xsltNextImport;
+ xsltParseStylesheetImport;
+ xsltParseStylesheetInclude;
+
+# keys
+ xsltAddKey;
+ xsltFreeDocumentKeys;
+ xsltFreeKeys;
+ xsltGetKey;
+ xsltInitCtxtKeys;
+
+# namespaces
+ xsltCopyNamespaceList;
+ xsltCopyNamespace;
+ xsltFreeNamespaceAliasHashes;
+ xsltGetNamespace;
+ xsltGetSpecialNamespace;
+ xsltNamespaceAlias;
+
+# pattern
+ xsltAddTemplate;
+ xsltCleanupTemplates;
+ xsltCompilePattern;
+ xsltFreeCompMatchList;
+ xsltFreeTemplateHashes;
+ xsltGetTemplate;
+ xsltMatchPattern;
+ xsltTestCompMatchList;
+
+# preproc
+ xsltDocumentComp;
+ xsltFreeStylePreComps;
+ xsltStylePreCompute;
+
+# templates
+ xsltAttrListTemplateProcess;
+ xsltAttrTemplateProcess;
+ xsltAttrTemplateValueProcess;
+ xsltEvalAttrValueTemplate;
+ xsltEvalStaticAttrValueTemplate;
+ xsltEvalTemplateString;
+ xsltEvalXPathPredicate;
+ xsltEvalXPathString;
+ xsltTemplateProcess;
+
+# transform
+ xslHandleDebugger;
+ xsltApplyImports;
+ xsltApplyOneTemplate;
+ xsltApplyStripSpaces;
+ xsltApplyStylesheet;
+ xsltApplyStylesheetUser;
+ xsltApplyTemplates;
+ xsltAttribute;
+ xsltCallTemplate;
+ xsltChoose;
+ xsltComment;
+ xsltCopyOf;
+ xsltCopy;
+ xsltDocumentElem;
+ xsltElement;
+ xsltForEach;
+ xsltFreeTransformContext;
+ xsltGetXIncludeDefault;
+ xsltIf;
+ xsltNewTransformContext;
+ xsltNumber;
+ xsltProcessingInstruction;
+ xsltProfileStylesheet;
+ xsltRegisterAllElement;
+ xsltRunStylesheet;
+ xsltSetXIncludeDefault;
+ xsltSort;
+ xsltText;
+ xsltValueOf;
+
+# variables
+ xsltAddStackElemList;
+ xsltEvalGlobalVariables;
+ xsltEvalOneUserParam;
+ xsltEvalUserParams;
+ xsltFreeGlobalVariables;
+ xsltParseGlobalParam;
+ xsltParseGlobalVariable;
+ xsltParseStylesheetCallerParam;
+ xsltParseStylesheetParam;
+ xsltParseStylesheetVariable;
+ xsltQuoteOneUserParam;
+ xsltQuoteUserParams;
+ xsltVariableLookup;
+ xsltXPathVariableLookup;
+
+# xsltInternals
+ xsltDecimalFormatGetByName;
+ xsltFormatNumberConversion;
+ xsltFreeStackElemList;
+ xsltFreeStylesheet;
+ xsltIsBlank;
+ xsltLoadStylesheetPI;
+ xsltNewStylesheet;
+ xsltNumberFormat;
+ xsltParseStylesheetDoc;
+ xsltParseStylesheetFile;
+ xsltParseStylesheetOutput;
+ xsltParseStylesheetProcess;
+ xsltParseTemplateContent;
+
+# xsltutils
+ xslAddCall;
+ xslDropCall;
+ xsltCalibrateAdjust;
+ xsltDocumentSortFunction;
+ xsltDoSortFunction;
+ xsltGetNsProp;
+ xsltGetQNameURI;
+ xsltMessage;
+ xsltPrintErrorContext;
+ xsltSaveProfiling;
+ xsltSaveResultToFd;
+ xsltSaveResultToFilename;
+ xsltSaveResultToFile;
+ xsltSaveResultTo;
+ xsltSetDebuggerCallbacks;
+ xsltSetGenericDebugFunc;
+ xsltSetGenericErrorFunc;
+ xsltTimestamp;
+
+# xslt
+ xsltCleanupGlobals;
+} ;
+
+LIBXML2_1.0.12 {
+ global:
+
+# xsltInternals
+ xsltAllocateExtraCtxt;
+ xsltAllocateExtra;
+} LIBXML2_1.0.11;
+
+LIBXML2_1.0.13 {
+ global:
+
+# extensions
+ xsltExtModuleElementPreComputeLookup;
+ xsltXPathGetTransformContext;
+} LIBXML2_1.0.12;
+
+LIBXML2_1.0.16 {
+ global:
+
+# attributes
+ xsltResolveStylesheetAttributeSet;
+} LIBXML2_1.0.13;
+
+LIBXML2_1.0.17 {
+ global:
+
+# transform
+ xsltRunStylesheetUser;
+} LIBXML2_1.0.16;
+
+LIBXML2_1.0.18 {
+ global:
+
+# extensions
+ xsltDebugDumpExtensions;
+
+# xsltutils
+ xsltSaveResultToString;
+} LIBXML2_1.0.17;
+
+LIBXML2_1.0.22 {
+ global:
+
+# templates
+ xsltAttrTemplateValueProcessNode;
+
+# security
+ xsltCheckRead;
+ xsltCheckWrite;
+
+# templates
+ xsltEvalXPathStringNs;
+
+# security
+ xsltFreeSecurityPrefs;
+ xsltGetDefaultSecurityPrefs;
+ xsltGetSecurityPrefs;
+ xsltNewSecurityPrefs;
+ xsltSecurityAllow;
+ xsltSecurityForbid;
+ xsltSetCtxtSecurityPrefs;
+ xsltSetDefaultSecurityPrefs;
+ xsltSetSecurityPrefs;
+
+# xsltutils
+ xsltSetTransformErrorFunc;
+ xsltTransformError;
+} LIBXML2_1.0.18;
+
+LIBXML2_1.0.24 {
+ global:
+
+# xsltutils
+ xslDebugStatus; # variable
+ xsltComputeSortResult;
+ xsltDefaultSortFunction;
+
+# xslt
+ xsltEngineVersion; # variable
+
+# preproc
+ xsltExtMarker; # variable
+
+# xsltutils
+ xsltGenericDebugContext; # variable
+ xsltGenericDebug; # variable
+ xsltGenericErrorContext; # variable
+ xsltGenericError; # variable
+ xsltGetProfileInformation;
+ xsltGetUTF8Char;
+
+# xslt
+ xsltLibxmlVersion; # variable
+ xsltLibxsltVersion; # variable
+ xsltMaxDepth; # variable
+
+# xsltInternals
+ xsltParseStylesheetImportedDoc;
+
+# xsltutils
+ xsltSetCtxtSortFunc;
+ xsltSetSortFunc;
+} LIBXML2_1.0.22;
+
+LIBXML2_1.0.30 {
+ global:
+
+# xsltInternals
+ xsltCreateRVT;
+ xsltFreeRVTs;
+ xsltRegisterPersistRVT;
+ xsltRegisterTmpRVT;
+} LIBXML2_1.0.24;
+
+LIBXML2_1.0.32 {
+ global:
+
+# transform
+ xsltCopyTextString;
+
+# extensions
+ xsltGetExtInfo;
+} LIBXML2_1.0.30;
+
+LIBXML2_1.0.33 {
+ global:
+
+# pattern
+ xsltNormalizeCompSteps;
+} LIBXML2_1.0.32;
+
+LIBXML2_1.1.0 {
+ global:
+
+# xsltutils
+ xsltGetDebuggerStatus;
+ xsltSetDebuggerStatus;
+} LIBXML2_1.0.33;
+
+LIBXML2_1.1.1 {
+ global:
+
+# xsltutils
+ xsltDebugGetDefaultTrace;
+ xsltDebugSetDefaultTrace;
+} LIBXML2_1.1.0;
+
+LIBXML2_1.1.2 {
+ global:
+
+# xsltutils
+ xsltSetCtxtParseOptions;
+} LIBXML2_1.1.1;
+
+LIBXML2_1.1.3 {
+ global:
+
+# xsltInternals
+ xsltCompileAttr;
+ xsltEvalAVT;
+ xsltFreeAVTList;
+
+# xsltutils
+ xsltGetCNsProp;
+ xsltSplitQName;
+ xsltXPathCompile;
+} LIBXML2_1.1.2;
+
+LIBXML2_1.1.5 {
+ global:
+
+# xsltutils
+ xsltGetQNameURI2;
+} LIBXML2_1.1.3;
+
+LIBXML2_1.1.7 {
+ global:
+
+# namespaces
+ xsltGetPlainNamespace;
+} LIBXML2_1.1.5;
+
+LIBXML2_1.1.9 {
+ global:
+
+# documents
+ xsltDocDefaultLoader; # variable
+ xsltSetLoaderFunc;
+} LIBXML2_1.1.7;
+
+LIBXML2_1.1.18 {
+ global:
+
+# xsltInternals
+ xsltConstNamespaceNameXSLT; # variable
+ xsltExtensionInstructionResultFinalize;
+ xsltExtensionInstructionResultRegister;
+ xsltInitCtxtKey;
+
+# xslt
+ xsltInit;
+
+# xsltInternals
+ xsltParseAnyXSLTElem;
+ xsltParseSequenceConstructor;
+ xsltPointerListAddSize;
+ xsltPointerListClear;
+ xsltPointerListCreate;
+ xsltPointerListFree;
+ xsltRegisterLocalRVT;
+ xsltReleaseRVT;
+ xsltRestoreDocumentNamespaces;
+
+# extensions
+ xsltStyleStylesheetLevelGetExtData;
+
+# xsltInternals
+ xsltTransStorageAdd;
+ xsltTransStorageRemove;
+ xsltUninit;
+ xsltXSLTAttrMarker; # variable
+} LIBXML2_1.1.9;
+
+LIBXML2_1.1.20 {
+ global:
+
+# transform
+ xsltLocalVariablePop;
+ xsltLocalVariablePush;
+} LIBXML2_1.1.18;
+
+LIBXML2_1.1.23 {
+ global:
+
+# xsltInternals
+ xsltInitAllDocKeys;
+} LIBXML2_1.1.20;
+
+LIBXML2_1.1.24 {
+ global:
+
+# extensions
+ xsltCheckExtURI;
+} LIBXML2_1.1.23;
+
+LIBXML2_1.1.25 {
+ global:
+
+# xsltlocale
+ xsltFreeLocale;
+ xsltLocaleStrcmp;
+ xsltNewLocale;
+ xsltStrxfrm;
+
+# extensions
+ xsltInitGlobals;
+} LIBXML2_1.1.24;
+
diff --git a/libxslt/variables.c b/libxslt/variables.c
index 1cdfa80c..43a61561 100644
--- a/libxslt/variables.c
+++ b/libxslt/variables.c
@@ -43,6 +43,10 @@ const xmlChar *xsltDocFragFake = (const xmlChar *) " fake node libxslt";
const xmlChar *xsltComputingGlobalVarMarker =
(const xmlChar *) " var/param being computed";
+#define XSLT_VAR_GLOBAL 1<<0
+#define XSLT_VAR_IN_SELECT 1<<1
+#define XSLT_TCTXT_VARIABLE(c) ((xsltStackElemPtr) (c)->contextVariable)
+
/************************************************************************
* *
* Result Value Tree (Result Tree Fragment) interfaces *
diff --git a/libxslt/xslt.c b/libxslt/xslt.c
index e88141d0..00f264fa 100644
--- a/libxslt/xslt.c
+++ b/libxslt/xslt.c
@@ -56,6 +56,10 @@ const int xsltLibxmlVersion = LIBXML_VERSION;
const xmlChar *xsltConstNamespaceNameXSLT = (const xmlChar *) XSLT_NAMESPACE;
+#define XSLT_ELEMENT_CATEGORY_XSLT 0
+#define XSLT_ELEMENT_CATEGORY_EXTENSION 1
+#define XSLT_ELEMENT_CATEGORY_LRE 2
+
/*
* xsltLiteralResultMarker:
* Marker for Literal result elements, in order to avoid multiple attempts
@@ -6248,6 +6252,15 @@ xsltParseSimplifiedStylesheetTree(xsltCompilerCtxtPtr cctxt,
}
#ifdef XSLT_REFACTORED_XSLT_NSCOMP
+/**
+ * xsltRestoreDocumentNamespaces:
+ * @ns: map of namespaces
+ * @doc: the document
+ *
+ * Restore the namespaces for the document
+ *
+ * Returns 0 in case of success, -1 in case of failure
+ */
int
xsltRestoreDocumentNamespaces(xsltNsMapPtr ns, xmlDocPtr doc)
{
@@ -6342,6 +6355,19 @@ xsltParseStylesheetProcess(xsltStylesheetPtr style, xmlDocPtr doc)
#else /* XSLT_REFACTORED */
+/**
+ * xsltParseStylesheetProcess:
+ * @ret: the XSLT stylesheet (the current stylesheet-level)
+ * @doc: and xmlDoc parsed XML
+ *
+ * Parses an XSLT stylesheet, adding the associated structures.
+ * Called by:
+ * xsltParseStylesheetImportedDoc() (xslt.c)
+ * xsltParseStylesheetInclude() (imports.c)
+ *
+ * Returns the value of the @style parameter if everything
+ * went right, NULL if something went amiss.
+ */
xsltStylesheetPtr
xsltParseStylesheetProcess(xsltStylesheetPtr ret, xmlDocPtr doc) {
xmlNodePtr cur;
diff --git a/libxslt/xsltInternals.h b/libxslt/xsltInternals.h
index bba24767..538b3b35 100644
--- a/libxslt/xsltInternals.h
+++ b/libxslt/xsltInternals.h
@@ -1248,10 +1248,6 @@ struct _xsltVarInfo {
const xmlChar *nsName;
};
-#define XSLT_ELEMENT_CATEGORY_XSLT 0
-#define XSLT_ELEMENT_CATEGORY_EXTENSION 1
-#define XSLT_ELEMENT_CATEGORY_LRE 2
-
/**
* xsltCompilerNodeInfo:
*
@@ -1420,9 +1416,6 @@ struct _xsltStylePreComp {
#endif /* XSLT_REFACTORED */
-#define XSLT_VAR_GLOBAL 1<<0
-#define XSLT_VAR_IN_SELECT 1<<1
-#define XSLT_TCTXT_VARIABLE(c) ((xsltStackElemPtr) (c)->contextVariable)
/*
* The in-memory structure corresponding to an XSLT Variable
* or Param.
diff --git a/libxslt/xsltlocale.c b/libxslt/xsltlocale.c
index c6206e3d..142f8749 100644
--- a/libxslt/xsltlocale.c
+++ b/libxslt/xsltlocale.c
@@ -321,6 +321,7 @@ xsltDefaultRegion(const xmlChar *localeName) {
/**
* xsltFreeLocale:
+ * @locale: the locale to free
*
* Frees a locale created with xsltNewLocale
*/
@@ -426,6 +427,14 @@ xsltLocaleStrcmp(xsltLocale locale, const xsltLocaleChar *str1, const xsltLocale
}
#ifdef XSLT_LOCALE_WINAPI
+/**
+ * xsltCountSupportedLocales:
+ * @lcid: not used
+ *
+ * callback used to count locales
+ *
+ * Returns TRUE
+ */
BOOL CALLBACK
xsltCountSupportedLocales(LPSTR lcid) {
(void) lcid;
@@ -433,6 +442,14 @@ xsltCountSupportedLocales(LPSTR lcid) {
return(TRUE);
}
+/**
+ * xsltIterateSupportedLocales:
+ * @lcid: not used
+ *
+ * callback used to track locales
+ *
+ * Returns TRUE if not at the end of the array
+ */
BOOL CALLBACK
xsltIterateSupportedLocales(LPSTR lcid) {
static int count = 0;
diff --git a/libxslt/xsltlocale.h b/libxslt/xsltlocale.h
index 2f20d630..59343b0a 100644
--- a/libxslt/xsltlocale.h
+++ b/libxslt/xsltlocale.h
@@ -36,6 +36,10 @@ typedef wchar_t xsltLocaleChar;
#else
+/*
+ * XSLT_LOCALE_NONE:
+ * Macro indicating that locale are not supported
+ */
#ifndef XSLT_LOCALE_NONE
#define XSLT_LOCALE_NONE
#endif
diff --git a/python/libxsltclass.txt b/python/libxsltclass.txt
index 89be09ff..c46619a0 100644
--- a/python/libxsltclass.txt
+++ b/python/libxsltclass.txt
@@ -7,6 +7,7 @@
# functions from module extensions
debugDumpExtensions()
+initGlobals()
registerTestModule()
unregisterExtModule()
unregisterExtModuleElement()