diff options
author | hjk <[email protected]> | 2012-03-13 10:38:44 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2012-03-13 10:52:22 +0100 |
commit | 5a3473fe962d6aada9a3464b9ab5bc7669e07205 (patch) | |
tree | bb17be30cd90ada2fdd52102635f2512da726161 /src/plugins/debugger/watchhandler.cpp | |
parent | 1c2272772e2f4d4890106bd7b60e507570dad224 (diff) |
debugger: unbreak display of non-7bit-clean data
Task-number: QTCREATORBUG-7086
Change-Id: Ia38c27b66dcd98b84c09bb0dc50bd2cd19470400
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 720a2232c3e..95e066fd201 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -378,8 +378,9 @@ static QString reformatCharacter(int code, int format) const QString codeS = reformatInteger(code, format); if (code < 0) // Append unsigned value. return codeS + QLatin1String(" / ") + reformatInteger(256 + code, format); - if (code >= 32 && code < 128) - return codeS + QLatin1String(" '") + QChar(code) + QLatin1Char('\''); + const QChar c = QLatin1Char(code); + if (c.isPrint()) + return codeS + QLatin1String(" '") + c + QLatin1Char('\''); switch (code) { case 0: return codeS + QLatin1String(" '\\0'"); @@ -402,7 +403,7 @@ static QString quoteUnprintable(const QString &str) if (WatchHandler::unprintableBase() == -1) { foreach (const QChar c, str) { int u = c.unicode(); - if (u >= 32 && u < 127) + if (c.isPrint()) encoded += c; else if (u == '\r') encoded += QLatin1String("\\r"); @@ -473,9 +474,6 @@ QString WatchModel::formattedValue(const WatchData &data) const return value; } - const QByteArray qtNamespace = engine()->qtNamespace(); - int format = itemFormat(data); - if (isIntType(data.type)) { if (value.isEmpty()) return value; @@ -483,7 +481,9 @@ QString WatchModel::formattedValue(const WatchData &data) const const QChar firstChar = value.at(0); if (!firstChar.isDigit() && firstChar != QLatin1Char('-')) return value; + // Append quoted, printable character also for decimal. + const int format = itemFormat(data); if (data.type.endsWith("char")) { bool ok; const int code = value.toInt(&ok); @@ -504,8 +504,10 @@ QString WatchModel::formattedValue(const WatchData &data) const if (!isPointerType(data.type) && !data.isVTablePointer()) { bool ok = false; qulonglong integer = value.toULongLong(&ok, 0); - if (ok) - return reformatInteger(integer, format); + if (ok) { + const int format = itemFormat(data); + return reformatInteger(integer, format); + } } return translate(value); |