fixed a disable output escaping bug for HTML output introduced in 1.0.20
authorDaniel Veillard <veillard@src.gnome.org>
Wed, 25 Sep 2002 09:20:37 +0000 (09:20 +0000)
committerDaniel Veillard <veillard@src.gnome.org>
Wed, 25 Sep 2002 09:20:37 +0000 (09:20 +0000)
* libxslt/transform.c: fixed a disable output escaping bug for
  HTML output introduced in 1.0.20 and raised by Mario Weilguni
* tests/docs/Makefile.am tests/docs/bug-91.xml
  tests/general/Makefile.am tests/general/bug-91.*: added the
  example in the regression tests for this case
Daniel

ChangeLog
doc/libxslt-decl.txt
doc/libxslt-refs.xml
libxslt/transform.c
tests/docs/Makefile.am
tests/docs/bug-91.xml [new file with mode: 0644]
tests/general/Makefile.am
tests/general/bug-91.out [new file with mode: 0644]
tests/general/bug-91.xsl [new file with mode: 0644]

index a1a780a..86e9977 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,14 @@
+Wed Sep 25 11:16:06 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+       * libxslt/transform.c: fixed a disable output escaping bug for
+         HTML output introduced in 1.0.20 and raised by Mario Weilguni
+       * tests/docs/Makefile.am tests/docs/bug-91.xml
+         tests/general/Makefile.am tests/general/bug-91.*: added the
+         example in the regression tests for this case
+
 Tue Sep 24 20:33:08 MDT 2002 John Fleck <jfleck@inkstain.net>
 
-       * doc/xlst.html
-       changing link on ftp.gnome.org
+       * doc/xlst.html: changing link on ftp.gnome.org
 
 Mon Sep 23 10:14:38 CEST 2002 Daniel Veillard <daniel@veillard.com>
 
index f7893c9..3534d1b 100644 (file)
@@ -876,6 +876,218 @@ void *ctxt,const xmlChar *name,const xmlChar *ns_uri
 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)))
+</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>xsltSaveResultToString</NAME>
+<RETURNS>int  </RETURNS>
+xmlChar **doc_txt_ptr,int * doc_txt_len,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.20"
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_VERSION</NAME>
+#define LIBXSLT_VERSION 10020
+</MACRO>
+<MACRO>
+<NAME>LIBXSLT_VERSION_STRING</NAME>
+#define LIBXSLT_VERSION_STRING "10020"
+</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>
+<MACRO>
 <NAME>XSLT_MAX_SORT</NAME>
 #define XSLT_MAX_SORT 5
 </MACRO>
@@ -1402,215 +1614,3 @@ 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>xsltSaveResultToString</NAME>
-<RETURNS>int  </RETURNS>
-xmlChar **doc_txt_ptr,int * doc_txt_len,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.20"
-</MACRO>
-<MACRO>
-<NAME>LIBXSLT_VERSION</NAME>
-#define LIBXSLT_VERSION 10020
-</MACRO>
-<MACRO>
-<NAME>LIBXSLT_VERSION_STRING</NAME>
-#define LIBXSLT_VERSION_STRING "10020"
-</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 500cc23..1870f52 100644 (file)
       <ref name='xsltFormatNumberConversion'/>
     </type>
     <type name='xmlChar **'>
-      <ref name='xsltFormatNumberConversion'/>
       <ref name='xsltGetQNameURI'/>
       <ref name='xsltSaveResultToString'/>
+      <ref name='xsltFormatNumberConversion'/>
     </type>
     <type name='xmlDocPtr'>
       <ref name='xsltNewDocument'/>
       <ref name='xsltProfileStylesheet'/>
       <ref name='xsltRunStylesheet'/>
       <ref name='xsltRunStylesheetUser'/>
-      <ref name='xsltParseStylesheetProcess'/>
-      <ref name='xsltParseStylesheetDoc'/>
-      <ref name='xsltLoadStylesheetPI'/>
       <ref name='xsltSaveResultTo'/>
       <ref name='xsltSaveResultToFilename'/>
       <ref name='xsltSaveResultToFile'/>
       <ref name='xsltSaveResultToFd'/>
       <ref name='xsltSaveResultToString'/>
