public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Unify gdb putc functions
@ 2022-03-29 19:42 Tom Tromey
  0 siblings, 0 replies; only message in thread
From: Tom Tromey @ 2022-03-29 19:42 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a11ac3b3e8ff6769badcf0041894f6c5acc1b94f

commit a11ac3b3e8ff6769badcf0041894f6c5acc1b94f
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Jan 2 11:42:07 2022 -0700

    Unify gdb putc functions
    
    Now that filtered and unfiltered output can be treated identically, we
    can unify the putc family of functions.  This is done under the name
    "gdb_putc".  Most of this patch was written by script.

Diff:
---
 gdb/arm-tdep.c                    |  2 +-
 gdb/break-catch-sig.c             |  2 +-
 gdb/breakpoint.c                  |  2 +-
 gdb/c-lang.c                      | 10 +++++-----
 gdb/cli-out.c                     |  4 ++--
 gdb/compile/compile-cplus-types.c |  4 ++--
 gdb/dwarf2/loc.c                  |  8 ++++----
 gdb/f-valprint.c                  |  4 ++--
 gdb/guile/scm-ports.c             |  2 +-
 gdb/guile/scm-pretty-print.c      |  2 +-
 gdb/hppa-tdep.c                   |  2 +-
 gdb/linux-fork.c                  |  2 +-
 gdb/mep-tdep.c                    |  2 +-
 gdb/mi/mi-console.c               |  8 ++++----
 gdb/mi/mi-out.c                   | 10 +++++-----
 gdb/mips-tdep.c                   |  8 ++++----
 gdb/p-typeprint.c                 |  2 +-
 gdb/remote.c                      |  4 ++--
 gdb/rust-lang.c                   |  2 +-
 gdb/s12z-tdep.c                   | 12 ++++++------
 gdb/serial.c                      |  2 +-
 gdb/target.c                      |  2 +-
 gdb/ui-file.c                     |  4 +++-
 gdb/utils.c                       | 28 ++++++----------------------
 gdb/utils.h                       |  6 ++----
 gdb/valprint.c                    |  6 +++---
 26 files changed, 62 insertions(+), 78 deletions(-)

diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 5cd5b160534..a87affe17a8 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -4024,7 +4024,7 @@ print_fpu_flags (struct ui_file *file, int flags)
     gdb_puts ("UFL ", file);
   if (flags & (1 << 4))
     gdb_puts ("INX ", file);
-  fputc_filtered ('\n', file);
+  gdb_putc ('\n', file);
 }
 
 /* Print interesting information about the floating point processor
diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c
index e268a102891..b41a9083ccd 100644
--- a/gdb/break-catch-sig.c
+++ b/gdb/break-catch-sig.c
@@ -296,7 +296,7 @@ signal_catchpoint_print_recreate (struct breakpoint *b, struct ui_file *fp)
     }
   else if (c->catch_all)
     fprintf_unfiltered (fp, " all");
-  fputc_unfiltered ('\n', fp);
+  gdb_putc ('\n', fp);
 }
 
 /* Implement the "explains_signal" breakpoint_ops method for signal
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index ebcefdee54d..60d343ec55a 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -11069,7 +11069,7 @@ clear_command (const char *arg, int from_tty)
       delete_breakpoint (iter);
     }
   if (from_tty)
-    putchar_filtered ('\n');
+    gdb_putc ('\n');
 }
 \f
 /* Delete breakpoint in BS if they are `delete' breakpoints and
diff --git a/gdb/c-lang.c b/gdb/c-lang.c
index 2fd86ec1019..014dbefb8e2 100644
--- a/gdb/c-lang.c
+++ b/gdb/c-lang.c
@@ -167,19 +167,19 @@ language_defn::printchar (int c, struct type *type,
     case C_CHAR:
       break;
     case C_WIDE_CHAR:
-      fputc_filtered ('L', stream);
+      gdb_putc ('L', stream);
       break;
     case C_CHAR_16:
-      fputc_filtered ('u', stream);
+      gdb_putc ('u', stream);
       break;
     case C_CHAR_32:
-      fputc_filtered ('U', stream);
+      gdb_putc ('U', stream);
       break;
     }
 
-  fputc_filtered ('\'', stream);
+  gdb_putc ('\'', stream);
   emitchar (c, type, stream, '\'');
-  fputc_filtered ('\'', stream);
+  gdb_putc ('\'', stream);
 }
 
 /* Print the character string STRING, printing at most LENGTH
diff --git a/gdb/cli-out.c b/gdb/cli-out.c
index 0c87a820568..47b256bd97e 100644
--- a/gdb/cli-out.c
+++ b/gdb/cli-out.c
@@ -381,9 +381,9 @@ void
 cli_ui_out::field_separator ()
 {
   if (test_flags (unfiltered_output))
-    fputc_unfiltered (' ', m_streams.back ());
+    gdb_putc (' ', m_streams.back ());
   else
-    fputc_filtered (' ', m_streams.back ());
+    gdb_putc (' ', m_streams.back ());
 }
 
 /* Constructor for cli_ui_out.  */
diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c
index 18cf7b63338..2b1b01e8d03 100644
--- a/gdb/compile/compile-cplus-types.c
+++ b/gdb/compile/compile-cplus-types.c
@@ -1267,7 +1267,7 @@ static void
 compile_cplus_debug_output (T arg, Targs... Args)
 {
   compile_cplus_debug_output_1 (arg);
-  fputc_unfiltered (' ', gdb_stdlog);
+  gdb_putc (' ', gdb_stdlog);
   compile_cplus_debug_output (Args...);
 }
 
@@ -1277,7 +1277,7 @@ compile_cplus_debug_output (T arg, Targs... Args)
     {						  \
       gdb_puts (": ", gdb_stdlog);		  \
       compile_cplus_debug_output (R);		  \
-      fputc_unfiltered ('\n', gdb_stdlog);	  \
+      gdb_putc ('\n', gdb_stdlog);		  \
     }						  \
 
 #define GCC_METHOD0(R, N)			  \
diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c
index 09455e2e952..9cd21572f78 100644
--- a/gdb/dwarf2/loc.c
+++ b/gdb/dwarf2/loc.c
@@ -877,7 +877,7 @@ chain_candidate (struct gdbarch *gdbarch,
 	  fprintf_unfiltered (gdb_stdlog, "tailcall: initial:");
 	  for (idx = 0; idx < length; idx++)
 	    tailcall_dump (gdbarch, result->call_site[idx]);
-	  fputc_unfiltered ('\n', gdb_stdlog);
+	  gdb_putc ('\n', gdb_stdlog);
 	}
 
       return;
@@ -888,7 +888,7 @@ chain_candidate (struct gdbarch *gdbarch,
       fprintf_unfiltered (gdb_stdlog, "tailcall: compare:");
       for (idx = 0; idx < length; idx++)
 	tailcall_dump (gdbarch, chain[idx]);
-      fputc_unfiltered ('\n', gdb_stdlog);
+      gdb_putc ('\n', gdb_stdlog);
     }
 
   /* Intersect callers.  */
@@ -922,7 +922,7 @@ chain_candidate (struct gdbarch *gdbarch,
 	tailcall_dump (gdbarch,
 		       (*resultp)->call_site[(*resultp)->length
 					     - (*resultp)->callees + idx]);
-      fputc_unfiltered ('\n', gdb_stdlog);
+      gdb_putc ('\n', gdb_stdlog);
     }
 
   if ((*resultp)->callers == 0 && (*resultp)->callees == 0)
@@ -3655,7 +3655,7 @@ disassemble_dwarf_expression (struct ui_file *stream,
 	case DW_OP_entry_value:
 	case DW_OP_GNU_entry_value:
 	  data = safe_read_uleb128 (data, end, &ul);
-	  fputc_filtered ('\n', stream);
+	  gdb_putc ('\n', stream);
 	  disassemble_dwarf_expression (stream, arch, addr_size, offset_size,
 					start, data, data + ul, indent + 2,
 					all, per_cu, per_objfile);
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index e56815c2813..e10d4718833 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -621,7 +621,7 @@ info_common_command_for_block (const struct block *block, const char *comname,
 	  continue;
 
 	if (*any_printed)
-	  putchar_filtered ('\n');
+	  gdb_putc ('\n');
 	else
 	  *any_printed = 1;
 	if (sym->print_name ())
@@ -650,7 +650,7 @@ info_common_command_for_block (const struct block *block, const char *comname,
 				except.what ());
 	      }
 
-	    putchar_filtered ('\n');
+	    gdb_putc ('\n');
 	  }
       }
 }
diff --git a/gdb/guile/scm-ports.c b/gdb/guile/scm-ports.c
index c61ca1dafc4..946859aa1f3 100644
--- a/gdb/guile/scm-ports.c
+++ b/gdb/guile/scm-ports.c
@@ -204,7 +204,7 @@ fputsn_filtered (const char *s, size_t size, struct ui_file *stream)
       if (s[i] == '\0')
 	gdb_puts ("\\000", stream);
       else
-	fputc_filtered (s[i], stream);
+	gdb_putc (s[i], stream);
     }
 }
 
