Changed to detect recursion in xslt:import (bug #127687). regenerated to
authorWilliam M. Brack <wbrack@src.gnome.org>
Sun, 23 Nov 2003 23:37:19 +0000 (23:37 +0000)
committerWilliam M. Brack <wbrack@src.gnome.org>
Sun, 23 Nov 2003 23:37:19 +0000 (23:37 +0000)
* libxslt/xslt.c, libxslt/imports.c, libxslt/parserInternals.h:
  Changed to detect recursion in xslt:import (bug #127687).
* doc/libxslt-api.xml, python/libxsltclass.txt: regenerated to
  include change to xsltParseStylesheetImportedDoc parameters for
  above.

ChangeLog
doc/libxslt-api.xml
libxslt/imports.c
libxslt/xslt.c
libxslt/xsltInternals.h
python/libxsltclass.txt

index dee1d8b..447acec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Mon Nov 24 07:32:38 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+       * libxslt/xslt.c, libxslt/imports.c, libxslt/parserInternals.h:
+         Changed to detect recursion in xslt:import (bug #127687).
+       * doc/libxslt-api.xml, python/libxsltclass.txt: regenerated to
+         include change to xsltParseStylesheetImportedDoc parameters for
+         above.
+
 Sat Nov 22 13:04:59 CET 2003 Daniel Veillard <daniel@veillard.com>
 
        * libxslt/keys.c libxslt/templates.c libxslt/transform.c
index 2aa1e0e..aa2476e 100644 (file)
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <api name='libxslt'>
   <files>
-    <file name='documents'>
-     <exports symbol='xsltFindDocument'/>
-     <exports symbol='xsltFreeDocuments'/>
-     <exports symbol='xsltFreeStyleDocuments'/>
-     <exports symbol='xsltLoadDocument'/>
-     <exports symbol='xsltLoadStyleDocument'/>
-     <exports symbol='xsltNewDocument'/>
-     <exports symbol='xsltNewStyleDocument'/>
+    <file name='attributes'>
+     <exports symbol='xsltResolveStylesheetAttributeSet' type='function'/>
+     <exports symbol='xsltParseStylesheetAttributeSet' type='function'/>
+     <exports symbol='xsltApplyAttributeSet' type='function'/>
+     <exports symbol='xsltFreeAttributeSetsHashes' type='function'/>
     </file>
-    <file name='imports'>
-     <exports symbol='XSLT_GET_IMPORT_INT'/>
-     <exports symbol='XSLT_GET_IMPORT_PTR'/>
-     <exports symbol='xsltFindElemSpaceHandling'/>
-     <exports symbol='xsltFindTemplate'/>
-     <exports symbol='xsltNeedElemSpaceHandling'/>
-     <exports symbol='xsltNextImport'/>
-     <exports symbol='xsltParseStylesheetImport'/>
-     <exports symbol='xsltParseStylesheetInclude'/>
+    <file name='documents'>
+     <exports symbol='xsltFreeDocuments' type='function'/>
+     <exports symbol='xsltNewDocument' type='function'/>
+     <exports symbol='xsltFreeStyleDocuments' type='function'/>
+     <exports symbol='xsltLoadDocument' type='function'/>
+     <exports symbol='xsltFindDocument' type='function'/>
+     <exports symbol='xsltLoadStyleDocument' type='function'/>
+     <exports symbol='xsltNewStyleDocument' type='function'/>
     </file>
-    <file name='security'>
-     <exports symbol='XSLT_SECPREF_CREATE_DIRECTORY'/>
-     <exports symbol='XSLT_SECPREF_READ_FILE'/>
-     <exports symbol='XSLT_SECPREF_READ_NETWORK'/>
-     <exports symbol='XSLT_SECPREF_WRITE_FILE'/>
-     <exports symbol='XSLT_SECPREF_WRITE_NETWORK'/>
-     <exports symbol='xsltCheckRead'/>
-     <exports symbol='xsltCheckWrite'/>
-     <exports symbol='xsltFreeSecurityPrefs'/>
-     <exports symbol='xsltGetDefaultSecurityPrefs'/>
-     <exports symbol='xsltGetSecurityPrefs'/>
-     <exports symbol='xsltNewSecurityPrefs'/>
-     <exports symbol='xsltSecurityAllow'/>
-     <exports symbol='xsltSecurityCheck'/>
-     <exports symbol='xsltSecurityForbid'/>
-     <exports symbol='xsltSecurityOption'/>
-     <exports symbol='xsltSecurityPrefs'/>
-     <exports symbol='xsltSecurityPrefsPtr'/>
-     <exports symbol='xsltSetCtxtSecurityPrefs'/>
-     <exports symbol='xsltSetDefaultSecurityPrefs'/>
-     <exports symbol='xsltSetSecurityPrefs'/>
+    <file name='extensions'>
+     <exports symbol='xsltRegisterExtPrefix' type='function'/>
+     <exports symbol='xsltRegisterExtFunction' type='function'/>
+     <exports symbol='xsltPreComputeFunction' type='function'/>
+     <exports symbol='xsltInitCtxtExts' type='function'/>
+     <exports symbol='xsltTopLevelFunction' type='function'/>
+     <exports symbol='xsltShutdownCtxtExts' type='function'/>
+     <exports symbol='xsltGetExtInfo' type='function'/>
+     <exports symbol='xsltUnregisterExtModuleFunction' type='function'/>
+     <exports symbol='xsltStyleGetExtData' type='function'/>
+     <exports symbol='xsltRegisterExtElement' type='function'/>
+     <exports symbol='xsltExtFunctionLookup' type='function'/>
+     <exports symbol='xsltExtInitFunction' type='function'/>
+     <exports symbol='xsltRegisterExtModuleElement' type='function'/>
+     <exports symbol='xsltFreeCtxtExts' type='function'/>
+     <exports symbol='xsltRegisterTestModule' type='function'/>
+     <exports symbol='xsltXPathGetTransformContext' type='function'/>
+     <exports symbol='xsltExtModuleElementLookup' type='function'/>
+     <exports symbol='xsltRegisterExtModuleFull' type='function'/>
+     <exports symbol='xsltUnregisterExtModuleTopLevel' type='function'/>
+     <exports symbol='xsltShutdownExts' type='function'/>
+     <exports symbol='xsltStyleExtShutdownFunction' type='function'/>
+     <exports symbol='xsltNewElemPreComp' type='function'/>
+     <exports symbol='xsltExtModuleElementPreComputeLookup' type='function'/>
+     <exports symbol='xsltUnregisterExtModuleElement' type='function'/>
+     <exports symbol='xsltInitElemPreComp' type='function'/>
+     <exports symbol='xsltDebugDumpExtensions' type='function'/>
+     <exports symbol='xsltCheckExtPrefix' type='function'/>
+     <exports symbol='xsltGetExtData' type='function'/>
+     <exports symbol='xsltRegisterExtModule' type='function'/>
+     <exports symbol='xsltExtElementLookup' type='function'/>
+     <exports symbol='xsltRegisterExtModuleTopLevel' type='function'/>
+     <exports symbol='xsltRegisterExtModuleFunction' type='function'/>
+     <exports symbol='xsltExtModuleTopLevelLookup' type='function'/>
+     <exports symbol='xsltFreeExts' type='function'/>
+     <exports symbol='xsltStyleExtInitFunction' type='function'/>
+     <exports symbol='xsltExtModuleFunctionLookup' type='function'/>
+     <exports symbol='xsltPreComputeExtModuleElement' type='function'/>
+     <exports symbol='xsltExtShutdownFunction' type='function'/>
+     <exports symbol='xsltUnregisterExtModule' type='function'/>
     </file>
-    <file name='templates'>
-     <exports symbol='xsltAttrListTemplateProcess'/>
-     <exports symbol='xsltAttrTemplateProcess'/>
-     <exports symbol='xsltAttrTemplateValueProcess'/>
-     <exports symbol='xsltAttrTemplateValueProcessNode'/>
-     <exports symbol='xsltEvalAttrValueTemplate'/>
-     <exports symbol='xsltEvalStaticAttrValueTemplate'/>
-     <exports symbol='xsltEvalTemplateString'/>
-     <exports symbol='xsltEvalXPathPredicate'/>
-     <exports symbol='xsltEvalXPathString'/>
-     <exports symbol='xsltEvalXPathStringNs'/>
-     <exports symbol='xsltTemplateProcess'/>
+    <file name='extra'>
+     <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='XSLT_NORM_SAXON_NAMESPACE' type='macro'/>
+     <exports symbol='xsltFunctionNodeSet' type='function'/>
+     <exports symbol='xsltRegisterExtras' type='function'/>
+     <exports symbol='xsltDebug' type='function'/>
+     <exports symbol='xsltRegisterAllExtras' type='function'/>
     </file>
-    <file name='xsltexports'>
-     <exports symbol='LIBXSLT_PUBLIC'/>
-     <exports symbol='XSLTCALL'/>
-     <exports symbol='XSLTPUBFUN'/>
-     <exports symbol='XSLTPUBVAR'/>
-     <exports symbol='_REENTRANT'/>
+    <file name='functions'>
+     <exports symbol='XSLT_REGISTER_FUNCTION_LOOKUP' type='macro'/>
+     <exports symbol='xsltXPathFunctionLookup' type='function'/>
+     <exports symbol='xsltRegisterAllFunctions' type='function'/>
+     <exports symbol='xsltFunctionAvailableFunction' type='function'/>
+     <exports symbol='xsltKeyFunction' type='function'/>
+     <exports symbol='xsltFormatNumberFunction' type='function'/>
+     <exports symbol='xsltUnparsedEntityURIFunction' type='function'/>
+     <exports symbol='xsltDocumentFunction' type='function'/>
+     <exports symbol='xsltSystemPropertyFunction' type='function'/>
+     <exports symbol='xsltElementAvailableFunction' type='function'/>
+     <exports symbol='xsltGenerateIdFunction' type='function'/>
     </file>
-    <file name='xsltutils'>
-     <exports symbol='IS_XSLT_ELEM'/>
-     <exports symbol='IS_XSLT_NAME'/>
-     <exports symbol='IS_XSLT_REAL_NODE'/>
-     <exports symbol='XSLT_DEBUG_CONT'/>
-     <exports symbol='XSLT_DEBUG_INIT'/>
-     <exports symbol='XSLT_DEBUG_NEXT'/>
-     <exports symbol='XSLT_DEBUG_NONE'/>
-     <exports symbol='XSLT_DEBUG_QUIT'/>
-     <exports symbol='XSLT_DEBUG_RUN'/>
-     <exports symbol='XSLT_DEBUG_RUN_RESTART'/>
-     <exports symbol='XSLT_DEBUG_STEP'/>
-     <exports symbol='XSLT_DEBUG_STEPOUT'/>
-     <exports symbol='XSLT_DEBUG_STOP'/>
-     <exports symbol='XSLT_STRANGE'/>
-     <exports symbol='XSLT_TIMESTAMP_TICS_PER_SEC'/>
-     <exports symbol='XSLT_TODO'/>
-     <exports symbol='xslAddCall'/>
-     <exports symbol='xslDebugStatus'/>
-     <exports symbol='xslDropCall'/>
-     <exports symbol='xsltAddCallCallback'/>
-     <exports symbol='xsltCalibrateAdjust'/>
-     <exports symbol='xsltComputeSortResult'/>
-     <exports symbol='xsltDebugStatusCodes'/>
-     <exports symbol='xsltDefaultSortFunction'/>
-     <exports symbol='xsltDoSortFunction'/>
-     <exports symbol='xsltDocumentSortFunction'/>
-     <exports symbol='xsltDropCallCallback'/>
-     <exports symbol='xsltGenericDebug'/>
-     <exports symbol='xsltGenericDebugContext'/>
-     <exports symbol='xsltGenericError'/>
-     <exports symbol='xsltGenericErrorContext'/>
-     <exports symbol='xsltGetDebuggerStatus'/>
-     <exports symbol='xsltGetNsProp'/>
-     <exports symbol='xsltGetProfileInformation'/>
-     <exports symbol='xsltGetQNameURI'/>
-     <exports symbol='xsltGetUTF8Char'/>
-     <exports symbol='xsltHandleDebuggerCallback'/>
-     <exports symbol='xsltMessage'/>
-     <exports symbol='xsltPrintErrorContext'/>
-     <exports symbol='xsltSaveProfiling'/>
-     <exports symbol='xsltSaveResultTo'/>
-     <exports symbol='xsltSaveResultToFd'/>
-     <exports symbol='xsltSaveResultToFile'/>
-     <exports symbol='xsltSaveResultToFilename'/>
-     <exports symbol='xsltSaveResultToString'/>
-     <exports symbol='xsltSetCtxtSortFunc'/>
-     <exports symbol='xsltSetDebuggerCallbacks'/>
-     <exports symbol='xsltSetDebuggerStatus'/>
-     <exports symbol='xsltSetGenericDebugFunc'/>
-     <exports symbol='xsltSetGenericErrorFunc'/>
-     <exports symbol='xsltSetSortFunc'/>
-     <exports symbol='xsltSetTransformErrorFunc'/>
-     <exports symbol='xsltTimestamp'/>
-     <exports symbol='xsltTransformError'/>
+    <file name='imports'>
+     <exports symbol='XSLT_GET_IMPORT_PTR' type='macro'/>
+     <exports symbol='XSLT_GET_IMPORT_INT' type='macro'/>
+     <exports symbol='xsltNeedElemSpaceHandling' type='function'/>
+     <exports symbol='xsltParseStylesheetImport' type='function'/>
+     <exports symbol='xsltFindTemplate' type='function'/>
+     <exports symbol='xsltFindElemSpaceHandling' type='function'/>
+     <exports symbol='xsltNextImport' type='function'/>
+     <exports symbol='xsltParseStylesheetInclude' type='function'/>
     </file>
-    <file name='functions'>
-     <exports symbol='XSLT_REGISTER_FUNCTION_LOOKUP'/>
-     <exports symbol='xsltDocumentFunction'/>
-     <exports symbol='xsltElementAvailableFunction'/>
-     <exports symbol='xsltFormatNumberFunction'/>
-     <exports symbol='xsltFunctionAvailableFunction'/>
-     <exports symbol='xsltGenerateIdFunction'/>
-     <exports symbol='xsltKeyFunction'/>
-     <exports symbol='xsltRegisterAllFunctions'/>
-     <exports symbol='xsltSystemPropertyFunction'/>
-     <exports symbol='xsltUnparsedEntityURIFunction'/>
-     <exports symbol='xsltXPathFunctionLookup'/>
+    <file name='keys'>
+     <exports symbol='xsltInitCtxtKeys' type='function'/>
+     <exports symbol='xsltFreeKeys' type='function'/>
+     <exports symbol='xsltGetKey' type='function'/>
+     <exports symbol='xsltFreeDocumentKeys' type='function'/>
+     <exports symbol='xsltAddKey' type='function'/>
     </file>
     <file name='namespaces'>
-     <exports symbol='xsltCopyNamespace'/>
-     <exports symbol='xsltCopyNamespaceList'/>
-     <exports symbol='xsltFreeNamespaceAliasHashes'/>
-     <exports symbol='xsltGetNamespace'/>
-     <exports symbol='xsltGetSpecialNamespace'/>
-     <exports symbol='xsltNamespaceAlias'/>
-    </file>
-    <file name='extra'>
-     <exports symbol='XSLT_LIBXSLT_NAMESPACE'/>
-     <exports symbol='XSLT_NORM_SAXON_NAMESPACE'/>
-     <exports symbol='XSLT_SAXON_NAMESPACE'/>
-     <exports symbol='XSLT_XALAN_NAMESPACE'/>
-     <exports symbol='XSLT_XT_NAMESPACE'/>
-     <exports symbol='xsltDebug'/>
-     <exports symbol='xsltFunctionNodeSet'/>
-     <exports symbol='xsltRegisterAllExtras'/>
-     <exports symbol='xsltRegisterExtras'/>
+     <exports symbol='xsltFreeNamespaceAliasHashes' type='function'/>
+     <exports symbol='xsltGetSpecialNamespace' type='function'/>
+     <exports symbol='xsltCopyNamespaceList' type='function'/>
+     <exports symbol='xsltCopyNamespace' type='function'/>
+     <exports symbol='xsltNamespaceAlias' type='function'/>
+     <exports symbol='xsltGetNamespace' type='function'/>
     </file>
-    <file name='xsltInternals'>
-     <exports symbol='CHECK_STOPPED'/>
-     <exports symbol='CHECK_STOPPED0'/>
-     <exports symbol='CHECK_STOPPEDE'/>
-     <exports symbol='XSLT_FUNC_APPLYIMPORTS'/>
-     <exports symbol='XSLT_FUNC_APPLYTEMPLATES'/>
-     <exports symbol='XSLT_FUNC_ATTRIBUTE'/>
-     <exports symbol='XSLT_FUNC_CALLTEMPLATE'/>
-     <exports symbol='XSLT_FUNC_CHOOSE'/>
-     <exports symbol='XSLT_FUNC_COMMENT'/>
-     <exports symbol='XSLT_FUNC_COPY'/>
-     <exports symbol='XSLT_FUNC_COPYOF'/>
-     <exports symbol='XSLT_FUNC_DOCUMENT'/>
-     <exports symbol='XSLT_FUNC_ELEMENT'/>
-     <exports symbol='XSLT_FUNC_EXTENSION'/>
-     <exports symbol='XSLT_FUNC_FOREACH'/>
-     <exports symbol='XSLT_FUNC_IF'/>
-     <exports symbol='XSLT_FUNC_NUMBER'/>
-     <exports symbol='XSLT_FUNC_PARAM'/>
-     <exports symbol='XSLT_FUNC_PI'/>
-     <exports symbol='XSLT_FUNC_SORT'/>
-     <exports symbol='XSLT_FUNC_TEXT'/>
-     <exports symbol='XSLT_FUNC_VALUEOF'/>
-     <exports symbol='XSLT_FUNC_VARIABLE'/>
-     <exports symbol='XSLT_FUNC_WHEN'/>
-     <exports symbol='XSLT_FUNC_WITHPARAM'/>
-     <exports symbol='XSLT_MAX_SORT'/>
-     <exports symbol='XSLT_OUTPUT_HTML'/>
-     <exports symbol='XSLT_OUTPUT_TEXT'/>
-     <exports symbol='XSLT_OUTPUT_XML'/>
-     <exports symbol='XSLT_PAT_NO_PRIORITY'/>
-     <exports symbol='XSLT_RUNTIME_EXTRA'/>
-     <exports symbol='XSLT_RUNTIME_EXTRA_FREE'/>
-     <exports symbol='XSLT_RUNTIME_EXTRA_LST'/>
-     <exports symbol='XSLT_STATE_ERROR'/>
-     <exports symbol='XSLT_STATE_OK'/>
-     <exports symbol='XSLT_STATE_STOPPED'/>
-     <exports symbol='_xsltDecimalFormat'/>
-     <exports symbol='_xsltDocument'/>
-     <exports symbol='_xsltElemPreComp'/>
-     <exports symbol='_xsltRuntimeExtra'/>
-     <exports symbol='_xsltStackElem'/>
-     <exports symbol='_xsltStylePreComp'/>
-     <exports symbol='_xsltStylesheet'/>
-     <exports symbol='_xsltTemplate'/>
-     <exports symbol='_xsltTransformContext'/>
-     <exports symbol='xsltAllocateExtra'/>
-     <exports symbol='xsltAllocateExtraCtxt'/>
-     <exports symbol='xsltCreateRVT'/>
-     <exports symbol='xsltDecimalFormat'/>
-     <exports symbol='xsltDecimalFormatGetByName'/>
-     <exports symbol='xsltDecimalFormatPtr'/>
-     <exports symbol='xsltDocument'/>
-     <exports symbol='xsltDocumentPtr'/>
-     <exports symbol='xsltElemPreComp'/>
-     <exports symbol='xsltElemPreCompDeallocator'/>
-     <exports symbol='xsltElemPreCompPtr'/>
-     <exports symbol='xsltFormatNumberConversion'/>
-     <exports symbol='xsltFreeRVTs'/>
-     <exports symbol='xsltFreeStackElemList'/>
-     <exports symbol='xsltFreeStylesheet'/>
-     <exports symbol='xsltIsBlank'/>
-     <exports symbol='xsltLoadStylesheetPI'/>
-     <exports symbol='xsltNewStylesheet'/>
-     <exports symbol='xsltNumberFormat'/>
-     <exports symbol='xsltOutputType'/>
-     <exports symbol='xsltParseStylesheetDoc'/>
-     <exports symbol='xsltParseStylesheetFile'/>
-     <exports symbol='xsltParseStylesheetImportedDoc'/>
-     <exports symbol='xsltParseStylesheetOutput'/>
-     <exports symbol='xsltParseStylesheetProcess'/>
-     <exports symbol='xsltParseTemplateContent'/>
-     <exports symbol='xsltRegisterPersistRVT'/>
-     <exports symbol='xsltRegisterTmpRVT'/>
-     <exports symbol='xsltRuntimeExtra'/>
-     <exports symbol='xsltRuntimeExtraPtr'/>
-     <exports symbol='xsltSortFunc'/>
-     <exports symbol='xsltStackElem'/>
-     <exports symbol='xsltStackElemPtr'/>
-     <exports symbol='xsltStylePreComp'/>
-     <exports symbol='xsltStylePreCompPtr'/>
-     <exports symbol='xsltStyleType'/>
-     <exports symbol='xsltStylesheet'/>
-     <exports symbol='xsltStylesheetPtr'/>
-     <exports symbol='xsltTemplate'/>
-     <exports symbol='xsltTemplatePtr'/>
-     <exports symbol='xsltTransformContext'/>
-     <exports symbol='xsltTransformContextPtr'/>
-     <exports symbol='xsltTransformFunction'/>
-     <exports symbol='xsltTransformState'/>
+    <file name='numbersInternals'>
+     <exports symbol='xsltFormatNumberInfo' type='typedef'/>
+     <exports symbol='xsltNumberData' type='typedef'/>
+     <exports symbol='xsltNumberDataPtr' type='typedef'/>
+     <exports symbol='xsltFormatNumberInfoPtr' type='typedef'/>
+     <exports symbol='_xsltNumberData' type='struct'/>
+     <exports symbol='_xsltFormatNumberInfo' type='struct'/>
     </file>
-    <file name='transform'>
-     <exports symbol='xslHandleDebugger'/>
-     <exports symbol='xsltApplyImports'/>
-     <exports symbol='xsltApplyOneTemplate'/>
-     <exports symbol='xsltApplyStripSpaces'/>
-     <exports symbol='xsltApplyStylesheet'/>
-     <exports symbol='xsltApplyStylesheetUser'/>
-     <exports symbol='xsltApplyTemplates'/>
-     <exports symbol='xsltAttribute'/>
-     <exports symbol='xsltCallTemplate'/>
-     <exports symbol='xsltChoose'/>
-     <exports symbol='xsltComment'/>
-     <exports symbol='xsltCopy'/>
-     <exports symbol='xsltCopyOf'/>
-     <exports symbol='xsltCopyTextString'/>
-     <exports symbol='xsltDocumentElem'/>
-     <exports symbol='xsltElement'/>
-     <exports symbol='xsltForEach'/>
-     <exports symbol='xsltFreeTransformContext'/>
-     <exports symbol='xsltGetXIncludeDefault'/>
-     <exports symbol='xsltIf'/>
-     <exports symbol='xsltNewTransformContext'/>
-     <exports symbol='xsltNumber'/>
-     <exports symbol='xsltProcessingInstruction'/>
-     <exports symbol='xsltProfileStylesheet'/>
-     <exports symbol='xsltRegisterAllElement'/>
-     <exports symbol='xsltRunStylesheet'/>
-     <exports symbol='xsltRunStylesheetUser'/>
-     <exports symbol='xsltSetXIncludeDefault'/>
-     <exports symbol='xsltSort'/>
-     <exports symbol='xsltText'/>
-     <exports symbol='xsltValueOf'/>
+    <file name='preproc'>
+     <exports symbol='xsltExtMarker' type='variable'/>
+     <exports symbol='xsltFreeStylePreComps' type='function'/>
+     <exports symbol='xsltDocumentComp' type='function'/>
+     <exports symbol='xsltStylePreCompute' type='function'/>
     </file>
-    <file name='attributes'>
-     <exports symbol='xsltApplyAttributeSet'/>
-     <exports symbol='xsltFreeAttributeSetsHashes'/>
-     <exports symbol='xsltParseStylesheetAttributeSet'/>
-     <exports symbol='xsltResolveStylesheetAttributeSet'/>
+    <file name='security'>
+     <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_WRITE_NETWORK' type='enum'/>
+     <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='xsltFreeSecurityPrefs' type='function'/>
+     <exports symbol='xsltSetDefaultSecurityPrefs' type='function'/>
+     <exports symbol='xsltSetCtxtSecurityPrefs' type='function'/>
+     <exports symbol='xsltGetSecurityPrefs' type='function'/>
+     <exports symbol='xsltSecurityAllow' type='function'/>
+     <exports symbol='xsltCheckWrite' type='function'/>
+     <exports symbol='xsltCheckRead' type='function'/>
+     <exports symbol='xsltSecurityForbid' type='function'/>
     </file>
-    <file name='extensions'>
-     <exports symbol='xsltCheckExtPrefix'/>
-     <exports symbol='xsltDebugDumpExtensions'/>
-     <exports symbol='xsltExtElementLookup'/>
-     <exports symbol='xsltExtFunctionLookup'/>
-     <exports symbol='xsltExtInitFunction'/>
-     <exports symbol='xsltExtModuleElementLookup'/>
-     <exports symbol='xsltExtModuleElementPreComputeLookup'/>
-     <exports symbol='xsltExtModuleFunctionLookup'/>
-     <exports symbol='xsltExtModuleTopLevelLookup'/>
-     <exports symbol='xsltExtShutdownFunction'/>
-     <exports symbol='xsltFreeCtxtExts'/>
-     <exports symbol='xsltFreeExts'/>
-     <exports symbol='xsltGetExtData'/>
-     <exports symbol='xsltGetExtInfo'/>
-     <exports symbol='xsltInitCtxtExts'/>
-     <exports symbol='xsltInitElemPreComp'/>
-     <exports symbol='xsltNewElemPreComp'/>
-     <exports symbol='xsltPreComputeExtModuleElement'/>
-     <exports symbol='xsltPreComputeFunction'/>
-     <exports symbol='xsltRegisterExtElement'/>
-     <exports symbol='xsltRegisterExtFunction'/>
-     <exports symbol='xsltRegisterExtModule'/>
-     <exports symbol='xsltRegisterExtModuleElement'/>
-     <exports symbol='xsltRegisterExtModuleFull'/>
-     <exports symbol='xsltRegisterExtModuleFunction'/>
-     <exports symbol='xsltRegisterExtModuleTopLevel'/>
-     <exports symbol='xsltRegisterExtPrefix'/>
-     <exports symbol='xsltRegisterTestModule'/>
-     <exports symbol='xsltShutdownCtxtExts'/>
-     <exports symbol='xsltShutdownExts'/>
-     <exports symbol='xsltStyleExtInitFunction'/>
-     <exports symbol='xsltStyleExtShutdownFunction'/>
-     <exports symbol='xsltStyleGetExtData'/>
-     <exports symbol='xsltTopLevelFunction'/>
-     <exports symbol='xsltUnregisterExtModule'/>
-     <exports symbol='xsltUnregisterExtModuleElement'/>
-     <exports symbol='xsltUnregisterExtModuleFunction'/>
-     <exports symbol='xsltUnregisterExtModuleTopLevel'/>
-     <exports symbol='xsltXPathGetTransformContext'/>
+    <file name='templates'>
+     <exports symbol='xsltEvalStaticAttrValueTemplate' type='function'/>
+     <exports symbol='xsltEvalAttrValueTemplate' type='function'/>
+     <exports symbol='xsltEvalTemplateString' type='function'/>
+     <exports symbol='xsltAttrTemplateValueProcess' type='function'/>
+     <exports symbol='xsltAttrTemplateProcess' type='function'/>
+     <exports symbol='xsltAttrListTemplateProcess' 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'/>
     </file>
-    <file name='keys'>
-     <exports symbol='xsltAddKey'/>
-     <exports symbol='xsltFreeDocumentKeys'/>
-     <exports symbol='xsltFreeKeys'/>
-     <exports symbol='xsltGetKey'/>
-     <exports symbol='xsltInitCtxtKeys'/>
+    <file name='transform'>
+     <exports symbol='xsltValueOf' type='function'/>
+     <exports symbol='xsltNumber' type='function'/>
+     <exports symbol='xsltRegisterAllElement' type='function'/>
+     <exports symbol='xsltRunStylesheetUser' type='function'/>
+     <exports symbol='xsltSort' type='function'/>
+     <exports symbol='xsltNewTransformContext' type='function'/>
+     <exports symbol='xsltGetXIncludeDefault' type='function'/>
+     <exports symbol='xsltApplyOneTemplate' type='function'/>
+     <exports symbol='xslHandleDebugger' type='function'/>
+     <exports symbol='xsltCopy' type='function'/>
+     <exports symbol='xsltDocumentElem' type='function'/>
+     <exports symbol='xsltApplyTemplates' type='function'/>
+     <exports symbol='xsltApplyImports' type='function'/>
+     <exports symbol='xsltIf' type='function'/>
+     <exports symbol='xsltCallTemplate' type='function'/>
+     <exports symbol='xsltApplyStylesheet' type='function'/>
+     <exports symbol='xsltApplyStripSpaces' type='function'/>
+     <exports symbol='xsltSetXIncludeDefault' type='function'/>
+     <exports symbol='xsltCopyOf' type='function'/>
+     <exports symbol='xsltFreeTransformContext' type='function'/>
+     <exports symbol='xsltAttribute' type='function'/>
+     <exports symbol='xsltRunStylesheet' type='function'/>
+     <exports symbol='xsltChoose' type='function'/>
+     <exports symbol='xsltCopyTextString' type='function'/>
+     <exports symbol='xsltElement' type='function'/>
+     <exports symbol='xsltProfileStylesheet' type='function'/>
+     <exports symbol='xsltForEach' type='function'/>
+     <exports symbol='xsltText' type='function'/>
+     <exports symbol='xsltApplyStylesheetUser' type='function'/>
+     <exports symbol='xsltProcessingInstruction' type='function'/>
+     <exports symbol='xsltComment' type='function'/>
     </file>
-    <file name='numbersInternals'>
-     <exports symbol='_xsltFormatNumberInfo'/>
-     <exports symbol='_xsltNumberData'/>
-     <exports symbol='xsltFormatNumberInfo'/>
-     <exports symbol='xsltFormatNumberInfoPtr'/>
-     <exports symbol='xsltNumberData'/>
-     <exports symbol='xsltNumberDataPtr'/>
+    <file name='variables'>
+     <exports symbol='XSLT_REGISTER_VARIABLE_LOOKUP' type='macro'/>
+     <exports symbol='xsltFreeGlobalVariables' type='function'/>
+     <exports symbol='xsltQuoteUserParams' type='function'/>
+     <exports symbol='xsltXPathVariableLookup' type='function'/>
+     <exports symbol='xsltParseGlobalParam' type='function'/>
+     <exports symbol='xsltParseStylesheetCallerParam' type='function'/>
+     <exports symbol='xsltAddStackElemList' type='function'/>
+     <exports symbol='xsltParseGlobalVariable' type='function'/>
+     <exports symbol='xsltQuoteOneUserParam' type='function'/>
+     <exports symbol='xsltEvalUserParams' type='function'/>
+     <exports symbol='xsltParseStylesheetVariable' type='function'/>
+     <exports symbol='xsltEvalGlobalVariables' type='function'/>
+     <exports symbol='xsltEvalOneUserParam' type='function'/>
+     <exports symbol='xsltParseStylesheetParam' type='function'/>
+     <exports symbol='xsltVariableLookup' type='function'/>
     </file>
     <file name='xslt'>
-     <exports symbol='XSLT_DEFAULT_URL'/>
-     <exports symbol='XSLT_DEFAULT_VENDOR'/>
-     <exports symbol='XSLT_DEFAULT_VERSION'/>
-     <exports symbol='XSLT_NAMESPACE'/>
-     <exports symbol='XSLT_PARSE_OPTIONS'/>
-     <exports symbol='xsltCleanupGlobals'/>
-     <exports symbol='xsltEngineVersion'/>
-     <exports symbol='xsltLibxmlVersion'/>
-     <exports symbol='xsltLibxsltVersion'/>
-     <exports symbol='xsltMaxDepth'/>
+     <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_NAMESPACE' type='macro'/>
+     <exports symbol='xsltLibxmlVersion' type='variable'/>
+     <exports symbol='xsltEngineVersion' type='variable'/>
+     <exports symbol='xsltLibxsltVersion' type='variable'/>
+     <exports symbol='xsltMaxDepth' type='variable'/>
+     <exports symbol='xsltCleanupGlobals' type='function'/>
     </file>
-    <file name='preproc'>
-     <exports symbol='xsltDocumentComp'/>
-     <exports symbol='xsltExtMarker'/>
-     <exports symbol='xsltFreeStylePreComps'/>
-     <exports symbol='xsltStylePreCompute'/>
+    <file name='xsltInternals'>
+     <exports symbol='CHECK_STOPPED0' type='macro'/>
+     <exports symbol='XSLT_PAT_NO_PRIORITY' type='macro'/>
+     <exports symbol='XSLT_MAX_SORT' type='macro'/>
+     <exports symbol='XSLT_RUNTIME_EXTRA' type='macro'/>
+     <exports symbol='CHECK_STOPPEDE' type='macro'/>
+     <exports symbol='CHECK_STOPPED' type='macro'/>
+     <exports symbol='XSLT_RUNTIME_EXTRA_LST' type='macro'/>
+     <exports symbol='XSLT_RUNTIME_EXTRA_FREE' type='macro'/>
+     <exports symbol='XSLT_FUNC_ELEMENT' type='enum'/>
+     <exports symbol='XSLT_FUNC_WHEN' type='enum'/>
+     <exports symbol='XSLT_FUNC_APPLYIMPORTS' type='enum'/>
+     <exports symbol='XSLT_FUNC_VALUEOF' type='enum'/>
+     <exports symbol='XSLT_FUNC_WITHPARAM' type='enum'/>
+     <exports symbol='XSLT_FUNC_COPY' type='enum'/>
+     <exports symbol='XSLT_OUTPUT_XML' type='enum'/>
+     <exports symbol='XSLT_FUNC_EXTENSION' type='enum'/>
+     <exports symbol='XSLT_STATE_ERROR' type='enum'/>
+     <exports symbol='XSLT_OUTPUT_HTML' type='enum'/>
+     <exports symbol='XSLT_OUTPUT_TEXT' type='enum'/>
+     <exports symbol='XSLT_STATE_OK' type='enum'/>
+     <exports symbol='XSLT_FUNC_COPYOF' type='enum'/>
+     <exports symbol='XSLT_FUNC_PARAM' type='enum'/>
+     <exports symbol='XSLT_FUNC_FOREACH' type='enum'/>
+     <exports symbol='XSLT_FUNC_COMMENT' type='enum'/>
+     <exports symbol='XSLT_FUNC_DOCUMENT' type='enum'/>
+     <exports symbol='XSLT_FUNC_CHOOSE' type='enum'/>
+     <exports symbol='XSLT_FUNC_SORT' type='enum'/>
+     <exports symbol='XSLT_FUNC_IF' type='enum'/>
+     <exports symbol='XSLT_FUNC_PI' type='enum'/>
+     <exports symbol='XSLT_FUNC_TEXT' type='enum'/>
+     <exports symbol='XSLT_STATE_STOPPED' type='enum'/>
+     <exports symbol='XSLT_FUNC_VARIABLE' 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_CALLTEMPLATE' type='enum'/>
+     <exports symbol='xsltStylePreComp' type='typedef'/>
+     <exports symbol='xsltRuntimeExtra' type='typedef'/>
+     <exports symbol='xsltTransformContext' type='typedef'/>
+     <exports symbol='xsltElemPreComp' type='typedef'/>
+     <exports symbol='xsltTemplatePtr' type='typedef'/>
+     <exports symbol='xsltOutputType' type='typedef'/>
+     <exports symbol='xsltDecimalFormat' type='typedef'/>
+     <exports symbol='xsltDecimalFormatPtr' type='typedef'/>
+     <exports symbol='xsltTransformContextPtr' type='typedef'/>
+     <exports symbol='xsltDocument' type='typedef'/>
+     <exports symbol='xsltTransformState' type='typedef'/>
+     <exports symbol='xsltStylePreCompPtr' type='typedef'/>
+     <exports symbol='xsltDocumentPtr' type='typedef'/>
+     <exports symbol='xsltStylesheetPtr' type='typedef'/>
+     <exports symbol='xsltStyleType' type='typedef'/>
+     <exports symbol='xsltRuntimeExtraPtr' type='typedef'/>
+     <exports symbol='xsltStylesheet' type='typedef'/>
+     <exports symbol='xsltElemPreCompPtr' type='typedef'/>
+     <exports symbol='xsltTemplate' type='typedef'/>
+     <exports symbol='xsltStackElem' type='typedef'/>
+     <exports symbol='xsltStackElemPtr' type='typedef'/>
+     <exports symbol='_xsltStylePreComp' type='struct'/>
+     <exports symbol='_xsltStackElem' type='struct'/>
+     <exports symbol='_xsltTransformContext' type='struct'/>
+     <exports symbol='_xsltElemPreComp' type='struct'/>
+     <exports symbol='_xsltDecimalFormat' type='struct'/>
+     <exports symbol='_xsltTemplate' type='struct'/>
+     <exports symbol='_xsltDocument' type='struct'/>
+     <exports symbol='_xsltRuntimeExtra' type='struct'/>
+     <exports symbol='_xsltStylesheet' type='struct'/>
+     <exports symbol='xsltElemPreCompDeallocator' type='function'/>
+     <exports symbol='xsltRegisterPersistRVT' type='function'/>
+     <exports symbol='xsltParseStylesheetImportedDoc' type='function'/>
+     <exports symbol='xsltFreeStackElemList' type='function'/>
+     <exports symbol='xsltAllocateExtra' type='function'/>
+     <exports symbol='xsltNumberFormat' type='function'/>
+     <exports symbol='xsltFreeRVTs' type='function'/>
+     <exports symbol='xsltRegisterTmpRVT' type='function'/>
+     <exports symbol='xsltAllocateExtraCtxt' type='function'/>
+     <exports symbol='xsltIsBlank' type='function'/>
+     <exports symbol='xsltParseStylesheetFile' type='function'/>
+     <exports symbol='xsltParseTemplateContent' type='function'/>
+     <exports symbol='xsltNewStylesheet' type='function'/>
+     <exports symbol='xsltFormatNumberConversion' type='function'/>
+     <exports symbol='xsltDecimalFormatGetByName' type='function'/>
+     <exports symbol='xsltTransformFunction' type='function'/>
+     <exports symbol='xsltSortFunc' type='function'/>
+     <exports symbol='xsltParseStylesheetDoc' type='function'/>
+     <exports symbol='xsltLoadStylesheetPI' type='function'/>
+     <exports symbol='xsltFreeStylesheet' type='function'/>
+     <exports symbol='xsltCreateRVT' type='function'/>
+     <exports symbol='xsltParseStylesheetProcess' type='function'/>
+     <exports symbol='xsltParseStylesheetOutput' type='function'/>
     </file>
-    <file name='variables'>
-     <exports symbol='XSLT_REGISTER_VARIABLE_LOOKUP'/>
-     <exports symbol='xsltAddStackElemList'/>
-     <exports symbol='xsltEvalGlobalVariables'/>
-     <exports symbol='xsltEvalOneUserParam'/>
-     <exports symbol='xsltEvalUserParams'/>
-     <exports symbol='xsltFreeGlobalVariables'/>
-     <exports symbol='xsltParseGlobalParam'/>
-     <exports symbol='xsltParseGlobalVariable'/>
-     <exports symbol='xsltParseStylesheetCallerParam'/>
-     <exports symbol='xsltParseStylesheetParam'/>
-     <exports symbol='xsltParseStylesheetVariable'/>
-     <exports symbol='xsltQuoteOneUserParam'/>
-     <exports symbol='xsltQuoteUserParams'/>
-     <exports symbol='xsltVariableLookup'/>
-     <exports symbol='xsltXPathVariableLookup'/>
+    <file name='xsltexports'>
+     <exports symbol='LIBXSLT_PUBLIC' type='macro'/>
+     <exports symbol='XSLTPUBFUN' type='macro'/>
+     <exports symbol='XSLTPUBVAR' type='macro'/>
+     <exports symbol='_REENTRANT' type='macro'/>
+     <exports symbol='XSLTCALL' type='macro'/>
     </file>
-    <file name='pattern'>
-     <exports symbol='xsltAddTemplate'/>
-     <exports symbol='xsltCleanupTemplates'/>
-     <exports symbol='xsltCompMatch'/>
-     <exports symbol='xsltCompMatchPtr'/>
-     <exports symbol='xsltCompilePattern'/>
-     <exports symbol='xsltFreeCompMatchList'/>
-     <exports symbol='xsltFreeTemplateHashes'/>
-     <exports symbol='xsltGetTemplate'/>
-     <exports symbol='xsltMatchPattern'/>
-     <exports symbol='xsltNormalizeCompSteps'/>
-     <exports symbol='xsltTestCompMatchList'/>
+    <file name='xsltutils'>
+     <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_TIMESTAMP_TICS_PER_SEC' type='macro'/>
+     <exports symbol='XSLT_STRANGE' type='macro'/>
+     <exports symbol='XSLT_TODO' type='macro'/>
+     <exports symbol='XSLT_DEBUG_RUN' type='enum'/>
+     <exports symbol='XSLT_DEBUG_STEPOUT' type='enum'/>
+     <exports symbol='XSLT_DEBUG_INIT' type='enum'/>
+     <exports symbol='XSLT_DEBUG_NONE' type='enum'/>
+     <exports symbol='XSLT_DEBUG_RUN_RESTART' type='enum'/>
+     <exports symbol='XSLT_DEBUG_QUIT' type='enum'/>
+     <exports symbol='XSLT_DEBUG_CONT' type='enum'/>
+     <exports symbol='XSLT_DEBUG_STEP' type='enum'/>
+     <exports symbol='XSLT_DEBUG_STOP' type='enum'/>
+     <exports symbol='XSLT_DEBUG_NEXT' type='enum'/>
+     <exports symbol='xsltDebugStatusCodes' type='typedef'/>
+     <exports symbol='xsltGenericError' type='variable'/>
+     <exports symbol='xsltGenericDebug' type='variable'/>
+     <exports symbol='xsltGenericErrorContext' type='variable'/>
+     <exports symbol='xslDebugStatus' type='variable'/>
+     <exports symbol='xsltGenericDebugContext' type='variable'/>
+     <exports symbol='xsltTimestamp' type='function'/>
+     <exports symbol='xsltSaveResultToFile' type='function'/>
+     <exports symbol='xsltSetDebuggerStatus' type='function'/>
+     <exports symbol='xsltSetTransformErrorFunc' type='function'/>
+     <exports symbol='xsltSetGenericErrorFunc' type='function'/>
+     <exports symbol='xsltSetDebuggerCallbacks' type='function'/>
+     <exports symbol='xsltCalibrateAdjust' type='function'/>
+     <exports symbol='xsltSetGenericDebugFunc' type='function'/>
+     <exports symbol='xsltComputeSortResult' type='function'/>
+     <exports symbol='xsltSetSortFunc' type='function'/>
+     <exports symbol='xsltDocumentSortFunction' type='function'/>
+     <exports symbol='xsltTransformError' type='function'/>
+     <exports symbol='xslAddCall' type='function'/>
+     <exports symbol='xsltGetDebuggerStatus' type='function'/>
+     <exports symbol='xsltPrintErrorContext' type='function'/>
+     <exports symbol='xsltGetUTF8Char' type='function'/>
+     <exports symbol='xsltDefaultSortFunction' type='function'/>
+     <exports symbol='xsltSaveResultToFd' type='function'/>
+     <exports symbol='xsltSetCtxtSortFunc' type='function'/>
+     <exports symbol='xsltGetNsProp' type='function'/>
+     <exports symbol='xsltSaveResultToFilename' type='function'/>
+     <exports symbol='xsltGetQNameURI' type='function'/>
+     <exports symbol='xsltAddCallCallback' type='function'/>
+     <exports symbol='xslDropCall' type='function'/>
+     <exports symbol='xsltSaveResultTo' type='function'/>
+     <exports symbol='xsltSaveProfiling' type='function'/>
+     <exports symbol='xsltSaveResultToString' type='function'/>
+     <exports symbol='xsltHandleDebuggerCallback' type='function'/>
+     <exports symbol='xsltDoSortFunction' type='function'/>
+     <exports symbol='xsltMessage' type='function'/>
+     <exports symbol='xsltDropCallCallback' type='function'/>
+     <exports symbol='xsltGetProfileInformation' type='function'/>
     </file>
   </files>
   <symbols>
     <enum name='XSLT_STATE_ERROR' file='xsltInternals' value='1' type='xsltTransformState'/>
     <enum name='XSLT_STATE_OK' file='xsltInternals' value='0' type='xsltTransformState'/>
     <enum name='XSLT_STATE_STOPPED' file='xsltInternals' value='2' type='xsltTransformState'/>
-    <struct name='xsltCompMatch' file='pattern' type='struct _xsltCompMatch'/>
-    <typedef name='xsltCompMatchPtr' file='pattern' type='xsltCompMatch *'/>
     <typedef name='xsltDebugStatusCodes' file='xsltutils' type='enum'/>
     <struct name='xsltDecimalFormat' file='xsltInternals' type='struct _xsltDecimalFormat'>
       <field name='next' type='struct _xsltDecimalFormat *' info=' chained list'/>
@@ -835,14 +820,6 @@ informations are stored'/>
       <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'>
-      <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='cur' type='xsltTemplatePtr' info='an XSLT template'/>
-      <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'>
       <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'/>
@@ -989,11 +966,6 @@ informations are stored'/>
       <info>Unregister all global variables set up by the XSLT library</info>
       <return type='void'/>
     </function>
-    <function name='xsltCleanupTemplates' file='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'>
       <info>Process the xslt comment node on the source node</info>
       <return type='void'/>
@@ -1002,15 +974,6 @@ informations are stored'/>
       <arg name='inst' type='xmlNodePtr' info='the xslt comment node'/>
       <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
     </function>
-    <function name='xsltCompilePattern' file='pattern'>
-      <info>Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching.  [1] Pattern ::= LocationPathPattern | Pattern &apos;|&apos; 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='doc' type='xmlDocPtr' info='the containing document'/>
-      <arg name='node' type='xmlNodePtr' info='the containing element'/>
-      <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'>
       <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.'/>
@@ -1303,11 +1266,6 @@ informations are stored'/>
       <return type='void'/>
       <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
     </function>
-    <function name='xsltFreeCompMatchList' file='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'>
       <info>Free the XSLT extension data</info>
       <return type='void'/>
@@ -1373,11 +1331,6 @@ informations are stored'/>
       <return type='void'/>
       <arg name='sheet' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
     </function>
-    <function name='xsltFreeTemplateHashes' file='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'>
       <info>Free up the memory allocated by @ctxt</info>
       <return type='void'/>
@@ -1470,13 +1423,6 @@ informations are stored'/>
       <arg name='prefix' type='const xmlChar *' info='the suggested prefix'/>
       <arg name='out' type='xmlNodePtr' info='the output node (or its parent)'/>
     </function>
-    <function name='xsltGetTemplate' file='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'>
       <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'/>
@@ -1551,15 +1497,6 @@ informations are stored'/>
       <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='xsltMatchPattern' file='pattern'>
-      <info></info>
-      <return type='int' info=''/>
-      <arg name='ctxt' type='xsltTransformContextPtr' info=''/>
-      <arg name='node' type='xmlNodePtr' info=''/>
-      <arg name='pattern' type='const xmlChar *' info=''/>
-      <arg name='ctxtdoc' type='xmlDocPtr' info=''/>
-      <arg name='ctxtnode' type='xmlNodePtr' info=''/>
-    </function>
     <function name='xsltMessage' file='xsltutils'>
       <info>Process and xsl:message construct</info>
       <return type='void'/>
@@ -1616,13 +1553,6 @@ informations are stored'/>
       <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'>
-      <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'>
       <info>Process the xslt number node on the source node</info>
       <return type='void'/>
@@ -1681,7 +1611,8 @@ informations are stored'/>
     <function name='xsltParseStylesheetImportedDoc' file='xsltInternals'>
       <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='and xmlDoc parsed XML'/>
+      <arg name='doc' type='xmlDocPtr' info='an xmlDoc parsed XML'/>
+      <arg name='style' type='xsltStylesheetPtr' info='pointer to parent stylesheet'/>
     </function>
     <function name='xsltParseStylesheetInclude' file='imports'>
       <info>parse an XSLT stylesheet include element</info>
@@ -2081,13 +2012,6 @@ informations are stored'/>
       <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'>
-      <info>Test wether the node matches one of the patterns in the list</info>
-      <return type='int' info='1 if it matches, 0 if it doesn&apos;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'>
       <info>Process the xslt text node on the source node</info>
       <return type='void'/>
index eea90c1..e624d9e 100644 (file)
@@ -91,6 +91,18 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) {
        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;
+    }
+
     /*
      * Security framework check
      */
@@ -118,9 +130,8 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) {
        goto error;
     }
 
-    res = xsltParseStylesheetImportedDoc(import);
+    res = xsltParseStylesheetImportedDoc(import, style);
     if (res != NULL) {
-       res->parent = style;
        res->next = style->imports;
        style->imports = res;
        xmlHashScan(res->templatesHash, 
index b505f66..e65793b 100644 (file)
@@ -1966,7 +1966,8 @@ xsltParseStylesheetProcess(xsltStylesheetPtr ret, xmlDocPtr doc) {
 
 /**
  * xsltParseStylesheetImportedDoc:
- * @doc:  and xmlDoc parsed XML
+ * @doc:  an xmlDoc parsed XML
+ * @style: pointer to parent stylesheet
  *
  * parse an XSLT stylesheet building the associated structures
  * except the processing not needed for imported documents.
@@ -1975,7 +1976,7 @@ xsltParseStylesheetProcess(xsltStylesheetPtr ret, xmlDocPtr doc) {
  */
 
 xsltStylesheetPtr
-xsltParseStylesheetImportedDoc(xmlDocPtr doc) {
+xsltParseStylesheetImportedDoc(xmlDocPtr doc, xsltStylesheetPtr style) {
     xsltStylesheetPtr ret;
 
     if (doc == NULL)
@@ -1986,6 +1987,7 @@ xsltParseStylesheetImportedDoc(xmlDocPtr doc) {
        return(NULL);
     
     ret->doc = doc;
+    ret->parent = style;       /* needed to prevent loops */
     xsltGatherNamespaces(ret);
     if (xsltParseStylesheetProcess(ret, doc) == NULL) {
        ret->doc = NULL;
@@ -2016,7 +2018,7 @@ xsltStylesheetPtr
 xsltParseStylesheetDoc(xmlDocPtr doc) {
     xsltStylesheetPtr ret;
 
-    ret = xsltParseStylesheetImportedDoc(doc);
+    ret = xsltParseStylesheetImportedDoc(doc, NULL);
     if (ret == NULL)
        return(NULL);
 
index 7e37959..5cf478b 100644 (file)
@@ -572,7 +572,8 @@ XSLTPUBFUN void XSLTCALL
 XSLTPUBFUN xsltStylesheetPtr XSLTCALL  
                        xsltParseStylesheetDoc  (xmlDocPtr doc);
 XSLTPUBFUN xsltStylesheetPtr XSLTCALL  
-                       xsltParseStylesheetImportedDoc(xmlDocPtr doc);
+                       xsltParseStylesheetImportedDoc(xmlDocPtr doc,
+                                               xsltStylesheetPtr style);
 XSLTPUBFUN xsltStylesheetPtr XSLTCALL  
                        xsltLoadStylesheetPI    (xmlDocPtr doc);
 XSLTPUBFUN void XSLTCALL                       
index 0b88bb4..11db84b 100644 (file)
@@ -32,7 +32,6 @@ loadStylesheetPI()
 newStylesheet()
 parseStylesheetDoc()
 parseStylesheetFile()
-parseStylesheetImportedDoc()
 
 # functions from module xsltutils
 calibrateAdjust()
@@ -179,10 +178,6 @@ Class stylesheet()
     freeNamespaceAliasHashes()
     namespaceAlias()
 
-    # functions from module pattern
-    cleanupTemplates()
-    freeTemplateHashes()
-
     # functions from module preproc
     freeStylePreComps()
     stylePreCompute()
@@ -198,6 +193,7 @@ Class stylesheet()
     # functions from module xsltInternals
     allocateExtra()
     freeStylesheet()
+    parseStylesheetImportedDoc()
     parseStylesheetOutput()
     parseStylesheetProcess()
     parseTemplateContent()