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);
if (flags & (1 << 4))
gdb_puts ("INX ", file);
fputc_filtered ('\n', file);
gdb_putc ('\n', file);
}
/* 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)
fprintf_unfiltered (fp, " all");
fputc_unfiltered ('\n', fp);
gdb_putc ('\n', fp);
}
/* 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);
}
if (from_tty)
putchar_filtered ('\n');
gdb_putc ('\n');
}
/* 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:
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

View file

@ -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. */

View file

@ -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) \

View file

@ -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);

View file

@ -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');
}
}
}

View file

@ -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);
}
}

View file

@ -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;

View file

@ -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);

View file

@ -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)
{

View file

@ -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."),

View file

@ -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);
}

View file

@ -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:

View file

@ -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);
}

View file

@ -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)

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]);
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);
}

View file

@ -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

View file

@ -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

View file

@ -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)
{

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

View file

@ -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

View file

@ -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

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 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 *);

View file

@ -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,