From: Tom Tromey Date: Sun, 2 Jan 2022 18:42:07 +0000 (-0700) Subject: Unify gdb putc functions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a11ac3b3e8ff6769badcf0041894f6c5acc1b94f;p=binutils-gdb.git 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 --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'); } /* 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,