applied the same kind of fixes to the Python Makefiels than to libxml2
authorDaniel Veillard <veillard@src.gnome.org>
Mon, 18 Mar 2002 15:24:51 +0000 (15:24 +0000)
committerDaniel Veillard <veillard@src.gnome.org>
Mon, 18 Mar 2002 15:24:51 +0000 (15:24 +0000)
* python/Makefile.am python/generator.py python/libxslt.c
  python/types.c python/tests/Makefile.am: applied the same kind of
  fixes to the Python Makefiels than to libxml2 ones. Updates
  and cleanups too.
Daniel

ChangeLog
doc/libxslt-api.xml
doc/libxslt-decl.txt
doc/libxslt-refs.xml
python/Makefile.am
python/generator.py
python/libxslt.c
python/tests/Makefile.am
python/types.c

index 77b4756..1db7cfb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Mon Mar 18 16:22:46 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+       * python/Makefile.am python/generator.py python/libxslt.c
+         python/types.c python/tests/Makefile.am: applied the same kind of
+         fixes to the Python Makefiels than to libxml2 ones. Updates
+         and cleanups too.
+
 Sat Mar 16 23:48:21 CET 2002 Daniel Veillard <daniel@veillard.com>
 
        * libexslt/common.c libxslt/pattern.c  libxslt/transform.c
index 3eb421f..006888b 100644 (file)
      <exports symbol='xslAddCall'/>
      <exports symbol='xslDropCall'/>
     </file>
-    <file name='attributes'>
-     <exports symbol='xsltParseStylesheetAttributeSet'/>
-     <exports symbol='xsltFreeAttributeSetsHashes'/>
-     <exports symbol='xsltApplyAttributeSet'/>
+    <file name='xsltwin32config'>
+     <exports symbol='LIBXSLT_DOTTED_VERSION'/>
+     <exports symbol='LIBXSLT_VERSION'/>
+     <exports symbol='LIBXSLT_VERSION_STRING'/>
+     <exports symbol='WITH_XSLT_DEBUG'/>
+     <exports symbol='DEBUG_MEMORY'/>
+     <exports symbol='DEBUG_MEMORY_LOCATION'/>
+     <exports symbol='ATTRIBUTE_UNUSED'/>
+     <exports symbol='LIBXSLT_PUBLIC'/>
+    </file>
+    <file name='libxslt'>
+     <exports symbol='IN_LIBXSLT'/>
+     <exports symbol='LIBXSLT_PUBLIC'/>
     </file>
     <file name='numbersInternals'>
     </file>
      <exports symbol='xsltPreComputeExtModuleElement'/>
      <exports symbol='xsltRegisterTestModule'/>
     </file>
-    <file name='imports'>
-     <exports symbol='XSLT_GET_IMPORT_PTR'/>
-     <exports symbol='XSLT_GET_IMPORT_INT'/>
-     <exports symbol='xsltParseStylesheetImport'/>
-     <exports symbol='xsltParseStylesheetInclude'/>
-     <exports symbol='xsltNextImport'/>
-     <exports symbol='xsltNeedElemSpaceHandling'/>
-     <exports symbol='xsltFindElemSpaceHandling'/>
-     <exports symbol='xsltFindTemplate'/>
+    <file name='attributes'>
+     <exports symbol='xsltParseStylesheetAttributeSet'/>
+     <exports symbol='xsltFreeAttributeSetsHashes'/>
+     <exports symbol='xsltApplyAttributeSet'/>
     </file>
     <file name='xsltInternals'>
      <exports symbol='XSLT_MAX_SORT'/>
      <exports symbol='xsltAllocateExtra'/>
      <exports symbol='xsltAllocateExtraCtxt'/>
     </file>
-    <file name='libxslt'>
-     <exports symbol='IN_LIBXSLT'/>
-     <exports symbol='LIBXSLT_PUBLIC'/>
-    </file>
-    <file name='transform'>
-     <exports symbol='xsltSetXIncludeDefault'/>
-     <exports symbol='xsltGetXIncludeDefault'/>
-     <exports symbol='xsltNewTransformContext'/>
-     <exports symbol='xsltFreeTransformContext'/>
-     <exports symbol='xsltApplyStylesheetUser'/>
-     <exports symbol='xsltApplyStripSpaces'/>
-     <exports symbol='xsltExtElementLookup'/>
-     <exports symbol='xsltApplyStylesheet'/>
-     <exports symbol='xsltProfileStylesheet'/>
-     <exports symbol='xsltRunStylesheet'/>
-     <exports symbol='xsltApplyOneTemplate'/>
-     <exports symbol='xsltDocumentElem'/>
-     <exports symbol='xsltSort'/>
-     <exports symbol='xsltCopy'/>
-     <exports symbol='xsltText'/>
-     <exports symbol='xsltElement'/>
-     <exports symbol='xsltComment'/>
-     <exports symbol='xsltAttribute'/>
-     <exports symbol='xsltProcessingInstruction'/>
-     <exports symbol='xsltCopyOf'/>
-     <exports symbol='xsltValueOf'/>
-     <exports symbol='xsltNumber'/>
-     <exports symbol='xsltApplyImports'/>
-     <exports symbol='xsltCallTemplate'/>
-     <exports symbol='xsltApplyTemplates'/>
-     <exports symbol='xsltChoose'/>
-     <exports symbol='xsltIf'/>
-     <exports symbol='xsltForEach'/>
-     <exports symbol='xsltRegisterAllElement'/>
-     <exports symbol='xslHandleDebugger'/>
+    <file name='pattern'>
+     <exports symbol='xsltCompMatch'/>
+     <exports symbol='xsltCompMatchPtr'/>
+     <exports symbol='xsltCompilePattern'/>
+     <exports symbol='xsltFreeCompMatchList'/>
+     <exports symbol='xsltTestCompMatchList'/>
+     <exports symbol='xsltAddTemplate'/>
+     <exports symbol='xsltGetTemplate'/>
+     <exports symbol='xsltFreeTemplateHashes'/>
+     <exports symbol='xsltCleanupTemplates'/>
+     <exports symbol='xsltMatchPattern'/>
     </file>
     <file name='documents'>
      <exports symbol='xsltNewDocument'/>
      <exports symbol='xsltNewStyleDocument'/>
      <exports symbol='xsltFreeStyleDocuments'/>
     </file>
-    <file name='extra'>
-     <exports symbol='XSLT_LIBXSLT_NAMESPACE'/>
-     <exports symbol='XSLT_SAXON_NAMESPACE'/>
-     <exports symbol='XSLT_XT_NAMESPACE'/>
-     <exports symbol='XSLT_XALAN_NAMESPACE'/>
-     <exports symbol='XSLT_NORM_SAXON_NAMESPACE'/>
-     <exports symbol='xsltFunctionNodeSet'/>
-     <exports symbol='xsltDebug'/>
-     <exports symbol='xsltRegisterExtras'/>
-     <exports symbol='xsltRegisterAllExtras'/>
-    </file>
     <file name='variables'>
      <exports symbol='XSLT_REGISTER_VARIABLE_LOOKUP'/>
      <exports symbol='xsltEvalGlobalVariables'/>
      <exports symbol='xsltVariableLookup'/>
      <exports symbol='xsltXPathVariableLookup'/>
     </file>
-    <file name='pattern'>
-     <exports symbol='xsltCompMatch'/>
-     <exports symbol='xsltCompMatchPtr'/>
-     <exports symbol='xsltCompilePattern'/>
-     <exports symbol='xsltFreeCompMatchList'/>
-     <exports symbol='xsltTestCompMatchList'/>
-     <exports symbol='xsltAddTemplate'/>
-     <exports symbol='xsltGetTemplate'/>
-     <exports symbol='xsltFreeTemplateHashes'/>
-     <exports symbol='xsltCleanupTemplates'/>
-     <exports symbol='xsltMatchPattern'/>
+    <file name='imports'>
+     <exports symbol='XSLT_GET_IMPORT_PTR'/>
+     <exports symbol='XSLT_GET_IMPORT_INT'/>
+     <exports symbol='xsltParseStylesheetImport'/>
+     <exports symbol='xsltParseStylesheetInclude'/>
+     <exports symbol='xsltNextImport'/>
+     <exports symbol='xsltNeedElemSpaceHandling'/>
+     <exports symbol='xsltFindElemSpaceHandling'/>
+     <exports symbol='xsltFindTemplate'/>
     </file>
     <file name='keys'>
      <exports symbol='xsltAddKey'/>
      <exports symbol='xsltFreeKeys'/>
      <exports symbol='xsltFreeDocumentKeys'/>
     </file>
-    <file name='xslt'>
-     <exports symbol='XSLT_DEFAULT_VERSION'/>
-     <exports symbol='XSLT_DEFAULT_VENDOR'/>
-     <exports symbol='XSLT_DEFAULT_URL'/>
-     <exports symbol='XSLT_NAMESPACE'/>
-     <exports symbol='LIBXSLT_PUBLIC'/>
-     <exports symbol='xsltCleanupGlobals'/>
+    <file name='extra'>
+     <exports symbol='XSLT_LIBXSLT_NAMESPACE'/>
+     <exports symbol='XSLT_SAXON_NAMESPACE'/>
+     <exports symbol='XSLT_XT_NAMESPACE'/>
+     <exports symbol='XSLT_XALAN_NAMESPACE'/>
+     <exports symbol='XSLT_NORM_SAXON_NAMESPACE'/>
+     <exports symbol='xsltFunctionNodeSet'/>
+     <exports symbol='xsltDebug'/>
+     <exports symbol='xsltRegisterExtras'/>
+     <exports symbol='xsltRegisterAllExtras'/>
     </file>
     <file name='preproc'>
      <exports symbol='xsltExtMarker'/>
      <exports symbol='xsltStylePreCompute'/>
      <exports symbol='xsltFreeStylePreComps'/>
     </file>
-    <file name='xsltwin32config'>
-     <exports symbol='LIBXSLT_DOTTED_VERSION'/>
-     <exports symbol='LIBXSLT_VERSION'/>
-     <exports symbol='LIBXSLT_VERSION_STRING'/>
-     <exports symbol='WITH_XSLT_DEBUG'/>
-     <exports symbol='DEBUG_MEMORY'/>
-     <exports symbol='DEBUG_MEMORY_LOCATION'/>
-     <exports symbol='ATTRIBUTE_UNUSED'/>
+    <file name='transform'>
+     <exports symbol='xsltSetXIncludeDefault'/>
+     <exports symbol='xsltGetXIncludeDefault'/>
+     <exports symbol='xsltNewTransformContext'/>
+     <exports symbol='xsltFreeTransformContext'/>
+     <exports symbol='xsltApplyStylesheetUser'/>
+     <exports symbol='xsltApplyStripSpaces'/>
+     <exports symbol='xsltExtElementLookup'/>
+     <exports symbol='xsltApplyStylesheet'/>
+     <exports symbol='xsltProfileStylesheet'/>
+     <exports symbol='xsltRunStylesheet'/>
+     <exports symbol='xsltApplyOneTemplate'/>
+     <exports symbol='xsltDocumentElem'/>
+     <exports symbol='xsltSort'/>
+     <exports symbol='xsltCopy'/>
+     <exports symbol='xsltText'/>
+     <exports symbol='xsltElement'/>
+     <exports symbol='xsltComment'/>
+     <exports symbol='xsltAttribute'/>
+     <exports symbol='xsltProcessingInstruction'/>
+     <exports symbol='xsltCopyOf'/>
+     <exports symbol='xsltValueOf'/>
+     <exports symbol='xsltNumber'/>
+     <exports symbol='xsltApplyImports'/>
+     <exports symbol='xsltCallTemplate'/>
+     <exports symbol='xsltApplyTemplates'/>
+     <exports symbol='xsltChoose'/>
+     <exports symbol='xsltIf'/>
+     <exports symbol='xsltForEach'/>
+     <exports symbol='xsltRegisterAllElement'/>
+     <exports symbol='xslHandleDebugger'/>
+    </file>
+    <file name='xslt'>
+     <exports symbol='XSLT_DEFAULT_VERSION'/>
+     <exports symbol='XSLT_DEFAULT_VENDOR'/>
+     <exports symbol='XSLT_DEFAULT_URL'/>
+     <exports symbol='XSLT_NAMESPACE'/>
      <exports symbol='LIBXSLT_PUBLIC'/>
+     <exports symbol='xsltCleanupGlobals'/>
     </file>
     <file name='xsltconfig'>
      <exports symbol='LIBXSLT_DOTTED_VERSION'/>
     <macro name='LIBXSLT_DOTTED_VERSION' file='xsltwin32config'>
       <info>the version string like &quot;1.2.3&quot;</info>
     </macro>
-    <macro name='LIBXSLT_PUBLIC' file='libxslt'>
+    <macro name='LIBXSLT_PUBLIC' file='xsltwin32config'>
       <info>This macro is needed on Win32 when using MSVC. It enables the client code to access exported variables. It should expand to nothing when compiling this library itself, but must expand to __declspec(dllimport) when a client includes the library header and that only if it links dynamically against this library.</info>
     </macro>
     <macro name='LIBXSLT_VERSION' file='xsltwin32config'>
       <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context '/>
       <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression '/>
     </function>
-    <function name='xsltExtElementLookup' file='extensions'>
+    <function name='xsltExtElementLookup' file='transform'>
       <info>Looks up an extension element. ctxt can be NULL to search only in module elements.</info>
       <return type='xsltTransformFunction' info='the element callback or NULL if not found '/>
       <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT process context '/>
index dca8a50..0591a30 100644 (file)
@@ -1,33 +1,4 @@
 <MACRO>
-<NAME>XSLT_DEFAULT_VERSION</NAME>
-#define XSLT_DEFAULT_VERSION     "1.0"
-</MACRO>
-<MACRO>
-<NAME>XSLT_DEFAULT_VENDOR</NAME>
-#define XSLT_DEFAULT_VENDOR      "libxslt"
-</MACRO>
-<MACRO>
-<NAME>XSLT_DEFAULT_URL</NAME>
-#define XSLT_DEFAULT_URL         "http://xmlsoft.org/XSLT/"
-</MACRO>
-<MACRO>
-<NAME>XSLT_NAMESPACE</NAME>
-#define XSLT_NAMESPACE ((xmlChar *) "http://www.w3.org/1999/XSL/Transform")
-</MACRO>
-<MACRO>
-<NAME>LIBXSLT_PUBLIC</NAME>
-#define LIBXSLT_PUBLIC __declspec(dllimport)
-</MACRO>
-<MACRO>
-<NAME>LIBXSLT_PUBLIC</NAME>
-#define LIBXSLT_PUBLIC 
-</MACRO>
-<FUNCTION>
-<NAME>xsltCleanupGlobals</NAME>
-<RETURNS>void  </RETURNS>
-void
-</FUNCTION>
-<MACRO>
 <NAME>LIBXSLT_DOTTED_VERSION</NAME>
 #define LIBXSLT_DOTTED_VERSION "1.0.13"
 </MACRO>
