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.
This commit is contained in:
Tom Tromey
2022-01-02 11:42:07 -07:00
parent 0426ad513f
commit a11ac3b3e8
26 changed files with 62 additions and 78 deletions

View File

@@ -4024,7 +4024,7 @@ print_fpu_flags (struct ui_file *file, int flags)
gdb_puts ("UFL ", file); gdb_puts ("UFL ", file);
if (flags & (1 << 4)) if (flags & (1 << 4))
gdb_puts ("INX ", file); gdb_puts ("INX ", file);
fputc_filtered ('\n', file); gdb_putc ('\n', file);
} }
/* Print interesting information about the floating point processor /* Print interesting information about the floating point processor

View File

@@ -296,7 +296,7 @@ signal_catchpoint_print_recreate (struct breakpoint *b, struct ui_file *fp)
} }
else if (c->catch_all) else if (c->catch_all)
fprintf_unfiltered (fp, " all"); fprintf_unfiltered (fp, " all");
fputc_unfiltered ('\n', fp); gdb_putc ('\n', fp);
} }
/* Implement the "explains_signal" breakpoint_ops method for signal /* Implement the "explains_signal" breakpoint_ops method for signal

View File

@@ -11069,7 +11069,7 @@ clear_command (const char *arg, int from_tty)
delete_breakpoint (iter); delete_breakpoint (iter);
} }
if (from_tty) if (from_tty)
putchar_filtered ('\n'); gdb_putc ('\n');
} }
/* Delete breakpoint in BS if they are `delete' breakpoints and /* Delete breakpoint in BS if they are `delete' breakpoints and

View File

@@ -167,19 +167,19 @@ language_defn::printchar (int c, struct type *type,
case C_CHAR: case C_CHAR:
break; break;
case C_WIDE_CHAR: case C_WIDE_CHAR:
fputc_filtered ('L', stream); gdb_putc ('L', stream);
break; break;
case C_CHAR_16: case C_CHAR_16:
fputc_filtered ('u', stream); gdb_putc ('u', stream);
break; break;
case C_CHAR_32: case C_CHAR_32:
fputc_filtered ('U', stream); gdb_putc ('U', stream);
break; break;
} }
fputc_filtered ('\'', stream); gdb_putc ('\'', stream);
emitchar (c, type, stream, '\''); emitchar (c, type, stream, '\'');
fputc_filtered ('\'', stream); gdb_putc ('\'', stream);
} }
/* Print the character string STRING, printing at most LENGTH /* Print the character string STRING, printing at most LENGTH

View File

@@ -381,9 +381,9 @@ void
cli_ui_out::field_separator () cli_ui_out::field_separator ()
{ {
if (test_flags (unfiltered_output)) if (test_flags (unfiltered_output))
fputc_unfiltered (' ', m_streams.back ()); gdb_putc (' ', m_streams.back ());
else else
fputc_filtered (' ', m_streams.back ()); gdb_putc (' ', m_streams.back ());
} }
/* Constructor for cli_ui_out. */ /* Constructor for cli_ui_out. */

View File

@@ -1267,7 +1267,7 @@ static void
compile_cplus_debug_output (T arg, Targs... Args) compile_cplus_debug_output (T arg, Targs... Args)
{ {
compile_cplus_debug_output_1 (arg); compile_cplus_debug_output_1 (arg);
fputc_unfiltered (' ', gdb_stdlog); gdb_putc (' ', gdb_stdlog);
compile_cplus_debug_output (Args...); compile_cplus_debug_output (Args...);
} }
@@ -1277,7 +1277,7 @@ compile_cplus_debug_output (T arg, Targs... Args)
{ \ { \
gdb_puts (": ", gdb_stdlog); \ gdb_puts (": ", gdb_stdlog); \
compile_cplus_debug_output (R); \ compile_cplus_debug_output (R); \
fputc_unfiltered ('\n', gdb_stdlog); \ gdb_putc ('\n', gdb_stdlog); \
} \ } \
#define GCC_METHOD0(R, N) \ #define GCC_METHOD0(R, N) \

View File