diff --git a/gdb/guile/scm-pretty-print.c b/gdb/guile/scm-pretty-print.c
index 8a5c02d0adb..707ef4be4e4 100644
--- a/gdb/guile/scm-pretty-print.c
+++ b/gdb/guile/scm-pretty-print.c
@@ -689,7 +689,7 @@ ppscm_print_string_repr (SCM printer, enum display_hint hint,
 	      if (string.get ()[i] == '\0')
 		gdb_puts ("\\000", stream);
 	      else
-		fputc_filtered (string.get ()[i], stream);
+		gdb_putc (string.get ()[i], stream);
 	    }
 	}
       result = STRING_REPR_OK;
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index cf84555a28c..80cea7e7322 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -2596,7 +2596,7 @@ unwind_command (const char *exp, int from_tty)
   pif (Large_frame);
   pif (alloca_frame);
 
-  putchar_filtered ('\n');
+  gdb_putc ('\n');
 
 #define pin(FLD) printf_filtered ("\t"#FLD" = 0x%x\n", u->FLD);
 
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index e7e25b5eae6..8cea33d793f 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -597,7 +597,7 @@ info_checkpoints_command (const char *arg, int from_tty)
 	    printf_filtered (", <%s>", msym.minsym->linkage_name ());
 	}
 
-      putchar_filtered ('\n');
+      gdb_putc ('\n');
     }
   if (printed == NULL)
     {
diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c
index 11d79a0e9e7..696d9c63bce 100644
--- a/gdb/mep-tdep.c
+++ b/gdb/mep-tdep.c
@@ -2369,7 +2369,7 @@ mep_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 	  const char *file_endianness
 	    = bfd_big_endian (info.abfd) ? "big" : "little";
 	  
-	  fputc_unfiltered ('\n', gdb_stderr);
+	  gdb_putc ('\n', gdb_stderr);
 	  if (module_name)
 	    warning (_("the MeP module '%s' is %s-endian, but the executable\n"
 		       "%s is %s-endian."),
diff --git a/gdb/mi/mi-console.c b/gdb/mi/mi-console.c
index 5043e9b475d..5cdb486be5e 100644
--- a/gdb/mi/mi-console.c
+++ b/gdb/mi/mi-console.c
@@ -79,15 +79,15 @@ mi_console_file::flush ()
       gdb_puts (m_prefix, m_raw);
       if (m_quote)
 	{
-	  fputc_unfiltered (m_quote, m_raw);
+	  gdb_putc (m_quote, m_raw);
 	  m_raw->putstrn (buf, length_buf, m_quote);
-	  fputc_unfiltered (m_quote, m_raw);
-	  fputc_unfiltered ('\n', m_raw);
+	  gdb_putc (m_quote, m_raw);
+	  gdb_putc ('\n', m_raw);
 	}
       else
 	{
 	  m_raw->putstrn (buf, length_buf, 0);
-	  fputc_unfiltered ('\n', m_raw);
+	  gdb_putc ('\n', m_raw);
 	}
       gdb_flush (m_raw);
     }
diff --git a/gdb/mi/mi-out.c b/gdb/mi/mi-out.c
index ff93cb3ba10..c84cc55e4c1 100644
--- a/gdb/mi/mi-out.c
+++ b/gdb/mi/mi-out.c
@@ -199,7 +199,7 @@ mi_ui_out::field_separator ()
   if (m_suppress_field_separator)
     m_suppress_field_separator = false;
   else
-    fputc_unfiltered (',', m_streams.back ());
+    gdb_putc (',', m_streams.back ());
 }
 
 void
