mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user