tried to fix 105387 and all similar cases in the library sources. Daniel
authorDaniel Veillard <veillard@src.gnome.org>
Fri, 7 Feb 2003 13:20:49 +0000 (13:20 +0000)
committerDaniel Veillard <veillard@src.gnome.org>
Fri, 7 Feb 2003 13:20:49 +0000 (13:20 +0000)
* libxslt/extensions.c libxslt/keys.c libxslt/pattern.c
  libxslt/preproc.c libxslt/transform.c libxslt/variables.c
  libxslt/xslt.c: tried to fix 105387 and all similar cases
  in the library sources.
Daniel

ChangeLog
libxslt/extensions.c
libxslt/keys.c
libxslt/pattern.c
libxslt/preproc.c
libxslt/transform.c
libxslt/variables.c
libxslt/xslt.c

index 6a7fff3..b4c8e1f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri Feb  7 14:18:40 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+       * libxslt/extensions.c libxslt/keys.c libxslt/pattern.c
+         libxslt/preproc.c libxslt/transform.c libxslt/variables.c
+         libxslt/xslt.c: tried to fix 105387 and all similar cases
+         in the library sources.
+
 Wed Feb  5 16:04:10 CET 2003 Daniel Veillard <daniel@veillard.com>
 
        * doc/* configure.in: preparing for release of 1.0.25
index 11b27d2..48f4ed5 100644 (file)
@@ -1377,14 +1377,14 @@ xsltExtElementPreCompTest(xsltStylesheetPtr style, xmlNodePtr inst,
        if (testStyleData == NULL) {
            xsltTransformError(NULL, style, inst,
                 "xsltExtElementPreCompTest: not initialized\n");
-           style->errors++;
+           if (style != NULL) style->errors++;
            return (NULL);
        }
     }
     if (inst == NULL) {
        xsltTransformError(NULL, style, inst,
                 "xsltExtElementPreCompTest: no instruction\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
         return (NULL);
     }
     ret = xsltNewElemPreComp (style, inst, function);
index d4f7a57..e10ea13 100644 (file)
@@ -265,19 +265,19 @@ xsltAddKey(xsltStylesheetPtr style, const xmlChar *name,
        if (current == end) {
            xsltTransformError(NULL, style, inst,
                             "key pattern is empty\n");
-           style->errors++;
+           if (style != NULL) style->errors++;
            goto error;
        }
        if (match[start] != '/') {
            pattern = xmlStrcat(pattern, (xmlChar *)"//");
            if (pattern == NULL) {
-               style->errors++;
+               if (style != NULL) style->errors++;
                goto error;
            }
        }
        pattern = xmlStrncat(pattern, &match[start], end - start);
        if (pattern == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
            goto error;
        }
 
@@ -296,14 +296,14 @@ xsltAddKey(xsltStylesheetPtr style, const xmlChar *name,
        xsltTransformError(NULL, style, inst,
                "xsl:key : XPath pattern compilation failed '%s'\n",
                         pattern);
-       style->errors++;
+       if (style != NULL) style->errors++;
     }
     key->usecomp = xmlXPathCompile(use);
     if (key->usecomp == NULL) {
        xsltTransformError(NULL, style, inst,
                "xsl:key : XPath pattern compilation failed '%s'\n",
                         use);
-       style->errors++;
+       if (style != NULL) style->errors++;
     }
     key->next = style->keys;
     style->keys = key;
index a80a224..5d9f3c3 100644 (file)
@@ -1756,7 +1756,7 @@ xsltCompilePattern(const xmlChar *pattern, xmlDocPtr doc,
            xsltTransformError(NULL, style, node,
                             "xsltCompilePattern : failed to compile '%s'\n",
                             element->pattern);
-           style->errors++;
+           if (style != NULL) style->errors++;
            goto error;
        }
 
@@ -1817,7 +1817,7 @@ xsltCompilePattern(const xmlChar *pattern, xmlDocPtr doc,
     if (end == 0) {
        xsltTransformError(NULL, style, node,
                         "xsltCompilePattern : NULL pattern\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        goto error;
     }
 
index e5e028d..429673e 100644 (file)
@@ -69,7 +69,7 @@ xsltNewStylePreComp(xsltStylesheetPtr style, xsltStyleType type) {
     if (cur == NULL) {
        xsltTransformError(NULL, style, NULL,
                "xsltNewStylePreComp : malloc failed\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        return(NULL);
     }
     memset(cur, 0, sizeof(xsltStylePreComp));
@@ -123,7 +123,7 @@ xsltNewStylePreComp(xsltStylesheetPtr style, xsltStyleType type) {
        if (cur->func == NULL) {
            xsltTransformError(NULL, style, NULL,
                    "xsltNewStylePreComp : no function for type %d\n", type);
-           style->errors++;
+           if (style != NULL) style->errors++;
        }
     }
     cur->next = style->preComps;
@@ -261,7 +261,7 @@ xsltDocumentComp(xsltStylesheetPtr style, xmlNodePtr inst,
        if (URL == NULL) {
            xsltTransformError(NULL, style, inst,
                "xsltDocumentComp: URL computation failed %s\n", filename);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
            comp->filename = xmlStrdup(filename);
        } else {
            comp->filename = URL;
@@ -317,7 +317,7 @@ xsltSortComp(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltTransformError(NULL, style, inst,
                 "xsltSortComp: no support for data-type = %s\n", comp->stype);
            comp->number = 0; /* use default */
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
     }
     comp->order = xsltEvalStaticAttrValueTemplate(style, inst,
@@ -332,7 +332,7 @@ xsltSortComp(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltTransformError(NULL, style, inst,
                 "xsltSortComp: invalid value %s for order\n", comp->order);
            comp->descending = 0; /* use default */
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
     }
     comp->case_order = xsltEvalStaticAttrValueTemplate(style, inst,
@@ -347,7 +347,7 @@ xsltSortComp(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltTransformError(NULL, style, inst,
                 "xsltSortComp: invalid value %s for order\n", comp->order);
            comp->lower_first = 0; /* use default */
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
     }
 
@@ -369,7 +369,7 @@ xsltSortComp(xsltStylesheetPtr style, xmlNodePtr inst) {
        xsltTransformError(NULL, style, inst,
             "xsltSortComp: could not compile select expression '%s'\n",
                         comp->select);
-       style->errors++;
+       if (style != NULL) style->errors++;
     }
 }
 
@@ -433,7 +433,7 @@ xsltTextComp(xsltStylesheetPtr style, xmlNodePtr inst) {
                                (const xmlChar *)"no")){
            xsltTransformError(NULL, style, inst,
 "xsl:text: disable-output-escaping allows only yes or no\n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        xmlFree(prop);
     }
@@ -580,7 +580,7 @@ xsltCopyOfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (comp->select == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:copy-of : select is missing\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        return;
     }
     comp->comp = xmlXPathCompile(comp->select);
@@ -588,7 +588,7 @@ xsltCopyOfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
        xsltTransformError(NULL, style, inst,
             "xsl:copy-of : could not compile select expression '%s'\n",
                         comp->select);
-       style->errors++;
+       if (style != NULL) style->errors++;
     }
 }
 