@@ -71,997 +42,814 @@ void
 <NAME>LIBXSLT_PUBLIC</NAME>
 #define LIBXSLT_PUBLIC
 </MACRO>
+<FUNCTION>
+<NAME>xsltParseStylesheetAttributeSet</NAME>
+<RETURNS>void  </RETURNS>
+xsltStylesheetPtr style,xmlNodePtr cur
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltFreeAttributeSetsHashes</NAME>
+<RETURNS>void  </RETURNS>
+xsltStylesheetPtr style
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltApplyAttributeSet</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xmlChar *attributes
+</FUNCTION>
 <MACRO>
-<NAME>LIBXSLT_DOTTED_VERSION</NAME>
-#define LIBXSLT_DOTTED_VERSION "1.0.13"
-</MACRO>
-<MACRO>
-<NAME>LIBXSLT_VERSION</NAME>
-#define LIBXSLT_VERSION 10013
-</MACRO>
-<MACRO>
-<NAME>LIBXSLT_VERSION_STRING</NAME>
-#define LIBXSLT_VERSION_STRING "10013"
-</MACRO>
-<MACRO>
-<NAME>WITH_XSLT_DEBUG</NAME>
-#define WITH_XSLT_DEBUG
-</MACRO>
-<MACRO>
-<NAME>DEBUG_MEMORY</NAME>
-#define DEBUG_MEMORY
+<NAME>XSLT_LIBXSLT_NAMESPACE</NAME>
+#define XSLT_LIBXSLT_NAMESPACE ((xmlChar *) "http://xmlsoft.org/XSLT/namespace")
 </MACRO>
 <MACRO>
-<NAME>DEBUG_MEMORY_LOCATION</NAME>
-#define DEBUG_MEMORY_LOCATION
+<NAME>XSLT_SAXON_NAMESPACE</NAME>
+#define XSLT_SAXON_NAMESPACE ((xmlChar *) "http://icl.com/saxon")
 </MACRO>
 <MACRO>
-<NAME>ATTRIBUTE_UNUSED</NAME>
-#define ATTRIBUTE_UNUSED
+<NAME>XSLT_XT_NAMESPACE</NAME>
+#define XSLT_XT_NAMESPACE ((xmlChar *) "http://www.jclark.com/xt")
 </MACRO>
 <MACRO>
-<NAME>LIBXSLT_PUBLIC</NAME>
-#define LIBXSLT_PUBLIC __declspec(dllimport)
+<NAME>XSLT_XALAN_NAMESPACE</NAME>
+#define XSLT_XALAN_NAMESPACE ((xmlChar *)      \
+                               "org.apache.xalan.xslt.extensions.Redirect")
 </MACRO>
 <MACRO>
-<NAME>LIBXSLT_PUBLIC</NAME>
-#define LIBXSLT_PUBLIC 
+<NAME>XSLT_NORM_SAXON_NAMESPACE</NAME>
+#define XSLT_NORM_SAXON_NAMESPACE ((xmlChar *) \
+       "http://nwalsh.com/xslt/ext/com.nwalsh.saxon.CVS")
 </MACRO>
 <FUNCTION>
-<NAME>xsltAddKey</NAME>
-<RETURNS>int   </RETURNS>
-xsltStylesheetPtr style,const xmlChar *name,const xmlChar *nameURI,const xmlChar *match,const xmlChar *use,xmlNodePtr inst
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltGetKey</NAME>
-<RETURNS>xmlNodeSetPtr         </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *nameURI,const xmlChar *value
+<NAME>xsltFunctionNodeSet</NAME>
+<RETURNS>void  </RETURNS>
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltInitCtxtKeys</NAME>
+<NAME>xsltDebug</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xsltDocumentPtr doc
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeKeys</NAME>
+<NAME>xsltRegisterExtras</NAME>
 <RETURNS>void  </RETURNS>
-xsltStylesheetPtr style
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeDocumentKeys</NAME>
+<NAME>xsltRegisterAllExtras</NAME>
 <RETURNS>void  </RETURNS>
-xsltDocumentPtr doc
+void
 </FUNCTION>
-<STRUCT>
-<NAME>xsltCompMatch</NAME>
-</STRUCT>
-<TYPEDEF>
-<NAME>xsltCompMatchPtr</NAME>
-typedef xsltCompMatch *xsltCompMatchPtr;
-</TYPEDEF>
 <FUNCTION>
-<NAME>xsltCompilePattern</NAME>
-<RETURNS>xsltCompMatchPtr  </RETURNS>
-const xmlChar *pattern,xmlDocPtr doc,xmlNodePtr node,xsltStylesheetPtr style,xsltTransformContextPtr runtime
+<NAME>xsltNewDocument</NAME>
+<RETURNS>xsltDocumentPtr       </RETURNS>
+xsltTransformContextPtr ctxt,xmlDocPtr doc
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeCompMatchList</NAME>
-<RETURNS>void  </RETURNS>
-xsltCompMatchPtr comp
+<NAME>xsltLoadDocument</NAME>
+<RETURNS>xsltDocumentPtr       </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltTestCompMatchList</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xsltCompMatchPtr comp
+<NAME>xsltFindDocument</NAME>
+<RETURNS>xsltDocumentPtr       </RETURNS>
+xsltTransformContextPtr ctxt,xmlDocPtr doc
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltAddTemplate</NAME>
-<RETURNS>int   </RETURNS>
-xsltStylesheetPtr style,xsltTemplatePtr cur,const xmlChar *mode,const xmlChar *modeURI
+<NAME>xsltFreeDocuments</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltGetTemplate</NAME>
-<RETURNS>xsltTemplatePtr       </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xsltStylesheetPtr style
+<NAME>xsltLoadStyleDocument</NAME>
+<RETURNS>xsltDocumentPtr       </RETURNS>
+xsltStylesheetPtr style,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeTemplateHashes</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style
+<NAME>xsltNewStyleDocument</NAME>
+<RETURNS>xsltDocumentPtr       </RETURNS>
+xsltStylesheetPtr style,xmlDocPtr doc
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCleanupTemplates</NAME>
+<NAME>xsltFreeStyleDocuments</NAME>
 <RETURNS>void  </RETURNS>
 xsltStylesheetPtr style
 </FUNCTION>
+<USER_FUNCTION>
+<NAME>xsltStyleExtInitFunction</NAME>
+<RETURNS>void *</RETURNS>
+xsltStylesheetPtr style,
+                                                const xmlChar *URI
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xsltStyleExtShutdownFunction</NAME>
+<RETURNS>void </RETURNS>
+xsltStylesheetPtr style,
+                                                const xmlChar *URI,
+                                                void *data
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xsltExtInitFunction</NAME>
+<RETURNS>void *</RETURNS>
+xsltTransformContextPtr ctxt,
+                                        const xmlChar *URI
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xsltExtShutdownFunction</NAME>
+<RETURNS>void </RETURNS>
+xsltTransformContextPtr ctxt,
+                                        const xmlChar *URI,
+                                        void *data
+</USER_FUNCTION>
 <FUNCTION>
-<NAME>xsltMatchPattern</NAME>
+<NAME>xsltRegisterExtModule</NAME>
 <RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,const xmlChar *pattern,xmlDocPtr ctxtdoc,xmlNodePtr ctxtnode
+const xmlChar *URI,xsltExtInitFunction initFunc,xsltExtShutdownFunction shutdownFunc
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltSetXIncludeDefault</NAME>
-<RETURNS>void  </RETURNS>
-int xinclude
+<NAME>xsltRegisterExtModuleFull</NAME>
+<RETURNS>int   </RETURNS>
+const xmlChar * URI,xsltExtInitFunction initFunc,xsltExtShutdownFunction shutdownFunc,xsltStyleExtInitFunction styleInitFunc,xsltStyleExtShutdownFunction styleShutdownFunc
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltGetXIncludeDefault</NAME>
+<NAME>xsltUnregisterExtModule</NAME>
 <RETURNS>int   </RETURNS>
-void
+const xmlChar * URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNewTransformContext</NAME>
-<RETURNS>xsltTransformContextPtr  </RETURNS>
-xsltStylesheetPtr style,xmlDocPtr doc
+<NAME>xsltGetExtData</NAME>
+<RETURNS>void  *</RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeTransformContext</NAME>
+<NAME>xsltStyleGetExtData</NAME>
+<RETURNS>void  *</RETURNS>
+xsltStylesheetPtr style,const xmlChar *URI
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltShutdownCtxtExts</NAME>
 <RETURNS>void  </RETURNS>
 xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltApplyStylesheetUser</NAME>
-<RETURNS>xmlDocPtr     </RETURNS>
-xsltStylesheetPtr style,xmlDocPtr doc,const char **params,const char *output,FILE * profile,xsltTransformContextPtr userCtxt
+<NAME>xsltShutdownExts</NAME>
+<RETURNS>void  </RETURNS>
+xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltApplyStripSpaces</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node
+<NAME>xsltXPathGetTransformContext</NAME>
+<RETURNS>xsltTransformContextPtr  </RETURNS>
+xmlXPathParserContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltExtElementLookup</NAME>
-<RETURNS>xsltTransformFunction</RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI
+<NAME>xsltRegisterExtModuleFunction</NAME>
+<RETURNS>int   </RETURNS>
+const xmlChar *name,const xmlChar *URI,xmlXPathFunction function
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltApplyStylesheet</NAME>
-<RETURNS>xmlDocPtr     </RETURNS>
-xsltStylesheetPtr style,xmlDocPtr doc,const char **params
+<NAME>xsltExtFunctionLookup</NAME>
+<RETURNS>xmlXPathFunction</RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltProfileStylesheet</NAME>
-<RETURNS>xmlDocPtr     </RETURNS>
-xsltStylesheetPtr style,xmlDocPtr doc,const char **params,FILE * output
+<NAME>xsltExtModuleFunctionLookup</NAME>
+<RETURNS>xmlXPathFunction</RETURNS>
+const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRunStylesheet</NAME>
+<NAME>xsltUnregisterExtModuleFunction</NAME>
 <RETURNS>int   </RETURNS>
-xsltStylesheetPtr style,xmlDocPtr doc,const char **params,const char *output,xmlSAXHandlerPtr SAX,xmlOutputBufferPtr IObuf
+const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltApplyOneTemplate</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr list,xsltTemplatePtr templ,xsltStackElemPtr params
+<NAME>xsltNewElemPreComp</NAME>
+<RETURNS>xsltElemPreCompPtr  </RETURNS>
+xsltStylesheetPtr style,xmlNodePtr inst,xsltTransformFunction function
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltDocumentElem</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltInitElemPreComp</NAME>
+<RETURNS>void  </RETURNS>
+xsltElemPreCompPtr comp,xsltStylesheetPtr style,xmlNodePtr inst,xsltTransformFunction function,xsltElemPreCompDeallocator freeFunc
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltSort</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltRegisterExtModuleElement</NAME>
+<RETURNS>int   </RETURNS>
+const xmlChar *name,const xmlChar *URI,xsltPreComputeFunction precomp,xsltTransformFunction transform
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCopy</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltText</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltExtElementLookup</NAME>
+<RETURNS>xsltTransformFunction  </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltElement</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltExtModuleElementLookup</NAME>
+<RETURNS>xsltTransformFunction  </RETURNS>
+const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltComment</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltExtModuleElementPreComputeLookup</NAME>
+<RETURNS>xsltPreComputeFunction  </RETURNS>
+const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltAttribute</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltUnregisterExtModuleElement</NAME>
+<RETURNS>int   </RETURNS>
+const xmlChar *name,const xmlChar *URI
 </FUNCTION>
+<USER_FUNCTION>
+<NAME>xsltTopLevelFunction</NAME>
+<RETURNS>void </RETURNS>
+xsltStylesheetPtr style,
+                                        xmlNodePtr inst
+</USER_FUNCTION>
 <FUNCTION>
-<NAME>xsltProcessingInstruction</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltRegisterExtModuleTopLevel</NAME>
+<RETURNS>int   </RETURNS>
+const xmlChar *name,const xmlChar *URI,xsltTopLevelFunction function
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCopyOf</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltExtModuleTopLevelLookup</NAME>
+<RETURNS>xsltTopLevelFunction  </RETURNS>
+const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltValueOf</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltUnregisterExtModuleTopLevel</NAME>
+<RETURNS>int   </RETURNS>
+const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNumber</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltRegisterExtFunction</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI,xmlXPathFunction function
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltApplyImports</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltRegisterExtElement</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI,xsltTransformFunction function
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCallTemplate</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltRegisterExtPrefix</NAME>
+<RETURNS>int   </RETURNS>
+xsltStylesheetPtr style,const xmlChar *prefix,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltApplyTemplates</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltCheckExtPrefix</NAME>
+<RETURNS>int   </RETURNS>
+xsltStylesheetPtr style,const xmlChar *prefix
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltChoose</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltInitCtxtExts</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltIf</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltFreeCtxtExts</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltForEach</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+<NAME>xsltFreeExts</NAME>
+<RETURNS>void  </RETURNS>
+xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterAllElement</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt
+<NAME>xsltPreComputeExtModuleElement</NAME>
+<RETURNS>xsltElemPreCompPtr  </RETURNS>
+xsltStylesheetPtr style,xmlNodePtr inst
 </FUNCTION>
 <FUNCTION>
-<NAME>xslHandleDebugger</NAME>
+<NAME>xsltRegisterTestModule</NAME>
 <RETURNS>void  </RETURNS>
-xmlNodePtr cur,xmlNodePtr node,xsltTemplatePtr templ,xsltTransformContextPtr ctxt
+void
 </FUNCTION>
 <MACRO>
