From f11b746e60096d9b6a089fc34a6d1a6934774601 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 16 Nov 2016 18:27:59 +0100 Subject: [PATCH] Utils: Improve debug output of SmallString Change-Id: I738ac9d139271b7d154dd39f30ae3c08b5e5b921 Reviewed-by: Tim Jenssen --- src/libs/utils/smallstringio.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/libs/utils/smallstringio.h b/src/libs/utils/smallstringio.h index c8cf70cb273..d3fa5642634 100644 --- a/src/libs/utils/smallstringio.h +++ b/src/libs/utils/smallstringio.h @@ -78,18 +78,27 @@ QDebug &operator<<(QDebug &debug, const SmallString &string) return debug; } -inline -std::ostream &operator<<(std::ostream &stream, const SmallString &string) +template +std::ostream &operator<<(std::ostream &stream, const BasicSmallString &string) { using std::operator<<; return stream << std::string(string.data(), string.size()); } -inline -void PrintTo(const SmallString &string, ::std::ostream *os) +template +void PrintTo(const BasicSmallString &string, ::std::ostream *os) { - *os << "'" << string.data() << "'"; + Utils::SmallString formatedString = string.clone(); + + formatedString.replace("\n", "\\n"); + formatedString.replace("\t", "\\t"); + + *os << "'"; + + os->write(formatedString.data(), formatedString.size()); + + *os<< "'"; } inline QDataStream &operator<<(QDataStream &out, const SmallStringVector &stringVector)