patched to redirrect all "out of context" error messages to
a reconfigurable routine. The changes are:
* xmlerror.h : added the export of an error context type (void *)
an error handler type xmlGenericErrorFunc there is an interface
xmlSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
to reset the error handling routine and its argument
(by default it's equivalent to respectively fprintf and stderr.
* all the c files: all wild accesses to stderr or stdout within
the library have been replaced to calls to the handler.
Daniel
diff --git a/tree.c b/tree.c
index 3212eb1..5aaece9 100644
--- a/tree.c
+++ b/tree.c
@@ -30,6 +30,7 @@
#include <libxml/parser.h>
#include <libxml/entities.h>
#include <libxml/valid.h>
+#include <libxml/xmlerror.h>
static xmlChar xmlStringText[] = { 't', 'e', 'x', 't', 0 };
static xmlChar xmlStringComment[] = { 'c', 'o', 'm', 'm', 'e', 'n', 't', 0 };
@@ -104,7 +105,8 @@
if ((doc == NULL) || (doc->oldNs == NULL)) return;
if (doc->children == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlUpgradeOldNs: failed no root !\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlUpgradeOldNs: failed no root !\n");
#endif
return;
}
@@ -142,7 +144,8 @@
*/
cur = (xmlNsPtr) xmlMalloc(sizeof(xmlNs));
if (cur == NULL) {
- fprintf(stderr, "xmlNewNs : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewNs : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNs));
@@ -209,7 +212,8 @@
*/
cur = (xmlNsPtr) xmlMalloc(sizeof(xmlNs));
if (cur == NULL) {
- fprintf(stderr, "xmlNewGlobalNs : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewGlobalNs : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNs));
@@ -248,7 +252,8 @@
xmlSetNs(xmlNodePtr node, xmlNsPtr ns) {
if (node == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlSetNs: node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlSetNs: node == NULL\n");
#endif
return;
}
@@ -265,7 +270,8 @@
xmlFreeNs(xmlNsPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreeNs : ns == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreeNs : ns == NULL\n");
#endif
return;
}
@@ -286,7 +292,8 @@
xmlNsPtr next;
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreeNsList : ns == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreeNsList : ns == NULL\n");
#endif
return;
}
@@ -316,7 +323,8 @@
if ((doc != NULL) && (doc->extSubset != NULL)) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewDtd(%s): document %s already have a DTD %s\n",
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewDtd(%s): document %s already have a DTD %s\n",
/* !!! */ (char *) name, doc->name,
/* !!! */ (char *)doc->extSubset->name);
#endif
@@ -328,7 +336,8 @@
*/
cur = (xmlDtdPtr) xmlMalloc(sizeof(xmlDtd));
if (cur == NULL) {
- fprintf(stderr, "xmlNewDtd : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewDtd : malloc failed\n");
return(NULL);
}
memset(cur, 0 , sizeof(xmlDtd));
@@ -387,7 +396,8 @@
if ((doc != NULL) && (xmlGetIntSubset(doc) != NULL)) {
#ifdef DEBUG_TREE
- fprintf(stderr,
+ xmlGenericError(xmlGenericErrorContext,
+
"xmlCreateIntSubset(): document %s already have an internal subset\n",
doc->name);
#endif
@@ -399,7 +409,8 @@
*/
cur = (xmlDtdPtr) xmlMalloc(sizeof(xmlDtd));
if (cur == NULL) {
- fprintf(stderr, "xmlNewDtd : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewDtd : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlDtd));
@@ -447,7 +458,8 @@
xmlFreeDtd(xmlDtdPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreeDtd : DTD == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreeDtd : DTD == NULL\n");
#endif
return;
}
@@ -505,7 +517,8 @@
*/
cur = (xmlDocPtr) xmlMalloc(sizeof(xmlDoc));
if (cur == NULL) {
- fprintf(stderr, "xmlNewDoc : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewDoc : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlDoc));
@@ -529,7 +542,8 @@
xmlFreeDoc(xmlDocPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreeDoc : document == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreeDoc : document == NULL\n");
#endif
return;
}
@@ -597,7 +611,7 @@
while ((*cur != 0) && (cur - value < len) && (*cur != ';')) cur++;
if ((*cur == 0) || (cur - value >= len)) {
#ifdef DEBUG_TREE
- fprintf(stderr,
+ xmlGenericError(xmlGenericErrorContext,
"xmlStringLenGetNodeList: unterminated entity %30s\n", q);
#endif
return(ret);
@@ -710,7 +724,7 @@
while ((*cur != 0) && (*cur != ';')) cur++;
if (*cur == 0) {
#ifdef DEBUG_TREE
- fprintf(stderr,
+ xmlGenericError(xmlGenericErrorContext,
"xmlStringGetNodeList: unterminated entity %30s\n", q);
#endif
return(ret);
@@ -838,7 +852,8 @@
}
#if 0
else {
- fprintf(stderr, "xmlGetNodeListString : invalide node type %d\n",
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGetNodeListString : invalide node type %d\n",
node->type);
}
#endif
@@ -912,7 +927,8 @@
}
#if 0
else {
- fprintf(stderr, "xmlGetNodeListString : invalide node type %d\n",
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGetNodeListString : invalide node type %d\n",
node->type);
}
#endif
@@ -936,7 +952,8 @@
if (name == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewProp : name == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewProp : name == NULL\n");
#endif
return(NULL);
}
@@ -946,7 +963,8 @@
*/
cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr));
if (cur == NULL) {
- fprintf(stderr, "xmlNewProp : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewProp : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlAttr));
@@ -1004,7 +1022,8 @@
if (name == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewProp : name == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewProp : name == NULL\n");
#endif
return(NULL);
}
@@ -1014,7 +1033,8 @@
*/
cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr));
if (cur == NULL) {
- fprintf(stderr, "xmlNewProp : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewProp : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlAttr));
@@ -1073,7 +1093,8 @@
if (name == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewProp : name == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewProp : name == NULL\n");
#endif
return(NULL);
}
@@ -1083,7 +1104,8 @@
*/
cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr));
if (cur == NULL) {
- fprintf(stderr, "xmlNewProp : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewProp : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlAttr));
@@ -1107,7 +1129,8 @@
xmlAttrPtr next;
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreePropList : property == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreePropList : property == NULL\n");
#endif
return;
}
@@ -1128,7 +1151,8 @@
xmlFreeProp(xmlAttrPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreeProp : property == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreeProp : property == NULL\n");
#endif
return;
}
@@ -1156,13 +1180,15 @@
xmlAttrPtr tmp;
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlRemoveProp : cur == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlRemoveProp : cur == NULL\n");
#endif
return(-1);
}
if (cur->parent == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlRemoveProp : cur->parent == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlRemoveProp : cur->parent == NULL\n");
#endif
return(-1);
}
@@ -1183,7 +1209,8 @@
tmp = tmp->next;
}
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlRemoveProp : attribute not owned by its node\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlRemoveProp : attribute not owned by its node\n");
#endif
return(-1);
}
@@ -1202,7 +1229,8 @@
if (name == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewPI : name == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewPI : name == NULL\n");
#endif
return(NULL);
}
@@ -1212,7 +1240,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewPI : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewPI : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1247,7 +1276,8 @@
if (name == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewNode : name == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewNode : name == NULL\n");
#endif
return(NULL);
}
@@ -1257,7 +1287,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewNode : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewNode : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1345,7 +1376,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewDocFragment : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewDocFragment : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1371,7 +1403,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewText : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewText : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1411,14 +1444,16 @@
if (parent == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewTextChild : parent == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewTextChild : parent == NULL\n");
#endif
return(NULL);
}
if (name == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewTextChild : name == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewTextChild : name == NULL\n");
#endif
return(NULL);
}
@@ -1468,7 +1503,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewText : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewText : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1506,7 +1542,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewText : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewText : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1579,7 +1616,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewText : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewText : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1634,7 +1672,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewComment : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewComment : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1672,7 +1711,8 @@
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
- fprintf(stderr, "xmlNewCDataBlock : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewCDataBlock : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xmlNode));
@@ -1733,14 +1773,16 @@
if (parent == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewChild : parent == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewChild : parent == NULL\n");
#endif
return(NULL);
}
if (name == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewChild : name == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewChild : name == NULL\n");
#endif
return(NULL);
}
@@ -1789,13 +1831,15 @@
xmlAddNextSibling(xmlNodePtr cur, xmlNodePtr elem) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddNextSibling : cur == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddNextSibling : cur == NULL\n");
#endif
return(NULL);
}
if (elem == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddNextSibling : elem == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddNextSibling : elem == NULL\n");
#endif
return(NULL);
}
@@ -1857,13 +1901,15 @@
xmlAddPrevSibling(xmlNodePtr cur, xmlNodePtr elem) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddPrevSibling : cur == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddPrevSibling : cur == NULL\n");
#endif
return(NULL);
}
if (elem == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddPrevSibling : elem == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddPrevSibling : elem == NULL\n");
#endif
return(NULL);
}
@@ -1927,14 +1973,16 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddSibling : cur == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddSibling : cur == NULL\n");
#endif
return(NULL);
}
if (elem == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddSibling : elem == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddSibling : elem == NULL\n");
#endif
return(NULL);
}
@@ -1994,14 +2042,16 @@
if (parent == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddChild : parent == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddChild : parent == NULL\n");
#endif
return(NULL);
}
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddChild : child == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddChild : child == NULL\n");
#endif
return(NULL);
}
@@ -2009,7 +2059,8 @@
if ((cur->doc != NULL) && (parent->doc != NULL) &&
(cur->doc != parent->doc)) {
#ifdef DEBUG_TREE
- fprintf(stderr, "Elements moved to a different document\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "Elements moved to a different document\n");
#endif
}
@@ -2071,14 +2122,16 @@
if (parent == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddChild : parent == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddChild : parent == NULL\n");
#endif
return(NULL);
}
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAddChild : child == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAddChild : child == NULL\n");
#endif
return(NULL);
}
@@ -2086,7 +2139,8 @@
if ((cur->doc != NULL) && (parent->doc != NULL) &&
(cur->doc != parent->doc)) {
#ifdef DEBUG_TREE
- fprintf(stderr, "Elements moved to a different document\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "Elements moved to a different document\n");
#endif
}
@@ -2175,7 +2229,8 @@
xmlGetLastChild(xmlNodePtr parent) {
if (parent == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlGetLastChild : parent == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGetLastChild : parent == NULL\n");
#endif
return(NULL);
}
@@ -2194,7 +2249,8 @@
xmlNodePtr next;
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreeNodeList : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreeNodeList : node == NULL\n");
#endif
return;
}
@@ -2216,7 +2272,8 @@
xmlFreeNode(xmlNodePtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlFreeNode : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlFreeNode : node == NULL\n");
#endif
return;
}
@@ -2252,7 +2309,8 @@
xmlUnlinkNode(xmlNodePtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlUnlinkNode : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlUnlinkNode : node == NULL\n");
#endif
return;
}
@@ -2283,7 +2341,8 @@
xmlReplaceNode(xmlNodePtr old, xmlNodePtr cur) {
if (old == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlReplaceNode : old == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReplaceNode : old == NULL\n");
#endif
return(NULL);
}
@@ -2339,7 +2398,8 @@
break;
default:
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlCopyNamespace: unknown type %d\n", cur->type);
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlCopyNamespace: unknown type %d\n", cur->type);
#endif
return(NULL);
}
@@ -2465,7 +2525,8 @@
*/
ret = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (ret == NULL) {
- fprintf(stderr, "xmlStaticCopyNode : malloc failed\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlStaticCopyNode : malloc failed\n");
return(NULL);
}
memset(ret, 0, sizeof(xmlNode));
@@ -3087,7 +3148,8 @@
xmlNodeSetContent(xmlNodePtr cur, const xmlChar *content) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeSetContent : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeSetContent : node == NULL\n");
#endif
return;
}
@@ -3170,7 +3232,8 @@
xmlNodeSetContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeSetContentLen : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeSetContentLen : node == NULL\n");
#endif
return;
}
@@ -3251,7 +3314,8 @@
xmlNodeAddContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeAddContentLen : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeAddContentLen : node == NULL\n");
#endif
return;
}
@@ -3334,7 +3398,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeAddContent : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeAddContent : node == NULL\n");
#endif
return;
}
@@ -3391,7 +3456,8 @@
if (ret == NULL) {
ret = (xmlNsPtr *) xmlMalloc((maxns + 1) * sizeof(xmlNsPtr));
if (ret == NULL) {
- fprintf(stderr, "xmlGetNsList : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGetNsList : out of memory!\n");
return(NULL);
}
ret[nbns] = NULL;
@@ -3406,7 +3472,8 @@
ret = (xmlNsPtr *) xmlRealloc(ret,
(maxns + 1) * sizeof(xmlNsPtr));
if (ret == NULL) {
- fprintf(stderr, "xmlGetNsList : realloc failed!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGetNsList : realloc failed!\n");
return(NULL);
}
}
@@ -3534,13 +3601,15 @@
if (tree == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewReconciliedNs : tree == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewReconciliedNs : tree == NULL\n");
#endif
return(NULL);
}
if (ns == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNewReconciliedNs : ns == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewReconciliedNs : ns == NULL\n");
#endif
return(NULL);
}
@@ -3609,13 +3678,15 @@
oldNs = (xmlNsPtr *) xmlMalloc(sizeCache *
sizeof(xmlNsPtr));
if (oldNs == NULL) {
- fprintf(stderr, "xmlReconciliateNs : memory pbm\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReconciliateNs : memory pbm\n");
return(-1);
}
newNs = (xmlNsPtr *) xmlMalloc(sizeCache *
sizeof(xmlNsPtr));
if (newNs == NULL) {
- fprintf(stderr, "xmlReconciliateNs : memory pbm\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReconciliateNs : memory pbm\n");
xmlFree(oldNs);
return(-1);
}
@@ -3640,14 +3711,16 @@
oldNs = (xmlNsPtr *) xmlRealloc(oldNs, sizeCache *
sizeof(xmlNsPtr));
if (oldNs == NULL) {
- fprintf(stderr, "xmlReconciliateNs : memory pbm\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReconciliateNs : memory pbm\n");
xmlFree(newNs);
return(-1);
}
newNs = (xmlNsPtr *) xmlRealloc(newNs, sizeCache *
sizeof(xmlNsPtr));
if (newNs == NULL) {
- fprintf(stderr, "xmlReconciliateNs : memory pbm\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReconciliateNs : memory pbm\n");
xmlFree(oldNs);
return(-1);
}
@@ -3672,13 +3745,15 @@
oldNs = (xmlNsPtr *) xmlMalloc(sizeCache *
sizeof(xmlNsPtr));
if (oldNs == NULL) {
- fprintf(stderr, "xmlReconciliateNs : memory pbm\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReconciliateNs : memory pbm\n");
return(-1);
}
newNs = (xmlNsPtr *) xmlMalloc(sizeCache *
sizeof(xmlNsPtr));
if (newNs == NULL) {
- fprintf(stderr, "xmlReconciliateNs : memory pbm\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReconciliateNs : memory pbm\n");
xmlFree(oldNs);
return(-1);
}
@@ -3703,7 +3778,7 @@
oldNs = (xmlNsPtr *) xmlRealloc(oldNs, sizeCache *
sizeof(xmlNsPtr));
if (oldNs == NULL) {
- fprintf(stderr,
+ xmlGenericError(xmlGenericErrorContext,
"xmlReconciliateNs : memory pbm\n");
xmlFree(newNs);
return(-1);
@@ -3711,7 +3786,7 @@
newNs = (xmlNsPtr *) xmlRealloc(newNs, sizeCache *
sizeof(xmlNsPtr));
if (newNs == NULL) {
- fprintf(stderr,
+ xmlGenericError(xmlGenericErrorContext,
"xmlReconciliateNs : memory pbm\n");
xmlFree(oldNs);
return(-1);
@@ -4025,7 +4100,8 @@
if ((node->type != XML_TEXT_NODE) &&
(node->type != XML_CDATA_SECTION_NODE)) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlTextConcat: node is not text nor cdata\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlTextConcat: node is not text nor cdata\n");
#endif
return;
}
@@ -4056,7 +4132,8 @@
ret = (xmlBufferPtr) xmlMalloc(sizeof(xmlBuffer));
if (ret == NULL) {
- fprintf(stderr, "xmlBufferCreate : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferCreate : out of memory!\n");
return(NULL);
}
ret->use = 0;
@@ -4064,7 +4141,8 @@
ret->alloc = xmlBufferAllocScheme;
ret->content = (xmlChar *) xmlMalloc(ret->size * sizeof(xmlChar));
if (ret->content == NULL) {
- fprintf(stderr, "xmlBufferCreate : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferCreate : out of memory!\n");
xmlFree(ret);
return(NULL);
}
@@ -4085,7 +4163,8 @@
ret = (xmlBufferPtr) xmlMalloc(sizeof(xmlBuffer));
if (ret == NULL) {
- fprintf(stderr, "xmlBufferCreate : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferCreate : out of memory!\n");
return(NULL);
}
ret->use = 0;
@@ -4094,7 +4173,8 @@
if (ret->size){
ret->content = (xmlChar *) xmlMalloc(ret->size * sizeof(xmlChar));
if (ret->content == NULL) {
- fprintf(stderr, "xmlBufferCreate : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferCreate : out of memory!\n");
xmlFree(ret);
return(NULL);
}
@@ -4116,7 +4196,8 @@
xmlBufferAllocationScheme scheme) {
if (buf == NULL) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferSetAllocationScheme: buf == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferSetAllocationScheme: buf == NULL\n");
#endif
return;
}
@@ -4134,7 +4215,8 @@
xmlBufferFree(xmlBufferPtr buf) {
if (buf == NULL) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferFree: buf == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferFree: buf == NULL\n");
#endif
return;
}
@@ -4223,13 +4305,15 @@
if (buf == NULL) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferDump: buf == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferDump: buf == NULL\n");
#endif
return(0);
}
if (buf->content == NULL) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferDump: buf->content == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferDump: buf->content == NULL\n");
#endif
return(0);
}
@@ -4311,7 +4395,8 @@
rebuf = (xmlChar *) xmlRealloc(buf->content,
newSize * sizeof(xmlChar));
if (rebuf == NULL) {
- fprintf(stderr, "xmlBufferAdd : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAdd : out of memory!\n");
return 0;
}
buf->content = rebuf;
@@ -4335,13 +4420,15 @@
if (str == NULL) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferAdd: str == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAdd: str == NULL\n");
#endif
return;
}
if (len < -1) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferAdd: len < 0\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAdd: len < 0\n");
#endif
return;
}
@@ -4355,7 +4442,8 @@
needSize = buf->use + len + 2;
if (needSize > buf->size){
if (!xmlBufferResize(buf, needSize)){
- fprintf(stderr, "xmlBufferAdd : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAdd : out of memory!\n");
return;
}
}
@@ -4380,13 +4468,15 @@
if (str == NULL) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferAdd: str == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAdd: str == NULL\n");
#endif
return;
}
if (len < -1) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferAdd: len < 0\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAdd: len < 0\n");
#endif
return;
}
@@ -4400,7 +4490,8 @@
needSize = buf->use + len + 2;
if (needSize > buf->size){
if (!xmlBufferResize(buf, needSize)){
- fprintf(stderr, "xmlBufferAddHead : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAddHead : out of memory!\n");
return;
}
}
@@ -4437,14 +4528,16 @@
if (str == NULL) {
#ifdef DEBUG_BUFFER
- fprintf(stderr, "xmlBufferAdd: str == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferAdd: str == NULL\n");
#endif
return;
}
for (cur = str;*cur != 0;cur++) {
if (buf->use + 10 >= buf->size) {
if (!xmlBufferResize(buf, buf->use+10)){
- fprintf(stderr, "xmlBufferCCat : out of memory!\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlBufferCCat : out of memory!\n");
return;
}
}
@@ -4493,7 +4586,7 @@
if (xmlStrchr(string, '"')) {
if (xmlStrchr(string, '\'')) {
#ifdef DEBUG_BUFFER
- fprintf(stderr,
+ xmlGenericError(xmlGenericErrorContext,
"xmlBufferWriteQuotedString: string contains quote and double-quotes !\n");
#endif
}
@@ -4534,7 +4627,8 @@
xmlGlobalNsDump(xmlBufferPtr buf, xmlNsPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlGlobalNsDump : Ns == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGlobalNsDump : Ns == NULL\n");
#endif
return;
}
@@ -4579,7 +4673,8 @@
xmlNsDump(xmlBufferPtr buf, xmlNsPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNsDump : Ns == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNsDump : Ns == NULL\n");
#endif
return;
}
@@ -4622,7 +4717,8 @@
xmlDtdDump(xmlBufferPtr buf, xmlDtdPtr dtd) {
if (dtd == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlDtdDump : no internal subset\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlDtdDump : no internal subset\n");
#endif
return;
}
@@ -4671,7 +4767,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAttrDump : property == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAttrDump : property == NULL\n");
#endif
return;
}
@@ -4703,7 +4800,8 @@
xmlAttrListDump(xmlBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAttrListDump : property == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAttrListDump : property == NULL\n");
#endif
return;
}
@@ -4732,7 +4830,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeListDump : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeListDump : node == NULL\n");
#endif
return;
}
@@ -4767,7 +4866,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeDump : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeDump : node == NULL\n");
#endif
return;
}
@@ -4929,13 +5029,15 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlElemDump : cur == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlElemDump : cur == NULL\n");
#endif
return;
}
if (doc == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlElemDump : doc == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlElemDump : doc == NULL\n");
#endif
}
buf = xmlBufferCreate();
@@ -4945,7 +5047,8 @@
#ifdef LIBXML_HTML_ENABLED
htmlNodeDump(buf, doc, cur);
#else
- printf("HTML support not compiled in\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "HTML support not compiled in\n");
#endif /* LIBXML_HTML_ENABLED */
} else
xmlNodeDump(buf, doc, cur, 0, 1);
@@ -5020,7 +5123,8 @@
xmlGlobalNsDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlGlobalNsDump : Ns == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGlobalNsDump : Ns == NULL\n");
#endif
return;
}
@@ -5065,7 +5169,8 @@
xmlNsDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNsDump : Ns == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNsDump : Ns == NULL\n");
#endif
return;
}
@@ -5109,7 +5214,8 @@
xmlDtdDumpOutput(xmlOutputBufferPtr buf, xmlDtdPtr dtd, const char *encoding) {
if (dtd == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlDtdDump : no internal subset\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlDtdDump : no internal subset\n");
#endif
return;
}
@@ -5160,7 +5266,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAttrDump : property == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAttrDump : property == NULL\n");
#endif
return;
}
@@ -5194,7 +5301,8 @@
xmlAttrPtr cur, const char *encoding) {
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlAttrListDump : property == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlAttrListDump : property == NULL\n");
#endif
return;
}
@@ -5224,7 +5332,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeListDump : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeListDump : node == NULL\n");
#endif
return;
}
@@ -5260,7 +5369,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlNodeDump : node == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNodeDump : node == NULL\n");
#endif
return;
}
@@ -5495,7 +5605,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlDocDumpMemory : document == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlDocDumpMemory : document == NULL\n");
#endif
*mem = NULL;
*size = 0;
@@ -5585,7 +5696,8 @@
if (cur == NULL) {
#ifdef DEBUG_TREE
- fprintf(stderr, "xmlDocDump : document == NULL\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlDocDump : document == NULL\n");
#endif
return(-1);
}
@@ -5597,7 +5709,8 @@
enc = xmlParseCharEncoding(encoding);
if (cur->charset != XML_CHAR_ENCODING_UTF8) {
- fprintf(stderr, "xmlDocDump: document not in UTF8\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlDocDump: document not in UTF8\n");
return(-1);
}
if (enc != XML_CHAR_ENCODING_UTF8) {
@@ -5657,7 +5770,8 @@
enc = xmlParseCharEncoding(encoding);
if (cur->charset != XML_CHAR_ENCODING_UTF8) {
- fprintf(stderr, "xmlSaveFileEnc: document not in UTF8\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlSaveFileEnc: document not in UTF8\n");
return(-1);
}
if (enc != XML_CHAR_ENCODING_UTF8) {
@@ -5713,7 +5827,8 @@
enc = xmlParseCharEncoding(encoding);
if (cur->charset != XML_CHAR_ENCODING_UTF8) {
- fprintf(stderr, "xmlSaveFile: document not in UTF8\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlSaveFile: document not in UTF8\n");
return(-1);
}
if (enc != XML_CHAR_ENCODING_UTF8) {