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()