@@ -877,7 +877,7 @@ chain_candidate (struct gdbarch *gdbarch,
fprintf_unfiltered (gdb_stdlog, "tailcall: initial:"); fprintf_unfiltered (gdb_stdlog, "tailcall: initial:");
for (idx = 0; idx < length; idx++) for (idx = 0; idx < length; idx++)
tailcall_dump (gdbarch, result->call_site[idx]); tailcall_dump (gdbarch, result->call_site[idx]);
fputc_unfiltered ('\n', gdb_stdlog); gdb_putc ('\n', gdb_stdlog);
} }
return; return;
@@ -888,7 +888,7 @@ chain_candidate (struct gdbarch *gdbarch,
fprintf_unfiltered (gdb_stdlog, "tailcall: compare:"); fprintf_unfiltered (gdb_stdlog, "tailcall: compare:");
for (idx = 0; idx < length; idx++) for (idx = 0; idx < length; idx++)
tailcall_dump (gdbarch, chain[idx]); tailcall_dump (gdbarch, chain[idx]);
fputc_unfiltered ('\n', gdb_stdlog); gdb_putc ('\n', gdb_stdlog);
} }
/* Intersect callers. */ /* Intersect callers. */
@@ -922,7 +922,7 @@ chain_candidate (struct gdbarch *gdbarch,
tailcall_dump (gdbarch, tailcall_dump (gdbarch,
(*resultp)->call_site[(*resultp)->length (*resultp)->call_site[(*resultp)->length
- (*resultp)->callees + idx]); - (*resultp)->callees + idx]);
fputc_unfiltered ('\n', gdb_stdlog); gdb_putc ('\n', gdb_stdlog);
} }
if ((*resultp)->callers == 0 && (*resultp)->callees == 0) 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_entry_value:
case DW_OP_GNU_entry_value: case DW_OP_GNU_entry_value:
data = safe_read_uleb128 (data, end, &ul); data = safe_read_uleb128 (data, end, &ul);
fputc_filtered ('\n', stream); gdb_putc ('\n', stream);
disassemble_dwarf_expression (stream, arch, addr_size, offset_size, disassemble_dwarf_expression (stream, arch, addr_size, offset_size,
start, data, data + ul, indent + 2, start, data, data + ul, indent + 2,
all, per_cu, per_objfile); all, per_cu, per_objfile);

View File

@@ -621,7 +621,7 @@ info_common_command_for_block (const struct block *block, const char *comname,
continue; continue;
if (*any_printed) if (*any_printed)
putchar_filtered ('\n'); gdb_putc ('\n');
else else
*any_printed = 1; *any_printed = 1;
if (sym->print_name ()) if (sym->print_name ())
@@ -650,7 +650,7 @@ info_common_command_for_block (const struct block *block, const char *comname,
except.what ()); except.what ());
} }
putchar_filtered ('\n'); gdb_putc ('\n');
} }
} }
} }

View File

@@ -204,7 +204,7 @@ fputsn_filtered (const char *s, size_t size, struct ui_file *stream)
if (s[i] == '\0') if (s[i] == '\0')
gdb_puts ("\\000", stream); gdb_puts ("\\000", stream);
else else
fputc_filtered (s[i], stream); gdb_putc (s[i], stream);
} }
} }

View File

@@ -689,7 +689,7 @@ ppscm_print_string_repr (SCM printer, enum display_hint hint,
if (string.get ()[i] == '\0') if (string.get ()[i] == '\0')
gdb_puts ("\\000", stream); gdb_puts ("\\000", stream);
else else
fputc_filtered (string.get ()[i], stream); gdb_putc (string.get ()[i], stream);
} }
} }
result = STRING_REPR_OK; result = STRING_REPR_OK;

View File

@@ -2596,7 +2596,7 @@ unwind_command (const char *exp, int from_tty)
pif (Large_frame); pif (Large_frame);
pif (alloca_frame); pif (alloca_frame);
putchar_filtered ('\n'); gdb_putc ('\n');
#define pin(FLD) printf_filtered ("\t"#FLD" = 0x%x\n", u->FLD); #define pin(FLD) printf_filtered ("\t"#FLD" = 0x%x\n", u->FLD);

View File

