diff --git a/ChangeLog b/ChangeLog index a849fc82..29c20ec9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jul 25 14:02:24 PDT 2004 William Brack + + * error.c: fixed to assure user data param is set correctly + when user structured error handler is called (bug 144823) + Thu Jul 22 10:14:48 PDT 2004 William Brack * xmlreader.c: fixed problem with reader state after diff --git a/error.c b/error.c index 05cc5b33..2e903dc4 100644 --- a/error.c +++ b/error.c @@ -457,8 +457,17 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel, (ctxt->sax->initialized == XML_SAX2_MAGIC)) schannel = ctxt->sax->serror; } - if (schannel == NULL) + /* + * Check if structured error handler set + */ + if (schannel == NULL) { schannel = xmlStructuredError; + /* + * if user has defined handler, change data ptr to user's choice + */ + if (schannel != NULL) + data = xmlGenericErrorContext; + } if ((domain == XML_FROM_VALID) && ((channel == xmlParserValidityError) || (channel == xmlParserValidityWarning))) { @@ -541,7 +550,7 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel, xmlCopyError(to,&xmlLastError); /* - * Find the callback channel. + * Find the callback channel if channel param is NULL */ if ((ctxt != NULL) && (channel == NULL) && (xmlStructuredError == NULL)) { if (level == XML_ERR_WARNING)