+      <ref name='xsltParseStylesheetProcess'/>
+      <ref name='xsltParseStylesheetDoc'/>
+      <ref name='xsltLoadStylesheetPI'/>
     </type>
     <type name='xmlGenericErrorFunc'>
       <ref name='xsltSetGenericErrorFunc'/>
       <ref name='xsltParseStylesheetVariable'/>
       <ref name='xsltParseStylesheetParam'/>
       <ref name='xsltParseStylesheetCallerParam'/>
-      <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='xsltHandleDebuggerCallback'/>
       <ref name='xsltAddCallCallback'/>
       <ref name='xslAddCall'/>
+      <ref name='xsltTransformFunction'/>
+      <ref name='xsltTransformFunction'/>
+      <ref name='xsltParseStylesheetOutput'/>
+      <ref name='xsltNumberFormat'/>
+      <ref name='xsltParseTemplateContent'/>
     </type>
     <type name='xmlNodePtr *'>
       <ref name='xsltDoSortFunction'/>
       <ref name='xsltRunStylesheetUser'/>
       <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'/>
       <ref name='xsltSaveResultToString'/>
+      <ref name='xsltFreeStylesheet'/>
+      <ref name='xsltDecimalFormatGetByName'/>
+      <ref name='xsltParseStylesheetProcess'/>
+      <ref name='xsltParseStylesheetOutput'/>
+      <ref name='xsltParseTemplateContent'/>
+      <ref name='xsltAllocateExtra'/>
     </type>
     <type name='xsltTemplatePtr'>
       <ref name='xsltAddTemplate'/>
       <ref name='xsltAddStackElemList'/>
       <ref name='xsltFreeGlobalVariables'/>
       <ref name='xsltVariableLookup'/>
-      <ref name='xsltTransformFunction'/>
-      <ref name='xsltNumberFormat'/>
-      <ref name='xsltAllocateExtraCtxt'/>
       <ref name='xsltPrintErrorContext'/>
       <ref name='xsltMessage'/>
       <ref name='xsltDoSortFunction'/>
       <ref name='xsltSaveProfiling'/>
       <ref name='xsltHandleDebuggerCallback'/>
+      <ref name='xsltTransformFunction'/>
+      <ref name='xsltNumberFormat'/>
+      <ref name='xsltAllocateExtraCtxt'/>
     </type>
     <type name='xsltTransformFunction'>
       <ref name='xsltNewElemPreComp'/>
index b550ee0..82bbde4 100644 (file)
@@ -377,7 +377,7 @@ xsltCopyTextString(xsltTransformContextPtr ctxt, xmlNodePtr target,
        }
        copy = xmlNewCDataBlock(ctxt->output, string,
                                xmlStrlen(string));
-    } else if ((noescape) && (ctxt->type == XSLT_OUTPUT_XML)) {
+    } else if (noescape) {
        if ((target != NULL) && (target->last != NULL) &&
            (target->last->type == XML_TEXT_NODE) &&
            (target->last->name == xmlStringTextNoenc)) {
index 232aaaf..aa5e38b 100644 (file)
@@ -90,6 +90,7 @@ EXTRA_DIST =  \
        bug-88.xml \
        bug-89.xml \
        bug-90.xml \
+       bug-91.xml \
        character.xml \
        array.xml \
        items.xml
diff --git a/tests/docs/bug-91.xml b/tests/docs/bug-91.xml
new file mode 100644 (file)
index 0000000..64a348a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<beitrag>
+  &lt;b&gt;This is HTML&lt;/b&gt;
+</beitrag>
index 1701b22..55063af 100644 (file)
@@ -93,6 +93,7 @@ EXTRA_DIST = \
     bug-88.out bug-88.xsl \
     bug-89.out bug-89.xsl \
     bug-90.out bug-90.xsl \
+    bug-91.out bug-91.xsl \
     character.out character.xsl \
     character2.out character2.xsl \
     itemschoose.out itemschoose.xsl \
diff --git a/tests/general/bug-91.out b/tests/general/bug-91.out
new file mode 100644 (file)
index 0000000..a2e5243
--- /dev/null
@@ -0,0 +1,3 @@
+
+  <b>This is HTML</b>
+
diff --git a/tests/general/bug-91.xsl b/tests/general/bug-91.xsl
new file mode 100644 (file)
index 0000000..7fc5fff
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="html" indent="yes" encoding="iso-8859-1"/>
+<xsl:template match="/*">
+<xsl:value-of select="text()" disable-output-escaping="yes"/>
+</xsl:template>
+</xsl:stylesheet>