From 0dca6e51a0485173b912b9ad7ed17d7eac378e47 Mon Sep 17 00:00:00 2001 From: Alexander Mai Date: Sat, 2 Mar 2013 15:16:18 +0100 Subject: [PATCH] Fixed #4622 (Patch: Improve formatting for custom templates) --- lib/errorlogger.cpp | 8 +++++++- man/manual.docbook | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) 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.