From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2126) id 07FE33857C49; Tue, 29 Mar 2022 19:42:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 07FE33857C49 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Unify gdb putc functions X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: 0426ad513f93bb1c5805988e60d6f87fbe738860 X-Git-Newrev: a11ac3b3e8ff6769badcf0041894f6c5acc1b94f Message-Id: <20220329194256.07FE33857C49@sourceware.org> Date: Tue, 29 Mar 2022 19:42:56 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Mar 2022 19:42:56 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3Da11ac3b3e8ff= 6769badcf0041894f6c5acc1b94f commit a11ac3b3e8ff6769badcf0041894f6c5acc1b94f Author: Tom Tromey Date: Sun Jan 2 11:42:07 2022 -0700 Unify gdb putc functions =20 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); } =20 /* 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); } =20 /* 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'); } =0C /* 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; } =20 - fputc_filtered ('\'', stream); + gdb_putc ('\'', stream); emitchar (c, type, stream, '\''); - fputc_filtered ('\'', stream); + gdb_putc ('\'', stream); } =20 /* 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 ()); } =20 /* 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...); } =20 @@ -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); \ } \ =20 #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 =3D 0; idx < length; idx++) tailcall_dump (gdbarch, result->call_site[idx]); - fputc_unfiltered ('\n', gdb_stdlog); + gdb_putc ('\n', gdb_stdlog); } =20 return; @@ -888,7 +888,7 @@ chain_candidate (struct gdbarch *gdbarch, fprintf_unfiltered (gdb_stdlog, "tailcall: compare:"); for (idx =3D 0; idx < length; idx++) tailcall_dump (gdbarch, chain[idx]); - fputc_unfiltered ('\n', gdb_stdlog); + gdb_putc ('\n', gdb_stdlog); } =20 /* 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); } =20 if ((*resultp)->callers =3D=3D 0 && (*resultp)->callees =3D=3D 0) @@ -3655,7 +3655,7 @@ disassemble_dwarf_expression (struct ui_file *stream, case DW_OP_entry_value: case DW_OP_GNU_entry_value: data =3D 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 *bloc= k, const char *comname, continue; =20 if (*any_printed) - putchar_filtered ('\n'); + gdb_putc ('\n'); else *any_printed =3D 1; if (sym->print_name ()) @@ -650,7 +650,7 @@ info_common_command_for_block (const struct block *bloc= k, const char *comname, except.what ()); } =20 - 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] =3D=3D '\0') gdb_puts ("\\000", stream); else - fputc_filtered (s[i], stream); + gdb_putc (s[i], stream); } } =20 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] =3D=3D '\0') gdb_puts ("\\000", stream); else - fputc_filtered (string.get ()[i], stream); + gdb_putc (string.get ()[i], stream); } } result =3D 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); =20 - putchar_filtered ('\n'); + gdb_putc ('\n'); =20 #define pin(FLD) printf_filtered ("\t"#FLD" =3D 0x%x\n", u->FLD); =20 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 ()); } =20 - putchar_filtered ('\n'); + gdb_putc ('\n'); } if (printed =3D=3D 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 gd= barch_list *arches) const char *file_endianness =3D bfd_big_endian (info.abfd) ? "big" : "little"; =20 - 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 =3D false; else - fputc_unfiltered (',', m_streams.back ()); + gdb_putc (',', m_streams.back ()); } =20 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; =20 case ui_out_type_list: - fputc_unfiltered ('[', stream); + gdb_putc ('[', stream); break; =20 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; =20 case ui_out_type_list: - fputc_unfiltered (']', stream); + gdb_putc (']', stream); break; =20 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); } =20 /* Print interesting information about the floating point processor @@ -6458,7 +6458,7 @@ mips_print_float_info (struct gdbarch *gdbarch, struc= t ui_file *file, for (i =3D 1; i <=3D 7; i++) if (fcs & (1 << (24 + i))) fprintf_filtered (file, " %d", i); - fputc_filtered ('\n', file); + gdb_putc ('\n', file); =20 gdb_puts ("cause :", file); print_fpu_flags (file, (fcs >> 12) & 0x3f); @@ -6485,11 +6485,11 @@ mips_print_float_info (struct gdbarch *gdbarch, str= uct ui_file *file, gdb_puts (" zero", file); if ((fcs & (0xb << 21)) =3D=3D 0) gdb_puts (" no", file); - fputc_filtered ('\n', file); + gdb_putc ('\n', file); =20 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); =20 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 *ph= ysname, physname +=3D len; =20 for (j =3D 0; j < i; ++j) - fputc_filtered (physname[j], stream); + gdb_putc (physname[j], stream); =20 physname +=3D i; if (physname[0] !=3D 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 =3D (fromhex (p[0]) << 4) + fromhex (p[1]); =20 - fputc_unfiltered (c, outbuf); + gdb_putc (c, outbuf); } break; } @@ -11629,7 +11629,7 @@ private: { gdb_byte c =3D 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 =3D=3D '\0') gdb_puts ("\\0", stream); else if (ch >=3D 32 && ch <=3D 127 && isprint (ch)) - fputc_filtered (ch, stream); + gdb_putc (ch, stream); else if (ch <=3D 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 =3D 15; const int stop_2 =3D 17; for (int i =3D 0; i < stop_1 - len; ++i) - fputc_filtered (' ', file); + gdb_putc (' ', file); fprintf_filtered (file, "0x%04x", ccw); for (int i =3D 0; i < stop_2 - len; ++i) - fputc_filtered (' ', file); + gdb_putc (' ', file); for (int b =3D 15; b >=3D 0; --b) { if (ccw & (0x1u << b)) { if (ccw_bits[b] =3D=3D 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); } =20 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) } =20 if (serial_logbase !=3D logbase_ascii) - fputc_unfiltered (' ', stream); + gdb_putc (' ', stream); =20 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, } } =20 - fputc_unfiltered ('\n', gdb_stdlog); + gdb_putc ('\n', gdb_stdlog); } =20 /* 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, boo= l async_safe) int ui_file::putc (int c) { - return fputc_unfiltered (c, this); + char copy =3D (char) c; + write (©, 1); + return c; } =20 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_re= gex &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_re= gex &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. */ =20 int -putchar_filtered (int c) +gdb_putc (int c) { - return fputc_filtered (c, gdb_stdout); + return gdb_stdout->putc (c); } =20 int -fputc_unfiltered (int c, struct ui_file *stream) +gdb_putc (int c, struct ui_file *stream) { - char buf[2]; - - buf[0] =3D c; - buf[1] =3D 0; - gdb_puts (buf, stream); - return c; -} - -int -fputc_filtered (int c, struct ui_file *stream) -{ - char buf[2]; - - buf[0] =3D c; - buf[1] =3D 0; - gdb_puts (buf, stream); - return c; + return stream->putc (c); } =20 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, in= t height); =20 extern void gdb_puts (const char *, struct ui_file *); =20 -extern int fputc_filtered (int c, struct ui_file *); +extern int gdb_putc (int c, struct ui_file *); =20 -extern int fputc_unfiltered (int c, struct ui_file *); - -extern int putchar_filtered (int c); +extern int gdb_putc (int c); =20 extern void gdb_puts (const char *); =20 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 =3D '0'; =20 if (zero_pad || seen_a_one || b =3D=3D '1') - fputc_filtered (b, stream); + gdb_putc (b, stream); if (b =3D=3D '1') seen_a_one =3D true; } @@ -1409,7 +1409,7 @@ print_binary_chars (struct ui_file *stream, const gdb= _byte *valaddr, b =3D '0'; =20 if (zero_pad || seen_a_one || b =3D=3D '1') - fputc_filtered (b, stream); + gdb_putc (b, stream); if (b =3D=3D '1') seen_a_one =3D 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); } =20 /* A helper for print_octal_chars that emits a single octal digit,