Applied Mark Vakoc patch to show registered extensions in xsltproc rebuilt
authorDaniel Veillard <veillard@src.gnome.org>
Thu, 16 May 2002 17:33:29 +0000 (17:33 +0000)
committerDaniel Veillard <veillard@src.gnome.org>
Thu, 16 May 2002 17:33:29 +0000 (17:33 +0000)
* libxslt/extensions.[ch]  xsltproc/xsltproc.c win32/libxslt.def.src:
  Applied Mark Vakoc patch to show registered extensions in xsltproc
* doc/*: rebuilt the API, docs and website
* python/libxsltclass.txt: this added an entry point
Daniel

19 files changed:
ChangeLog
doc/APIchunk0.html
doc/APIchunk1.html
doc/APIchunk2.html
doc/APIchunk3.html
doc/APIchunk4.html
doc/APIchunk5.html
doc/APIchunk6.html
doc/APIfiles.html
doc/APIfunctions.html
doc/libxslt-api.xml
doc/libxslt-decl.txt
doc/libxslt-refs.xml
doc/xsltproc.xml
libxslt/extensions.c
libxslt/extensions.h
python/libxsltclass.txt
win32/libxslt.def.src
xsltproc/xsltproc.c

index 62b740f..32102e7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu May 16 19:31:35 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+       * libxslt/extensions.[ch]  xsltproc/xsltproc.c win32/libxslt.def.src:
+         Applied Mark Vakoc patch to show registered extensions in xsltproc
+       * doc/*: rebuilt the API, docs and website
+       * python/libxsltclass.txt: this added an entry point
+
 Wed May 15 00:20:10 CEST 2002 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
 
        * libxslt/xslt.c: xsl:include crash fix
index 1364816..7a78eb2 100644 (file)
@@ -499,6 +499,8 @@ A:link, A:visited, A:active { text-decoration: underline }
 <dt>Returns</dt>
 <dd>
 <a href="html/libxslt-imports.html#XSLTNEEDELEMSPACEHANDLING">xsltNeedElemSpaceHandling</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETIMPORT">xsltParseStylesheetImport</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETINCLUDE">xsltParseStylesheetInclude</a>
 <a href="html/libxslt-extensions.html#XSLTXPATHGETTRANSFORMCONTEXT">xsltXPathGetTransformContext</a>
 </dd>
 </dl>
index ea12f19..61cbb0c 100644 (file)
@@ -292,6 +292,10 @@ A:link, A:visited, A:active { text-decoration: underline }
 <dd>
 <a href="html/libxslt-xsltutils.html#XSLTGETQNAMEURI">xsltGetQNameURI</a>
 </dd>
+<dt>amiss</dt>
+<dd>
+<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
+</dd>
 <dt>analyzes</dt>
 <dd>
 <a href="html/libxslt-xsltutils.html#XSLTGETQNAMEURI">xsltGetQNameURI</a>
index c9cc426..dad4835 100644 (file)
@@ -546,6 +546,11 @@ A:link, A:visited, A:active { text-decoration: underline }
 <a href="html/libxslt-transform.html#XSLTREGISTERALLELEMENT">xsltRegisterAllElement</a>
 <a href="html/libxslt-xsltinternals.html#XSLTTRANSFORMFUNCTION">xsltTransformFunction</a>
 </dd>
+<dt>else</dt>
+<dd>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETIMPORT">xsltParseStylesheetImport</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETINCLUDE">xsltParseStylesheetInclude</a>
+</dd>
 <dt>emitted</dt>
 <dd>
 <a href="html/libxslt-xsltutils.html#XSLTSETGENERICDEBUGFUNC">xsltSetGenericDebugFunc</a>
@@ -575,6 +580,7 @@ A:link, A:visited, A:active { text-decoration: underline }
 <dt>everything</dt>
 <dd>
 <a href="html/libxslt-imports.html#XSLTFINDELEMSPACEHANDLING">xsltFindElemSpaceHandling</a>
+<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
 </dd>
 <dt>example</dt>
 <dd>
index f485c4a..ea5694d 100644 (file)
@@ -96,6 +96,8 @@ A:link, A:visited, A:active { text-decoration: underline }
 <a href="html/libxslt-keys.html#XSLTADDKEY">xsltAddKey</a>
 <a href="html/libxslt-variables.html#XSLTADDSTACKELEMLIST">xsltAddStackElemList</a>
 <a href="html/libxslt-pattern.html#XSLTCOMPILEPATTERN">xsltCompilePattern</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETIMPORT">xsltParseStylesheetImport</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETINCLUDE">xsltParseStylesheetInclude</a>
 <a href="html/libxslt-extensions.html#XSLTREGISTEREXTELEMENT">xsltRegisterExtElement</a>
 <a href="html/libxslt-extensions.html#XSLTREGISTEREXTFUNCTION">xsltRegisterExtFunction</a>
 <a href="html/libxslt-extensions.html#XSLTREGISTEREXTPREFIX">xsltRegisterExtPrefix</a>
index f9057ff..d84bba2 100644 (file)
@@ -393,7 +393,6 @@ A:link, A:visited, A:active { text-decoration: underline }
 <a href="html/libxslt-transform.html#XSLTNEWTRANSFORMCONTEXT">xsltNewTransformContext</a>
 <a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETDOC">xsltParseStylesheetDoc</a>
 <a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETFILE">xsltParseStylesheetFile</a>
-<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
 <a href="html/libxslt-xsltutils.html#XSLTSETGENERICDEBUGFUNC">xsltSetGenericDebugFunc</a>
 <a href="html/libxslt-xsltutils.html#XSLTSETGENERICERRORFUNC">xsltSetGenericErrorFunc</a>
 <a href="html/libxslt-templates.html#XSLTTEMPLATEPROCESS">xsltTemplateProcess</a>
index fbca2bd..c4fdf56 100644 (file)
@@ -201,6 +201,7 @@ A:link, A:visited, A:active { text-decoration: underline }
 <dt>parameter</dt>
 <dd>
 <a href="html/libxslt-variables.html#XSLTEVALONEUSERPARAM">xsltEvalOneUserParam</a>
+<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
 <a href="html/libxslt-variables.html#XSLTQUOTEONEUSERPARAM">xsltQuoteOneUserParam</a>
 </dd>
 <dt>parameters</dt>
index 54e669a..2fdc639 100644 (file)
@@ -219,6 +219,10 @@ A:link, A:visited, A:active { text-decoration: underline }
 <dd>
 <a href="html/libxslt-xsltinternals.html#XSLTPARSETEMPLATECONTENT">xsltParseTemplateContent</a>
 </dd>
+<dt>ret</dt>
+<dd>
+<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
+</dd>
 <dt>retrieve</dt>
 <dd>
 <a href="html/libxslt-extensions.html#XSLTXPATHGETTRANSFORMCONTEXT">xsltXPathGetTransformContext</a>
@@ -246,6 +250,7 @@ A:link, A:visited, A:active { text-decoration: underline }
 <dd>
 <a href="html/libxslt-namespaces.html#XSLTGETNAMESPACE">xsltGetNamespace</a>
 <a href="html/libxslt-namespaces.html#XSLTGETSPECIALNAMESPACE">xsltGetSpecialNamespace</a>
+<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
 </dd>
 <dt>rule</dt>
 <dd>
@@ -367,6 +372,12 @@ A:link, A:visited, A:active { text-decoration: underline }
 <a href="html/libxslt-xsltinternals.html#XSLTALLOCATEEXTRA">xsltAllocateExtra</a>
 <a href="html/libxslt-xsltinternals.html#XSLTALLOCATEEXTRACTXT">xsltAllocateExtraCtxt</a>
 </dd>
+<dt>something</dt>
+<dd>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETIMPORT">xsltParseStylesheetImport</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETINCLUDE">xsltParseStylesheetInclude</a>
+<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
+</dd>
 <dt>sort</dt>
 <dd>
 <a href="html/libxslt-xsltutils.html#XSLTDOSORTFUNCTION">xsltDoSortFunction</a>
@@ -485,7 +496,6 @@ A:link, A:visited, A:active { text-decoration: underline }
 <a href="html/libxslt-xsltinternals.html#XSLTLOADSTYLESHEETPI">xsltLoadStylesheetPI</a>
 <a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETDOC">xsltParseStylesheetDoc</a>
 <a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETFILE">xsltParseStylesheetFile</a>
-<a href="html/libxslt-xsltinternals.html#XSLTPARSESTYLESHEETPROCESS">xsltParseStylesheetProcess</a>
 <a href="html/libxslt-xsltinternals.html#XSLTSTYLEPRECOMP">xsltStylePreComp</a>
 <a href="html/libxslt-xsltinternals.html#XSLTTEMPLATE">xsltTemplate</a>
 </dd>
@@ -533,6 +543,8 @@ A:link, A:visited, A:active { text-decoration: underline }
 <a href="html/libxslt-variables.html#XSLTEVALGLOBALVARIABLES">xsltEvalGlobalVariables</a>
 <a href="html/libxslt-variables.html#XSLTEVALONEUSERPARAM">xsltEvalOneUserParam</a>
 <a href="html/libxslt-variables.html#XSLTEVALUSERPARAMS">xsltEvalUserParams</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETIMPORT">xsltParseStylesheetImport</a>
+<a href="html/libxslt-imports.html#XSLTPARSESTYLESHEETINCLUDE">xsltParseStylesheetInclude</a>
 <a href="html/libxslt-variables.html#XSLTQUOTEONEUSERPARAM">xsltQuoteOneUserParam</a>
 <a href="html/libxslt-variables.html#XSLTQUOTEUSERPARAMS">xsltQuoteUserParams</a>
 <a href="html/libxslt-extensions.html#XSLTREGISTEREXTELEMENT">xsltRegisterExtElement</a>
index 65dd02a..8cfdd03 100644 (file)
@@ -130,6 +130,7 @@ A:link, A:visited, A:active { text-decoration: underline }
 <a href="html/libxslt-extensions.html#XSLTFREEEXTS">xsltFreeExts</a>
 <a href="html/libxslt-extensions.html#XSLTPRECOMPUTEEXTMODULEELEMENT">xsltPreComputeExtModuleElement</a>
 <a href="html/libxslt-extensions.html#XSLTREGISTERTESTMODULE">xsltRegisterTestModule</a>
+<a href="">xsltDebugDumpExtensions</a>
 </p>
 <h2>Module extra:</h2>
 <p>
index 6782cf4..10bb252 100644 (file)
@@ -77,6 +77,7 @@ A:link, A:visited, A:active { text-decoration: underline }
 <td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd">
 <h2>Type FILE *:</h2>
 <p>
+<a href="">xsltDebugDumpExtensions</a>
 <a href="html/libxslt-transform.html#XSLTAPPLYSTYLESHEETUSER">xsltApplyStylesheetUser</a>
 <a href="html/libxslt-transform.html#XSLTPROFILESTYLESHEET">xsltProfileStylesheet</a>
 <a href="html/libxslt-transform.html#XSLTRUNSTYLESHEETUSER">xsltRunStylesheetUser</a>
index fa25933..fbdabe3 100644 (file)
@@ -91,6 +91,7 @@
      <exports symbol='xsltFreeExts'/>
      <exports symbol='xsltPreComputeExtModuleElement'/>
      <exports symbol='xsltRegisterTestModule'/>
+     <exports symbol='xsltDebugDumpExtensions'/>
     </file>
     <file name='attributes'>
      <exports symbol='xsltParseStylesheetAttributeSet'/>
       <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet '/>
       <arg name='comp' type='xsltStylePreCompPtr' info='precomputed informations '/>
     </function>
+    <function name='xsltDebugDumpExtensions' file='extensions'>
+      <return type='void'/>
+      <arg name='output' type='FILE *'/>
+    </function>
     <enum name='xsltDebugStatusCodes' file='xsltutils'/>
     <struct name='xsltDecimalFormat' file='xsltInternals' info='Data structure of decimal-format.'/>
     <function name='xsltDecimalFormatGetByName' file='xsltInternals'>
       <arg name='filename' type='const xmlChar*' info='the filename/URL to the stylesheet '/>
     </function>
     <function name='xsltParseStylesheetImport' file='imports'>
-      <info>parse an XSLT stylesheet strip-space element and record elements needing stripping</info>
-      <return type='void'/>
+      <info>parse an XSLT stylesheet strip-space element and record elements needing stripping. Returns zero on success and something else on failure.</info>
+      <return type='int'/>
       <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet '/>
       <arg name='cur' type='xmlNodePtr'/>
     </function>
     <function name='xsltParseStylesheetInclude' file='imports'>
-      <info>parse an XSLT stylesheet strip-space element and record elements needing stripping</info>
-      <return type='void'/>
+      <info>parse an XSLT stylesheet strip-space element and record elements needing stripping. Returns zero on success, something else on failure.</info>
+      <return type='int'/>
       <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet '/>
       <arg name='cur' type='xmlNodePtr'/>
     </function>
     </function>
     <function name='xsltParseStylesheetProcess' file='xsltInternals'>
       <info>parse an XSLT stylesheet adding the associated structures</info>
-      <return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure. '/>
+      <return type='xsltStylesheetPtr' info='the value of the &apos;ret&apos; parameter if everything went right, NULL if something went amiss. '/>
       <arg name='ret' type='xsltStylesheetPtr' info='the XSLT stylesheet '/>
       <arg name='doc' type='xmlDocPtr' info='and xmlDoc parsed XML '/>
     </function>
index 2650259..3375b91 100644 (file)
@@ -326,6 +326,11 @@ xsltStylesheetPtr style,xmlNodePtr inst
 <RETURNS>void  </RETURNS>
 void
 </FUNCTION>
+<FUNCTION>
+<NAME>xsltDebugDumpExtensions</NAME>
+<RETURNS>void  </RETURNS>
+FILE * output
+</FUNCTION>
 <MACRO>
 <NAME>XSLT_REGISTER_FUNCTION_LOOKUP</NAME>
 #define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt)                    \
@@ -405,12 +410,12 @@ xmlXPathContextPtr ctxt
 </MACRO>
 <FUNCTION>
 <NAME>xsltParseStylesheetImport</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>int   </RETURNS>
 xsltStylesheetPtr style,xmlNodePtr cur
 </FUNCTION>
 <FUNCTION>
 <NAME>xsltParseStylesheetInclude</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>int   </RETURNS>
 xsltStylesheetPtr style,xmlNodePtr cur
 </FUNCTION>
 <FUNCTION>
index b563630..2448e00 100644 (file)
   </constructors>
   <functions>
     <type name='FILE *'>
+      <ref name='xsltDebugDumpExtensions'/>
       <ref name='xsltApplyStylesheetUser'/>
       <ref name='xsltProfileStylesheet'/>
       <ref name='xsltRunStylesheetUser'/>
       <ref name='xsltFreeExts'/>
       <ref name='xsltPreComputeExtModuleElement'/>
       <ref name='xsltRegisterTestModule'/>
+      <ref name='xsltDebugDumpExtensions'/>
     </file>
     <file name='extra'>
       <ref name='XSLT_LIBXSLT_NAMESPACE'/>
         </word>
         <word name='Returns'>
           <ref name='xsltNeedElemSpaceHandling'/>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
           <ref name='xsltXPathGetTransformContext'/>
         </word>
       </letter>
         <word name='also'>
           <ref name='xsltGetQNameURI'/>
         </word>
+        <word name='amiss'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
         <word name='analyzes'>
           <ref name='xsltGetQNameURI'/>
         </word>
           <ref name='xsltRegisterAllElement'/>
           <ref name='xsltTransformFunction'/>
         </word>
+        <word name='else'>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
+        </word>
         <word name='emitted'>
           <ref name='xsltSetGenericDebugFunc'/>
           <ref name='xsltSetGenericErrorFunc'/>
         </word>
         <word name='everything'>
           <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltParseStylesheetProcess'/>
         </word>
         <word name='example'>
           <ref name='xsltEvalTemplateString'/>
           <ref name='xsltAddKey'/>
           <ref name='xsltAddStackElemList'/>
           <ref name='xsltCompilePattern'/>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
           <ref name='xsltRegisterExtElement'/>
           <ref name='xsltRegisterExtFunction'/>
           <ref name='xsltRegisterExtPrefix'/>
           <ref name='xsltNewTransformContext'/>
           <ref name='xsltParseStylesheetDoc'/>
           <ref name='xsltParseStylesheetFile'/>
-          <ref name='xsltParseStylesheetProcess'/>
           <ref name='xsltSetGenericDebugFunc'/>
           <ref name='xsltSetGenericErrorFunc'/>
           <ref name='xsltTemplateProcess'/>
         </word>
         <word name='parameter'>
           <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltParseStylesheetProcess'/>
           <ref name='xsltQuoteOneUserParam'/>
         </word>
         <word name='parameters'>
         <word name='results'>
           <ref name='xsltParseTemplateContent'/>
         </word>
+        <word name='ret'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
         <word name='retrieve'>
           <ref name='xsltXPathGetTransformContext'/>
         </word>
         <word name='right'>
           <ref name='xsltGetNamespace'/>
           <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltParseStylesheetProcess'/>
         </word>
         <word name='rule'>
           <ref name='xsltFindTemplate'/>
           <ref name='xsltAllocateExtra'/>
           <ref name='xsltAllocateExtraCtxt'/>
         </word>
+        <word name='something'>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
         <word name='sort'>
           <ref name='xsltDoSortFunction'/>
           <ref name='xsltSort'/>
           <ref name='xsltLoadStylesheetPI'/>
           <ref name='xsltParseStylesheetDoc'/>
           <ref name='xsltParseStylesheetFile'/>
-          <ref name='xsltParseStylesheetProcess'/>
           <ref name='xsltStylePreComp'/>
           <ref name='xsltTemplate'/>
         </word>
           <ref name='xsltEvalGlobalVariables'/>
           <ref name='xsltEvalOneUserParam'/>
           <ref name='xsltEvalUserParams'/>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
           <ref name='xsltQuoteOneUserParam'/>
           <ref name='xsltQuoteUserParams'/>
           <ref name='xsltRegisterExtElement'/>
         <word name='well'>
           <ref name='xsltNamespaceAlias'/>
         </word>
+        <word name='went'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
         <word name='wether'>
           <ref name='xsltTestCompMatchList'/>
         </word>
           <ref name='xsltRunStylesheetUser'/>
         </word>
       </letter>
+      <letter name='z'>
+        <word name='zero'>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
+        </word>
+      </letter>
     </chunk>
     <chunks>
       <chunk name='chunk0' start='A' end='T'/>
index 04a6a0f..6807aa6 100644 (file)
@@ -50,6 +50,7 @@
        <arg>--catalogs</arg>
        <arg>--xinclude</arg>
        <arg>--profile</arg>
+       <arg>--dumpextensions</arg>
       </group>
       <arg><option><replaceable>stylesheet</replaceable></option></arg>
       <arg><replaceable>file1</replaceable></arg>
     </simpara>
        </listitem>
       </varlistentry>
+
+      <varlistentry>
+       <term>
+      <option>--dumpextensions</option></term>
+       <listitem>
+         <simpara>Dumps the list of all registered extensions on stdout.
+    </simpara>
+       </listitem>
+      </varlistentry>
+
+    
     </variablelist>
   </refsect1>
 
index cfd9d76..befd8af 100644 (file)
@@ -1587,3 +1587,37 @@ xsltCleanupGlobals(void)
     xsltUnregisterAllExtModuleTopLevel();
 }
 
+static void
+xsltDebugDumpExtensionsCallback(void* function, FILE *output, const xmlChar* name, const xmlChar* URI, const xmlChar* not_used) {
+       if (!name||!URI)
+               return;
+       fprintf(output,"{%s}%s\n",URI,name);
+}
+
+/**
+ * xsltDebugDumpExtensions:
+ * @output:  the FILE * for the output, if NULL stdout is used
+ *
+ * Dumps a list of the registered XSLT extension functions and elements
+ */
+void
+xsltDebugDumpExtensions(FILE * output)
+{
+       if (output == NULL)
+               output = stdout;
+    fprintf(output,"Registered XSLT Extensions\n--------------------------\n");
+       if (!xsltFunctionsHash)
+               fprintf(output,"No registered extension functions\n");
+       else {
+               fprintf(output,"Registered Extension Functions:\n");
+               xmlHashScanFull(xsltFunctionsHash,(xmlHashScannerFull)xsltDebugDumpExtensionsCallback,output);
+       }
+       if (!xsltElementsHash)
+               fprintf(output,"\nNo registered extension elements\n");
+       else {
+               fprintf(output,"\nRegistered Extension Elements:\n");
+               xmlHashScanFull(xsltElementsHash,(xmlHashScannerFull)xsltDebugDumpExtensionsCallback,output);
+       }
+
+}
+
index bad3bff..01f0473 100644 (file)
@@ -186,6 +186,8 @@ xsltElemPreCompPtr xsltPreComputeExtModuleElement(xsltStylesheetPtr style,
  * Test module http://xmlsoft.org/XSLT/
  */
 void   xsltRegisterTestModule          (void);
+void   xsltDebugDumpExtensions(FILE * output);
+
 
 #ifdef __cplusplus
 }
