[libxslt] xsltproc should return an error code if xinclude fails



commit e669a8c7cefec93ee1bfaf59721aadc42e226d6e
Author: Malcolm Purvis <malcolm purvis id au>
Date:   Thu Aug 16 17:08:31 2012 +0800

    xsltproc should return an error code if xinclude fails
    
    When running xsltproc with the --xinclude option and if the included file
    contains parse errors, then xsltproc exits with a success return code (0)
    rather than an error code.  This is despite the fact that parser error
    messages are printed out.
    * xsltproc/xsltproc.c: check xinclude processing function return code,
      fail with error 6 if it went wrong.

 xsltproc/xsltproc.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/xsltproc/xsltproc.c b/xsltproc/xsltproc.c
index 8244ef3..42d6b9a 100644
--- a/xsltproc/xsltproc.c
+++ b/xsltproc/xsltproc.c
@@ -359,16 +359,23 @@ xsltProcess(xmlDocPtr doc, xsltStylesheetPtr cur, const char *filename) {
 
 #ifdef LIBXML_XINCLUDE_ENABLED
     if (xinclude) {
+        int ret;
+
 	if (timing)
 	    startTimer();
 #if LIBXML_VERSION >= 20603
-	xmlXIncludeProcessFlags(doc, XSLT_PARSE_OPTIONS);
+	ret = xmlXIncludeProcessFlags(doc, XSLT_PARSE_OPTIONS);
 #else
-	xmlXIncludeProcess(doc);
+	ret = xmlXIncludeProcess(doc);
 #endif
 	if (timing) {
 	    endTimer("XInclude processing %s", filename);
 	}
+
+        if (ret < 0) {
+	    errorno = 6;
+            return;
+        }
     }
 #endif
     if (timing)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]