aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdb_wchar.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2022-02-12 18:41:34 -0700
committerTom Tromey <tom@tromey.com>2022-10-10 10:43:34 -0600
commit3041b9313e360af215e235e4d07f9557a22ffd13 (patch)
treeb8a842cd7c50117846a12342515d24499b339c75 /gdb/gdb_wchar.h
parent05328f9105ed738cc4fe96429abd33466e891699 (diff)
downloadgdb-3041b9313e360af215e235e4d07f9557a22ffd13.zip
gdb-3041b9313e360af215e235e4d07f9557a22ffd13.tar.gz
gdb-3041b9313e360af215e235e4d07f9557a22ffd13.tar.bz2
Fix a latent bug in print_wchar
print_wchar keeps track of when escape sequences are emitted, to force an escape sequence if needed by a subsequent character. For example for the string concatenation "\0" "1", gdb will print "\000\061" -- because printing "\0001" might be confusing. However, this code has two errors. First, this logic is not needed for octal escapes, because there is a length limit of 3 for octal escapes, and gdb always prints these with "%.3o". Second, though, this *is* needed for hex escapes, because those do not have a length limit. This patch fixes these problems and adds the appropriate tests.
Diffstat (limited to 'gdb/gdb_wchar.h')
-rw-r--r--gdb/gdb_wchar.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/gdb_wchar.h b/gdb/gdb_wchar.h
index ba5baf3..8c6e4fc 100644
--- a/gdb/gdb_wchar.h
+++ b/gdb/gdb_wchar.h
@@ -66,7 +66,7 @@ typedef wint_t gdb_wint_t;
#define gdb_wcslen wcslen
#define gdb_iswprint iswprint
-#define gdb_iswdigit iswdigit
+#define gdb_iswxdigit iswxdigit
#define gdb_btowc btowc
#define gdb_WEOF WEOF
@@ -103,7 +103,7 @@ typedef int gdb_wint_t;
#define gdb_wcslen strlen
#define gdb_iswprint isprint
-#define gdb_iswdigit isdigit
+#define gdb_iswxdigit isxdigit
#define gdb_btowc /* empty */
#define gdb_WEOF EOF