@@ -216,11 +216,11 @@ mi_ui_out::open (const char *name, ui_out_type type)
   switch (type)
     {
     case ui_out_type_tuple:
-      fputc_unfiltered ('{', stream);
+      gdb_putc ('{', stream);
       break;
 
     case ui_out_type_list:
-      fputc_unfiltered ('[', stream);
+      gdb_putc ('[', stream);
       break;
 
     default:
@@ -236,11 +236,11 @@ mi_ui_out::close (ui_out_type type)
   switch (type)
     {
     case ui_out_type_tuple:
-      fputc_unfiltered ('}', stream);
+      gdb_putc ('}', stream);
       break;
 
     case ui_out_type_list:
-      fputc_unfiltered (']', stream);
+      gdb_putc (']', stream);
       break;
 
     default:
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index d731ecc4938..cedce6c1abe 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -6423,7 +6423,7 @@ print_fpu_flags (struct ui_file *file, int flags)
     gdb_puts (" inval", file);
   if (flags & (1 << 5))
     gdb_puts (" unimp", file);
-  fputc_filtered ('\n', file);
+  gdb_putc ('\n', file);
 }
 
 /* Print interesting information about the floating point processor
@@ -6458,7 +6458,7 @@ mips_print_float_info (struct gdbarch *gdbarch, struct ui_file *file,
   for (i = 1; i <= 7; i++)
     if (fcs & (1 << (24 + i)))
       fprintf_filtered (file, " %d", i);
-  fputc_filtered ('\n', file);
+  gdb_putc ('\n', file);
 
   gdb_puts ("cause   :", file);
   print_fpu_flags (file, (fcs >> 12) & 0x3f);
@@ -6485,11 +6485,11 @@ mips_print_float_info (struct gdbarch *gdbarch, struct ui_file *file,
     gdb_puts (" zero", file);
   if ((fcs & (0xb << 21)) == 0)
     gdb_puts (" no", file);
-  fputc_filtered ('\n', file);
+  gdb_putc ('\n', file);
 
   fprintf_filtered (file, "nan2008 : %s\n", fcs & (1 << 18) ? "yes" : "no");
   fprintf_filtered (file, "abs2008 : %s\n", fcs & (1 << 19) ? "yes" : "no");
-  fputc_filtered ('\n', file);
+  gdb_putc ('\n', file);
 
   default_print_float_info (gdbarch, file, frame, args);
 }
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index 98bbee97988..f8bdf72cf4a 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -152,7 +152,7 @@ pascal_language::type_print_method_args (const char *physname,
 	  physname += len;
 
 	  for (j = 0; j < i; ++j)
-	    fputc_filtered (physname[j], stream);
+	    gdb_putc (physname[j], stream);
 
 	  physname += i;
 	  if (physname[0] != 0)
diff --git a/gdb/remote.c b/gdb/remote.c
index 2bad9ee1b36..fb09a9bbc5f 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -11572,7 +11572,7 @@ remote_target::rcmd (const char *command, struct ui_file *outbuf)
 	{
 	  char c = (fromhex (p[0]) << 4) + fromhex (p[1]);
 
-	  fputc_unfiltered (c, outbuf);
+	  gdb_putc (c, outbuf);
 	}
       break;
     }
@@ -11629,7 +11629,7 @@ private:
       {
 	gdb_byte c = buf[i];
 	if (isprint (c))
-	  fputc_unfiltered (c, &stb);
+	  gdb_putc (c, &stb);
 	else
 	  fprintf_unfiltered (&stb, "\\x%02x", (unsigned char) c);
       }
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index 76892456449..6738243ba9b 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -1608,7 +1608,7 @@ rust_language::emitchar (int ch, struct type *chtype,
   else if (ch == '\0')
     gdb_puts ("\\0", stream);
   else if (ch >= 32 && ch <= 127 && isprint (ch))
-    fputc_filtered (ch, stream);
+    gdb_putc (ch, stream);
   else if (ch <= 255)
     fprintf_filtered (stream, "\\x%02x", ch);
   else
diff --git a/gdb/s12z-tdep.c b/gdb/s12z-tdep.c
index d13d7397057..77dda56fab0 100644
--- a/gdb/s12z-tdep.c
+++ b/gdb/s12z-tdep.c
@@ -523,23 +523,23 @@ s12z_print_ccw_info (struct gdbarch *gdbarch,
   const int stop_1 = 15;
   const int stop_2 = 17;
   for (int i = 0; i < stop_1 - len; ++i)
-    fputc_filtered (' ', file);
+    gdb_putc (' ', file);
   fprintf_filtered (file, "0x%04x", ccw);
   for (int i = 0; i < stop_2 - len; ++i)
-    fputc_filtered (' ', file);
+    gdb_putc (' ', file);
   for (int b = 15; b >= 0; --b)
     {
       if (ccw & (0x1u << b))
 	{
 	  if (ccw_bits[b] == 0)
-	    fputc_filtered ('1', file);
+	    gdb_putc ('1', file);
 	  else
-	    fputc_filtered (ccw_bits[b], file);
+	    gdb_putc (ccw_bits[b], file);
 	}
       else
-	fputc_filtered (tolower (ccw_bits[b]), file);
+	gdb_putc (tolower (ccw_bits[b]), file);
     }
-  fputc_filtered ('\n', file);
+  gdb_putc ('\n', file);
 }
 
 static void
diff --git a/gdb/serial.c b/gdb/serial.c
index 347ab2e098f..1508c5de2c3 100644
--- a/gdb/serial.c
+++ b/gdb/serial.c
@@ -70,7 +70,7 @@ serial_logchar (struct ui_file *stream, int ch_type, int ch, int timeout)
     }
 
   if (serial_logbase != logbase_ascii)
-    fputc_unfiltered (' ', stream);
+    gdb_putc (' ', stream);
 
   switch (ch)
     {
diff --git a/gdb/target.c b/gdb/target.c
index 0a4f892a9ee..8216ee930b9 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -1786,7 +1786,7 @@ target_xfer_partial (struct target_ops *ops,
 	    }
 	}
 
-      fputc_unfiltered ('\n', gdb_stdlog);
+      gdb_putc ('\n', gdb_stdlog);
     }
 
   /* Check implementations of to_xfer_partial update *XFERED_LEN
diff --git a/gdb/ui-file.c b/gdb/ui-file.c
index ec441a73a8c..afb12b408f5 100644
--- a/gdb/ui-file.c
+++ b/gdb/ui-file.c
@@ -63,7 +63,9 @@ ui_file::putstrn (const char *str, int n, int quoter, bool async_safe)
 int
 ui_file::putc (int c)
 {
-  return fputc_unfiltered (c, this);
+  char copy = (char) c;
+  write (&copy, 1);
+  return c;
 }
 
 void
diff --git a/gdb/utils.c b/gdb/utils.c
index 2124b4bdfc3..21fb7d6e9b1 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -1765,7 +1765,7 @@ fputs_highlighted (const char *str, const compiled_regex &highlight,
       /* Output the part before pmatch with current style.  */
       while (pmatch.rm_so > 0)
 	{
-	  fputc_filtered (*str, stream);
+	  gdb_putc (*str, stream);
 	  pmatch.rm_so--;
 	  str++;
 	}
@@ -1774,7 +1774,7 @@ fputs_highlighted (const char *str, const compiled_regex &highlight,
       stream->emit_style_escape (highlight_style.style ());
       while (n_highlight > 0)
 	{
-	  fputc_filtered (*str, stream);
+	  gdb_putc (*str, stream);
 	  n_highlight--;
 	  str++;
 	}
@@ -1790,31 +1790,15 @@ fputs_highlighted (const char *str, const compiled_regex &highlight,
    May return nonlocally.  */
 
 int
-putchar_filtered (int c)
+gdb_putc (int c)
 {
-  return fputc_filtered (c, gdb_stdout);
+  return gdb_stdout->putc (c);
 }
 
 int
-fputc_unfiltered (int c, struct ui_file *stream)
+gdb_putc (int c, struct ui_file *stream)
 {
-  char buf[2];
-
-  buf[0] = c;
-  buf[1] = 0;
-  gdb_puts (buf, stream);
-  return c;
-}
-
-int
-fputc_filtered (int c, struct ui_file *stream)
-{
-  char buf[2];
-
-  buf[0] = c;
-  buf[1] = 0;
-  gdb_puts (buf, stream);
-  return c;
+  return stream->putc (c);
 }
 
 void
diff --git a/gdb/utils.h b/gdb/utils.h
index dc76da468c3..26c35bc5451 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -235,11 +235,9 @@ extern void set_screen_width_and_height (int width, int height);
 
 extern void gdb_puts (const char *, struct ui_file *);
 
-extern int fputc_filtered (int c, struct ui_file *);
+extern int gdb_putc (int c, struct ui_file *);
 
-extern int fputc_unfiltered (int c, struct ui_file *);
-
-extern int putchar_filtered (int c);
+extern int gdb_putc (int c);
 
 extern void gdb_puts (const char *);
 
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 43ba08d5ef2..3a07c98ceb4 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -1389,7 +1389,7 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
 		b = '0';
 
 	      if (zero_pad || seen_a_one || b == '1')
-		fputc_filtered (b, stream);
+		gdb_putc (b, stream);
 	      if (b == '1')
 		seen_a_one = true;
 	    }
@@ -1409,7 +1409,7 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
 		b = '0';
 
 	      if (zero_pad || seen_a_one || b == '1')
-		fputc_filtered (b, stream);
+		gdb_putc (b, stream);
 	      if (b == '1')
 		seen_a_one = true;
 	    }
@@ -1419,7 +1419,7 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
   /* When not zero-padding, ensure that something is printed when the
      input is 0.  */
   if (!zero_pad && !seen_a_one)
-    fputc_filtered ('0', stream);
+    gdb_putc ('0', stream);
 }
 
 /* A helper for print_octal_chars that emits a single octal digit,


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-03-29 19:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-29 19:42 [binutils-gdb] Unify gdb putc functions Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).