index fb32016..ec10e7f 100644 (file)
@@ -6,6 +6,7 @@
 
 
 # functions from module extensions
+debugDumpExtensions()
 registerTestModule()
 unregisterExtModule()
 unregisterExtModuleElement()
index 5687cc5..42298b5 100644 (file)
@@ -83,6 +83,7 @@ EXPORTS
 
        /* Test module http://xmlsoft.org/XSLT/ */
        xsltRegisterTestModule
+       xsltDebugDumpExtensions
 
 
 /* extra.h
index 69a6702..3fff5a8 100644 (file)
@@ -88,6 +88,7 @@ xmlParserInputPtr xmlNoNetExternalEntityLoader(const char *URL,
 static int debug = 0;
 static int repeat = 0;
 static int timing = 0;
+static int dumpextensions = 0;
 static int novalid = 0;
 static int noout = 0;
 #ifdef LIBXML_DOCB_ENABLED
@@ -236,6 +237,7 @@ static void
 xsltProcess(xmlDocPtr doc, xsltStylesheetPtr cur, const char *filename) {
     xmlDocPtr res;
     xsltTransformContextPtr ctxt;
+   
 
 #ifdef LIBXML_XINCLUDE_ENABLED
     if (xinclude) {
@@ -363,6 +365,7 @@ static void usage(const char *name) {
     printf("\t--timing: display the time used\n");
     printf("\t--repeat: run the transformation 20 times\n");
     printf("\t--debug: dump the tree of the result instead\n");
+    printf("\t--dumpextensions: dump the registered extension elements and functions to stdout\n");
     printf("\t--novalid skip the Dtd loading phase\n");
     printf("\t--noout: do not dump the result\n");
     printf("\t--maxdepth val : increase the maximum depth\n");
@@ -542,7 +545,11 @@ main(int argc, char **argv)
                 if (value > 0)
                     xsltMaxDepth = value;
             }
-        } else {
+        } else if ((!strcmp(argv[i],"-dumpextensions"))||
+                       (!strcmp(argv[i],"--dumpextensions"))) {
+               dumpextensions++;
+               
+       } else {
             fprintf(stderr, "Unknown option %s\n", argv[i]);
             usage(argv[0]);
             return (3);
@@ -587,6 +594,9 @@ main(int argc, char **argv)
             i += 2;
             continue;
         }
+    if (dumpextensions) 
+       xsltDebugDumpExtensions(NULL);
+
         if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
             if (timing)
                 startTimer();