diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2020-02-05 12:45:13 +0100 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-02-07 14:06:03 -0700 |
commit | dfcb27e41d37b8bff178697f5f33ec288387fb01 (patch) | |
tree | 6148568d725dc2bb4e606cb3ec2540185cf6b125 | |
parent | faa17681ccf5b45a14424c184d867a390d9e8086 (diff) | |
download | gdb-dfcb27e41d37b8bff178697f5f33ec288387fb01.zip gdb-dfcb27e41d37b8bff178697f5f33ec288387fb01.tar.gz gdb-dfcb27e41d37b8bff178697f5f33ec288387fb01.tar.bz2 |
Make fputs_unfiltered use fputs_maybe_filtered
This patch redefines fputs_unfiltered in utils.c, with new behavior to
forward parameters to fputs_maybe_filtered. This makes
fputs_unfiltered identical to fputs_filtered, except filtering is
disabled.
Some callers of fputs_unfiltered have been updated to use ui_file_puts
where they were using other ui_file_* functions anyway for IO.
This fixes the problem I saw with \032\032post-prompt annotation being
flushed to stdout in the wrong order.
2020-02-05 Iain Buclaw <ibuclaw@gdcproject.org>
PR gdb/25190:
* gdb/remote-sim.c (gdb_os_write_stderr): Update.
* gdb/remote.c (remote_console_output): Update.
* gdb/ui-file.c (fputs_unfiltered): Rename to...
(ui_file_puts): ...this.
* gdb/ui-file.h (ui_file_puts): Add declaration.
* gdb/utils.c (emit_style_escape): Update.
(flush_wrap_buffer): Update.
(fputs_maybe_filtered): Update.
(fputs_unfiltered): Add function.
Change-Id: I17ed5078f71208344f2f8ab634a6518b1af6e213
-rw-r--r-- | gdb/ChangeLog | 13 | ||||
-rw-r--r-- | gdb/remote-sim.c | 2 | ||||
-rw-r--r-- | gdb/remote.c | 2 | ||||
-rw-r--r-- | gdb/ui-file.c | 2 | ||||
-rw-r--r-- | gdb/ui-file.h | 2 | ||||
-rw-r--r-- | gdb/utils.c | 14 |
6 files changed, 28 insertions, 7 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f3667bb..5448f83 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,18 @@ 2020-02-05 Iain Buclaw <ibuclaw@gdcproject.org> + PR gdb/25190: + * gdb/remote-sim.c (gdb_os_write_stderr): Update. + * gdb/remote.c (remote_console_output): Update. + * gdb/ui-file.c (fputs_unfiltered): Rename to... + (ui_file_puts): ...this. + * gdb/ui-file.h (ui_file_puts): Add declaration. + * gdb/utils.c (emit_style_escape): Update. + (flush_wrap_buffer): Update. + (fputs_maybe_filtered): Update. + (fputs_unfiltered): Add function. + +2020-02-05 Iain Buclaw <ibuclaw@gdcproject.org> + * gdb/event-loop.c (gdb_wait_for_event): Update. * gdb/printcmd.c (printf_command): Update. * gdb/remote-fileio.c (remote_fileio_func_write): Update. diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index ce13517..b4fa69c 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -375,7 +375,7 @@ gdb_os_write_stderr (host_callback *p, const char *buf, int len) { b[0] = buf[i]; b[1] = 0; - fputs_unfiltered (b, gdb_stdtargerr); + ui_file_puts (gdb_stdtargerr, b); } return len; } diff --git a/gdb/remote.c b/gdb/remote.c index 11ec857..34a8a08f 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -6845,7 +6845,7 @@ remote_console_output (const char *msg) tb[0] = c; tb[1] = 0; - fputs_unfiltered (tb, gdb_stdtarg); + ui_file_puts (gdb_stdtarg, tb); } ui_file_flush (gdb_stdtarg); } diff --git a/gdb/ui-file.c b/gdb/ui-file.c index 2d9a378..e42d203 100644 --- a/gdb/ui-file.c +++ b/gdb/ui-file.c @@ -150,7 +150,7 @@ ui_file_read (struct ui_file *file, char *buf, long length_buf) } void -fputs_unfiltered (const char *buf, struct ui_file *file) +ui_file_puts (struct ui_file *file, const char *buf) { file->puts (buf); } diff --git a/gdb/ui-file.h b/gdb/ui-file.h index b0bc3f2..67685bd 100644 --- a/gdb/ui-file.h +++ b/gdb/ui-file.h @@ -112,6 +112,8 @@ extern void ui_file_write_async_safe (struct ui_file *file, const char *buf, extern long ui_file_read (struct ui_file *file, char *buf, long length_buf); +extern void ui_file_puts (struct ui_file *file, const char *buf); + extern int gdb_console_fputs (const char *, FILE *); /* A std::string-based ui_file. Can be used as a scratch buffer for diff --git a/gdb/utils.c b/gdb/utils.c index b722296..d51008a 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1405,7 +1405,7 @@ emit_style_escape (const ui_file_style &style, if (stream == nullptr) wrap_buffer.append (style.to_ansi ()); else - fputs_unfiltered (style.to_ansi ().c_str (), stream); + ui_file_puts (stream, style.to_ansi ().c_str ()); } /* Set the current output style. This will affect future uses of the @@ -1539,7 +1539,7 @@ flush_wrap_buffer (struct ui_file *stream) { if (stream == gdb_stdout && !wrap_buffer.empty ()) { - fputs_unfiltered (wrap_buffer.c_str (), stream); + ui_file_puts (stream, wrap_buffer.c_str ()); wrap_buffer.clear (); } } @@ -1697,7 +1697,7 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream, || top_level_interpreter ()->interp_ui_out ()->is_mi_like_p ()) { flush_wrap_buffer (stream); - fputs_unfiltered (linebuffer, stream); + ui_file_puts (stream, linebuffer); return; } @@ -1797,7 +1797,7 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream, /* Now output indentation and wrapped string. */ if (wrap_column) { - fputs_unfiltered (wrap_indent, stream); + ui_file_puts (stream, wrap_indent); if (stream->can_emit_style_escape ()) emit_style_escape (save_style, stream); /* FIXME, this strlen is what prevents wrap_indent from @@ -1835,6 +1835,12 @@ fputs_filtered (const char *linebuffer, struct ui_file *stream) fputs_maybe_filtered (linebuffer, stream, 1); } +void +fputs_unfiltered (const char *linebuffer, struct ui_file *stream) +{ + fputs_maybe_filtered (linebuffer, stream, 0); +} + /* See utils.h. */ void |