summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmXMLParser.cxx15
-rw-r--r--Source/cmXMLParser.h3
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);