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()
|
||||
{
|
||||
std::cerr << "Error parsing XML in stream at line "
|
||||
<< XML_GetCurrentLineNumber(static_cast<XML_Parser>(this->Parser))
|
||||
<< ": "
|
||||
<< XML_ErrorString(XML_GetErrorCode(
|
||||
static_cast<XML_Parser>(this->Parser))) << std::endl;
|
||||
XML_Parser* parser = static_cast<XML_Parser*>(this->Parser);
|
||||
this->ReportError(XML_GetCurrentLineNumber(parser),
|
||||
XML_GetCurrentColumnNumber(parser),
|
||||
XML_ErrorString(XML_GetErrorCode(parser)));
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
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.
|
||||
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
|
||||
// routine.
|
||||
static int IsSpace(char c);
|
||||
|
|
Loading…
Reference in New Issue