Don't use wchar_printable in print_wchar
authorTom Tromey <tom@tromey.com>
Sat, 12 Feb 2022 01:24:23 +0000 (18:24 -0700)
committerTom Tromey <tom@tromey.com>
Mon, 10 Oct 2022 16:43:34 +0000 (10:43 -0600)
print_wchar uses wchar_printable, but this isn't needed -- all the
relevant cases are already handled by the 'switch'.  This changes the
code to use gdb_iswprint, and removes a somewhat confusing comment
related to this code.

gdb/valprint.c

index 92d725215017eb3056e2128a3976f80045d972d3..5a2f4dfc62a569d41dfe79317c4647a2b4db8b90 100644 (file)
@@ -2081,9 +2081,8 @@ print_wchar (gdb_wint_t w, const gdb_byte *orig,
 
   *need_escapep = false;
 
-  /* iswprint implementation on Windows returns 1 for tab character.
-     In order to avoid different printout on this host, we explicitly
-     use wchar_printable function.  */
+  /* If any additional cases are added to this switch block, then the
+     function wchar_printable will likely need updating too.  */
   switch (w)
     {
       case LCST ('\a'):
@@ -2109,9 +2108,9 @@ print_wchar (gdb_wint_t w, const gdb_byte *orig,
        break;
       default:
        {
-         if (wchar_printable (w) && (!need_escape || (!gdb_iswdigit (w)
-                                                      && w != LCST ('8')
-                                                      && w != LCST ('9'))))
+         if (gdb_iswprint (w) && (!need_escape || (!gdb_iswdigit (w)
+                                                   && w != LCST ('8')
+                                                   && w != LCST ('9'))))
            {
              gdb_wchar_t wchar = w;