-<NAME>XSLT_TODO</NAME>
-#define XSLT_TODO                                                      \
-    xsltGenericError(xsltGenericErrorContext,                          \
-           "Unimplemented block at %s:%d\n",                           \
-            __FILE__, __LINE__);
-</MACRO>
-<MACRO>
-<NAME>XSLT_STRANGE</NAME>
-#define XSLT_STRANGE                                                   \
-    xsltGenericError(xsltGenericErrorContext,                          \
-           "Internal error at %s:%d\n",                                \
-            __FILE__, __LINE__);
-</MACRO>
-<MACRO>
-<NAME>IS_XSLT_ELEM</NAME>
-#define IS_XSLT_ELEM(n)                                                        \
-    (((n) != NULL) && ((n)->ns != NULL) &&                             \
-     (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
-</MACRO>
-<MACRO>
-<NAME>IS_XSLT_NAME</NAME>
-#define IS_XSLT_NAME(n, val)                                           \
-    (xmlStrEqual((n)->name, (const xmlChar *) (val)))
-</MACRO>
-<MACRO>
-<NAME>IS_XSLT_REAL_NODE</NAME>
-#define IS_XSLT_REAL_NODE(n)                                           \
-    (((n) != NULL) &&                                                  \
-     (((n)->type == XML_ELEMENT_NODE) ||                               \
-      ((n)->type == XML_TEXT_NODE) ||                                  \
-      ((n)->type == XML_ATTRIBUTE_NODE) ||                             \
-      ((n)->type == XML_DOCUMENT_NODE) ||                              \
-      ((n)->type == XML_HTML_DOCUMENT_NODE) ||                         \
-      ((n)->type == XML_DOCB_DOCUMENT_NODE)))
-</MACRO>
-<MACRO>
-<NAME>IS_XSLT_REAL_NODE</NAME>
-#define IS_XSLT_REAL_NODE(n)                                           \
-    (((n) != NULL) &&                                                  \
-     (((n)->type == XML_ELEMENT_NODE) ||                               \
-      ((n)->type == XML_TEXT_NODE) ||                                  \
-      ((n)->type == XML_ATTRIBUTE_NODE) ||                             \
-      ((n)->type == XML_DOCUMENT_NODE) ||                              \
-      ((n)->type == XML_HTML_DOCUMENT_NODE)))
+<NAME>XSLT_REGISTER_FUNCTION_LOOKUP</NAME>
+#define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt)                    \
+    xmlXPathRegisterFuncLookup((ctxt)->xpathCtxt,              \
+       (xmlXPathFuncLookupFunc) xsltXPathFunctionLookup,       \
+       (void *)(ctxt->xpathCtxt));
 </MACRO>
 <FUNCTION>
-<NAME>xsltGetNsProp</NAME>
-<RETURNS>xmlChar  *</RETURNS>
-xmlNodePtr node,const xmlChar *name,const xmlChar *nameSpace
+<NAME>xsltXPathFunctionLookup</NAME>
+<RETURNS>xmlXPathFunction</RETURNS>
+xmlXPathContextPtr ctxt,const xmlChar *name,const xmlChar *ns_uri
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltPrintErrorContext</NAME>
+<NAME>xsltDocumentFunction</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xsltStylesheetPtr style,xmlNodePtr node
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltMessage</NAME>
+<NAME>xsltKeyFunction</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltSetGenericErrorFunc</NAME>
+<NAME>xsltUnparsedEntityURIFunction</NAME>
 <RETURNS>void  </RETURNS>
-void *ctx,xmlGenericErrorFunc handler
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltSetGenericDebugFunc</NAME>
+<NAME>xsltFormatNumberFunction</NAME>
 <RETURNS>void  </RETURNS>
-void *ctx,xmlGenericErrorFunc handler
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltDocumentSortFunction</NAME>
+<NAME>xsltGenerateIdFunction</NAME>
 <RETURNS>void  </RETURNS>
-xmlNodeSetPtr list
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltDoSortFunction</NAME>
+<NAME>xsltSystemPropertyFunction</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr *sorts,int nbsorts
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltGetQNameURI</NAME>
-<RETURNS>const xmlChar  *</RETURNS>
-xmlNodePtr node,xmlChar **name
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltSaveResultTo</NAME>
-<RETURNS>int   </RETURNS>
-xmlOutputBufferPtr buf,xmlDocPtr result,xsltStylesheetPtr style
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltSaveResultToFilename</NAME>
-<RETURNS>int   </RETURNS>
-const char *URI,xmlDocPtr result,xsltStylesheetPtr style,int compression
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltSaveResultToFile</NAME>
-<RETURNS>int   </RETURNS>
-FILE *file,xmlDocPtr result,xsltStylesheetPtr style
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltSaveResultToFd</NAME>
-<RETURNS>int   </RETURNS>
-int fd,xmlDocPtr result,xsltStylesheetPtr style
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltSaveProfiling</NAME>
+<NAME>xsltElementAvailableFunction</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,FILE *output
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltTimestamp</NAME>
-<RETURNS>long  </RETURNS>
-void
+<NAME>xsltFunctionAvailableFunction</NAME>
+<RETURNS>void  </RETURNS>
+xmlXPathParserContextPtr ctxt,int nargs
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCalibrateAdjust</NAME>
+<NAME>xsltRegisterAllFunctions</NAME>
 <RETURNS>void  </RETURNS>
-long delta
+xmlXPathContextPtr ctxt
 </FUNCTION>
 <MACRO>
-<NAME>XSLT_TIMESTAMP_TICS_PER_SEC</NAME>
-#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
+<NAME>XSLT_GET_IMPORT_PTR</NAME>
+#define XSLT_GET_IMPORT_PTR(res, style, name) {                        \
+    xsltStylesheetPtr st = style;                              \
+    res = NULL;                                                        \
+    while (st != NULL) {                                       \
+       if (st->name != NULL) { res = st->name; break; }        \
+       st = xsltNextImport(st);                                \
+    }}
 </MACRO>
-<ENUM>
-<NAME>xsltDebugStatusCodes</NAME>
-typedef enum {
-    XSLT_DEBUG_NONE = 0, /* no debugging allowed */
-    XSLT_DEBUG_INIT,
-    XSLT_DEBUG_STEP,
-    XSLT_DEBUG_STEPOUT,
-    XSLT_DEBUG_NEXT,
-    XSLT_DEBUG_STOP,
-    XSLT_DEBUG_CONT,
-    XSLT_DEBUG_RUN,
-    XSLT_DEBUG_RUN_RESTART,
-    XSLT_DEBUG_QUIT
-} xsltDebugStatusCodes;
-</ENUM>
-<USER_FUNCTION>
-<NAME>xsltHandleDebuggerCallback</NAME>
-<RETURNS>void </RETURNS>
-xmlNodePtr cur, xmlNodePtr node,
-                       xsltTemplatePtr templ, xsltTransformContextPtr ctxt
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>xsltAddCallCallback</NAME>
-<RETURNS>int </RETURNS>
-xsltTemplatePtr templ, xmlNodePtr source
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>xsltDropCallCallback</NAME>
-<RETURNS>void </RETURNS>
-void
-</USER_FUNCTION>
-<FUNCTION>
-<NAME>xsltSetDebuggerCallbacks</NAME>
-<RETURNS>int   </RETURNS>
-int no, void *block
-</FUNCTION>
-<FUNCTION>
-<NAME>xslAddCall</NAME>
-<RETURNS>int   </RETURNS>
-xsltTemplatePtr templ,xmlNodePtr source
-</FUNCTION>
-<FUNCTION>
-<NAME>xslDropCall</NAME>
-<RETURNS>void  </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltEvalXPathPredicate</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,xmlXPathCompExprPtr comp,xmlNsPtr *nsList,int nsNr
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltEvalTemplateString</NAME>
-<RETURNS>xmlChar  *</RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr parent
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltEvalAttrValueTemplate</NAME>
-<RETURNS>xmlChar  *</RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,const xmlChar *name,const xmlChar *ns
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltEvalStaticAttrValueTemplate</NAME>
-<RETURNS>xmlChar  *</RETURNS>
-xsltStylesheetPtr style,xmlNodePtr node,const xmlChar *name,const xmlChar *ns,int *found
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltEvalXPathString</NAME>
-<RETURNS>xmlChar  *</RETURNS>
-xsltTransformContextPtr ctxt,xmlXPathCompExprPtr comp
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltTemplateProcess</NAME>
-<RETURNS>xmlNodePtr  *</RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltAttrListTemplateProcess</NAME>
-<RETURNS>xmlAttrPtr    </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr target,xmlAttrPtr cur
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltAttrTemplateProcess</NAME>
-<RETURNS>xmlAttrPtr    </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr target,xmlAttrPtr attr
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltAttrTemplateValueProcess</NAME>
-<RETURNS>xmlChar  *</RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar* attr
-</FUNCTION>
 <MACRO>
-<NAME>XSLT_REGISTER_VARIABLE_LOOKUP</NAME>
-#define XSLT_REGISTER_VARIABLE_LOOKUP(ctxt)                    \
-    xmlXPathRegisterVariableLookup((ctxt)->xpathCtxt,          \
-              xsltXPathVariableLookup, (void *)(ctxt));        \
-    xsltRegisterAllFunctions((ctxt)->xpathCtxt);               \
-    xsltRegisterAllElement(ctxt);                              \
-    (ctxt)->xpathCtxt->extra = ctxt
+<NAME>XSLT_GET_IMPORT_INT</NAME>
+#define XSLT_GET_IMPORT_INT(res, style, name) {                        \
+    xsltStylesheetPtr st = style;                              \
+    res = -1;                                                  \
+    while (st != NULL) {                                       \
+       if (st->name != -1) { res = st->name; break; }  \
+       st = xsltNextImport(st);                                \
+    }}
 </MACRO>
 <FUNCTION>
-<NAME>xsltEvalGlobalVariables</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltEvalUserParams</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,const char **params
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltQuoteUserParams</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,const char **params
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltEvalOneUserParam</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar * name,const xmlChar * value
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltQuoteOneUserParam</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar * name,const xmlChar * value
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltParseGlobalVariable</NAME>
+<NAME>xsltParseStylesheetImport</NAME>
 <RETURNS>void  </RETURNS>
 xsltStylesheetPtr style,xmlNodePtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltParseGlobalParam</NAME>
+<NAME>xsltParseStylesheetInclude</NAME>
 <RETURNS>void  </RETURNS>
 xsltStylesheetPtr style,xmlNodePtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltParseStylesheetVariable</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr cur
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltParseStylesheetParam</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr cur
-</FUNCTION>
-<FUNCTION>
-<NAME>xsltParseStylesheetCallerParam</NAME>
-<RETURNS>xsltStackElemPtr  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr cur
+<NAME>xsltNextImport</NAME>
+<RETURNS>xsltStylesheetPtr     </RETURNS>
+xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltAddStackElemList</NAME>
+<NAME>xsltNeedElemSpaceHandling</NAME>
 <RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,xsltStackElemPtr elems
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeGlobalVariables</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt
+<NAME>xsltFindElemSpaceHandling</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltVariableLookup</NAME>
-<RETURNS>xmlXPathObjectPtr     </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *ns_uri
+<NAME>xsltFindTemplate</NAME>
+<RETURNS>xsltTemplatePtr       </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *nameURI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltXPathVariableLookup</NAME>
-<RETURNS>xmlXPathObjectPtr     </RETURNS>
-void *ctxt,const xmlChar *name,const xmlChar *ns_uri
+<NAME>xsltAddKey</NAME>
+<RETURNS>int   </RETURNS>
+xsltStylesheetPtr style,const xmlChar *name,const xmlChar *nameURI,const xmlChar *match,const xmlChar *use,xmlNodePtr inst
 </FUNCTION>
-<MACRO>
-<NAME>XSLT_REGISTER_FUNCTION_LOOKUP</NAME>
-#define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt)                    \
-    xmlXPathRegisterFuncLookup((ctxt)->xpathCtxt,              \
-       (xmlXPathFuncLookupFunc) xsltXPathFunctionLookup,       \
-       (void *)(ctxt->xpathCtxt));
-</MACRO>
 <FUNCTION>
-<NAME>xsltXPathFunctionLookup</NAME>
-<RETURNS>xmlXPathFunction</RETURNS>
-xmlXPathContextPtr ctxt,const xmlChar *name,const xmlChar *ns_uri
+<NAME>xsltGetKey</NAME>
+<RETURNS>xmlNodeSetPtr         </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *nameURI,const xmlChar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltDocumentFunction</NAME>
+<NAME>xsltInitCtxtKeys</NAME>
 <RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+xsltTransformContextPtr ctxt,xsltDocumentPtr doc
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltKeyFunction</NAME>
+<NAME>xsltFreeKeys</NAME>
 <RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltUnparsedEntityURIFunction</NAME>
+<NAME>xsltFreeDocumentKeys</NAME>
 <RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+xsltDocumentPtr doc
 </FUNCTION>
+<MACRO>
+<NAME>IN_LIBXSLT</NAME>
+#define IN_LIBXSLT
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_PUBLIC</NAME>
+#define LIBXSLT_PUBLIC __declspec(dllimport)
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_PUBLIC</NAME>
+#define LIBXSLT_PUBLIC 
+</MACRO>
 <FUNCTION>
-<NAME>xsltFormatNumberFunction</NAME>
+<NAME>xsltNamespaceAlias</NAME>
 <RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+xsltStylesheetPtr style,xmlNodePtr node
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltGenerateIdFunction</NAME>
-<RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+<NAME>xsltGetNamespace</NAME>
+<RETURNS>xmlNsPtr      </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr cur,xmlNsPtr ns,xmlNodePtr out
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltSystemPropertyFunction</NAME>
-<RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+<NAME>xsltGetSpecialNamespace</NAME>
+<RETURNS>xmlNsPtr      </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr cur,const xmlChar *URI,const xmlChar *prefix,xmlNodePtr out
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltElementAvailableFunction</NAME>
-<RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+<NAME>xsltCopyNamespace</NAME>
+<RETURNS>xmlNsPtr      </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNsPtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFunctionAvailableFunction</NAME>
-<RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+<NAME>xsltCopyNamespaceList</NAME>
+<RETURNS>xmlNsPtr      </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNsPtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterAllFunctions</NAME>
+<NAME>xsltFreeNamespaceAliasHashes</NAME>
 <RETURNS>void  </RETURNS>
-xmlXPathContextPtr ctxt
+xsltStylesheetPtr style
 </FUNCTION>
-<USER_FUNCTION>
-<NAME>xsltStyleExtInitFunction</NAME>
-<RETURNS>void *</RETURNS>
-xsltStylesheetPtr style,
-                                                const xmlChar *URI
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>xsltStyleExtShutdownFunction</NAME>
-<RETURNS>void </RETURNS>
-xsltStylesheetPtr style,
-                                                const xmlChar *URI,
-                                                void *data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>xsltExtInitFunction</NAME>
-<RETURNS>void *</RETURNS>
-xsltTransformContextPtr ctxt,
-                                        const xmlChar *URI
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>xsltExtShutdownFunction</NAME>
-<RETURNS>void </RETURNS>
-xsltTransformContextPtr ctxt,
-                                        const xmlChar *URI,
-                                        void *data
-</USER_FUNCTION>
+<STRUCT>
+<NAME>xsltCompMatch</NAME>
+</STRUCT>
+<TYPEDEF>
+<NAME>xsltCompMatchPtr</NAME>
+typedef xsltCompMatch *xsltCompMatchPtr;
+</TYPEDEF>
 <FUNCTION>
-<NAME>xsltRegisterExtModule</NAME>
-<RETURNS>int   </RETURNS>
-const xmlChar *URI,xsltExtInitFunction initFunc,xsltExtShutdownFunction shutdownFunc
+<NAME>xsltCompilePattern</NAME>
+<RETURNS>xsltCompMatchPtr  </RETURNS>
+const xmlChar *pattern,xmlDocPtr doc,xmlNodePtr node,xsltStylesheetPtr style,xsltTransformContextPtr runtime
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterExtModuleFull</NAME>
-<RETURNS>int   </RETURNS>
-const xmlChar * URI,xsltExtInitFunction initFunc,xsltExtShutdownFunction shutdownFunc,xsltStyleExtInitFunction styleInitFunc,xsltStyleExtShutdownFunction styleShutdownFunc
+<NAME>xsltFreeCompMatchList</NAME>
+<RETURNS>void  </RETURNS>
+xsltCompMatchPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltUnregisterExtModule</NAME>
+<NAME>xsltTestCompMatchList</NAME>
 <RETURNS>int   </RETURNS>
