diff options
-rw-r--r-- | Source/cmXMLParser.cxx | 15 | ||||
-rw-r--r-- | Source/cmXMLParser.h | 3 |
2 files changed, 13 insertions, 5 deletions
diff --git a/Source/cmXMLParser.cxx b/Source/cmXMLParser.cxx index 7ef6d44..09cc384 100644 --- a/Source/cmXMLParser.cxx +++ b/Source/cmXMLParser.cxx @@ -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; +} diff --git a/Source/cmXMLParser.h b/Source/cmXMLParser.h index 3580e8c..68def9e 100644 --- a/Source/cmXMLParser.h +++ b/Source/cmXMLParser.h @@ -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); |