diff --git a/lib/errorlogger.cpp b/lib/errorlogger.cpp index 12a620468..d4f855db3 100644 --- a/lib/errorlogger.cpp +++ b/lib/errorlogger.cpp @@ -298,10 +298,16 @@ std::string ErrorLogger::ErrorMessage::toString(bool verbose, const std::string // template is given. Reformat the output according to it else { std::string result = outputFormat; + // Support a few special characters to allow to specific formatting, see http://sourceforge.net/apps/phpbb/cppcheck/viewtopic.php?f=4&t=494&sid=21715d362c0dbafd3791da4d9522f814 + // Substitution should be done first so messages from cppcheck never get translated. + findAndReplace(result, "\\b", "\b"); + findAndReplace(result, "\\n", "\n"); + findAndReplace(result, "\\r", "\r"); + findAndReplace(result, "\\t", "\t"); + findAndReplace(result, "{id}", _id); findAndReplace(result, "{severity}", Severity::toString(_severity)); findAndReplace(result, "{message}", verbose ? _verboseMessage : _shortMessage); - if (!_callStack.empty()) { std::ostringstream oss; oss << _callStack.back().line; diff --git a/man/manual.docbook b/man/manual.docbook index 6c50af638..1199b0825 100644 --- a/man/manual.docbook +++ b/man/manual.docbook @@ -448,6 +448,8 @@ gui/test.cpp:16: error: Mismatching allocation and deallocation: kChecking gui/test.cpp... gui/test.cpp,31,error,memleak,Memory leak: b gui/test.cpp,16,error,mismatchAllocDealloc,Mismatching allocation and deallocation: k + + The escape sequences \b (backspace), \n (newline), \r (formfeed) and \t (horizontal tab) are supported.