-const xmlChar * URI
+xsltTransformContextPtr ctxt,xmlNodePtr node,xsltCompMatchPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltGetExtData</NAME>
-<RETURNS>void  *</RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *URI
+<NAME>xsltAddTemplate</NAME>
+<RETURNS>int   </RETURNS>
+xsltStylesheetPtr style,xsltTemplatePtr cur,const xmlChar *mode,const xmlChar *modeURI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltStyleGetExtData</NAME>
-<RETURNS>void  *</RETURNS>
-xsltStylesheetPtr style,const xmlChar *URI
+<NAME>xsltGetTemplate</NAME>
+<RETURNS>xsltTemplatePtr       </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltShutdownCtxtExts</NAME>
+<NAME>xsltFreeTemplateHashes</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt
+xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltShutdownExts</NAME>
+<NAME>xsltCleanupTemplates</NAME>
 <RETURNS>void  </RETURNS>
 xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltXPathGetTransformContext</NAME>
-<RETURNS>xsltTransformContextPtr  </RETURNS>
-xmlXPathParserContextPtr ctxt
+<NAME>xsltMatchPattern</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,const xmlChar *pattern,xmlDocPtr ctxtdoc,xmlNodePtr ctxtnode
 </FUNCTION>
+<VARIABLE>
+<NAME>xsltExtMarker</NAME>
+extern const xmlChar *xsltExtMarker;
+</VARIABLE>
 <FUNCTION>
-<NAME>xsltRegisterExtModuleFunction</NAME>
-<RETURNS>int   </RETURNS>
-const xmlChar *name,const xmlChar *URI,xmlXPathFunction function
+<NAME>xsltDocumentComp</NAME>
+<RETURNS>xsltElemPreCompPtr  </RETURNS>
+xsltStylesheetPtr style,xmlNodePtr inst,xsltTransformFunction function
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltExtFunctionLookup</NAME>
-<RETURNS>xmlXPathFunction</RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI
+<NAME>xsltStylePreCompute</NAME>
+<RETURNS>void  </RETURNS>
+xsltStylesheetPtr style,xmlNodePtr inst
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltExtModuleFunctionLookup</NAME>
-<RETURNS>xmlXPathFunction</RETURNS>
-const xmlChar *name,const xmlChar *URI
+<NAME>xsltFreeStylePreComps</NAME>
+<RETURNS>void  </RETURNS>
+xsltStylesheetPtr style
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltUnregisterExtModuleFunction</NAME>
+<NAME>xsltEvalXPathPredicate</NAME>
 <RETURNS>int   </RETURNS>
-const xmlChar *name,const xmlChar *URI
+xsltTransformContextPtr ctxt,xmlXPathCompExprPtr comp,xmlNsPtr *nsList,int nsNr
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNewElemPreComp</NAME>
-<RETURNS>xsltElemPreCompPtr  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr inst,xsltTransformFunction function
+<NAME>xsltEvalTemplateString</NAME>
+<RETURNS>xmlChar  *</RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr parent
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltInitElemPreComp</NAME>
-<RETURNS>void  </RETURNS>
-xsltElemPreCompPtr comp,xsltStylesheetPtr style,xmlNodePtr inst,xsltTransformFunction function,xsltElemPreCompDeallocator freeFunc
+<NAME>xsltEvalAttrValueTemplate</NAME>
+<RETURNS>xmlChar  *</RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,const xmlChar *name,const xmlChar *ns
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterExtModuleElement</NAME>
-<RETURNS>int   </RETURNS>
-const xmlChar *name,const xmlChar *URI,xsltPreComputeFunction precomp,xsltTransformFunction transform
+<NAME>xsltEvalStaticAttrValueTemplate</NAME>
+<RETURNS>xmlChar  *</RETURNS>
+xsltStylesheetPtr style,xmlNodePtr node,const xmlChar *name,const xmlChar *ns,int *found
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltExtElementLookup</NAME>
-<RETURNS>xsltTransformFunction  </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI
+<NAME>xsltEvalXPathString</NAME>
+<RETURNS>xmlChar  *</RETURNS>
+xsltTransformContextPtr ctxt,xmlXPathCompExprPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltExtModuleElementLookup</NAME>
-<RETURNS>xsltTransformFunction  </RETURNS>
-const xmlChar *name,const xmlChar *URI
+<NAME>xsltTemplateProcess</NAME>
+<RETURNS>xmlNodePtr  *</RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltExtModuleElementPreComputeLookup</NAME>
-<RETURNS>xsltPreComputeFunction  </RETURNS>
-const xmlChar *name,const xmlChar *URI
+<NAME>xsltAttrListTemplateProcess</NAME>
+<RETURNS>xmlAttrPtr    </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr target,xmlAttrPtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltUnregisterExtModuleElement</NAME>
-<RETURNS>int   </RETURNS>
-const xmlChar *name,const xmlChar *URI
+<NAME>xsltAttrTemplateProcess</NAME>
+<RETURNS>xmlAttrPtr    </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr target,xmlAttrPtr attr
 </FUNCTION>
-<USER_FUNCTION>
-<NAME>xsltTopLevelFunction</NAME>
-<RETURNS>void </RETURNS>
-xsltStylesheetPtr style,
-                                        xmlNodePtr inst
-</USER_FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterExtModuleTopLevel</NAME>
+<NAME>xsltAttrTemplateValueProcess</NAME>
+<RETURNS>xmlChar  *</RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar* attr
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSetXIncludeDefault</NAME>
+<RETURNS>void  </RETURNS>
+int xinclude
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltGetXIncludeDefault</NAME>
 <RETURNS>int   </RETURNS>
-const xmlChar *name,const xmlChar *URI,xsltTopLevelFunction function
+void
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltExtModuleTopLevelLookup</NAME>
-<RETURNS>xsltTopLevelFunction  </RETURNS>
-const xmlChar *name,const xmlChar *URI
+<NAME>xsltNewTransformContext</NAME>
+<RETURNS>xsltTransformContextPtr  </RETURNS>
+xsltStylesheetPtr style,xmlDocPtr doc
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltFreeTransformContext</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltUnregisterExtModuleTopLevel</NAME>
-<RETURNS>int   </RETURNS>
-const xmlChar *name,const xmlChar *URI
+<NAME>xsltApplyStylesheetUser</NAME>
+<RETURNS>xmlDocPtr     </RETURNS>
+xsltStylesheetPtr style,xmlDocPtr doc,const char **params,const char *output,FILE * profile,xsltTransformContextPtr userCtxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterExtFunction</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI,xmlXPathFunction function
+<NAME>xsltApplyStripSpaces</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterExtElement</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI,xsltTransformFunction function
+<NAME>xsltExtElementLookup</NAME>
+<RETURNS>xsltTransformFunction</RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *URI
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterExtPrefix</NAME>
-<RETURNS>int   </RETURNS>
-xsltStylesheetPtr style,const xmlChar *prefix,const xmlChar *URI
+<NAME>xsltApplyStylesheet</NAME>
+<RETURNS>xmlDocPtr     </RETURNS>
+xsltStylesheetPtr style,xmlDocPtr doc,const char **params
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCheckExtPrefix</NAME>
-<RETURNS>int   </RETURNS>
-xsltStylesheetPtr style,const xmlChar *prefix
+<NAME>xsltProfileStylesheet</NAME>
+<RETURNS>xmlDocPtr     </RETURNS>
+xsltStylesheetPtr style,xmlDocPtr doc,const char **params,FILE * output
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltInitCtxtExts</NAME>
+<NAME>xsltRunStylesheet</NAME>
 <RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt
+xsltStylesheetPtr style,xmlDocPtr doc,const char **params,const char *output,xmlSAXHandlerPtr SAX,xmlOutputBufferPtr IObuf
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeCtxtExts</NAME>
+<NAME>xsltApplyOneTemplate</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr list,xsltTemplatePtr templ,xsltStackElemPtr params
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeExts</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style
+<NAME>xsltDocumentElem</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltPreComputeExtModuleElement</NAME>
-<RETURNS>xsltElemPreCompPtr  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr inst
+<NAME>xsltSort</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterTestModule</NAME>
-<RETURNS>void  </RETURNS>
-void
+<NAME>xsltCopy</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
-<MACRO>
-<NAME>XSLT_GET_IMPORT_PTR</NAME>
-#define XSLT_GET_IMPORT_PTR(res, style, name) {                        \
-    xsltStylesheetPtr st = style;                              \
-    res = NULL;                                                        \
-    while (st != NULL) {                                       \
-       if (st->name != NULL) { res = st->name; break; }        \
-       st = xsltNextImport(st);                                \
-    }}
-</MACRO>
-<MACRO>
-<NAME>XSLT_GET_IMPORT_INT</NAME>
-#define XSLT_GET_IMPORT_INT(res, style, name) {                        \
-    xsltStylesheetPtr st = style;                              \
-    res = -1;                                                  \
-    while (st != NULL) {                                       \
-       if (st->name != -1) { res = st->name; break; }  \
-       st = xsltNextImport(st);                                \
-    }}
-</MACRO>
 <FUNCTION>
-<NAME>xsltParseStylesheetImport</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr cur
+<NAME>xsltText</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltParseStylesheetInclude</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr cur
+<NAME>xsltElement</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNextImport</NAME>
-<RETURNS>xsltStylesheetPtr     </RETURNS>
-xsltStylesheetPtr style
+<NAME>xsltComment</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNeedElemSpaceHandling</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt
+<NAME>xsltAttribute</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFindElemSpaceHandling</NAME>
-<RETURNS>int   </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node
+<NAME>xsltProcessingInstruction</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFindTemplate</NAME>
-<RETURNS>xsltTemplatePtr       </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *nameURI
+<NAME>xsltCopyOf</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltParseStylesheetAttributeSet</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr cur
+<NAME>xsltValueOf</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeAttributeSetsHashes</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style
+<NAME>xsltNumber</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltApplyAttributeSet</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xmlChar *attributes
+<NAME>xsltApplyImports</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNamespaceAlias</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr node
+<NAME>xsltCallTemplate</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltGetNamespace</NAME>
-<RETURNS>xmlNsPtr      </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr cur,xmlNsPtr ns,xmlNodePtr out
+<NAME>xsltApplyTemplates</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltGetSpecialNamespace</NAME>
-<RETURNS>xmlNsPtr      </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr cur,const xmlChar *URI,const xmlChar *prefix,xmlNodePtr out
+<NAME>xsltChoose</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCopyNamespace</NAME>
-<RETURNS>xmlNsPtr      </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNsPtr cur
+<NAME>xsltIf</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltCopyNamespaceList</NAME>
-<RETURNS>xmlNsPtr      </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNsPtr cur
+<NAME>xsltForEach</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeNamespaceAliasHashes</NAME>
+<NAME>xsltRegisterAllElement</NAME>
 <RETURNS>void  </RETURNS>
-xsltStylesheetPtr style
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNewDocument</NAME>
-<RETURNS>xsltDocumentPtr       </RETURNS>
-xsltTransformContextPtr ctxt,xmlDocPtr doc
+<NAME>xslHandleDebugger</NAME>
+<RETURNS>void  </RETURNS>
+xmlNodePtr cur,xmlNodePtr node,xsltTemplatePtr templ,xsltTransformContextPtr ctxt
 </FUNCTION>
+<MACRO>
+<NAME>XSLT_REGISTER_VARIABLE_LOOKUP</NAME>
+#define XSLT_REGISTER_VARIABLE_LOOKUP(ctxt)                    \
+    xmlXPathRegisterVariableLookup((ctxt)->xpathCtxt,          \
+              xsltXPathVariableLookup, (void *)(ctxt));        \
+    xsltRegisterAllFunctions((ctxt)->xpathCtxt);               \
+    xsltRegisterAllElement(ctxt);                              \
+    (ctxt)->xpathCtxt->extra = ctxt
+</MACRO>
 <FUNCTION>
-<NAME>xsltLoadDocument</NAME>
-<RETURNS>xsltDocumentPtr       </RETURNS>
-xsltTransformContextPtr ctxt,const xmlChar *URI
+<NAME>xsltEvalGlobalVariables</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFindDocument</NAME>
-<RETURNS>xsltDocumentPtr       </RETURNS>
-xsltTransformContextPtr ctxt,xmlDocPtr doc
+<NAME>xsltEvalUserParams</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,const char **params
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeDocuments</NAME>
-<RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt
+<NAME>xsltQuoteUserParams</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,const char **params
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltLoadStyleDocument</NAME>
-<RETURNS>xsltDocumentPtr       </RETURNS>
-xsltStylesheetPtr style,const xmlChar *URI
+<NAME>xsltEvalOneUserParam</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar * name,const xmlChar * value
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltNewStyleDocument</NAME>
-<RETURNS>xsltDocumentPtr       </RETURNS>
-xsltStylesheetPtr style,xmlDocPtr doc
+<NAME>xsltQuoteOneUserParam</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar * name,const xmlChar * value
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeStyleDocuments</NAME>
+<NAME>xsltParseGlobalVariable</NAME>
 <RETURNS>void  </RETURNS>
-xsltStylesheetPtr style
+xsltStylesheetPtr style,xmlNodePtr cur
 </FUNCTION>
-<MACRO>
-<NAME>XSLT_LIBXSLT_NAMESPACE</NAME>
-#define XSLT_LIBXSLT_NAMESPACE ((xmlChar *) "http://xmlsoft.org/XSLT/namespace")
-</MACRO>
-<MACRO>
-<NAME>XSLT_SAXON_NAMESPACE</NAME>
-#define XSLT_SAXON_NAMESPACE ((xmlChar *) "http://icl.com/saxon")
-</MACRO>
-<MACRO>
-<NAME>XSLT_XT_NAMESPACE</NAME>
-#define XSLT_XT_NAMESPACE ((xmlChar *) "http://www.jclark.com/xt")
-</MACRO>
-<MACRO>
-<NAME>XSLT_XALAN_NAMESPACE</NAME>
-#define XSLT_XALAN_NAMESPACE ((xmlChar *)      \
-                               "org.apache.xalan.xslt.extensions.Redirect")
-</MACRO>
-<MACRO>
-<NAME>XSLT_NORM_SAXON_NAMESPACE</NAME>
-#define XSLT_NORM_SAXON_NAMESPACE ((xmlChar *) \
-       "http://nwalsh.com/xslt/ext/com.nwalsh.saxon.CVS")
-</MACRO>
 <FUNCTION>
-<NAME>xsltFunctionNodeSet</NAME>
+<NAME>xsltParseGlobalParam</NAME>
 <RETURNS>void  </RETURNS>
