aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/watchhandler.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2012-03-13 10:38:44 +0100
committerhjk <[email protected]>2012-03-13 10:52:22 +0100
commit5a3473fe962d6aada9a3464b9ab5bc7669e07205 (patch)
treebb17be30cd90ada2fdd52102635f2512da726161 /src/plugins/debugger/watchhandler.cpp
parent1c2272772e2f4d4890106bd7b60e507570dad224 (diff)
debugger: unbreak display of non-7bit-clean data
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r--src/plugins/debugger/watchhandler.cpp18
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);