--- embedaddon/libxml2/error.c 2013/07/22 01:22:22 1.1.1.2 +++ embedaddon/libxml2/error.c 2014/06/15 19:53:28 1.1.1.3 @@ -33,7 +33,7 @@ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx AT \ while (size < 64000) { \ va_start(ap, msg); \ - chars = vsnprintf(str, size, msg, ap); \ + chars = vsnprintf(str, size, msg, ap); \ va_end(ap); \ if ((chars > -1) && (chars < size)) { \ if (prev_size == chars) { \ @@ -54,9 +54,9 @@ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx AT } /************************************************************************ - * * - * Handling of out of context errors * - * * + * * + * Handling of out of context errors * + * * ************************************************************************/ /** @@ -64,7 +64,7 @@ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx AT * @ctx: an error context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Default handler for out of context error messages. */ void XMLCDECL @@ -82,7 +82,7 @@ xmlGenericErrorDefaultFunc(void *ctx ATTRIBUTE_UNUSED, /** * initGenericErrorDefaultFunc: * @handler: the handler - * + * * Set or reset (if NULL) the default handler for generic errors * to the builtin error function. */ @@ -137,15 +137,15 @@ xmlSetStructuredErrorFunc(void *ctx, xmlStructuredErro } /************************************************************************ - * * - * Handling of parsing errors * - * * + * * + * Handling of parsing errors * + * * ************************************************************************/ /** * xmlParserPrintFileInfo: * @input: an xmlParserInputPtr input - * + * * Displays the associated file and line informations for the current input */ @@ -165,12 +165,12 @@ xmlParserPrintFileInfo(xmlParserInputPtr input) { /** * xmlParserPrintFileContext: * @input: an xmlParserInputPtr input - * + * * Displays current context within the input content for error tracking */ static void -xmlParserPrintFileContextInternal(xmlParserInputPtr input , +xmlParserPrintFileContextInternal(xmlParserInputPtr input , xmlGenericErrorFunc channel, void *data ) { const xmlChar *cur, *base; unsigned int n, col; /* GCC warns if signed, because compared with sizeof() */ @@ -186,8 +186,8 @@ xmlParserPrintFileContextInternal(xmlParserInputPtr in } n = 0; /* search backwards for beginning-of-line (to max buff size) */ - while ((n++ < (sizeof(content)-1)) && (cur > base) && - (*(cur) != '\n') && (*(cur) != '\r')) + while ((n++ < (sizeof(content)-1)) && (cur > base) && + (*(cur) != '\n') && (*(cur) != '\r')) cur--; if ((*(cur) == '\n') || (*(cur) == '\r')) cur++; /* calculate the error position in terms of the current position */ @@ -196,8 +196,8 @@ xmlParserPrintFileContextInternal(xmlParserInputPtr in n = 0; ctnt = content; /* copy selected text to our buffer */ - while ((*cur != 0) && (*(cur) != '\n') && - (*(cur) != '\r') && (n < sizeof(content)-1)) { + while ((*cur != 0) && (*(cur) != '\n') && + (*(cur) != '\r') && (n < sizeof(content)-1)) { *ctnt++ = *cur++; n++; } @@ -221,7 +221,7 @@ xmlParserPrintFileContextInternal(xmlParserInputPtr in /** * xmlParserPrintFileContext: * @input: an xmlParserInputPtr input - * + * * Displays current context within the input content for error tracking */ void @@ -292,7 +292,10 @@ xmlReportError(xmlErrorPtr err, xmlParserCtxtPtr ctxt, } else { if (file != NULL) channel(data, "%s:%d: ", file, line); - else if ((line != 0) && (domain == XML_FROM_PARSER)) + else if ((line != 0) && + ((domain == XML_FROM_PARSER) || (domain == XML_FROM_SCHEMASV)|| + (domain == XML_FROM_SCHEMASP)||(domain == XML_FROM_DTD) || + (domain == XML_FROM_RELAXNGP)||(domain == XML_FROM_RELAXNGV))) channel(data, "Entity: line %d: ", line); } if (name != NULL) { @@ -360,6 +363,15 @@ xmlReportError(xmlErrorPtr err, xmlParserCtxtPtr ctxt, case XML_FROM_I18N: channel(data, "encoding "); break; + case XML_FROM_SCHEMATRONV: + channel(data, "schematron "); + break; + case XML_FROM_BUFFER: + channel(data, "internal buffer "); + break; + case XML_FROM_URI: + channel(data, "URI "); + break; default: break; } @@ -429,7 +441,7 @@ xmlReportError(xmlErrorPtr err, xmlParserCtxtPtr ctxt, * @str2: extra string info * @str3: extra string info * @int1: extra int info - * @col: column number of the error or 0 if N/A + * @col: column number of the error or 0 if N/A * @msg: the message to display/transmit * @...: extra parameters for the message display * @@ -521,6 +533,8 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel, if ((node != NULL) && (node->type == XML_ELEMENT_NODE)) line = node->line; + if ((line == 0) || (line == 65535)) + line = xmlGetLineNo(node); } /* @@ -601,8 +615,11 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel, data = ctxt->userData; } else if (channel == NULL) { channel = xmlGenericError; - if (!data) + if (ctxt != NULL) { + data = ctxt; + } else { data = xmlGenericErrorContext; + } } if (channel == NULL) return; @@ -654,7 +671,7 @@ __xmlSimpleError(int domain, int code, xmlNodePtr node * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format an error messages, gives file, line, position and * extra parameters. */ @@ -697,7 +714,7 @@ xmlParserError(void *ctx, const char *msg, ...) * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format a warning messages, gives file, line, position and * extra parameters. */ @@ -718,7 +735,7 @@ xmlParserWarning(void *ctx, const char *msg, ...) } xmlParserPrintFileInfo(input); } - + xmlGenericError(xmlGenericErrorContext, "warning: "); XML_GET_VAR_STR(msg, str); xmlGenericError(xmlGenericErrorContext, "%s", str); @@ -736,9 +753,9 @@ xmlParserWarning(void *ctx, const char *msg, ...) } /************************************************************************ - * * - * Handling of validation errors * - * * + * * + * Handling of validation errors * + * * ************************************************************************/ /** @@ -746,7 +763,7 @@ xmlParserWarning(void *ctx, const char *msg, ...) * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format an validity error messages, gives file, * line, position and extra parameters. */ @@ -764,7 +781,7 @@ xmlParserValidityError(void *ctx, const char *msg, ... input = ctxt->input; if ((input->filename == NULL) && (ctxt->inputNr > 1)) input = ctxt->inputTab[ctxt->inputNr - 2]; - + if (had_info == 0) { xmlParserPrintFileInfo(input); } @@ -790,7 +807,7 @@ xmlParserValidityError(void *ctx, const char *msg, ... * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format a validity warning messages, gives file, line, * position and extra parameters. */ @@ -809,7 +826,7 @@ xmlParserValidityWarning(void *ctx, const char *msg, . xmlParserPrintFileInfo(input); } - + xmlGenericError(xmlGenericErrorContext, "validity warning: "); XML_GET_VAR_STR(msg, str); xmlGenericError(xmlGenericErrorContext, "%s", str);