@@ -597,7 +597,7 @@ info_checkpoints_command (const char *arg, int from_tty)
printf_filtered (", <%s>", msym.minsym->linkage_name ()); printf_filtered (", <%s>", msym.minsym->linkage_name ());
} }
putchar_filtered ('\n'); gdb_putc ('\n');
} }
if (printed == NULL) if (printed == NULL)
{ {

View File

@@ -2369,7 +2369,7 @@ mep_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
const char *file_endianness const char *file_endianness
= bfd_big_endian (info.abfd) ? "big" : "little"; = bfd_big_endian (info.abfd) ? "big" : "little";
fputc_unfiltered ('\n', gdb_stderr); gdb_putc ('\n', gdb_stderr);
if (module_name) if (module_name)
warning (_("the MeP module '%s' is %s-endian, but the executable\n" warning (_("the MeP module '%s' is %s-endian, but the executable\n"
"%s is %s-endian."), "%s is %s-endian."),

View File

@@ -79,15 +79,15 @@ mi_console_file::flush ()
gdb_puts (m_prefix, m_raw); gdb_puts (m_prefix, m_raw);
if (m_quote) if (m_quote)
{ {
fputc_unfiltered (m_quote, m_raw); gdb_putc (m_quote, m_raw);
m_raw->putstrn (buf, length_buf, m_quote); m_raw->putstrn (buf, length_buf, m_quote);
fputc_unfiltered (m_quote, m_raw); gdb_putc (m_quote, m_raw);
fputc_unfiltered ('\n', m_raw); gdb_putc ('\n', m_raw);
} }
else else
{ {
m_raw->putstrn (buf, length_buf, 0); m_raw->putstrn (buf, length_buf, 0);
fputc_unfiltered ('\n', m_raw); gdb_putc ('\n', m_raw);
} }
gdb_flush (m_raw); gdb_flush (m_raw);
} }

View File

@@ -199,7 +199,7 @@ mi_ui_out::field_separator ()
if (m_suppress_field_separator) if (m_suppress_field_separator)
m_suppress_field_separator = false; m_suppress_field_separator = false;
else else
fputc_unfiltered (',', m_streams.back ()); gdb_putc (',', m_streams.back ());
} }
void void
@@ -216,11 +216,11 @@ mi_ui_out::open (const char *name, ui_out_type type)
switch (type) switch (type)
{ {
case ui_out_type_tuple: case ui_out_type_tuple:
fputc_unfiltered ('{', stream); gdb_putc ('{', stream);
break; break;
case ui_out_type_list: case ui_out_type_list:
fputc_unfiltered ('[', stream); gdb_putc ('[', stream);
break; break;
default: default:
@@ -236,11 +236,11 @@ mi_ui_out::close (ui_out_type type)
switch (type) switch (type)
{ {
case ui_out_type_tuple: case ui_out_type_tuple:
fputc_unfiltered ('}', stream); gdb_putc ('}', stream);
break; break;
case ui_out_type_list: case ui_out_type_list:
fputc_unfiltered (']', stream); gdb_putc (']', stream);
break; break;
default: default:

View File

@@ -6423,7 +6423,7 @@ print_fpu_flags (struct ui_file *file, int flags)
gdb_puts (" inval", file); gdb_puts (" inval", file);
if (flags & (1 << 5)) if (flags & (1 << 5))
gdb_puts (" unimp", file); gdb_puts (" unimp", file);
fputc_filtered ('\n', file); gdb_putc ('\n', file);
} }
/* Print interesting information about the floating point processor /* 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++) for (i = 1; i <= 7; i++)
if (fcs & (1 << (24 + i))) if (fcs & (1 << (24 + i)))
fprintf_filtered (file, " %d", i); fprintf_filtered (file, " %d", i);
fputc_filtered ('\n', file); gdb_putc ('\n', file);
gdb_puts ("cause :", file); gdb_puts ("cause :", file);
print_fpu_flags (file, (fcs >> 12) & 0x3f); 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); gdb_puts (" zero", file);
if ((fcs & (0xb << 21)) == 0) if ((fcs & (0xb << 21)) == 0)
gdb_puts (" no", file); 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, "nan2008 : %s\n", fcs & (1 << 18) ? "yes" : "no");
fprintf_filtered (file, "abs2008 : %s\n", fcs & (1 << 19) ? "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); default_print_float_info (gdbarch, file, frame, args);
} }

View File

@@ -152,7 +152,7 @@ pascal_language::type_print_method_args (const char *physname,
physname += len; physname += len;
for (j = 0; j < i; ++j) for (j = 0; j < i; ++j)
fputc_filtered (physname[j], stream); gdb_putc (physname[j], stream);
physname += i; physname += i;
if (physname[0] != 0) if (physname[0] != 0)

View File

@@ -11572,7 +11572,7 @@ remote_target::rcmd (const char *command, struct ui_file *outbuf)
{ {
char c = (fromhex (p[0]) << 4) + fromhex (p[1]); char c = (fromhex (p[0]) << 4) + fromhex (p[1]);
fputc_unfiltered (c, outbuf); gdb_putc (c, outbuf);
} }
break; break;
} }
@@ -11629,7 +11629,7 @@ private:
{ {
gdb_byte c = buf[i]; gdb_byte c = buf[i];
if (isprint (c)) if (isprint (c))
fputc_unfiltered (c, &stb); gdb_putc (c, &stb);
else else
fprintf_unfiltered (&stb, "\\x%02x", (unsigned char) c); fprintf_unfiltered (&stb, "\\x%02x", (unsigned char) c);
} }

View File

@@ -1608,7 +1608,7 @@ rust_language::emitchar (int ch, struct type *chtype,
else if (ch == '\0') else if (ch == '\0')
gdb_puts ("\\0", stream); gdb_puts ("\\0", stream);
else if (ch >= 32 && ch <= 127 && isprint (ch)) else if (ch >= 32 && ch <= 127 && isprint (ch))
fputc_filtered (ch, stream); gdb_putc (ch, stream);
else if (ch <= 255) else if (ch <= 255)
fprintf_filtered (stream, "\\x%02x", ch); fprintf_filtered (stream, "\\x%02x", ch);
else else

View File

@@ -523,23 +523,23 @@ s12z_print_ccw_info (struct gdbarch *gdbarch,
const int stop_1 = 15; const int stop_1 = 15;
const int stop_2 = 17; const int stop_2 = 17;
for (int i = 0; i < stop_1 - len; ++i) for (int i = 0; i < stop_1 - len; ++i)
fputc_filtered (' ', file); gdb_putc (' ', file);
fprintf_filtered (file, "0x%04x", ccw); fprintf_filtered (file, "0x%04x", ccw);
for (int i = 0; i < stop_2 - len; ++i) for (int i = 0; i < stop_2 - len; ++i)
fputc_filtered (' ', file); gdb_putc (' ', file);
for (int b = 15; b >= 0; --b) for (int b = 15; b >= 0; --b)
{ {
if (ccw & (0x1u << b)) if (ccw & (0x1u << b))
{ {
if (ccw_bits[b] == 0) if (ccw_bits[b] == 0)
fputc_filtered ('1', file); gdb_putc ('1', file);
else else
fputc_filtered (ccw_bits[b], file); gdb_putc (ccw_bits[b], file);
} }
else 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 static void

View File

@@ -70,7 +70,7 @@ serial_logchar (struct ui_file *stream, int ch_type, int ch, int timeout)
} }
if (serial_logbase != logbase_ascii) if (serial_logbase != logbase_ascii)
fputc_unfiltered (' ', stream); gdb_putc (' ', stream);
switch (ch) switch (ch)
{ {

View File

@@ -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 /* Check implementations of to_xfer_partial update *XFERED_LEN

View File

@@ -63,7 +63,9 @@ ui_file::putstrn (const char *str, int n, int quoter, bool async_safe)
int int
ui_file::putc (int c) ui_file::putc (int c)
{ {
return fputc_unfiltered (c, this); char copy = (char) c;
write (&copy, 1);
return c;
} }
void void

View File

@@ -1765,7 +1765,7 @@ fputs_highlighted (const char *str, const compiled_regex &highlight,
/* Output the part before pmatch with current style. */ /* Output the part before pmatch with current style. */
while (pmatch.rm_so > 0) while (pmatch.rm_so > 0)
{ {
fputc_filtered (*str, stream); gdb_putc (*str, stream);
pmatch.rm_so--; pmatch.rm_so--;
str++; str++;
} }
@@ -1774,7 +1774,7 @@ fputs_highlighted (const char *str, const compiled_regex &highlight,
stream->emit_style_escape (highlight_style.style ()); stream->emit_style_escape (highlight_style.style ());
while (n_highlight > 0) while (n_highlight > 0)
{ {
fputc_filtered (*str, stream); gdb_putc (*str, stream);
n_highlight--; n_highlight--;
str++; str++;
} }
@@ -1790,31 +1790,15 @@ fputs_highlighted (const char *str, const compiled_regex &highlight,
May return nonlocally. */ May return nonlocally. */
int int
putchar_filtered (int c) gdb_putc (int c)
{ {
return fputc_filtered (c, gdb_stdout); return gdb_stdout->putc (c);
} }
int int
fputc_unfiltered (int c, struct ui_file *stream) gdb_putc (int c, struct ui_file *stream)
{ {
char buf[2]; return stream->putc (c);
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;
} }
void void

View File

@@ -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 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 gdb_putc (int c);
extern int putchar_filtered (int c);
extern void gdb_puts (const char *); extern void gdb_puts (const char *);

View File

@@ -1389,7 +1389,7 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
b = '0'; b = '0';
if (zero_pad || seen_a_one || b == '1') if (zero_pad || seen_a_one || b == '1')
fputc_filtered (b, stream); gdb_putc (b, stream);
if (b == '1') if (b == '1')
seen_a_one = true; seen_a_one = true;
} }
@@ -1409,7 +1409,7 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
b = '0'; b = '0';
if (zero_pad || seen_a_one || b == '1') if (zero_pad || seen_a_one || b == '1')
fputc_filtered (b, stream); gdb_putc (b, stream);
if (b == '1') if (b == '1')
seen_a_one = true; 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 /* When not zero-padding, ensure that something is printed when the
input is 0. */ input is 0. */
if (!zero_pad && !seen_a_one) 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, /* A helper for print_octal_chars that emits a single octal digit,