-xmlXPathParserContextPtr ctxt,int nargs
+xsltStylesheetPtr style,xmlNodePtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltDebug</NAME>
+<NAME>xsltParseStylesheetVariable</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst,xsltStylePreCompPtr comp
+xsltTransformContextPtr ctxt,xmlNodePtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterExtras</NAME>
+<NAME>xsltParseStylesheetParam</NAME>
 <RETURNS>void  </RETURNS>
-xsltTransformContextPtr ctxt
+xsltTransformContextPtr ctxt,xmlNodePtr cur
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltParseStylesheetCallerParam</NAME>
+<RETURNS>xsltStackElemPtr  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr cur
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltRegisterAllExtras</NAME>
-<RETURNS>void  </RETURNS>
-void
+<NAME>xsltAddStackElemList</NAME>
+<RETURNS>int   </RETURNS>
+xsltTransformContextPtr ctxt,xsltStackElemPtr elems
 </FUNCTION>
-<VARIABLE>
-<NAME>xsltExtMarker</NAME>
-extern const xmlChar *xsltExtMarker;
-</VARIABLE>
 <FUNCTION>
-<NAME>xsltDocumentComp</NAME>
-<RETURNS>xsltElemPreCompPtr  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr inst,xsltTransformFunction function
+<NAME>xsltFreeGlobalVariables</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltStylePreCompute</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style,xmlNodePtr inst
+<NAME>xsltVariableLookup</NAME>
+<RETURNS>xmlXPathObjectPtr     </RETURNS>
+xsltTransformContextPtr ctxt,const xmlChar *name,const xmlChar *ns_uri
 </FUNCTION>
 <FUNCTION>
-<NAME>xsltFreeStylePreComps</NAME>
-<RETURNS>void  </RETURNS>
-xsltStylesheetPtr style
+<NAME>xsltXPathVariableLookup</NAME>
+<RETURNS>xmlXPathObjectPtr     </RETURNS>
+void *ctxt,const xmlChar *name,const xmlChar *ns_uri
 </FUNCTION>
 <MACRO>
-<NAME>IN_LIBXSLT</NAME>
-#define IN_LIBXSLT
+<NAME>XSLT_DEFAULT_VERSION</NAME>
+#define XSLT_DEFAULT_VERSION     "1.0"
+</MACRO>
+<MACRO>
+<NAME>XSLT_DEFAULT_VENDOR</NAME>
+#define XSLT_DEFAULT_VENDOR      "libxslt"
+</MACRO>
+<MACRO>
+<NAME>XSLT_DEFAULT_URL</NAME>
+#define XSLT_DEFAULT_URL         "http://xmlsoft.org/XSLT/"
+</MACRO>
+<MACRO>
+<NAME>XSLT_NAMESPACE</NAME>
+#define XSLT_NAMESPACE ((xmlChar *) "http://www.w3.org/1999/XSL/Transform")
 </MACRO>
 <MACRO>
 <NAME>LIBXSLT_PUBLIC</NAME>
@@ -1071,6 +859,11 @@ xsltStylesheetPtr style
 <NAME>LIBXSLT_PUBLIC</NAME>
 #define LIBXSLT_PUBLIC 
 </MACRO>
+<FUNCTION>
+<NAME>xsltCleanupGlobals</NAME>
+<RETURNS>void  </RETURNS>
+void
+</FUNCTION>
 <MACRO>
 <NAME>XSLT_MAX_SORT</NAME>
 #define XSLT_MAX_SORT 5
@@ -1591,3 +1384,210 @@ xsltStylesheetPtr style
 <RETURNS>int   </RETURNS>
 xsltTransformContextPtr ctxt
 </FUNCTION>
