Make fputs_unfiltered use fputs_maybe_filtered
authorIain Buclaw <ibuclaw@gdcproject.org>
Wed, 5 Feb 2020 11:45:13 +0000 (12:45 +0100)
committerTom Tromey <tromey@adacore.com>
Fri, 7 Feb 2020 20:23:51 +0000 (13:23 -0700)
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.

gdb/ChangeLog
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

gdb/ChangeLog
gdb/remote-sim.c
gdb/remote.c
gdb/ui-file.c
gdb/ui-file.h
gdb/utils.c

index 928fb9c9b95a16af9164a9f9586fc0e80b914ac2..9c46d464ee700cc1c21a496f514e649682167a69 100644 (file)
@@ -1,3 +1,16 @@
+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.
index 16fd6bf7e232f66df60d51a0f6ed441330d915d7..2965789a273e7f1d8d78d07961012f165343bfdc 100644 (file)
@@ -376,7 +376,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;
 }
index 19470805c70a81bdb7dd1e82050f77bdeb8ce1a8..4df5c0aef8ea40bf2b84a4683e6d132243e154f8 100644 (file)
@@ -6782,7 +6782,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);
 }
index 61e9d205023db895174805f99330b44b7e673b24..29b8f004974fc20b81fb859b9f4541b5a41bda73 100644 (file)
@@ -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);
 }
index b0bc3f23421c1a9357daf061722ffdf61418f742..67685bdfa158b3bdddfda4db0e82920e052d7eae 100644 (file)
@@ -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
index 49625b1921345555d3e9f539b25083f0d5ca55ea..fb20c45507103c9a94d4300c98277031552e8aa6 100644 (file)
@@ -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
This page took 0.036641 seconds and 4 git commands to generate.