From 657c22d23b0de3f37d88d26b13499a765d6eb130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 16 Jan 2011 17:18:09 +0100 Subject: [PATCH] cppcheck: output errorlist to stdout --- cli/cppcheckexecutor.cpp | 10 +++++++++- cli/cppcheckexecutor.h | 5 +++++ lib/cppcheck.cpp | 3 --- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp index ef9277d64..4885357e6 100644 --- a/cli/cppcheckexecutor.cpp +++ b/cli/cppcheckexecutor.cpp @@ -29,6 +29,7 @@ CppCheckExecutor::CppCheckExecutor() { time1 = 0; + errorlist = false; } CppCheckExecutor::~CppCheckExecutor() @@ -52,7 +53,10 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c if (parser.GetShowErrorMessages()) { + errorlist = true; + std::cout << ErrorLogger::ErrorMessage::getXMLHeader(_settings._xml_version); cppcheck->getErrorMessages(); + std::cout << ErrorLogger::ErrorMessage::getXMLFooter() << std::endl; std::exit(0); } } @@ -199,7 +203,11 @@ void CppCheckExecutor::reportStatus(unsigned int index, unsigned int max) void CppCheckExecutor::reportErr(const ErrorLogger::ErrorMessage &msg) { - if (_settings._xml) + if (errorlist) + { + reportOut(msg.toXML(false, _settings._xml_version)); + } + else if (_settings._xml) { reportErr(msg.toXML(_settings._verbose, _settings._xml_version)); } diff --git a/cli/cppcheckexecutor.h b/cli/cppcheckexecutor.h index b1cf6d48e..339d16959 100644 --- a/cli/cppcheckexecutor.h +++ b/cli/cppcheckexecutor.h @@ -102,6 +102,11 @@ private: * Report progress time */ std::time_t time1; + + /** + * Has --errorlist been given? + */ + bool errorlist; }; #endif // CPPCHECKEXECUTOR_H diff --git a/lib/cppcheck.cpp b/lib/cppcheck.cpp index c2711bd60..471887fb1 100644 --- a/lib/cppcheck.cpp +++ b/lib/cppcheck.cpp @@ -440,7 +440,6 @@ void CppCheck::reportStatus(unsigned int /*index*/, unsigned int /*max*/) void CppCheck::getErrorMessages() { // call all "getErrorMessages" in all registered Check classes - std::cout << ErrorLogger::ErrorMessage::getXMLHeader(_settings._xml_version); for (std::list::iterator it = Check::instances().begin(); it != Check::instances().end(); ++it) (*it)->getErrorMessages(this, &_settings); @@ -448,6 +447,4 @@ void CppCheck::getErrorMessages() tokenizer.getErrorMessages(this, &_settings); Preprocessor::getErrorMessages(this, &_settings); - - std::cout << ErrorLogger::ErrorMessage::getXMLFooter() << std::endl; }