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 (©, 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).