@@ -622,7 +622,7 @@ xsltValueOfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
                                (const xmlChar *)"no")){
            xsltTransformError(NULL, style, inst,
 "xsl:value-of : disable-output-escaping allows only yes or no\n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        xmlFree(prop);
     }
@@ -631,7 +631,7 @@ xsltValueOfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (comp->select == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:value-of : select is missing\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        return;
     }
     comp->comp = xmlXPathCompile(comp->select);
@@ -639,7 +639,7 @@ xsltValueOfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
        xsltTransformError(NULL, style, inst,
             "xsl:value-of : could not compile select expression '%s'\n",
                         comp->select);
-       style->errors++;
+       if (style != NULL) style->errors++;
     }
 }
 
@@ -670,13 +670,13 @@ xsltWithParamComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (prop == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:with-param : name is missing\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
     } else {
         const xmlChar *URI;
 
        URI = xsltGetQNameURI(inst, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
        } else {
            comp->name = prop;
            comp->has_name = 1;
@@ -697,12 +697,12 @@ xsltWithParamComp(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltTransformError(NULL, style, inst,
                 "xsl:param : could not compile select expression '%s'\n",
                             comp->select);
-           style->errors++;
+           if (style != NULL) style->errors++;
        }
        if (inst->children != NULL) {
            xsltTransformError(NULL, style, inst,
            "xsl:param : content should be empty since select is present \n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
     }
 }
@@ -757,7 +757,7 @@ xsltNumberComp(xsltStylesheetPtr style, xmlNodePtr cur) {
        } else {
            xsltTransformError(NULL, style, cur,
                         "xsl:number : invalid value %s for level\n", prop);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
            xmlFree(prop);
        }
     }
@@ -773,17 +773,17 @@ xsltNumberComp(xsltStylesheetPtr style, xmlNodePtr cur) {
        if (xmlStrEqual(prop, BAD_CAST("alphabetic"))) {
            xsltTransformError(NULL, style, cur,
                 "xsl:number : letter-value 'alphabetic' not implemented\n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
            XSLT_TODO; /* xsl:number letter-value attribute alphabetic */
        } else if (xmlStrEqual(prop, BAD_CAST("traditional"))) {
            xsltTransformError(NULL, style, cur,
                 "xsl:number : letter-value 'traditional' not implemented\n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
            XSLT_TODO; /* xsl:number letter-value attribute traditional */
        } else {
            xsltTransformError(NULL, style, cur,
                     "xsl:number : invalid value %s for letter-value\n", prop);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        xmlFree(prop);
     }
@@ -860,13 +860,13 @@ xsltCallTemplateComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (prop == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:call-template : name is missing\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
     } else {
         const xmlChar *URI;
 
        URI = xsltGetQNameURI(inst, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
        } else {
            comp->name = prop;
            comp->has_name = 1;
@@ -910,7 +910,7 @@ xsltApplyTemplatesComp(xsltStylesheetPtr style, xmlNodePtr inst) {
 
        URI = xsltGetQNameURI(inst, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
        } else {
            comp->mode = prop;
            if (URI != NULL) {
@@ -928,7 +928,7 @@ xsltApplyTemplatesComp(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltTransformError(NULL, style, inst,
      "xsl:apply-templates : could not compile select expression '%s'\n",
                             comp->select);
-           style->errors++;
+           if (style != NULL) style->errors++;
        }
     }
 
@@ -978,7 +978,7 @@ xsltIfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (comp->test == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:if : test is not defined\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        return;
     }
     comp->comp = xmlXPathCompile(comp->test);
@@ -986,7 +986,7 @@ xsltIfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
        xsltTransformError(NULL, style, inst,
             "xsl:if : could not compile test expression '%s'\n",
                         comp->test);
-       style->errors++;
+       if (style != NULL) style->errors++;
     }
 }
 
@@ -1013,7 +1013,7 @@ xsltWhenComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (comp->test == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:when : test is not defined\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        return;
     }
     comp->comp = xmlXPathCompile(comp->test);
@@ -1021,7 +1021,7 @@ xsltWhenComp(xsltStylesheetPtr style, xmlNodePtr inst) {
        xsltTransformError(NULL, style, inst,
             "xsl:when : could not compile test expression '%s'\n",
                         comp->test);
-       style->errors++;
+       if (style != NULL) style->errors++;
     }
 }
 
@@ -1049,14 +1049,14 @@ xsltForEachComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (comp->select == NULL) {
        xsltTransformError(NULL, style, inst,
                "xsl:for-each : select is missing\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
     } else {
        comp->comp = xmlXPathCompile(comp->select);
        if (comp->comp == NULL) {
            xsltTransformError(NULL, style, inst,
      "xsl:for-each : could not compile select expression '%s'\n",
                             comp->select);
-           style->errors++;
+           if (style != NULL) style->errors++;
        }
     }
     /* TODO: handle and skip the xsl:sort */
@@ -1089,13 +1089,13 @@ xsltVariableComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (prop == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:variable : name is missing\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
     } else {
         const xmlChar *URI;
 
        URI = xsltGetQNameURI(inst, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
        } else {
            comp->name = prop;
            comp->has_name = 1;
@@ -1116,12 +1116,12 @@ xsltVariableComp(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltTransformError(NULL, style, inst,
                 "xsl:variable : could not compile select expression '%s'\n",
                             comp->select);
-           style->errors++;
+           if (style != NULL) style->errors++;
        }
        if (inst->children != NULL) {
            xsltTransformError(NULL, style, inst,
        "xsl:variable : content should be empty since select is present \n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
     }
 }
@@ -1153,13 +1153,13 @@ xsltParamComp(xsltStylesheetPtr style, xmlNodePtr inst) {
     if (prop == NULL) {
        xsltTransformError(NULL, style, inst,
             "xsl:param : name is missing\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
     } else {
         const xmlChar *URI;
 
        URI = xsltGetQNameURI(inst, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
        } else {
            comp->name = prop;
            comp->has_name = 1;
@@ -1180,12 +1180,12 @@ xsltParamComp(xsltStylesheetPtr style, xmlNodePtr inst) {
            xsltTransformError(NULL, style, inst,
                 "xsl:param : could not compile select expression '%s'\n",
                             comp->select);
-           style->errors++;
+           if (style != NULL) style->errors++;
        }
        if (inst->children != NULL) {
            xsltTransformError(NULL, style, inst,
        "xsl:param : content should be empty since select is present \n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
     }
 }
@@ -1325,7 +1325,7 @@ xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) {
        } else {
            xsltTransformError(NULL, style, inst,
                 "xsltStylePreCompute: unknown xsl:%s\n", inst->name);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        /*
         * Add the namespace lookup here, this code can be shared by
index 5c4b33f..e8b4afa 100644 (file)
@@ -1843,7 +1843,7 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
 
        URI = xsltGetQNameURI(inst, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
        } else if (URI == NULL) {
            if ((xmlStrEqual(prop, (const xmlChar *) "xml")) ||
                (xmlStrEqual(prop, (const xmlChar *) "html")) ||
@@ -1852,7 +1852,7 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
            } else {
                xsltTransformError(ctxt, NULL, inst,
                                 "invalid value for method: %s\n", prop);
-               style->warnings++;
+               if (style != NULL) style->warnings++;
            }
        } else {
            style->method = prop;
@@ -1887,7 +1887,7 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
            xsltTransformError(ctxt, NULL, inst,
                             "invalid value for standalone: %s\n",
                             prop);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        xmlFree(prop);
     }
@@ -1903,7 +1903,7 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
        } else {
            xsltTransformError(ctxt, NULL, inst,
                             "invalid value for indent: %s\n", prop);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        xmlFree(prop);
     }
@@ -1921,7 +1921,7 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
            xsltTransformError(ctxt, NULL, inst,
                             "invalid value for omit-xml-declaration: %s\n",
                             prop);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        xmlFree(prop);
     }
index ca2da40..fa94ab1 100644 (file)
@@ -600,7 +600,7 @@ xsltEvalGlobalVariables(xsltTransformContextPtr ctxt) {
                    (elem->comp->inst->doc == def->comp->inst->doc)) {
                    xsltTransformError(ctxt, style, elem->comp->inst,
                        "Global variable %s already defined\n", elem->name);
-                   style->errors++;
+                   if (style != NULL) style->errors++;
                }
            }
            elem = elem->next;
@@ -680,7 +680,7 @@ xsltRegisterGlobalVariable(xsltStylesheetPtr style, const xmlChar *name,
                 (xmlStrEqual(elem->nameURI, tmp->nameURI)))) {
                xsltTransformError(NULL, style, comp->inst,
                "redefinition of global variable %s\n", elem->name);
-               style->errors++;
+               if (style != NULL) style->errors++;
            }
            if (tmp->next == NULL)
                break;
index 2a174f9..195d591 100644 (file)
@@ -655,7 +655,7 @@ xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
 
        URI = xsltGetQNameURI(cur, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
        } else if (URI == NULL) {
             if ((xmlStrEqual(prop, (const xmlChar *) "xml")) ||
                 (xmlStrEqual(prop, (const xmlChar *) "html")) ||
@@ -664,7 +664,7 @@ xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
             } else {
                xsltTransformError(NULL, style, cur,
                                  "invalid value for method: %s\n", prop);
-                style->warnings++;
+                if (style != NULL) style->warnings++;
             }
        } else {
            style->method = prop;
@@ -700,7 +700,7 @@ xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
         } else {
            xsltTransformError(NULL, style, cur,
                              "invalid value for standalone: %s\n", prop);
-            style->warnings++;
+            if (style != NULL) style->warnings++;
         }
         xmlFree(prop);
     }
@@ -714,7 +714,7 @@ xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
         } else {
            xsltTransformError(NULL, style, cur,
                              "invalid value for indent: %s\n", prop);
-            style->warnings++;
+            if (style != NULL) style->warnings++;
         }
         xmlFree(prop);
     }
@@ -730,7 +730,7 @@ xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
            xsltTransformError(NULL, style, cur,
                              "invalid value for omit-xml-declaration: %s\n",
                              prop);
-            style->warnings++;
+            if (style != NULL) style->warnings++;
         }
         xmlFree(prop);
     }
@@ -764,7 +764,7 @@ xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
 
                URI = xsltGetQNameURI(cur, &element);
                if (element == NULL) {
-                   style->errors++;
+                   if (style != NULL) style->errors++;
                } else {
                    xmlHashAddEntry2(style->cdataSection, element, URI,
                                     (void *) "cdata");
@@ -810,14 +810,14 @@ xsltParseStylesheetDecimalFormat(xsltStylesheetPtr style, xmlNodePtr cur)
        if (format != NULL) {
            xsltTransformError(NULL, style, cur,
         "xsltParseStylestyleDecimalFormat: %s already exists\n", prop);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
            return;
        }
        format = xsltNewDecimalFormat(prop);
        if (format == NULL) {
            xsltTransformError(NULL, style, cur,
      "xsltParseStylestyleDecimalFormat: failed creating new decimal-format\n");
-           style->errors++;
+           if (style != NULL) style->errors++;
            return;
        }
        /* Append new decimal-format structure */
@@ -912,7 +912,7 @@ xsltParseStylesheetPreserveSpace(xsltStylesheetPtr style, xmlNodePtr cur) {
     if (elements == NULL) {
        xsltTransformError(NULL, style, cur,
            "xsltParseStylesheetPreserveSpace: missing elements attribute\n");
-       style->warnings++;
+       if (style != NULL) style->warnings++;
        return;
     }
 
@@ -993,7 +993,7 @@ xsltParseStylesheetExtPrefix(xsltStylesheetPtr style, xmlNodePtr cur) {
                xsltTransformError(NULL, style, cur,
            "xsl:extension-element-prefix : undefined namespace %s\n",
                                 prefix);
-               style->warnings++;
+               if (style != NULL) style->warnings++;
            } else {
 #ifdef WITH_XSLT_DEBUG_PARSING
                xsltGenericDebug(xsltGenericDebugContext,
@@ -1029,7 +1029,7 @@ xsltParseStylesheetStripSpace(xsltStylesheetPtr style, xmlNodePtr cur) {
     if (elements == NULL) {
        xsltTransformError(NULL, style, cur,
            "xsltParseStylesheetStripSpace: missing elements attribute\n");
-       style->warnings++;
+       if (style != NULL) style->warnings++;
        return;
     }
 
@@ -1113,7 +1113,7 @@ xsltParseStylesheetExcludePrefix(xsltStylesheetPtr style, xmlNodePtr cur) {
                xsltTransformError(NULL, style, cur,
            "xsl:exclude-result-prefixes : undefined namespace %s\n",
                                 prefix);
-               style->warnings++;
+               if (style != NULL) style->warnings++;
            } else {
 #ifdef WITH_XSLT_DEBUG_PARSING
                xsltGenericDebug(xsltGenericDebugContext,
@@ -1305,7 +1305,7 @@ xsltGatherNamespaces(xsltStylesheetPtr style) {
                        if (style->nsHash == NULL) {
                            xsltTransformError(NULL, style, cur,
                 "xsltGatherNamespaces: failed to create hash table\n");
-                           style->errors++;
+                           if (style != NULL) style->errors++;
                            return;
                        }
                    }
@@ -1313,7 +1313,7 @@ xsltGatherNamespaces(xsltStylesheetPtr style) {
                    if ((URI != NULL) && (!xmlStrEqual(URI, ns->href))) {
                        xsltTransformError(NULL, style, cur,
             "Namespaces prefix %s used for multiple namespaces\n");
-                       style->warnings++;
+                       if (style != NULL) style->warnings++;
                    } else if (URI == NULL) {
                        xmlHashUpdateEntry(style->nsHash, ns->prefix,
                            (void *) ns->href, (xmlHashDeallocator)xmlFree);
@@ -1409,7 +1409,7 @@ xsltParseTemplateContent(xsltStylesheetPtr style, xmlNodePtr templ) {
                                                (const xmlChar *)"no")){
                            xsltTransformError(NULL, style, cur,
             "xsl:text: disable-output-escaping allows only yes or no\n");
-                           style->warnings++;
+                           if (style != NULL) style->warnings++;
 
                        }
                        xmlFree(prop);
@@ -1424,7 +1424,7 @@ xsltParseTemplateContent(xsltStylesheetPtr style, xmlNodePtr templ) {
                             (text->type != XML_CDATA_SECTION_NODE)) {
                            xsltTransformError(NULL, style, cur,
                 "xsltParseTemplateContent: xslt:text content problem\n");
-                           style->errors++;
+                           if (style != NULL) style->errors++;
                            break;
                        }
                        if (noesc)
@@ -1516,7 +1516,7 @@ skip_children:
             cur = cur->next;
            xsltTransformError(NULL, style, cur,
                "xsltParseTemplateContent: ignoring misplaced param element\n");
-           style->warnings++;
+           if (style != NULL) style->warnings++;
            xmlUnlinkNode(param);
            xmlFreeNode(param);
            continue;
@@ -1554,7 +1554,7 @@ xsltParseStylesheetKey(xsltStylesheetPtr style, xmlNodePtr key) {
 
        URI = xsltGetQNameURI(key, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
            goto error;
        } else {
            name = prop;
@@ -1568,7 +1568,7 @@ xsltParseStylesheetKey(xsltStylesheetPtr style, xmlNodePtr key) {
     } else {
        xsltTransformError(NULL, style, key,
            "xsl:key : error missing name\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        goto error;
     }
 
@@ -1576,7 +1576,7 @@ xsltParseStylesheetKey(xsltStylesheetPtr style, xmlNodePtr key) {
     if (match == NULL) {
        xsltTransformError(NULL, style, key,
            "xsl:key : error missing match\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        goto error;
     }
 
@@ -1584,7 +1584,7 @@ xsltParseStylesheetKey(xsltStylesheetPtr style, xmlNodePtr key) {
     if (use == NULL) {
        xsltTransformError(NULL, style, key,
            "xsl:key : error missing use\n");
-       style->errors++;
+       if (style != NULL) style->errors++;
        goto error;
     }
 
@@ -1654,7 +1654,7 @@ xsltParseStylesheetTemplate(xsltStylesheetPtr style, xmlNodePtr template) {
 
        URI = xsltGetQNameURI(template, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
            goto error;
        } else {
            mode = prop;
@@ -1695,7 +1695,7 @@ xsltParseStylesheetTemplate(xsltStylesheetPtr style, xmlNodePtr template) {
 
        URI = xsltGetQNameURI(template, &prop);
        if (prop == NULL) {
-           style->errors++;
+           if (style != NULL) style->errors++;
            goto error;
        } else {
            ret->name = prop;
@@ -1742,14 +1742,14 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
     if (prop == NULL) {
        xsltTransformError(NULL, style, top,
            "xsl:version is missing: document may not be a stylesheet\n");
-       style->warnings++;
+       if (style != NULL) style->warnings++;
     } else {
        if ((!xmlStrEqual(prop, (const xmlChar *)"1.0")) &&
             (!xmlStrEqual(prop, (const xmlChar *)"1.1"))) {
            xsltTransformError(NULL, style, top,
                "xsl:version: only 1.0 features are supported\n");
             /* TODO set up compatibility when not XSLT 1.0 */
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        xmlFree(prop);
     }
@@ -1768,7 +1768,7 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
            }
            if (IS_XSLT_ELEM(cur) && IS_XSLT_NAME(cur, "import")) {
                    if (xsltParseStylesheetImport(style, cur) != 0)
-                           style->errors++;
+                           if (style != NULL) style->errors++;
            } else
                    break;
            cur = cur->next;
@@ -1787,7 +1787,7 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
                xsltTransformError(NULL, style, cur,
                    "misplaced text element: '%s'\n", cur->content);
            }
-           style->errors++;
+           if (style != NULL) style->errors++;
             cur = cur->next;
            continue;
        }
@@ -1795,7 +1795,7 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
            xsltGenericError(xsltGenericErrorContext,
                     "Found a top-level element %s with null namespace URI\n",
                     cur->name);
-           style->errors++;
+           if (style != NULL) style->errors++;
            cur = cur->next;
            continue;
        }
@@ -1818,10 +1818,10 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
        if (IS_XSLT_NAME(cur, "import")) {
            xsltTransformError(NULL, style, cur,
                        "xsltParseStylesheetTop: ignoring misplaced import element\n");
-           style->errors++;
+           if (style != NULL) style->errors++;
     } else if (IS_XSLT_NAME(cur, "include")) {
            if (xsltParseStylesheetInclude(style, cur) != 0)
-                       style->errors++;
+               if (style != NULL) style->errors++;
     } else if (IS_XSLT_NAME(cur, "strip-space")) {
            xsltParseStylesheetStripSpace(style, cur);
     } else if (IS_XSLT_NAME(cur, "preserve-space")) {
@@ -1849,7 +1849,7 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
            xsltTransformError(NULL, style, cur,
                        "xsltParseStylesheetTop: ignoring unknown %s element\n",
                        cur->name);
-           style->warnings++;
+           if (style != NULL) style->warnings++;
        }
        cur = cur->next;
     }