This changes tui_copy_source_line to use ISCNTRL.  This lets it work
more nicely with UTF-8 input.  Note that this still won't work for
stateful multi-byte encodings; for that much more work would be
required.  However, I think this patch does not make gdb any worse in
this scenario.
gdb/ChangeLog
2020-09-27  Tom Tromey  <tom@tromey.com>
	PR tui/25342:
	* tui/tui-winsource.c (tui_copy_source_line): Use ISNCTRL.
+2020-09-27  Tom Tromey  <tom@tromey.com>
+
+       PR tui/25342:
+       * tui/tui-winsource.c (tui_copy_source_line): Use ISNCTRL.
+
 2020-09-27  Tom Tromey  <tom@tromey.com>
 
        * unittests/tui-selftests.c: Update.
 
 #include "source.h"
 #include "objfiles.h"
 #include "filenames.h"
+#include "safe-ctype.h"
 
 #include "tui/tui.h"
 #include "tui/tui-data.h"
        {
          /* Nothing.  */
        }
-      else if (c < 040 && c != '\t')
+      else if (c == '\t')
+       process_tab ();
+      else if (ISCNTRL (c))
        {
          result.push_back ('^');
          result.push_back (c + 0100);
          result.push_back ('?');
          ++column;
        }
-      else if (c == '\t')
-       process_tab ();
       else
        result.push_back (c);
     }