Lines 459-466
__xmlRaiseError(xmlStructuredErrorFunc schannel,
Link Here
|
459 |
(domain == XML_FROM_IO) || (domain == XML_FROM_VALID)) { |
459 |
(domain == XML_FROM_IO) || (domain == XML_FROM_VALID)) { |
460 |
ctxt = (xmlParserCtxtPtr) ctx; |
460 |
ctxt = (xmlParserCtxtPtr) ctx; |
461 |
if ((schannel == NULL) && (ctxt != NULL) && (ctxt->sax != NULL) && |
461 |
if ((schannel == NULL) && (ctxt != NULL) && (ctxt->sax != NULL) && |
462 |
(ctxt->sax->initialized == XML_SAX2_MAGIC)) |
462 |
(ctxt->sax->initialized == XML_SAX2_MAGIC)) { |
463 |
schannel = ctxt->sax->serror; |
463 |
schannel = ctxt->sax->serror; |
|
|
464 |
if (schannel) |
465 |
data = ctxt->userData; |
466 |
} |
464 |
} |
467 |
} |
465 |
/* |
468 |
/* |
466 |
* Check if structured error handler set |
469 |
* Check if structured error handler set |
Lines 473-486
__xmlRaiseError(xmlStructuredErrorFunc schannel,
Link Here
|
473 |
if (schannel != NULL) |
476 |
if (schannel != NULL) |
474 |
data = xmlStructuredErrorContext; |
477 |
data = xmlStructuredErrorContext; |
475 |
} |
478 |
} |
476 |
if ((domain == XML_FROM_VALID) && |
|
|
477 |
((channel == xmlParserValidityError) || |
478 |
(channel == xmlParserValidityWarning))) { |
479 |
ctxt = (xmlParserCtxtPtr) ctx; |
480 |
if ((schannel == NULL) && (ctxt != NULL) && (ctxt->sax != NULL) && |
481 |
(ctxt->sax->initialized == XML_SAX2_MAGIC)) |
482 |
schannel = ctxt->sax->serror; |
483 |
} |
484 |
if (code == XML_ERR_OK) |
479 |
if (code == XML_ERR_OK) |
485 |
return; |
480 |
return; |
486 |
/* |
481 |
/* |
Lines 589-594
__xmlRaiseError(xmlStructuredErrorFunc schannel,
Link Here
|
589 |
if (to != &xmlLastError) |
584 |
if (to != &xmlLastError) |
590 |
xmlCopyError(to,&xmlLastError); |
585 |
xmlCopyError(to,&xmlLastError); |
591 |
|
586 |
|
|
|
587 |
if (schannel != NULL) { |
588 |
schannel(data, to); |
589 |
return; |
590 |
} |
591 |
|
592 |
/* |
592 |
/* |
593 |
* Find the callback channel if channel param is NULL |
593 |
* Find the callback channel if channel param is NULL |
594 |
*/ |
594 |
*/ |
Lines 600-618
__xmlRaiseError(xmlStructuredErrorFunc schannel,
Link Here
|
600 |
channel = ctxt->sax->error; |
600 |
channel = ctxt->sax->error; |
601 |
data = ctxt->userData; |
601 |
data = ctxt->userData; |
602 |
} else if (channel == NULL) { |
602 |
} else if (channel == NULL) { |
603 |
if ((schannel == NULL) && (xmlStructuredError != NULL)) { |
603 |
channel = xmlGenericError; |
604 |
schannel = xmlStructuredError; |
604 |
if (!data) |
605 |
data = xmlStructuredErrorContext; |
605 |
data = xmlGenericErrorContext; |
606 |
} else { |
|
|
607 |
channel = xmlGenericError; |
608 |
if (!data) { |
609 |
data = xmlGenericErrorContext; |
610 |
} |
611 |
} |
612 |
} |
613 |
if (schannel != NULL) { |
614 |
schannel(data, to); |
615 |
return; |
616 |
} |
606 |
} |
617 |
if (channel == NULL) |
607 |
if (channel == NULL) |
618 |
return; |
608 |
return; |