aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2020-02-05 12:45:13 +0100
committerTom Tromey <tromey@adacore.com>2020-02-07 14:06:03 -0700
commitdfcb27e41d37b8bff178697f5f33ec288387fb01 (patch)
tree6148568d725dc2bb4e606cb3ec2540185cf6b125
parentfaa17681ccf5b45a14424c184d867a390d9e8086 (diff)
downloadgdb-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/ChangeLog13
-rw-r--r--gdb/remote-sim.c2
-rw-r--r--gdb/remote.c2
-rw-r--r--gdb/ui-file.c2
-rw-r--r--gdb/ui-file.h2
-rw-r--r--gdb/utils.c14
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