diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2020-09-02 15:15:25 +0200 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2020-09-03 20:49:01 +0000 |
commit | 07ad7843f6989f9a1c612626cefd07c5a9350f1f (patch) | |
tree | e8605933ff4466b90022b8c2944810bb53e11113 /ui | |
parent | c09cb5c3431a0d1e1ef25a9ce46942a4547e2985 (diff) |
Qt: Use UTF8 middle dot for non-printable characters
Use UTF8 middle dot for non-printable characters in ShowPacketBytes to
clearly show the difference between a non-printable character and '.',
and to align with the PacketBytes view.
Diffstat (limited to 'ui')
-rw-r--r-- | ui/qt/show_packet_bytes_dialog.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/ui/qt/show_packet_bytes_dialog.cpp b/ui/qt/show_packet_bytes_dialog.cpp index ce800c6236..1ccb962728 100644 --- a/ui/qt/show_packet_bytes_dialog.cpp +++ b/ui/qt/show_packet_bytes_dialog.cpp @@ -450,7 +450,8 @@ void ShowPacketBytesDialog::sanitizeBuffer(QByteArray &ba, bool keep_CR) if (ba[i] == '\0' || g_ascii_isspace(ba[i])) { ba[i] = ' '; } else if (!g_ascii_isprint(ba[i])) { - ba[i] = '.'; + ba.replace(i, 1, UTF8_MIDDLE_DOT); + i += sizeof(UTF8_MIDDLE_DOT) - 2; } } } @@ -459,7 +460,8 @@ void ShowPacketBytesDialog::symbolizeBuffer(QByteArray &ba) { for (int i = 0; i < ba.length(); i++) { if ((ba[i] < '\0' || ba[i] >= ' ') && ba[i] != (char)0x7f && !g_ascii_isprint(ba[i])) { - ba[i] = '.'; + ba.replace(i, 1, UTF8_MIDDLE_DOT); + i += sizeof(UTF8_MIDDLE_DOT) - 2; } } @@ -688,10 +690,12 @@ void ShowPacketBytesDialog::updatePacketBytes(void) // Dump bytes as text for (i = 0; i < 16 && pos + i < len; i++) { - if (g_ascii_isprint(field_bytes_[pos + i])) + if (g_ascii_isprint(field_bytes_[pos + i])) { *cur++ = field_bytes_[pos + i]; - else - *cur++ = '.'; + } else { + memcpy(cur, UTF8_MIDDLE_DOT, sizeof(UTF8_MIDDLE_DOT) - 1); + cur += sizeof(UTF8_MIDDLE_DOT) - 1; + } if (i == 7) *cur++ = ' '; } |