⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 error.c

📁 SIP 1.5.0源代码
💻 C
字号:
/* * error.c: module displaying/handling XML parser errors * * See Copyright for the status of this software. * * Daniel Veillard <Daniel.Veillard@w3.org> */#include "global.h"#ifdef WIN32#include "win32config.h"#else#include "config.h"#endif#include <stdio.h>#include <stdarg.h>#include <libxml/parser.h>/** * xmlParserPrintFileInfo: * @input:  an xmlParserInputPtr input *  * Displays the associated file and line informations for the current input */voidxmlParserPrintFileInfo(xmlParserInputPtr input) {    if (input != NULL) {	if (input->filename)	    fprintf(stderr, "%s:%d: ", input->filename,		    input->line);	else	    fprintf(stderr, "Entity: line %d: ", input->line);    }}/** * xmlParserPrintFileContext: * @input:  an xmlParserInputPtr input *  * Displays current context within the input content for error tracking */voidxmlParserPrintFileContext(xmlParserInputPtr input) {    const xmlChar *cur, *base;    int n;    if (input == NULL) return;    cur = input->cur;    base = input->base;    while ((cur > base) && ((*cur == '\n') || (*cur == '\r'))) {	cur--;    }    n = 0;    while ((n++ < 80) && (cur > base) && (*cur != '\n') && (*cur != '\r'))        cur--;    if ((*cur == '\n') || (*cur == '\r')) cur++;    base = cur;    n = 0;    while ((*cur != 0) && (*cur != '\n') && (*cur != '\r') && (n < 79)) {        fprintf(stderr, "%c", (unsigned char) *cur++);	n++;    }    fprintf(stderr, "\n");    cur = input->cur;    while ((*cur == '\n') || (*cur == '\r'))	cur--;    n = 0;    while ((cur != base) && (n++ < 80)) {        fprintf(stderr, " ");        base++;    }    fprintf(stderr,"^\n");}/** * xmlParserError: * @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. */voidxmlParserError(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    xmlParserInputPtr cur = NULL;    va_list args;    input = ctxt->input;    if ((input != NULL) && (input->filename == NULL) && (ctxt->inputNr > 1)) {	cur = input;        input = ctxt->inputTab[ctxt->inputNr - 2];    }            xmlParserPrintFileInfo(input);    fprintf(stderr, "error: ");    va_start(args, msg);    vfprintf(stderr, msg, args);    va_end(args);    xmlParserPrintFileContext(input);    if (cur != NULL) {        xmlParserPrintFileInfo(cur);	fprintf(stderr, "\n");	xmlParserPrintFileContext(cur);    }}/** * xmlParserWarning: * @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. */voidxmlParserWarning(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    xmlParserInputPtr cur = NULL;    va_list args;    input = ctxt->input;    if ((input != NULL) && (input->filename == NULL) && (ctxt->inputNr > 1)) {	cur = input;        input = ctxt->inputTab[ctxt->inputNr - 2];    }            xmlParserPrintFileInfo(input);            fprintf(stderr, "warning: ");    va_start(args, msg);    vfprintf(stderr, msg, args);    va_end(args);    xmlParserPrintFileContext(input);    if (cur != NULL) {        xmlParserPrintFileInfo(cur);	fprintf(stderr, "\n");	xmlParserPrintFileContext(cur);    }}/** * xmlParserValidityError: * @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. */voidxmlParserValidityError(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    va_list args;    input = ctxt->input;    if ((input->filename == NULL) && (ctxt->inputNr > 1))        input = ctxt->inputTab[ctxt->inputNr - 2];            xmlParserPrintFileInfo(input);    fprintf(stderr, "validity error: ");    va_start(args, msg);    vfprintf(stderr, msg, args);    va_end(args);    xmlParserPrintFileContext(input);}/** * xmlParserValidityWarning: * @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. */voidxmlParserValidityWarning(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    va_list args;    input = ctxt->input;    if ((input->filename == NULL) && (ctxt->inputNr > 1))        input = ctxt->inputTab[ctxt->inputNr - 2];    xmlParserPrintFileInfo(input);            fprintf(stderr, "validity warning: ");    va_start(args, msg);    vfprintf(stderr, msg, args);    va_end(args);    xmlParserPrintFileContext(input);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -