xmllint: Add macro for error stream
Prepare for fuzzing.
diff --git a/xmllint.c b/xmllint.c
index d740b76..d2a3398 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -81,6 +81,8 @@
#include <libxml/xmlsave.h>
#endif
+#define ERR_STREAM stderr
+
#ifndef XML_XML_DEFAULT_CATALOG
#define XML_XML_DEFAULT_CATALOG "file://" SYSCONFDIR "/xml/catalog"
#endif
@@ -221,7 +223,7 @@
return;
while (*path != 0) {
if (nbpaths >= MAX_PATHS) {
- fprintf(stderr, "MAX_PATHS reached: too many paths\n");
+ fprintf(ERR_STREAM, "MAX_PATHS reached: too many paths\n");
return;
}
cur = path;
@@ -276,7 +278,7 @@
ctxt->sax->error = err;
if (load_trace) {
fprintf \
- (stderr,
+ (ERR_STREAM,
"Loaded URL=\"%s\" ID=\"%s\"\n",
URL ? URL : "(null)",
ID ? ID : "(null)");
@@ -299,7 +301,7 @@
ctxt->sax->error = err;
if (load_trace) {
fprintf \
- (stderr,
+ (ERR_STREAM,
"Loaded URL=\"%s\" ID=\"%s\"\n",
newURL,
ID ? ID : "(null)");
@@ -330,7 +332,7 @@
static void
OOM(void)
{
- fprintf(stderr, "Ran out of memory needs > %d bytes\n", maxmem);
+ fprintf(ERR_STREAM, "Ran out of memory needs > %d bytes\n", maxmem);
progresult = XMLLINT_ERR_MEM;
}
@@ -442,10 +444,10 @@
msec += (end.tv_usec - begin.tv_usec) / 1000;
va_start(ap, fmt);
- vfprintf(stderr, fmt, ap);
+ vfprintf(ERR_STREAM, fmt, ap);
va_end(ap);
- fprintf(stderr, " took %ld ms\n", msec);
+ fprintf(ERR_STREAM, " took %ld ms\n", msec);
}
#else
/*
@@ -473,9 +475,9 @@
msec = ((end - begin) * 1000) / CLOCKS_PER_SEC;
va_start(ap, fmt);
- vfprintf(stderr, fmt, ap);
+ vfprintf(ERR_STREAM, fmt, ap);
va_end(ap);
- fprintf(stderr, " took %ld ms\n", msec);
+ fprintf(ERR_STREAM, " took %ld ms\n", msec);
}
#endif
/************************************************************************
@@ -497,7 +499,7 @@
memset(&buffer[sizeof(buffer)-4], 0, 4);
result = (char *) xmlEncodeEntitiesReentrant(NULL, BAD_CAST buffer);
if (result) {
- fprintf(stderr, "%s", result);
+ fprintf(ERR_STREAM, "%s", result);
xmlFree(result);
}
buffer[0] = 0;
@@ -513,7 +515,7 @@
static void
xmlHTMLPrintFileInfo(xmlParserInputPtr input) {
int len;
- fprintf(stderr, "<p>");
+ fprintf(ERR_STREAM, "<p>");
len = strlen(buffer);
if (input != NULL) {
@@ -541,7 +543,7 @@
int n;
if (input == NULL) return;
- fprintf(stderr, "<pre>\n");
+ fprintf(ERR_STREAM, "<pre>\n");
cur = input->cur;
base = input->base;
while ((cur > base) && ((*cur == '\n') || (*cur == '\r'))) {
@@ -573,7 +575,7 @@
len = strlen(buffer);
snprintf(&buffer[len], sizeof(buffer) - len, "^\n");
xmlHTMLEncodeSend();
- fprintf(stderr, "</pre>");
+ fprintf(ERR_STREAM, "</pre>");
}
/**
@@ -601,13 +603,13 @@
xmlHTMLPrintFileInfo(input);
- fprintf(stderr, "<b>error</b>: ");
+ fprintf(ERR_STREAM, "<b>error</b>: ");
va_start(args, msg);
len = strlen(buffer);
vsnprintf(&buffer[len], sizeof(buffer) - len, msg, args);
va_end(args);
xmlHTMLEncodeSend();
- fprintf(stderr, "</p>\n");
+ fprintf(ERR_STREAM, "</p>\n");
xmlHTMLPrintFileContext(input);
xmlHTMLEncodeSend();
@@ -639,13 +641,13 @@
xmlHTMLPrintFileInfo(input);
- fprintf(stderr, "<b>warning</b>: ");
+ fprintf(ERR_STREAM, "<b>warning</b>: ");
va_start(args, msg);
len = strlen(buffer);
vsnprintf(&buffer[len], sizeof(buffer) - len, msg, args);
va_end(args);
xmlHTMLEncodeSend();
- fprintf(stderr, "</p>\n");
+ fprintf(ERR_STREAM, "</p>\n");
xmlHTMLPrintFileContext(input);
xmlHTMLEncodeSend();
@@ -675,13 +677,13 @@
xmlHTMLPrintFileInfo(input);
- fprintf(stderr, "<b>validity error</b>: ");
+ fprintf(ERR_STREAM, "<b>validity error</b>: ");
len = strlen(buffer);
va_start(args, msg);
vsnprintf(&buffer[len], sizeof(buffer) - len, msg, args);
va_end(args);
xmlHTMLEncodeSend();
- fprintf(stderr, "</p>\n");
+ fprintf(ERR_STREAM, "</p>\n");
xmlHTMLPrintFileContext(input);
xmlHTMLEncodeSend();
@@ -712,13 +714,13 @@
xmlHTMLPrintFileInfo(input);
- fprintf(stderr, "<b>validity warning</b>: ");
+ fprintf(ERR_STREAM, "<b>validity warning</b>: ");
va_start(args, msg);
len = strlen(buffer);
vsnprintf(&buffer[len], sizeof(buffer) - len, msg, args);
va_end(args);
xmlHTMLEncodeSend();
- fprintf(stderr, "</p>\n");
+ fprintf(ERR_STREAM, "</p>\n");
xmlHTMLPrintFileContext(input);
xmlHTMLEncodeSend();
@@ -1629,13 +1631,13 @@
if (repeat == 0) {
if (ret == 0) {
if (!quiet) {
- fprintf(stderr, "%s validates\n", filename);
+ fprintf(ERR_STREAM, "%s validates\n", filename);
}
} else if (ret > 0) {
- fprintf(stderr, "%s fails to validate\n", filename);
+ fprintf(ERR_STREAM, "%s fails to validate\n", filename);
progresult = XMLLINT_ERR_VALID;
} else {
- fprintf(stderr, "%s validation generated an internal error\n",
+ fprintf(ERR_STREAM, "%s validation generated an internal error\n",
filename);
progresult = XMLLINT_ERR_VALID;
}
@@ -1663,7 +1665,7 @@
xmlCtxtReadFile(ctxt, filename, NULL, options);
if (ctxt->myDoc != NULL) {
- fprintf(stderr, "SAX generated a doc !\n");
+ fprintf(ERR_STREAM, "SAX generated a doc !\n");
xmlFreeDoc(ctxt->myDoc);
ctxt->myDoc = NULL;
}
@@ -1731,7 +1733,7 @@
xmlTextReaderConstLocalName(reader),
xmlTextReaderConstNamespaceUri(reader));
if (ret < 0) {
- fprintf(stderr, "xmlStreamPush() failure\n");
+ fprintf(ERR_STREAM, "xmlStreamPush() failure\n");
xmlFreeStreamCtxt(patstream);
patstream = NULL;
} else if (ret != match) {
@@ -1741,13 +1743,13 @@
xmlTextReaderCurrentNode(reader));
}
#endif
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"xmlPatternMatch and xmlStreamPush disagree\n");
if (path != NULL)
- fprintf(stderr, " pattern %s node %s\n",
+ fprintf(ERR_STREAM, " pattern %s node %s\n",
pattern, path);
else
- fprintf(stderr, " pattern %s node %s\n",
+ fprintf(ERR_STREAM, " pattern %s node %s\n",
pattern, xmlTextReaderConstName(reader));
}
@@ -1756,7 +1758,7 @@
((type == XML_READER_TYPE_ELEMENT) && (empty))) {
ret = xmlStreamPop(patstream);
if (ret < 0) {
- fprintf(stderr, "xmlStreamPop() failure\n");
+ fprintf(ERR_STREAM, "xmlStreamPop() failure\n");
xmlFreeStreamCtxt(patstream);
patstream = NULL;
}
@@ -1784,7 +1786,7 @@
base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ;
if (base == (void *) MAP_FAILED) {
close(fd);
- fprintf(stderr, "mmap failure for file %s\n", filename);
+ fprintf(ERR_STREAM, "mmap failure for file %s\n", filename);
progresult = XMLLINT_ERR_RDFILE;
return;
}
@@ -1803,7 +1805,7 @@
if (patstream != NULL) {
ret = xmlStreamPush(patstream, NULL, NULL);
if (ret < 0) {
- fprintf(stderr, "xmlStreamPush() failure\n");
+ fprintf(ERR_STREAM, "xmlStreamPush() failure\n");
xmlFreeStreamCtxt(patstream);
patstream = NULL;
}
@@ -1829,7 +1831,7 @@
}
ret = xmlTextReaderRelaxNGValidate(reader, relaxng);
if (ret < 0) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Relax-NG schema %s failed to compile\n", relaxng);
progresult = XMLLINT_ERR_SCHEMACOMP;
relaxng = NULL;
@@ -1844,7 +1846,7 @@
}
ret = xmlTextReaderSchemaValidate(reader, schema);
if (ret < 0) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"XSD schema %s failed to compile\n", schema);
progresult = XMLLINT_ERR_SCHEMACOMP;
schema = NULL;
@@ -1888,7 +1890,7 @@
#ifdef LIBXML_VALID_ENABLED
if (valid) {
if (xmlTextReaderIsValid(reader) != 1) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Document %s does not validate\n", filename);
progresult = XMLLINT_ERR_VALID;
}
@@ -1897,11 +1899,11 @@
#ifdef LIBXML_SCHEMAS_ENABLED
if ((relaxng != NULL) || (schema != NULL)) {
if (xmlTextReaderIsValid(reader) != 1) {
- fprintf(stderr, "%s fails to validate\n", filename);
+ fprintf(ERR_STREAM, "%s fails to validate\n", filename);
progresult = XMLLINT_ERR_VALID;
} else {
if (!quiet) {
- fprintf(stderr, "%s validates\n", filename);
+ fprintf(ERR_STREAM, "%s validates\n", filename);
}
}
}
@@ -1911,11 +1913,11 @@
*/
xmlFreeTextReader(reader);
if (ret != 0) {
- fprintf(stderr, "%s : failed to parse\n", filename);
+ fprintf(ERR_STREAM, "%s : failed to parse\n", filename);
progresult = XMLLINT_ERR_UNCLASS;
}
} else {
- fprintf(stderr, "Unable to open %s\n", filename);
+ fprintf(ERR_STREAM, "Unable to open %s\n", filename);
progresult = XMLLINT_ERR_UNCLASS;
}
#ifdef LIBXML_PATTERN_ENABLED
@@ -1944,7 +1946,7 @@
root = xmlDocGetRootElement(doc);
if (root == NULL ) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Document does not have a root element");
progresult = XMLLINT_ERR_UNCLASS;
return;
@@ -1960,7 +1962,7 @@
patternc = xmlPatterncompile((const xmlChar *) pattern, doc->dict,
0, &namespaces[0]);
if (patternc == NULL) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Pattern %s failed to compile\n", pattern);
progresult = XMLLINT_ERR_SCHEMAPAT;
pattern = NULL;
@@ -1971,7 +1973,7 @@
if (patstream != NULL) {
ret = xmlStreamPush(patstream, NULL, NULL);
if (ret < 0) {
- fprintf(stderr, "xmlStreamPush() failure\n");
+ fprintf(ERR_STREAM, "xmlStreamPush() failure\n");
xmlFreeStreamCtxt(patstream);
patstream = NULL;
}
@@ -1998,11 +2000,11 @@
}
xmlFreeTextReader(reader);
if (ret != 0) {
- fprintf(stderr, "failed to walk through the doc\n");
+ fprintf(ERR_STREAM, "failed to walk through the doc\n");
progresult = XMLLINT_ERR_UNCLASS;
}
} else {
- fprintf(stderr, "Failed to crate a reader from the document\n");
+ fprintf(ERR_STREAM, "Failed to crate a reader from the document\n");
progresult = XMLLINT_ERR_UNCLASS;
}
#ifdef LIBXML_PATTERN_ENABLED
@@ -2032,13 +2034,13 @@
if ((cur->nodesetval == NULL) || (cur->nodesetval->nodeNr <= 0)) {
progresult = XMLLINT_ERR_XPATH_EMPTY;
if (!quiet) {
- fprintf(stderr, "XPath set is empty\n");
+ fprintf(ERR_STREAM, "XPath set is empty\n");
}
break;
}
buf = xmlOutputBufferCreateFile(stdout, NULL);
if (buf == NULL) {
- fprintf(stderr, "Out of memory for XPath\n");
+ fprintf(ERR_STREAM, "Out of memory for XPath\n");
progresult = XMLLINT_ERR_MEM;
return;
}
@@ -2077,11 +2079,11 @@
printf("%s\n", (const char *) cur->stringval);
break;
case XPATH_UNDEFINED:
- fprintf(stderr, "XPath Object is uninitialized\n");
+ fprintf(ERR_STREAM, "XPath Object is uninitialized\n");
progresult = XMLLINT_ERR_XPATH;
break;
default:
- fprintf(stderr, "XPath object of unexpected type\n");
+ fprintf(ERR_STREAM, "XPath object of unexpected type\n");
progresult = XMLLINT_ERR_XPATH;
break;
}
@@ -2093,7 +2095,7 @@
ctxt = xmlXPathNewContext(doc);
if (ctxt == NULL) {
- fprintf(stderr, "Out of memory for XPath\n");
+ fprintf(ERR_STREAM, "Out of memory for XPath\n");
progresult = XMLLINT_ERR_MEM;
return;
}
@@ -2102,7 +2104,7 @@
xmlXPathFreeContext(ctxt);
if (res == NULL) {
- fprintf(stderr, "XPath evaluation failure\n");
+ fprintf(ERR_STREAM, "XPath evaluation failure\n");
progresult = XMLLINT_ERR_XPATH;
return;
}
@@ -2151,7 +2153,7 @@
} else {
f = fopen(filename, "rb");
if (f == NULL) {
- fprintf(stderr, "Can't open %s\n", filename);
+ fprintf(ERR_STREAM, "Can't open %s\n", filename);
progresult = XMLLINT_ERR_UNCLASS;
return;
}
@@ -2189,7 +2191,7 @@
base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ;
if (base == (void *) MAP_FAILED) {
close(fd);
- fprintf(stderr, "mmap failure for file %s\n", filename);
+ fprintf(ERR_STREAM, "mmap failure for file %s\n", filename);
progresult = XMLLINT_ERR_RDFILE;
return;
}
@@ -2226,7 +2228,7 @@
} else {
f = fopen(filename, "rb");
if (f == NULL) {
- fprintf(stderr, "Can't open %s\n", filename);
+ fprintf(ERR_STREAM, "Can't open %s\n", filename);
progresult = XMLLINT_ERR_UNCLASS;
return;
}
@@ -2315,7 +2317,7 @@
base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ;
if (base == (void *) MAP_FAILED) {
close(fd);
- fprintf(stderr, "mmap failure for file %s\n", filename);
+ fprintf(ERR_STREAM, "mmap failure for file %s\n", filename);
progresult = XMLLINT_ERR_RDFILE;
return;
}
@@ -2325,7 +2327,7 @@
ctxt = xmlNewParserCtxt();
if (ctxt == NULL) {
- fprintf(stderr, "out of memory\n");
+ fprintf(ERR_STREAM, "out of memory\n");
progresult = XMLLINT_ERR_MEM;
return;
}
@@ -2381,7 +2383,7 @@
ctxt = xmlNewParserCtxt();
if (ctxt == NULL) {
- fprintf(stderr, "out of memory\n");
+ fprintf(ERR_STREAM, "out of memory\n");
progresult = XMLLINT_ERR_MEM;
return;
}
@@ -2499,14 +2501,14 @@
if (node != NULL) {
nb = xmlValidGetValidElements(node->last, NULL, list, 256);
if (nb < 0) {
- fprintf(stderr, "could not get valid list of elements\n");
+ fprintf(ERR_STREAM, "could not get valid list of elements\n");
} else if (nb == 0) {
- fprintf(stderr, "No element can be inserted under root\n");
+ fprintf(ERR_STREAM, "No element can be inserted under root\n");
} else {
- fprintf(stderr, "%d element types can be inserted under root:\n",
+ fprintf(ERR_STREAM, "%d element types can be inserted under root:\n",
nb);
for (i = 0;i < nb;i++) {
- fprintf(stderr, "%s\n", (char *) list[i]);
+ fprintf(ERR_STREAM, "%s\n", (char *) list[i]);
}
}
}
@@ -2564,7 +2566,7 @@
if (output != NULL)
fclose(out);
} else {
- fprintf(stderr, "failed to open %s\n", output);
+ fprintf(ERR_STREAM, "failed to open %s\n", output);
progresult = XMLLINT_ERR_OUT;
}
}
@@ -2581,11 +2583,11 @@
size = xmlC14NDocDumpMemory(doc, NULL, XML_C14N_1_0, NULL, 1, &result);
if (size >= 0) {
if (write(1, result, size) == -1) {
- fprintf(stderr, "Can't write data\n");
+ fprintf(ERR_STREAM, "Can't write data\n");
}
xmlFree(result);
} else {
- fprintf(stderr, "Failed to canonicalize\n");
+ fprintf(ERR_STREAM, "Failed to canonicalize\n");
progresult = XMLLINT_ERR_OUT;
}
} else if (canonical_11) {
@@ -2595,11 +2597,11 @@
size = xmlC14NDocDumpMemory(doc, NULL, XML_C14N_1_1, NULL, 1, &result);
if (size >= 0) {
if (write(1, result, size) == -1) {
- fprintf(stderr, "Can't write data\n");
+ fprintf(ERR_STREAM, "Can't write data\n");
}
xmlFree(result);
} else {
- fprintf(stderr, "Failed to canonicalize\n");
+ fprintf(ERR_STREAM, "Failed to canonicalize\n");
progresult = XMLLINT_ERR_OUT;
}
} else
@@ -2610,11 +2612,11 @@
size = xmlC14NDocDumpMemory(doc, NULL, XML_C14N_EXCLUSIVE_1_0, NULL, 1, &result);
if (size >= 0) {
if (write(1, result, size) == -1) {
- fprintf(stderr, "Can't write data\n");
+ fprintf(ERR_STREAM, "Can't write data\n");
}
xmlFree(result);
} else {
- fprintf(stderr, "Failed to canonicalize\n");
+ fprintf(ERR_STREAM, "Failed to canonicalize\n");
progresult = XMLLINT_ERR_OUT;
}
} else
@@ -2637,11 +2639,11 @@
xmlDocDumpMemory(doc, &result, &len);
}
if (result == NULL) {
- fprintf(stderr, "Failed to save\n");
+ fprintf(ERR_STREAM, "Failed to save\n");
progresult = XMLLINT_ERR_OUT;
} else {
if (write(1, result, len) == -1) {
- fprintf(stderr, "Can't write data\n");
+ fprintf(ERR_STREAM, "Can't write data\n");
}
xmlFree(result);
}
@@ -2661,14 +2663,14 @@
encoding);
}
if (ret < 0) {
- fprintf(stderr, "failed save to %s\n",
+ fprintf(ERR_STREAM, "failed save to %s\n",
output ? output : "-");
progresult = XMLLINT_ERR_OUT;
}
} else if (format == 1) {
ret = xmlSaveFormatFile(output ? output : "-", doc, 1);
if (ret < 0) {
- fprintf(stderr, "failed save to %s\n",
+ fprintf(ERR_STREAM, "failed save to %s\n",
output ? output : "-");
progresult = XMLLINT_ERR_OUT;
}
@@ -2686,7 +2688,7 @@
if (output != NULL)
fclose(out);
} else {
- fprintf(stderr, "failed to open %s\n", output);
+ fprintf(ERR_STREAM, "failed to open %s\n", output);
progresult = XMLLINT_ERR_OUT;
}
}
@@ -2711,7 +2713,7 @@
if (ctxt != NULL) {
if (xmlSaveDoc(ctxt, doc) < 0) {
- fprintf(stderr, "failed save to %s\n",
+ fprintf(ERR_STREAM, "failed save to %s\n",
output ? output : "-");
progresult = XMLLINT_ERR_OUT;
}
@@ -2737,7 +2739,7 @@
if (output != NULL)
fclose(out);
} else {
- fprintf(stderr, "failed to open %s\n", output);
+ fprintf(ERR_STREAM, "failed to open %s\n", output);
progresult = XMLLINT_ERR_OUT;
}
}
@@ -2764,17 +2766,17 @@
}
if (dtd == NULL) {
if (dtdvalid != NULL)
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Could not parse DTD %s\n", dtdvalid);
else
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Could not parse DTD %s\n", dtdvalidfpi);
progresult = XMLLINT_ERR_DTD;
} else {
xmlValidCtxtPtr cvp;
if ((cvp = xmlNewValidCtxt()) == NULL) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Couldn't allocate validation context\n");
progresult = XMLLINT_ERR_MEM;
xmlFreeDtd(dtd);
@@ -2786,11 +2788,11 @@
}
if (!xmlValidateDtd(cvp, doc, dtd)) {
if (dtdvalid != NULL)
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Document %s does not validate against %s\n",
filename, dtdvalid);
else
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Document %s does not validate against %s\n",
filename, dtdvalidfpi);
progresult = XMLLINT_ERR_VALID;
@@ -2805,7 +2807,7 @@
xmlValidCtxtPtr cvp;
if ((cvp = xmlNewValidCtxt()) == NULL) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Couldn't allocate validation context\n");
progresult = XMLLINT_ERR_MEM;
xmlFreeDoc(doc);
@@ -2816,7 +2818,7 @@
startTimer();
}
if (!xmlValidateDocument(cvp, doc)) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Document %s does not validate\n", filename);
progresult = XMLLINT_ERR_VALID;
}
@@ -2851,13 +2853,13 @@
ret = xmlSchematronValidateDoc(ctxt, doc);
if (ret == 0) {
if (!quiet) {
- fprintf(stderr, "%s validates\n", filename);
+ fprintf(ERR_STREAM, "%s validates\n", filename);
}
} else if (ret > 0) {
- fprintf(stderr, "%s fails to validate\n", filename);
+ fprintf(ERR_STREAM, "%s fails to validate\n", filename);
progresult = XMLLINT_ERR_VALID;
} else {
- fprintf(stderr, "%s validation generated an internal error\n",
+ fprintf(ERR_STREAM, "%s validation generated an internal error\n",
filename);
progresult = XMLLINT_ERR_VALID;
}
@@ -2885,13 +2887,13 @@
ret = xmlRelaxNGValidateDoc(ctxt, doc);
if (ret == 0) {
if (!quiet) {
- fprintf(stderr, "%s validates\n", filename);
+ fprintf(ERR_STREAM, "%s validates\n", filename);
}
} else if (ret > 0) {
- fprintf(stderr, "%s fails to validate\n", filename);
+ fprintf(ERR_STREAM, "%s fails to validate\n", filename);
progresult = XMLLINT_ERR_VALID;
} else {
- fprintf(stderr, "%s validation generated an internal error\n",
+ fprintf(ERR_STREAM, "%s validation generated an internal error\n",
filename);
progresult = XMLLINT_ERR_VALID;
}
@@ -2916,13 +2918,13 @@
ret = xmlSchemaValidateDoc(ctxt, doc);
if (ret == 0) {
if (!quiet) {
- fprintf(stderr, "%s validates\n", filename);
+ fprintf(ERR_STREAM, "%s validates\n", filename);
}
} else if (ret > 0) {
- fprintf(stderr, "%s fails to validate\n", filename);
+ fprintf(ERR_STREAM, "%s fails to validate\n", filename);
progresult = XMLLINT_ERR_VALID;
} else {
- fprintf(stderr, "%s validation generated an internal error\n",
+ fprintf(ERR_STREAM, "%s validation generated an internal error\n",
filename);
progresult = XMLLINT_ERR_VALID;
}
@@ -2936,7 +2938,7 @@
#ifdef LIBXML_DEBUG_ENABLED
#if defined(LIBXML_HTML_ENABLED) || defined(LIBXML_VALID_ENABLED)
if ((debugent) && (!html))
- xmlDebugDumpEntities(stderr, doc);
+ xmlDebugDumpEntities(ERR_STREAM, doc);
#endif
#endif
@@ -2959,40 +2961,40 @@
************************************************************************/
static void showVersion(const char *name) {
- fprintf(stderr, "%s: using libxml version %s\n", name, xmlParserVersion);
- fprintf(stderr, " compiled with: ");
- if (xmlHasFeature(XML_WITH_THREAD)) fprintf(stderr, "Threads ");
- if (xmlHasFeature(XML_WITH_TREE)) fprintf(stderr, "Tree ");
- if (xmlHasFeature(XML_WITH_OUTPUT)) fprintf(stderr, "Output ");
- if (xmlHasFeature(XML_WITH_PUSH)) fprintf(stderr, "Push ");
- if (xmlHasFeature(XML_WITH_READER)) fprintf(stderr, "Reader ");
- if (xmlHasFeature(XML_WITH_PATTERN)) fprintf(stderr, "Patterns ");
- if (xmlHasFeature(XML_WITH_WRITER)) fprintf(stderr, "Writer ");
- if (xmlHasFeature(XML_WITH_SAX1)) fprintf(stderr, "SAXv1 ");
- if (xmlHasFeature(XML_WITH_FTP)) fprintf(stderr, "FTP ");
- if (xmlHasFeature(XML_WITH_HTTP)) fprintf(stderr, "HTTP ");
- if (xmlHasFeature(XML_WITH_VALID)) fprintf(stderr, "DTDValid ");
- if (xmlHasFeature(XML_WITH_HTML)) fprintf(stderr, "HTML ");
- if (xmlHasFeature(XML_WITH_LEGACY)) fprintf(stderr, "Legacy ");
- if (xmlHasFeature(XML_WITH_C14N)) fprintf(stderr, "C14N ");
- if (xmlHasFeature(XML_WITH_CATALOG)) fprintf(stderr, "Catalog ");
- if (xmlHasFeature(XML_WITH_XPATH)) fprintf(stderr, "XPath ");
- if (xmlHasFeature(XML_WITH_XPTR)) fprintf(stderr, "XPointer ");
- if (xmlHasFeature(XML_WITH_XINCLUDE)) fprintf(stderr, "XInclude ");
- if (xmlHasFeature(XML_WITH_ICONV)) fprintf(stderr, "Iconv ");
- if (xmlHasFeature(XML_WITH_ICU)) fprintf(stderr, "ICU ");
- if (xmlHasFeature(XML_WITH_ISO8859X)) fprintf(stderr, "ISO8859X ");
- if (xmlHasFeature(XML_WITH_UNICODE)) fprintf(stderr, "Unicode ");
- if (xmlHasFeature(XML_WITH_REGEXP)) fprintf(stderr, "Regexps ");
- if (xmlHasFeature(XML_WITH_AUTOMATA)) fprintf(stderr, "Automata ");
- if (xmlHasFeature(XML_WITH_EXPR)) fprintf(stderr, "Expr ");
- if (xmlHasFeature(XML_WITH_SCHEMAS)) fprintf(stderr, "Schemas ");
- if (xmlHasFeature(XML_WITH_SCHEMATRON)) fprintf(stderr, "Schematron ");
- if (xmlHasFeature(XML_WITH_MODULES)) fprintf(stderr, "Modules ");
- if (xmlHasFeature(XML_WITH_DEBUG)) fprintf(stderr, "Debug ");
- if (xmlHasFeature(XML_WITH_ZLIB)) fprintf(stderr, "Zlib ");
- if (xmlHasFeature(XML_WITH_LZMA)) fprintf(stderr, "Lzma ");
- fprintf(stderr, "\n");
+ fprintf(ERR_STREAM, "%s: using libxml version %s\n", name, xmlParserVersion);
+ fprintf(ERR_STREAM, " compiled with: ");
+ if (xmlHasFeature(XML_WITH_THREAD)) fprintf(ERR_STREAM, "Threads ");
+ if (xmlHasFeature(XML_WITH_TREE)) fprintf(ERR_STREAM, "Tree ");
+ if (xmlHasFeature(XML_WITH_OUTPUT)) fprintf(ERR_STREAM, "Output ");
+ if (xmlHasFeature(XML_WITH_PUSH)) fprintf(ERR_STREAM, "Push ");
+ if (xmlHasFeature(XML_WITH_READER)) fprintf(ERR_STREAM, "Reader ");
+ if (xmlHasFeature(XML_WITH_PATTERN)) fprintf(ERR_STREAM, "Patterns ");
+ if (xmlHasFeature(XML_WITH_WRITER)) fprintf(ERR_STREAM, "Writer ");
+ if (xmlHasFeature(XML_WITH_SAX1)) fprintf(ERR_STREAM, "SAXv1 ");
+ if (xmlHasFeature(XML_WITH_FTP)) fprintf(ERR_STREAM, "FTP ");
+ if (xmlHasFeature(XML_WITH_HTTP)) fprintf(ERR_STREAM, "HTTP ");
+ if (xmlHasFeature(XML_WITH_VALID)) fprintf(ERR_STREAM, "DTDValid ");
+ if (xmlHasFeature(XML_WITH_HTML)) fprintf(ERR_STREAM, "HTML ");
+ if (xmlHasFeature(XML_WITH_LEGACY)) fprintf(ERR_STREAM, "Legacy ");
+ if (xmlHasFeature(XML_WITH_C14N)) fprintf(ERR_STREAM, "C14N ");
+ if (xmlHasFeature(XML_WITH_CATALOG)) fprintf(ERR_STREAM, "Catalog ");
+ if (xmlHasFeature(XML_WITH_XPATH)) fprintf(ERR_STREAM, "XPath ");
+ if (xmlHasFeature(XML_WITH_XPTR)) fprintf(ERR_STREAM, "XPointer ");
+ if (xmlHasFeature(XML_WITH_XINCLUDE)) fprintf(ERR_STREAM, "XInclude ");
+ if (xmlHasFeature(XML_WITH_ICONV)) fprintf(ERR_STREAM, "Iconv ");
+ if (xmlHasFeature(XML_WITH_ICU)) fprintf(ERR_STREAM, "ICU ");
+ if (xmlHasFeature(XML_WITH_ISO8859X)) fprintf(ERR_STREAM, "ISO8859X ");
+ if (xmlHasFeature(XML_WITH_UNICODE)) fprintf(ERR_STREAM, "Unicode ");
+ if (xmlHasFeature(XML_WITH_REGEXP)) fprintf(ERR_STREAM, "Regexps ");
+ if (xmlHasFeature(XML_WITH_AUTOMATA)) fprintf(ERR_STREAM, "Automata ");
+ if (xmlHasFeature(XML_WITH_EXPR)) fprintf(ERR_STREAM, "Expr ");
+ if (xmlHasFeature(XML_WITH_SCHEMAS)) fprintf(ERR_STREAM, "Schemas ");
+ if (xmlHasFeature(XML_WITH_SCHEMATRON)) fprintf(ERR_STREAM, "Schematron ");
+ if (xmlHasFeature(XML_WITH_MODULES)) fprintf(ERR_STREAM, "Modules ");
+ if (xmlHasFeature(XML_WITH_DEBUG)) fprintf(ERR_STREAM, "Debug ");
+ if (xmlHasFeature(XML_WITH_ZLIB)) fprintf(ERR_STREAM, "Zlib ");
+ if (xmlHasFeature(XML_WITH_LZMA)) fprintf(ERR_STREAM, "Lzma ");
+ fprintf(ERR_STREAM, "\n");
}
static void usage(FILE *f, const char *name) {
@@ -3124,11 +3126,11 @@
errno = 0;
val = strtoul(str, &strEnd, 10);
if (errno == EINVAL || *strEnd != 0) {
- fprintf(stderr, "%s: invalid integer: %s\n", ctxt, str);
+ fprintf(ERR_STREAM, "%s: invalid integer: %s\n", ctxt, str);
exit(XMLLINT_ERR_UNCLASS);
}
if (errno != 0 || val < min || val > max) {
- fprintf(stderr, "%s: integer out of range: %s\n", ctxt, str);
+ fprintf(ERR_STREAM, "%s: integer out of range: %s\n", ctxt, str);
exit(XMLLINT_ERR_UNCLASS);
}
@@ -3142,7 +3144,7 @@
int version = 0;
if (argc <= 1) {
- usage(stderr, argv[0]);
+ usage(ERR_STREAM, argv[0]);
return(XMLLINT_ERR_UNCLASS);
}
@@ -3155,7 +3157,7 @@
(!strcmp(argv[i], "--maxmem"))) {
i++;
if (i >= argc) {
- fprintf(stderr, "maxmem: missing integer value\n");
+ fprintf(ERR_STREAM, "maxmem: missing integer value\n");
return(XMLLINT_ERR_UNCLASS);
}
errno = 0;
@@ -3493,13 +3495,13 @@
(!strcmp(argv[i], "--max-ampl"))) {
i++;
if (i >= argc) {
- fprintf(stderr, "max-ampl: missing integer value\n");
+ fprintf(ERR_STREAM, "max-ampl: missing integer value\n");
return(XMLLINT_ERR_UNCLASS);
}
maxAmpl = parseInteger("max-ampl", argv[i], 1, UINT_MAX);
} else {
- fprintf(stderr, "Unknown option %s\n", argv[i]);
- usage(stderr, argv[0]);
+ fprintf(ERR_STREAM, "Unknown option %s\n", argv[i]);
+ usage(ERR_STREAM, argv[0]);
return(XMLLINT_ERR_UNCLASS);
}
}
@@ -3513,7 +3515,7 @@
if (catal != NULL) {
xmlLoadCatalogs(catal);
} else {
- fprintf(stderr, "Variable $SGML_CATALOG_FILES not set\n");
+ fprintf(ERR_STREAM, "Variable $SGML_CATALOG_FILES not set\n");
}
}
}
@@ -3536,14 +3538,14 @@
if ((noblanks != 0) || (format == 1))
options |= XML_PARSE_NOBLANKS;
if ((htmlout) && (!nowrap)) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"\n");
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"\t\"http://www.w3.org/TR/REC-html40/loose.dtd\">\n");
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"<html><head><title>%s output</title></head>\n",
argv[0]);
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"<body bgcolor=\"#ffffff\"><h1 align=\"center\">%s output</h1>\n",
argv[0]);
}
@@ -3568,7 +3570,7 @@
}
wxschematron = xmlSchematronParse(ctxt);
if (wxschematron == NULL) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Schematron schema %s failed to compile\n", schematron);
progresult = XMLLINT_ERR_SCHEMACOMP;
schematron = NULL;
@@ -3599,7 +3601,7 @@
}
relaxngschemas = xmlRelaxNGParse(ctxt);
if (relaxngschemas == NULL) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Relax-NG schema %s failed to compile\n", relaxng);
progresult = XMLLINT_ERR_SCHEMACOMP;
relaxng = NULL;
@@ -3625,7 +3627,7 @@
}
wxschemas = xmlSchemaParse(ctxt);
if (wxschemas == NULL) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"WXS schema %s failed to compile\n", schema);
progresult = XMLLINT_ERR_SCHEMACOMP;
schema = NULL;
@@ -3640,7 +3642,7 @@
if ((pattern != NULL) && (walker == 0)) {
patternc = xmlPatterncompile((const xmlChar *) pattern, NULL, 0, NULL);
if (patternc == NULL) {
- fprintf(stderr,
+ fprintf(ERR_STREAM,
"Pattern %s failed to compile\n", pattern);
progresult = XMLLINT_ERR_SCHEMAPAT;
pattern = NULL;
@@ -3772,10 +3774,10 @@
if (generate)
parseAndPrintFile(NULL, NULL);
if ((htmlout) && (!nowrap)) {
- fprintf(stderr, "</body></html>\n");
+ fprintf(ERR_STREAM, "</body></html>\n");
}
if ((files == 0) && (!generate) && (version == 0)) {
- usage(stderr, argv[0]);
+ usage(ERR_STREAM, argv[0]);
progresult = XMLLINT_ERR_UNCLASS;
}
#ifdef LIBXML_SCHEMATRON_ENABLED