summaryrefslogtreecommitdiffstats
path: root/Source/cmXMLParser.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-02-24 20:43:37 (GMT)
committerBrad King <brad.king@kitware.com>2009-02-24 20:43:37 (GMT)
commitd033f0d2d15ddc84b446da0012b809f6cba1597f (patch)
tree49d378d10f26d20109c1cf76d45933e9e7503a12 /Source/cmXMLParser.cxx
parent506e745c3744acdc9cb53f0cd71f6be306ce70a1 (diff)
downloadCMake-d033f0d2d15ddc84b446da0012b809f6cba1597f.zip
CMake-d033f0d2d15ddc84b446da0012b809f6cba1597f.tar.gz
CMake-d033f0d2d15ddc84b446da0012b809f6cba1597f.tar.bz2
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.
Diffstat (limited to 'Source/cmXMLParser.cxx')
-rw-r--r--Source/cmXMLParser.cxx15
1 files changed, 10 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;
+}