ENH: Allow cmXMLParser subclasses to report errors
This tells cmXMLParser to report error messages through virtual method cmXMLParser::ReportError so that subclasses can override the default report.
This commit is contained in:
parent
506e745c37
commit
d033f0d2d1
@ -211,10 +211,15 @@ void cmXMLParserCharacterDataHandler(void* parser, const char* data,
|
|||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void cmXMLParser::ReportXmlParseError()
|
void cmXMLParser::ReportXmlParseError()
|
||||||
{
|
{
|
||||||
std::cerr << "Error parsing XML in stream at line "
|
XML_Parser* parser = static_cast<XML_Parser*>(this->Parser);
|
||||||
<< XML_GetCurrentLineNumber(static_cast<XML_Parser>(this->Parser))
|
this->ReportError(XML_GetCurrentLineNumber(parser),
|
||||||
<< ": "
|
XML_GetCurrentColumnNumber(parser),
|
||||||
<< XML_ErrorString(XML_GetErrorCode(
|
XML_ErrorString(XML_GetErrorCode(parser)));
|
||||||
static_cast<XML_Parser>(this->Parser))) << std::endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmXMLParser::ReportError(int line, int, const char* msg)
|
||||||
|
{
|
||||||
|
std::cerr << "Error parsing XML in stream at line "
|
||||||
|
<< line << ": " << msg << std::endl;
|
||||||
|
}
|
||||||
|
@ -91,6 +91,9 @@ protected:
|
|||||||
//! Called by Parse to report an XML syntax error.
|
//! Called by Parse to report an XML syntax error.
|
||||||
virtual void ReportXmlParseError();
|
virtual void ReportXmlParseError();
|
||||||
|
|
||||||
|
/** Called by ReportXmlParseError with basic error info. */
|
||||||
|
virtual void ReportError(int line, int column, const char* msg);
|
||||||
|
|
||||||
//! Utility for convenience of subclasses. Wraps isspace C library
|
//! Utility for convenience of subclasses. Wraps isspace C library
|
||||||
// routine.
|
// routine.
|
||||||
static int IsSpace(char c);
|
static int IsSpace(char c);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user