+<MACRO>
+<NAME>XSLT_TODO</NAME>
+#define XSLT_TODO                                                      \
+    xsltGenericError(xsltGenericErrorContext,                          \
+           "Unimplemented block at %s:%d\n",                           \
+            __FILE__, __LINE__);
+</MACRO>
+<MACRO>
+<NAME>XSLT_STRANGE</NAME>
+#define XSLT_STRANGE                                                   \
+    xsltGenericError(xsltGenericErrorContext,                          \
+           "Internal error at %s:%d\n",                                \
+            __FILE__, __LINE__);
+</MACRO>
+<MACRO>
+<NAME>IS_XSLT_ELEM</NAME>
+#define IS_XSLT_ELEM(n)                                                        \
+    (((n) != NULL) && ((n)->ns != NULL) &&                             \
+     (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
+</MACRO>
+<MACRO>
+<NAME>IS_XSLT_NAME</NAME>
+#define IS_XSLT_NAME(n, val)                                           \
+    (xmlStrEqual((n)->name, (const xmlChar *) (val)))
+</MACRO>
+<MACRO>
+<NAME>IS_XSLT_REAL_NODE</NAME>
+#define IS_XSLT_REAL_NODE(n)                                           \
+    (((n) != NULL) &&                                                  \
+     (((n)->type == XML_ELEMENT_NODE) ||                               \
+      ((n)->type == XML_TEXT_NODE) ||                                  \
+      ((n)->type == XML_ATTRIBUTE_NODE) ||                             \
+      ((n)->type == XML_DOCUMENT_NODE) ||                              \
+      ((n)->type == XML_HTML_DOCUMENT_NODE) ||                         \
+      ((n)->type == XML_DOCB_DOCUMENT_NODE)))
+</MACRO>
+<MACRO>
+<NAME>IS_XSLT_REAL_NODE</NAME>
+#define IS_XSLT_REAL_NODE(n)                                           \
+    (((n) != NULL) &&                                                  \
+     (((n)->type == XML_ELEMENT_NODE) ||                               \
+      ((n)->type == XML_TEXT_NODE) ||                                  \
+      ((n)->type == XML_ATTRIBUTE_NODE) ||                             \
+      ((n)->type == XML_DOCUMENT_NODE) ||                              \
+      ((n)->type == XML_HTML_DOCUMENT_NODE)))
+</MACRO>
+<FUNCTION>
+<NAME>xsltGetNsProp</NAME>
+<RETURNS>xmlChar  *</RETURNS>
+xmlNodePtr node,const xmlChar *name,const xmlChar *nameSpace
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltPrintErrorContext</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xsltStylesheetPtr style,xmlNodePtr node
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltMessage</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr node,xmlNodePtr inst
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSetGenericErrorFunc</NAME>
+<RETURNS>void  </RETURNS>
+void *ctx,xmlGenericErrorFunc handler
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSetGenericDebugFunc</NAME>
+<RETURNS>void  </RETURNS>
+void *ctx,xmlGenericErrorFunc handler
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltDocumentSortFunction</NAME>
+<RETURNS>void  </RETURNS>
+xmlNodeSetPtr list
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltDoSortFunction</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,xmlNodePtr *sorts,int nbsorts
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltGetQNameURI</NAME>
+<RETURNS>const xmlChar  *</RETURNS>
+xmlNodePtr node,xmlChar **name
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSaveResultTo</NAME>
+<RETURNS>int   </RETURNS>
+xmlOutputBufferPtr buf,xmlDocPtr result,xsltStylesheetPtr style
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSaveResultToFilename</NAME>
+<RETURNS>int   </RETURNS>
+const char *URI,xmlDocPtr result,xsltStylesheetPtr style,int compression
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSaveResultToFile</NAME>
+<RETURNS>int   </RETURNS>
+FILE *file,xmlDocPtr result,xsltStylesheetPtr style
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSaveResultToFd</NAME>
+<RETURNS>int   </RETURNS>
+int fd,xmlDocPtr result,xsltStylesheetPtr style
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltSaveProfiling</NAME>
+<RETURNS>void  </RETURNS>
+xsltTransformContextPtr ctxt,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltTimestamp</NAME>
+<RETURNS>long  </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xsltCalibrateAdjust</NAME>
+<RETURNS>void  </RETURNS>
+long delta
+</FUNCTION>
+<MACRO>
+<NAME>XSLT_TIMESTAMP_TICS_PER_SEC</NAME>
+#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
+</MACRO>
+<ENUM>
+<NAME>xsltDebugStatusCodes</NAME>
+typedef enum {
+    XSLT_DEBUG_NONE = 0, /* no debugging allowed */
+    XSLT_DEBUG_INIT,
+    XSLT_DEBUG_STEP,
+    XSLT_DEBUG_STEPOUT,
+    XSLT_DEBUG_NEXT,
+    XSLT_DEBUG_STOP,
+    XSLT_DEBUG_CONT,
+    XSLT_DEBUG_RUN,
+    XSLT_DEBUG_RUN_RESTART,
+    XSLT_DEBUG_QUIT
+} xsltDebugStatusCodes;
+</ENUM>
+<USER_FUNCTION>
+<NAME>xsltHandleDebuggerCallback</NAME>
+<RETURNS>void </RETURNS>
+xmlNodePtr cur, xmlNodePtr node,
+                       xsltTemplatePtr templ, xsltTransformContextPtr ctxt
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xsltAddCallCallback</NAME>
+<RETURNS>int </RETURNS>
+xsltTemplatePtr templ, xmlNodePtr source
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xsltDropCallCallback</NAME>
+<RETURNS>void </RETURNS>
+void
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>xsltSetDebuggerCallbacks</NAME>
+<RETURNS>int   </RETURNS>
+int no, void *block
+</FUNCTION>
+<FUNCTION>
+<NAME>xslAddCall</NAME>
+<RETURNS>int   </RETURNS>
+xsltTemplatePtr templ,xmlNodePtr source
+</FUNCTION>
+<FUNCTION>
+<NAME>xslDropCall</NAME>
+<RETURNS>void  </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>LIBXSLT_DOTTED_VERSION</NAME>
+#define LIBXSLT_DOTTED_VERSION "1.0.13"
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_VERSION</NAME>
+#define LIBXSLT_VERSION 10013
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_VERSION_STRING</NAME>
+#define LIBXSLT_VERSION_STRING "10013"
+</MACRO>
+<MACRO>
+<NAME>WITH_XSLT_DEBUG</NAME>
+#define WITH_XSLT_DEBUG
+</MACRO>
+<MACRO>
+<NAME>DEBUG_MEMORY</NAME>
+#define DEBUG_MEMORY
+</MACRO>
+<MACRO>
+<NAME>DEBUG_MEMORY_LOCATION</NAME>
+#define DEBUG_MEMORY_LOCATION
+</MACRO>
+<MACRO>
+<NAME>ATTRIBUTE_UNUSED</NAME>
+#define ATTRIBUTE_UNUSED
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_PUBLIC</NAME>
+#define LIBXSLT_PUBLIC __declspec(dllimport)
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_PUBLIC</NAME>
+#define LIBXSLT_PUBLIC 
+</MACRO>
index 54775f0..e30a5e3 100644 (file)
       <ref name='xsltAttrTemplateProcess'/>
     </type>
     <type name='xmlChar *'>
-      <ref name='xsltGetNsProp'/>
       <ref name='xsltEvalTemplateString'/>
       <ref name='xsltEvalAttrValueTemplate'/>
       <ref name='xsltEvalStaticAttrValueTemplate'/>
       <ref name='xsltEvalXPathString'/>
       <ref name='xsltAttrTemplateValueProcess'/>
+      <ref name='xsltGetNsProp'/>
     </type>
     <type name='xmlDocPtr'>
       <ref name='xsltApplyStylesheetUser'/>
       <ref name='xsltFormatNumberConversion'/>
     </type>
     <type name='xmlXPathFunction'>
-      <ref name='xsltXPathFunctionLookup'/>
       <ref name='xsltExtFunctionLookup'/>
       <ref name='xsltExtModuleFunctionLookup'/>
+      <ref name='xsltXPathFunctionLookup'/>
     </type>
     <type name='xmlXPathObjectPtr'>
       <ref name='xsltVariableLookup'/>
       <ref name='xsltLoadStylesheetPI'/>
     </type>
     <type name='xsltTemplatePtr'>
-      <ref name='xsltGetTemplate'/>
       <ref name='xsltFindTemplate'/>
+      <ref name='xsltGetTemplate'/>
     </type>
     <type name='xsltTopLevelFunction'>
       <ref name='xsltExtModuleTopLevelLookup'/>
     </type>
     <type name='xsltTransformContextPtr'>
-      <ref name='xsltNewTransformContext'/>
       <ref name='xsltXPathGetTransformContext'/>
+      <ref name='xsltNewTransformContext'/>
     </type>
     <type name='xsltTransformFunction'>
       <ref name='xsltExtElementLookup'/>
-      <ref name='xsltExtElementLookup'/>
       <ref name='xsltExtModuleElementLookup'/>
+      <ref name='xsltExtElementLookup'/>
     </type>
   </constructors>
   <functions>
       <ref name='xsltQuoteUserParams'/>
     </type>
     <type name='const xmlChar *'>
-      <ref name='xsltAddKey'/>
-      <ref name='xsltAddKey'/>
-      <ref name='xsltAddKey'/>
-      <ref name='xsltAddKey'/>
-      <ref name='xsltGetKey'/>
-      <ref name='xsltGetKey'/>
-      <ref name='xsltGetKey'/>
-      <ref name='xsltCompilePattern'/>
-      <ref name='xsltAddTemplate'/>
-      <ref name='xsltAddTemplate'/>
-      <ref name='xsltMatchPattern'/>
-      <ref name='xsltExtElementLookup'/>
-      <ref name='xsltExtElementLookup'/>
-      <ref name='xsltGetNsProp'/>
-      <ref name='xsltGetNsProp'/>
-      <ref name='xsltEvalAttrValueTemplate'/>
-      <ref name='xsltEvalAttrValueTemplate'/>
-      <ref name='xsltEvalStaticAttrValueTemplate'/>
-      <ref name='xsltEvalStaticAttrValueTemplate'/>
-      <ref name='xsltEvalOneUserParam'/>
-      <ref name='xsltEvalOneUserParam'/>
-      <ref name='xsltQuoteOneUserParam'/>
-      <ref name='xsltQuoteOneUserParam'/>
-      <ref name='xsltVariableLookup'/>
-      <ref name='xsltVariableLookup'/>
-      <ref name='xsltXPathVariableLookup'/>
-      <ref name='xsltXPathVariableLookup'/>
-      <ref name='xsltXPathFunctionLookup'/>
-      <ref name='xsltXPathFunctionLookup'/>
+      <ref name='xsltLoadDocument'/>
+      <ref name='xsltLoadStyleDocument'/>
       <ref name='xsltStyleExtInitFunction'/>
       <ref name='xsltStyleExtShutdownFunction'/>
       <ref name='xsltExtInitFunction'/>
       <ref name='xsltRegisterExtPrefix'/>
       <ref name='xsltRegisterExtPrefix'/>
       <ref name='xsltCheckExtPrefix'/>
+      <ref name='xsltXPathFunctionLookup'/>
+      <ref name='xsltXPathFunctionLookup'/>
       <ref name='xsltFindTemplate'/>
       <ref name='xsltFindTemplate'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltGetKey'/>
+      <ref name='xsltGetKey'/>
+      <ref name='xsltGetKey'/>
       <ref name='xsltGetSpecialNamespace'/>
       <ref name='xsltGetSpecialNamespace'/>
-      <ref name='xsltLoadDocument'/>
-      <ref name='xsltLoadStyleDocument'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltMatchPattern'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltEvalOneUserParam'/>
+      <ref name='xsltEvalOneUserParam'/>
+      <ref name='xsltQuoteOneUserParam'/>
+      <ref name='xsltQuoteOneUserParam'/>
+      <ref name='xsltVariableLookup'/>
+      <ref name='xsltVariableLookup'/>
+      <ref name='xsltXPathVariableLookup'/>
+      <ref name='xsltXPathVariableLookup'/>
+      <ref name='xsltGetNsProp'/>
+      <ref name='xsltGetNsProp'/>
     </type>
     <type name='const xmlChar*'>
       <ref name='xsltAttrTemplateValueProcess'/>
       <ref name='xsltCalibrateAdjust'/>
     </type>
     <type name='void *'>
+      <ref name='xsltStyleExtShutdownFunction'/>
+      <ref name='xsltExtShutdownFunction'/>
+      <ref name='xsltXPathVariableLookup'/>
       <ref name='xsltSetGenericErrorFunc'/>
       <ref name='xsltSetGenericDebugFunc'/>
       <ref name='xsltSetDebuggerCallbacks'/>
-      <ref name='xsltXPathVariableLookup'/>
-      <ref name='xsltStyleExtShutdownFunction'/>
-      <ref name='xsltExtShutdownFunction'/>
     </type>
     <type name='xmlAttrPtr'>
       <ref name='xsltAttrListTemplateProcess'/>
       <ref name='xsltFormatNumberConversion'/>
     </type>
     <type name='xmlChar **'>
-      <ref name='xsltGetQNameURI'/>
       <ref name='xsltFormatNumberConversion'/>
+      <ref name='xsltGetQNameURI'/>
     </type>
     <type name='xmlDocPtr'>
+      <ref name='xsltNewDocument'/>
+      <ref name='xsltFindDocument'/>
+      <ref name='xsltNewStyleDocument'/>
       <ref name='xsltCompilePattern'/>
       <ref name='xsltMatchPattern'/>
       <ref name='xsltNewTransformContext'/>
       <ref name='xsltApplyStylesheet'/>
       <ref name='xsltProfileStylesheet'/>
       <ref name='xsltRunStylesheet'/>
+      <ref name='xsltParseStylesheetProcess'/>
+      <ref name='xsltParseStylesheetDoc'/>
+      <ref name='xsltLoadStylesheetPI'/>
       <ref name='xsltSaveResultTo'/>
       <ref name='xsltSaveResultToFilename'/>
       <ref name='xsltSaveResultToFile'/>
       <ref name='xsltSaveResultToFd'/>
-      <ref name='xsltNewDocument'/>
-      <ref name='xsltFindDocument'/>
-      <ref name='xsltNewStyleDocument'/>
-      <ref name='xsltParseStylesheetProcess'/>
-      <ref name='xsltParseStylesheetDoc'/>
-      <ref name='xsltLoadStylesheetPI'/>
     </type>
     <type name='xmlGenericErrorFunc'>
       <ref name='xsltSetGenericErrorFunc'/>
       <ref name='xsltSetGenericDebugFunc'/>
     </type>
     <type name='xmlNodePtr'>
+      <ref name='xsltParseStylesheetAttributeSet'/>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltNewElemPreComp'/>
+      <ref name='xsltInitElemPreComp'/>
+      <ref name='xsltTopLevelFunction'/>
+      <ref name='xsltPreComputeExtModuleElement'/>
+      <ref name='xsltParseStylesheetImport'/>
+      <ref name='xsltParseStylesheetInclude'/>
+      <ref name='xsltFindElemSpaceHandling'/>
       <ref name='xsltAddKey'/>
+      <ref name='xsltNamespaceAlias'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
       <ref name='xsltCompilePattern'/>
       <ref name='xsltTestCompMatchList'/>
       <ref name='xsltGetTemplate'/>
       <ref name='xsltMatchPattern'/>
       <ref name='xsltMatchPattern'/>
+      <ref name='xsltDocumentComp'/>
+      <ref name='xsltStylePreCompute'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltTemplateProcess'/>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
       <ref name='xsltApplyStripSpaces'/>
       <ref name='xsltApplyOneTemplate'/>
       <ref name='xsltApplyOneTemplate'/>
       <ref name='xsltForEach'/>
       <ref name='xslHandleDebugger'/>
       <ref name='xslHandleDebugger'/>
-      <ref name='xsltGetNsProp'/>
-      <ref name='xsltPrintErrorContext'/>
-      <ref name='xsltMessage'/>
-      <ref name='xsltMessage'/>
-      <ref name='xsltGetQNameURI'/>
-      <ref name='xsltHandleDebuggerCallback'/>
-      <ref name='xsltHandleDebuggerCallback'/>
-      <ref name='xsltAddCallCallback'/>
-      <ref name='xslAddCall'/>
-      <ref name='xsltEvalTemplateString'/>
-      <ref name='xsltEvalTemplateString'/>
-      <ref name='xsltEvalAttrValueTemplate'/>
-      <ref name='xsltEvalStaticAttrValueTemplate'/>
-      <ref name='xsltTemplateProcess'/>
-      <ref name='xsltAttrListTemplateProcess'/>
-      <ref name='xsltAttrTemplateProcess'/>
       <ref name='xsltParseGlobalVariable'/>
       <ref name='xsltParseGlobalParam'/>
       <ref name='xsltParseStylesheetVariable'/>
       <ref name='xsltParseStylesheetParam'/>
       <ref name='xsltParseStylesheetCallerParam'/>
-      <ref name='xsltNewElemPreComp'/>
-      <ref name='xsltInitElemPreComp'/>
-      <ref name='xsltTopLevelFunction'/>
-      <ref name='xsltPreComputeExtModuleElement'/>
-      <ref name='xsltParseStylesheetImport'/>
-      <ref name='xsltParseStylesheetInclude'/>
-      <ref name='xsltFindElemSpaceHandling'/>
-      <ref name='xsltParseStylesheetAttributeSet'/>
-      <ref name='xsltApplyAttributeSet'/>
-      <ref name='xsltApplyAttributeSet'/>
-      <ref name='xsltNamespaceAlias'/>
-      <ref name='xsltGetNamespace'/>
-      <ref name='xsltGetNamespace'/>
-      <ref name='xsltGetSpecialNamespace'/>
-      <ref name='xsltGetSpecialNamespace'/>
-      <ref name='xsltCopyNamespace'/>
-      <ref name='xsltCopyNamespaceList'/>
-      <ref name='xsltDebug'/>
-      <ref name='xsltDebug'/>
-      <ref name='xsltDocumentComp'/>
-      <ref name='xsltStylePreCompute'/>
       <ref name='xsltTransformFunction'/>
       <ref name='xsltTransformFunction'/>
       <ref name='xsltParseStylesheetOutput'/>
       <ref name='xsltNumberFormat'/>
       <ref name='xsltParseTemplateContent'/>
+      <ref name='xsltGetNsProp'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltMessage'/>
+      <ref name='xsltMessage'/>
+      <ref name='xsltGetQNameURI'/>
+      <ref name='xsltHandleDebuggerCallback'/>
+      <ref name='xsltHandleDebuggerCallback'/>
+      <ref name='xsltAddCallCallback'/>
+      <ref name='xslAddCall'/>
     </type>
     <type name='xmlNodePtr *'>
       <ref name='xsltDoSortFunction'/>
       <ref name='xsltRegisterExtFunction'/>
     </type>
     <type name='xmlXPathParserContextPtr'>
+      <ref name='xsltFunctionNodeSet'/>
+      <ref name='xsltXPathGetTransformContext'/>
       <ref name='xsltDocumentFunction'/>
       <ref name='xsltKeyFunction'/>
       <ref name='xsltUnparsedEntityURIFunction'/>
       <ref name='xsltSystemPropertyFunction'/>
       <ref name='xsltElementAvailableFunction'/>
       <ref name='xsltFunctionAvailableFunction'/>
-      <ref name='xsltXPathGetTransformContext'/>
-      <ref name='xsltFunctionNodeSet'/>
     </type>
     <type name='xsltCompMatchPtr'>
       <ref name='xsltFreeCompMatchList'/>
       <ref name='xsltRegisterExtModuleFull'/>
     </type>
     <type name='xsltStylePreCompPtr'>
+      <ref name='xsltDebug'/>
       <ref name='xsltDocumentElem'/>
       <ref name='xsltSort'/>
       <ref name='xsltCopy'/>
       <ref name='xsltChoose'/>
       <ref name='xsltIf'/>
       <ref name='xsltForEach'/>
-      <ref name='xsltDebug'/>
     </type>
     <type name='xsltStylesheetPtr'>
-      <ref name='xsltAddKey'/>
-      <ref name='xsltFreeKeys'/>
-      <ref name='xsltCompilePattern'/>
-      <ref name='xsltAddTemplate'/>
-      <ref name='xsltGetTemplate'/>
-      <ref name='xsltFreeTemplateHashes'/>
-      <ref name='xsltCleanupTemplates'/>
-      <ref name='xsltNewTransformContext'/>
-      <ref name='xsltApplyStylesheetUser'/>
-      <ref name='xsltApplyStylesheet'/>
-      <ref name='xsltProfileStylesheet'/>
-      <ref name='xsltRunStylesheet'/>
-      <ref name='xsltPrintErrorContext'/>
-      <ref name='xsltSaveResultTo'/>
-      <ref name='xsltSaveResultToFilename'/>
-      <ref name='xsltSaveResultToFile'/>
-      <ref name='xsltSaveResultToFd'/>
-      <ref name='xsltEvalStaticAttrValueTemplate'/>
-      <ref name='xsltParseGlobalVariable'/>
-      <ref name='xsltParseGlobalParam'/>
+      <ref name='xsltParseStylesheetAttributeSet'/>
+      <ref name='xsltFreeAttributeSetsHashes'/>
+      <ref name='xsltLoadStyleDocument'/>
+      <ref name='xsltNewStyleDocument'/>
+      <ref name='xsltFreeStyleDocuments'/>
       <ref name='xsltStyleExtInitFunction'/>
       <ref name='xsltStyleExtShutdownFunction'/>
       <ref name='xsltStyleGetExtData'/>
       <ref name='xsltParseStylesheetImport'/>
       <ref name='xsltParseStylesheetInclude'/>
       <ref name='xsltNextImport'/>
-      <ref name='xsltParseStylesheetAttributeSet'/>
-      <ref name='xsltFreeAttributeSetsHashes'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltFreeKeys'/>
       <ref name='xsltNamespaceAlias'/>
       <ref name='xsltFreeNamespaceAliasHashes'/>
-      <ref name='xsltLoadStyleDocument'/>
-      <ref name='xsltNewStyleDocument'/>
-      <ref name='xsltFreeStyleDocuments'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltGetTemplate'/>
+      <ref name='xsltFreeTemplateHashes'/>
+      <ref name='xsltCleanupTemplates'/>
       <ref name='xsltDocumentComp'/>
       <ref name='xsltStylePreCompute'/>
       <ref name='xsltFreeStylePreComps'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltNewTransformContext'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltApplyStylesheet'/>
+      <ref name='xsltProfileStylesheet'/>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltParseGlobalVariable'/>
+      <ref name='xsltParseGlobalParam'/>
       <ref name='xsltFreeStylesheet'/>
       <ref name='xsltDecimalFormatGetByName'/>
       <ref name='xsltParseStylesheetProcess'/>
       <ref name='xsltParseStylesheetOutput'/>
       <ref name='xsltParseTemplateContent'/>
       <ref name='xsltAllocateExtra'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltSaveResultTo'/>
+      <ref name='xsltSaveResultToFilename'/>
+      <ref name='xsltSaveResultToFile'/>
+      <ref name='xsltSaveResultToFd'/>
     </type>
     <type name='xsltTemplatePtr'>
       <ref name='xsltAddTemplate'/>
       <ref name='xsltRegisterExtModuleTopLevel'/>
     </type>
     <type name='xsltTransformContextPtr'>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltRegisterExtras'/>
+      <ref name='xsltNewDocument'/>
+      <ref name='xsltLoadDocument'/>
+      <ref name='xsltFindDocument'/>
+      <ref name='xsltFreeDocuments'/>
+      <ref name='xsltExtInitFunction'/>
+      <ref name='xsltExtShutdownFunction'/>
+      <ref name='xsltGetExtData'/>
+      <ref name='xsltShutdownCtxtExts'/>
+      <ref name='xsltExtFunctionLookup'/>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltRegisterExtFunction'/>
+      <ref name='xsltRegisterExtElement'/>
+      <ref name='xsltInitCtxtExts'/>
+      <ref name='xsltFreeCtxtExts'/>
+      <ref name='xsltNeedElemSpaceHandling'/>
+      <ref name='xsltFindElemSpaceHandling'/>
+      <ref name='xsltFindTemplate'/>
       <ref name='xsltGetKey'/>
       <ref name='xsltInitCtxtKeys'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
       <ref name='xsltCompilePattern'/>
       <ref name='xsltTestCompMatchList'/>
       <ref name='xsltGetTemplate'/>
       <ref name='xsltMatchPattern'/>
+      <ref name='xsltEvalXPathPredicate'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalXPathString'/>
+      <ref name='xsltTemplateProcess'/>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
+      <ref name='xsltAttrTemplateValueProcess'/>
       <ref name='xsltFreeTransformContext'/>
       <ref name='xsltApplyStylesheetUser'/>
       <ref name='xsltApplyStripSpaces'/>
       <ref name='xsltForEach'/>
       <ref name='xsltRegisterAllElement'/>
       <ref name='xslHandleDebugger'/>
-      <ref name='xsltPrintErrorContext'/>
-      <ref name='xsltMessage'/>
-      <ref name='xsltDoSortFunction'/>
-      <ref name='xsltSaveProfiling'/>
-      <ref name='xsltHandleDebuggerCallback'/>
-      <ref name='xsltEvalXPathPredicate'/>
-      <ref name='xsltEvalTemplateString'/>
-      <ref name='xsltEvalAttrValueTemplate'/>
-      <ref name='xsltEvalXPathString'/>
-      <ref name='xsltTemplateProcess'/>
-      <ref name='xsltAttrListTemplateProcess'/>
-      <ref name='xsltAttrTemplateProcess'/>
-      <ref name='xsltAttrTemplateValueProcess'/>
       <ref name='xsltEvalGlobalVariables'/>
       <ref name='xsltEvalUserParams'/>
       <ref name='xsltQuoteUserParams'/>
       <ref name='xsltAddStackElemList'/>
       <ref name='xsltFreeGlobalVariables'/>
       <ref name='xsltVariableLookup'/>
-      <ref name='xsltExtInitFunction'/>
-      <ref name='xsltExtShutdownFunction'/>
-      <ref name='xsltGetExtData'/>
-      <ref name='xsltShutdownCtxtExts'/>
-      <ref name='xsltExtFunctionLookup'/>
-      <ref name='xsltExtElementLookup'/>
-      <ref name='xsltRegisterExtFunction'/>
-      <ref name='xsltRegisterExtElement'/>
-      <ref name='xsltInitCtxtExts'/>
-      <ref name='xsltFreeCtxtExts'/>
-      <ref name='xsltNeedElemSpaceHandling'/>
-      <ref name='xsltFindElemSpaceHandling'/>
-      <ref name='xsltFindTemplate'/>
-      <ref name='xsltApplyAttributeSet'/>
-      <ref name='xsltGetNamespace'/>
-      <ref name='xsltGetSpecialNamespace'/>
-      <ref name='xsltCopyNamespace'/>
-      <ref name='xsltCopyNamespaceList'/>
-      <ref name='xsltNewDocument'/>
-      <ref name='xsltLoadDocument'/>
-      <ref name='xsltFindDocument'/>
-      <ref name='xsltFreeDocuments'/>
-      <ref name='xsltDebug'/>
-      <ref name='xsltRegisterExtras'/>
       <ref name='xsltTransformFunction'/>
       <ref name='xsltNumberFormat'/>
       <ref name='xsltAllocateExtraCtxt'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltMessage'/>
+      <ref name='xsltDoSortFunction'/>
+      <ref name='xsltSaveProfiling'/>
+      <ref name='xsltHandleDebuggerCallback'/>
     </type>
     <type name='xsltTransformFunction'>
       <ref name='xsltNewElemPreComp'/>
index 84cfc97..bd30ef5 100644 (file)
@@ -4,13 +4,13 @@ AUTOMAKE_OPTIONS = 1.4 foreign
 SUBDIRS= . tests
 
 INCLUDES = \
-       -I/usr/include/python$(PYTHON_VERSION) \
        -I$(PYTHON_INCLUDES) \
         $(LIBXML_CFLAGS) \
        -I$(top_srcdir)
 
 DOCS_DIR = $(prefix)/share/doc/libxslt-python-$(LIBXML_VERSION)
-DOCS = TODO libxsltclass.txt
+# libxsltclass.txt is generated
+DOCS = TODO
 
 EXTRA_DIST =                   \
        libxslt.c               \
@@ -22,37 +22,20 @@ EXTRA_DIST =                        \
        libxslt-python-api.xml  \
        $(DOCS)
 
+libxsltmod_la_LDFLAGS = -module -avoid-version
+
 if WITH_PYTHON
 mylibs = \
        $(top_builddir)/libxslt/libxslt.la \
        $(top_builddir)/libexslt/libexslt.la
 
-LDADD = -lxslt -lexslt
-CFLAGS = -Wall -g
+all: libxslt.py
 
 pythondir = $(prefix)/lib/python${PYTHON_VERSION}/site-packages
-python_PROGRAMS = libxsltmod.so
-
-libxsltmod_so_SOURCES =
-libxsltmod_so_LDFLAGS = $(mylibs) $(LIBS) -shared -Wl,-soname,libxsltmod.so
-
-noinst_LTLIBRARIES = libxsltmodule.la
-libxsltmodule_la_SOURCES = libxslt.c types.c libxslt-py.c
-
-GENERATE = generator.py
-API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml
-GENERATED= $(srcdir)/libxsltclass.py \
-           $(srcdir)/libxslt-export.c \
-          $(srcdir)/libxslt-py.c \
-          $(srcdir)/libxslt-py.h
-
-all: $(GENERATED) libxsltmod.so libxslt.py $(PYTHONSODV)
-
-libxsltmod.so: $(libxsltmodule_la_OBJECTS) libxsltmodule.la
-       -(rm -f .libs/libxsltmod.so; \
-         $(LINK) -o $@ $(libxsltmodule_la_OBJECTS) $(libxsltmod_so_LDFLAGS);\
-         if [ -r .libs/libxsltmod.so ] ; then cp .libs/libxsltmod.so . ; fi)
+python_LTLIBRARIES = libxsltmod.la
 
+libxsltmod_la_SOURCES = libxslt.c types.c libxslt-py.c
+libxsltmod_la_LIBADD = $(mylibs) 
 
 libxslt.py: $(srcdir)/libxsl.py libxsltclass.py
        cat $(srcdir)/libxsl.py libxsltclass.py > libxslt.py
@@ -64,6 +47,13 @@ install-data-local:
        -@(for doc in $(DOCS) ; \
           do @INSTALL@ -m 0644 $$doc $(DESTDIR)$(DOCS_DIR) ; done)
 
+GENERATE = generator.py
+API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml
+GENERATED= $(srcdir)/libxsltclass.py \
+           $(srcdir)/libxslt-export.c \
+          $(srcdir)/libxslt-py.c \
+          $(srcdir)/libxslt-py.h
+
 $(GENERATED): $(srcdir)/$(GENERATE) $(API_DESC)
        cd $(srcdir) && $(PYTHON) $(GENERATE)
 
@@ -78,4 +68,3 @@ tests test: all
 clean:
        rm -f $(GENERATED) *.o libxslt.so *.pyc libxslt.py
 
-
index 6a6abe4..0ea7ae6 100755 (executable)
@@ -351,8 +351,14 @@ def print_function_wrapper(name, output, export, include):
 
     if ret[0] == 'void':
         if file == "python_accessor":
-            c_call = "\n    %s->%s = %s;\n" % (args[0][0], args[1][0],
-                                               args[1][0])
+           if args[1][1] == "char *" or args[1][1] == "xmlChar *":
+               c_call = "\n    if (%s->%s != NULL) xmlFree(%s->%s);\n" % (
+                                args[0][0], args[1][0], args[0][0], args[1][0])
+               c_call = c_call + "    %s->%s = xmlStrdup((const xmlChar *)%s);\n" % (args[0][0],
+                                args[1][0], args[1][0])
+           else:
+               c_call = "\n    %s->%s = %s;\n" % (args[0][0], args[1][0],
+                                                  args[1][0])
         else:
             c_call = "\n    %s(%s);\n" % (name, c_call);
         ret_convert = "    Py_INCREF(Py_None);\n    return(Py_None);\n"
@@ -368,7 +374,10 @@ def print_function_wrapper(name, output, export, include):
     elif py_return_types.has_key(ret[0]):
         (f, t, n, c, p) = py_return_types[ret[0]]
         c_return = "    %s c_retval;\n" % (ret[0])
-        c_call = "\n    c_retval = %s(%s);\n" % (name, c_call);
+        if file == "python_accessor" and ret[2] != None:
+            c_call = "\n    c_retval = %s->%s;\n" % (args[0][0], ret[2])
+        else:
+            c_call = "\n    c_retval = %s(%s);\n" % (name, c_call);
         ret_convert = "    py_retval = %s%sWrap((%s) c_retval);\n" % (p,n,c)
         ret_convert = ret_convert + "    return(py_retval);\n"
     else:
@@ -384,7 +393,7 @@ def print_function_wrapper(name, output, export, include):
     include.write("PyObject * ")
     include.write("libxslt_%s(PyObject *self, PyObject *args);\n" % (name))
 
-    export.write("    { \"%s\", libxslt_%s, METH_VARARGS, NULL },\n" % (name, name))
+    export.write("    { (char *)\"%s\", libxslt_%s, METH_VARARGS, NULL },\n" % (name, name))
 
     if file == "python":
         # Those have been manually generated
@@ -394,7 +403,10 @@ def print_function_wrapper(name, output, export, include):
         return 1
 
     output.write("PyObject *\n")
-    output.write("libxslt_%s(PyObject *self, PyObject *args) {\n" % (name))
+    output.write("libxslt_%s(ATTRIBUTE_UNUSED PyObject *self," % (name))
+    if format == "":
+       output.write("ATTRIBUTE_UNUSED ")
+    output.write(" PyObject *args) {\n")
     if ret[0] != 'void':
         output.write("    PyObject *py_retval;\n")
     if c_return != "":
@@ -402,7 +414,7 @@ def print_function_wrapper(name, output, export, include):
     if c_args != "":
         output.write(c_args)
     if format != "":
-        output.write("\n    if (!PyArg_ParseTuple(args, \"%s\"%s))\n" %
+        output.write("\n    if (!PyArg_ParseTuple(args, (char *)\"%s\"%s))\n" %
                      (format, format_args))
         output.write("        return(NULL);\n")
     if c_convert != "":
@@ -461,6 +473,8 @@ def buildStubs():
     export.write("/* Generated */\n\n")
     wrapper = open("libxslt-py.c", "w")
     wrapper.write("/* Generated */\n\n")
+    wrapper.write("#include \"config.h\"\n")
+    wrapper.write("#include <libxslt/xsltconfig.h>\n")
     wrapper.write("#include \"libxslt_wrap.h\"\n")
     wrapper.write("#include \"libxslt-py.h\"\n\n")
     for function in functions.keys():
index 50e9b5b..5c9eb0e 100644 (file)
  * daniel@veillard.com
  */
 #include <Python.h>
+#include "config.h"
 #include <libxml/xmlmemory.h>
 #include <libxml/tree.h>
 #include <libxml/xpath.h>
 #include "libxslt_wrap.h"
 #include "libxslt-py.h"
 
+
 /* #define DEBUG */
 /* #define DEBUG_XPATH */
 /* #define DEBUG_ERROR */
 /* #define DEBUG_MEMORY */
 
+void initlibxsltmod(void);
+
 /************************************************************************
  *                                                                     *
  *                     Per type specific glue                          *
@@ -40,7 +44,8 @@ libxslt_xsltStylesheetPtrWrap(xsltStylesheetPtr style) {
        Py_INCREF(Py_None);
        return(Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) style, "xsltStylesheetPtr", NULL);
+    ret = PyCObject_FromVoidPtrAndDesc((void *) style,
+                                      (char *)"xsltStylesheetPtr", NULL);
     return(ret);
 }
 
@@ -55,97 +60,13 @@ libxslt_xsltTransformContextPtrWrap(xsltTransformContextPtr ctxt) {
        Py_INCREF(Py_None);
        return(Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt, "xsltTransformContextPtr", NULL);
+    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+                                      (char *)"xsltTransformContextPtr", NULL);
     return(ret);
 }
 
 /************************************************************************
  *                                                                     *
- *             Memory debug interface                                  *
- *                                                                     *
- ************************************************************************/
-
-extern void xmlMemFree(void *ptr);
-extern void *xmlMemMalloc(size_t size);
-extern void *xmlMemRealloc(void *ptr,size_t size);
-extern char *xmlMemoryStrdup(const char *str);
-
-static int libxsltMemoryDebugActivated = 0;
-static long libxsltMemoryAllocatedBase = 0;
-
-static int libxsltMemoryDebug = 0;
-static xmlFreeFunc freeFunc = NULL;
-static xmlMallocFunc mallocFunc = NULL;
-static xmlReallocFunc reallocFunc = NULL;
-static xmlStrdupFunc strdupFunc = NULL;
-
-PyObject *
-libxslt_xmlDebugMemory(PyObject *self, PyObject *args) {
-    int activate;
-    PyObject *py_retval;
-    long ret;
-
-    if (!PyArg_ParseTuple(args, "i:xmlDebugMemory", &activate))
-        return(NULL);
-
-#ifdef DEBUG_MEMORY
-    printf("libxslt_xmlDebugMemory(%d) called\n", activate);
-#endif
-
-    if (activate != 0) {
-       if (libxsltMemoryDebug == 0) {
-           /*
-            * First initialize the library and grab the old memory handlers
-            * and switch the library to memory debugging
-            */
-           xmlMemGet((xmlFreeFunc *) &freeFunc,
-                     (xmlMallocFunc *)&mallocFunc,
-                     (xmlReallocFunc *)&reallocFunc,
-                     (xmlStrdupFunc *) &strdupFunc);
-           if ((freeFunc == xmlMemFree) && (mallocFunc == xmlMemMalloc) &&
-               (reallocFunc == xmlMemRealloc) &&
-               (strdupFunc == xmlMemoryStrdup)) {
-               libxsltMemoryAllocatedBase = xmlMemUsed();
-           } else {
-               ret = (long) xmlMemSetup(xmlMemFree, xmlMemMalloc,
-                                        xmlMemRealloc, xmlMemoryStrdup);
-               if (ret < 0)
-                   goto error;
-               libxsltMemoryAllocatedBase = xmlMemUsed();
-           }
-           xmlInitParser();
-           ret = 0;
-       } else if (libxsltMemoryDebugActivated == 0) {
-           libxsltMemoryAllocatedBase = xmlMemUsed();
-           ret = 0;
-       } else {
-           ret = xmlMemUsed() - libxsltMemoryAllocatedBase;
-       }
-       libxsltMemoryDebug = 1;
-       libxsltMemoryDebugActivated = 1;
-    } else {
-       if (libxsltMemoryDebugActivated == 1)
-           ret = xmlMemUsed() - libxsltMemoryAllocatedBase;
-       else
-           ret = 0;
-       libxsltMemoryDebugActivated = 0;
-    }
-error:
-    py_retval = libxml_longWrap(ret);
-    return(py_retval);
-}
-
-PyObject *
-libxslt_xmlDumpMemory(PyObject *self, PyObject *args) {
-
-    if (libxsltMemoryDebug != 0)
-       xmlMemoryDump();
-    Py_INCREF(Py_None);
-    return(Py_None);
-}
-
-/************************************************************************
- *                                                                     *
  *                     Extending the API                               *
  *                                                                     *
  ************************************************************************/
@@ -199,14 +120,15 @@ libxslt_xmlXPathFuncCallback(xmlXPathParserContextPtr ctxt, int nargs) {
 }
 
 PyObject *
-libxslt_xsltRegisterExtModuleFunction(PyObject *self, PyObject *args) {
+libxslt_xsltRegisterExtModuleFunction(PyObject *self ATTRIBUTE_UNUSED,
+                                     PyObject *args) {
     PyObject *py_retval;
     int ret = 0;
     xmlChar *name;
     xmlChar *ns_uri;
     PyObject *pyobj_f;
 
-    if (!PyArg_ParseTuple(args, "szO:registerXPathFunction",
+    if (!PyArg_ParseTuple(args, (char *)"szO:registerXPathFunction",
                          &name, &ns_uri, &pyobj_f))
         return(NULL);
 
@@ -239,8 +161,8 @@ libxslt_xsltRegisterExtModuleFunction(PyObject *self, PyObject *args) {
     return(py_retval);
 }
 
-void
-deallocateCallback(void *payload, xmlChar *name) {
+static void
+deallocateCallback(void *payload, xmlChar *name ATTRIBUTE_UNUSED) {
     PyObject *function = (PyObject *) payload;
 
 #ifdef DEBUG_XPATH
@@ -257,7 +179,7 @@ deallocateCallback(void *payload, xmlChar *name) {
  ************************************************************************/
 
 PyObject *
-libxslt_xsltApplyStylesheet(PyObject *self, PyObject *args) {
+libxslt_xsltApplyStylesheet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
     xmlDocPtr c_retval;
     xsltStylesheetPtr style;
@@ -270,7 +192,8 @@ libxslt_xsltApplyStylesheet(PyObject *self, PyObject *args) {
     PyObject *name;
     PyObject *value;
 
-    if (!PyArg_ParseTuple(args, "OOO:xsltApplyStylesheet", &pyobj_style, &pyobj_doc, &pyobj_params))
+    if (!PyArg_ParseTuple(args, (char *) "OOO:xsltApplyStylesheet",
+                         &pyobj_style, &pyobj_doc, &pyobj_params))
         return(NULL);
 
     if (pyobj_params != Py_None) {
@@ -291,11 +214,12 @@ libxslt_xsltApplyStylesheet(PyObject *self, PyObject *args) {
 
                    tmp = PyString_AS_STRING(name);
                    size = PyString_GET_SIZE(name);
-                   params[j * 2] = xmlCharStrndup(tmp, size);
+                   params[j * 2] = (char *) xmlCharStrndup(tmp, size);
                    if (PyString_Check(value)) {
                        tmp = PyString_AS_STRING(value);
                        size = PyString_GET_SIZE(value);
-                       params[(j * 2) + 1] = xmlCharStrndup(tmp, size);
+                       params[(j * 2) + 1] = (char *)
+                           xmlCharStrndup(tmp, size);
                    } else {
                        params[(j * 2) + 1] = NULL;
                    }
@@ -334,7 +258,8 @@ libxslt_xsltApplyStylesheet(PyObject *self, PyObject *args) {
  ************************************************************************/
 
 PyObject *
-libxslt_xsltCleanup(PyObject *self, PyObject *args) {
+libxslt_xsltCleanup(PyObject *self ATTRIBUTE_UNUSED,
+                   PyObject *args ATTRIBUTE_UNUSED) {
 
     if (libxslt_extModuleFunctions != NULL) {
        xmlHashFree(libxslt_extModuleFunctions, deallocateCallback);
@@ -352,7 +277,7 @@ libxslt_xsltCleanup(PyObject *self, PyObject *args) {
  ************************************************************************/
 static PyMethodDef libxsltMethods[] = {
 #include "libxslt-export.c"
-    { NULL }
+    { NULL, NULL, 0, NULL }
 };
 
 #ifdef MERGED_MODULES
@@ -369,7 +294,7 @@ void initlibxsltmod(void) {
 
     if (initialized != 0)
        return;
-    m = Py_InitModule("libxsltmod", libxsltMethods);
+    m = Py_InitModule((char *)"libxsltmod", libxsltMethods);
     initialized = 1;
     /* libxslt_xmlErrorInitialize(); */
     /*
index 8cc110d..d4589e9 100644 (file)
@@ -15,7 +15,7 @@ EXTRA_DIST = $(TESTSPY) $(XMLS) $(EXTRAS)
 
 if WITH_PYTHON
 tests: $(TESTSPY)
-       -@(PYTHONPATH=".." ; export PYTHONPATH; \
+       -@(PYTHONPATH="..:../.libs" ; export PYTHONPATH; \
           for test in $(TESTSPY) ; do echo "-- $$test" ; $(PYTHON) $$test ; done)
 else
 tests:
index 29fe84f..2eff1a3 100644 (file)
  *
  * daniel@veillard.com
  */
-#include "libxslt_wrap.h"
+#include "libxml_wrap.h"
 
 PyObject *
-libxml_intWrap(int val) {
+libxml_intWrap(int val)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_intWrap: val = %d\n", val);
 #endif
     ret = PyInt_FromLong((long) val);
-    return(ret);
+    return (ret);
 }
 
 PyObject *
-libxml_longWrap(long val) {
+libxml_longWrap(long val)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_longWrap: val = %ld\n", val);
 #endif
     ret = PyInt_FromLong(val);
-    return(ret);
+    return (ret);
 }
 
 PyObject *
-libxml_doubleWrap(double val) {
+libxml_doubleWrap(double val)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_doubleWrap: val = %f\n", val);
 #endif
     ret = PyFloat_FromDouble((double) val);
-    return(ret);
+    return (ret);
 }
 
 PyObject *
-libxml_charPtrWrap(char *str) {
+libxml_charPtrWrap(char *str)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlcharPtrWrap: str = %s\n", str);
 #endif
     if (str == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
     /* TODO: look at deallocation */
     ret = PyString_FromString(str);
     xmlFree(str);
-    return(ret);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlCharPtrWrap(xmlChar *str) {
+libxml_charPtrConstWrap(const char *str)
+{
     PyObject *ret;
 
 #ifdef DEBUG
-    printf("libxml_xmlCharPtrWrap: str = %s\n", str);
+    printf("libxml_xmlcharPtrWrap: str = %s\n", str);
 #endif
     if (str == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
     /* TODO: look at deallocation */
     ret = PyString_FromString(str);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlCharPtrWrap(xmlChar * str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlCharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString((char *) str);
     xmlFree(str);
-    return(ret);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlCharPtrConstWrap(const xmlChar * str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlCharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString((char *) str);
+    return (ret);
 }
 
 PyObject *
-libxml_constcharPtrWrap(const char *str) {
+libxml_constcharPtrWrap(const char *str)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlcharPtrWrap: str = %s\n", str);
 #endif
     if (str == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
     /* TODO: look at deallocation */
     ret = PyString_FromString(str);
-    return(ret);
+    return (ret);
 }
 
 PyObject *
-libxml_constxmlCharPtrWrap(const xmlChar *str) {
+libxml_constxmlCharPtrWrap(const xmlChar * str)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlCharPtrWrap: str = %s\n", str);
 #endif
     if (str == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
     /* TODO: look at deallocation */
-    ret = PyString_FromString(str);
-    return(ret);
+    ret = PyString_FromString((char *) str);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlDocPtrWrap(xmlDocPtr doc) {
+libxml_xmlDocPtrWrap(xmlDocPtr doc)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlDocPtrWrap: doc = %p\n", doc);
 #endif
     if (doc == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
     /* TODO: look at deallocation */
-    ret = PyCObject_FromVoidPtrAndDesc((void *) doc, "xmlDocPtr", NULL);
-    return(ret);
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) doc, (char *) "xmlDocPtr",
+                                     NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlNodePtrWrap(xmlNodePtr node) {
+libxml_xmlNodePtrWrap(xmlNodePtr node)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlNodePtrWrap: node = %p\n", node);
 #endif
     if (node == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "xmlNodePtr",
+                                     NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlURIPtrWrap(xmlURIPtr uri)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlURIPtrWrap: uri = %p\n", uri);
+#endif
+    if (uri == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) node, "xmlNodePtr", NULL);
-    return(ret);
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) uri, (char *) "xmlURIPtr",
+                                     NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlNsPtrWrap(xmlNsPtr ns) {
+libxml_xmlNsPtrWrap(xmlNsPtr ns)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlNsPtrWrap: node = %p\n", ns);
 #endif
     if (ns == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) ns, "xmlNsPtr", NULL);
-    return(ret);
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) ns, (char *) "xmlNsPtr",
+                                     NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlAttrPtrWrap(xmlAttrPtr attr) {
+libxml_xmlAttrPtrWrap(xmlAttrPtr attr)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlAttrNodePtrWrap: attr = %p\n", attr);
 #endif
     if (attr == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) attr, "xmlAttrPtr", NULL);
-    return(ret);
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) attr, (char *) "xmlAttrPtr",
+                                     NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlAttributePtrWrap(xmlAttributePtr attr) {
+libxml_xmlAttributePtrWrap(xmlAttributePtr attr)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlAttributePtrWrap: attr = %p\n", attr);
 #endif
     if (attr == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) attr, "xmlAttributePtr", NULL);
-    return(ret);
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) attr,
+                                     (char *) "xmlAttributePtr", NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlElementPtrWrap(xmlElementPtr elem) {
+libxml_xmlElementPtrWrap(xmlElementPtr elem)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlElementNodePtrWrap: elem = %p\n", elem);
 #endif
     if (elem == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) elem, "xmlElementPtr", NULL);
-    return(ret);
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) elem,
+                                     (char *) "xmlElementPtr", NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt) {
+libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlXPathContextPtrWrap: ctxt = %p\n", ctxt);
 #endif
     if (ctxt == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+                                     (char *) "xmlXPathContextPtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlXPathParserContextPtrWrap: ctxt = %p\n", ctxt);
+#endif
+    if (ctxt == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt, "xmlXPathContextPtr",
-                                      NULL);
-    return(ret);
+    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+                                       (char *) "xmlXPathParserContextPtr",
+                                       NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt) {
+libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlParserCtxtPtrWrap: ctxt = %p\n", ctxt);
 #endif
     if (ctxt == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt, "xmlParserCtxtPtr",
-                                      NULL);
-    return(ret);
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+                                     (char *) "xmlParserCtxtPtr", NULL);
+    return (ret);
 }
 
 PyObject *
-libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj) {
+libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj)
+{
     PyObject *ret;
 
 #ifdef DEBUG
     printf("libxml_xmlXPathObjectPtrWrap: ctxt = %p\n", obj);
 #endif
     if (obj == NULL) {
-       Py_INCREF(Py_None);
-       return(Py_None);
+        Py_INCREF(Py_None);
+        return (Py_None);
     }
-    switch(obj->type) {
+    switch (obj->type) {
         case XPATH_XSLT_TREE:
-           /* TODO !!!! Allocation problems */
+            /* TODO !!!! Allocation problems */
         case XPATH_NODESET:
-           if ((obj->nodesetval == NULL) || (obj->nodesetval->nodeNr == 0))
-               ret = PyList_New(0);
-           else {
-               int i;
-               xmlNodePtr node;
-
-               ret = PyList_New(obj->nodesetval->nodeNr);
-               for (i = 0;i < obj->nodesetval->nodeNr;i++) {
-                   node = obj->nodesetval->nodeTab[i];
-                   /* TODO: try to cast directly to the proper node type */
-                   PyList_SetItem(ret, i, libxml_xmlNodePtrWrap(node));
-               }
-           }
-           break;
+            if ((obj->nodesetval == NULL)
+                || (obj->nodesetval->nodeNr == 0))
+                ret = PyList_New(0);
+            else {
+                int i;
+                xmlNodePtr node;
+
+                ret = PyList_New(obj->nodesetval->nodeNr);
+                for (i = 0; i < obj->nodesetval->nodeNr; i++) {
+                    node = obj->nodesetval->nodeTab[i];
+                    /* TODO: try to cast directly to the proper node type */
+                    PyList_SetItem(ret, i, libxml_xmlNodePtrWrap(node));
+                }
+            }
+            break;
         case XPATH_BOOLEAN:
-           ret = PyInt_FromLong((long) obj->boolval);
-           break;
+            ret = PyInt_FromLong((long) obj->boolval);
+            break;
         case XPATH_NUMBER:
-           ret = PyFloat_FromDouble(obj->floatval);
-           break;
+            ret = PyFloat_FromDouble(obj->floatval);
+            break;
         case XPATH_STRING:
-           ret = PyString_FromString(obj->stringval);
-           break;
+            ret = PyString_FromString((char *) obj->stringval);
+            break;
         case XPATH_POINT:
         case XPATH_RANGE:
         case XPATH_LOCATIONSET:
-       default:
-           printf("Unable to convert XPath object type %d\n", obj->type);
-           Py_INCREF(Py_None);
-           ret = Py_None;
+        default:
+            printf("Unable to convert XPath object type %d\n", obj->type);
+            Py_INCREF(Py_None);
+            ret = Py_None;
     }
     xmlXPathFreeObject(obj);
-    return(ret);
+    return (ret);
 }
 
 xmlXPathObjectPtr
-libxml_xmlXPathObjectPtrConvert(PyObject * obj) {
-    xmlXPathObjectPtr ret;
+libxml_xmlXPathObjectPtrConvert(PyObject * obj)
+{
+    xmlXPathObjectPtr ret = NULL;
 
 #ifdef DEBUG
     printf("libxml_xmlXPathObjectPtrConvert: obj = %p\n", obj);
 #endif
     if (obj == NULL) {
-       return(NULL);
+        return (NULL);
     }
-    if PyFloat_Check(obj) {
-       ret = xmlXPathNewFloat((double) PyFloat_AS_DOUBLE(obj));
-    } else if PyString_Check(obj) {
-       xmlChar *str;
-
-       str = xmlStrndup((const xmlChar *)PyString_AS_STRING(obj),
-                        PyString_GET_SIZE(obj));
-       ret = xmlXPathWrapString(str);
+    if PyFloat_Check
+        (obj) {
+        ret = xmlXPathNewFloat((double) PyFloat_AS_DOUBLE(obj));
+    } else if PyString_Check
+        (obj) {
+        xmlChar *str;
+
+        str = xmlStrndup((const xmlChar *) PyString_AS_STRING(obj),
+                         PyString_GET_SIZE(obj));
+        ret = xmlXPathWrapString(str);
+    } else if PyList_Check
+        (obj) {
+        int i;
+        PyObject *node;
+        xmlNodePtr cur;
+        xmlNodeSetPtr set;
+
+        set = xmlXPathNodeSetCreate(NULL);
+
+        for (i = 0; i < PyList_Size(obj); i++) {
+            node = PyList_GetItem(obj, i);
+            if ((node == NULL) || (node->ob_type == NULL))
+                continue;
+
+            cur = NULL;
+            if (PyCObject_Check(node)) {
+                printf("Got a CObject\n");
+                cur = PyxmlNode_Get(node);
+            } else if (PyInstance_Check(node)) {
+                PyInstanceObject *inst = (PyInstanceObject *) node;
+                PyObject *name = inst->in_class->cl_name;
+
+                if PyString_Check
+                    (name) {
+                    char *type = PyString_AS_STRING(name);
+                    PyObject *wrapper;
+
+                    if (!strcmp(type, "xmlNode")) {
+                        wrapper =
+                            PyObject_GetAttrString(node, (char *) "_o");
+                        if (wrapper != NULL) {
+                            cur = PyxmlNode_Get(wrapper);
+                        }
+                    }
+                    }
+            } else {
+                printf("Unknown object in Python return list\n");
+            }
+            if (cur != NULL) {
+                xmlXPathNodeSetAdd(set, cur);
+            }
+        }
+        ret = xmlXPathWrapNodeSet(set);
     } else {
-       printf("Unable to convert Python Object to XPath");
+        printf("Unable to convert Python Object to XPath");
     }
     Py_DECREF(obj);
-    return(ret);
+    return (ret);
 }
 
+PyObject *
+libxml_xmlCatalogPtrWrap(xmlCatalogPtr catal)
+{
+    PyObject *ret;
 
+#ifdef DEBUG
+    printf("libxml_xmlNodePtrWrap: catal = %p\n", catal);
+#endif
+    if (catal == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) catal,
+                                     (char *) "xmlCatalogPtr", NULL);
+    return (ret);
+}