2005-01-19 Andrew Cagney <cagney@gnu.org>
authorAndrew Cagney <cagney@redhat.com>
Wed, 19 Jan 2005 22:54:56 +0000 (22:54 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 19 Jan 2005 22:54:56 +0000 (22:54 +0000)
* utils.c (quit): Simplify, call fatal.
* exceptions.c: Include "serial.h"
(print_flush): Mimic flush code found in utils.c:quit.
* Makefile.in: Update dependencies.

gdb/ChangeLog
gdb/Makefile.in
gdb/exceptions.c
gdb/utils.c

index 7a83a29ae8989cb9b288875d6fb2679465bb83d7..9c75a27f2a24483eb68dfc9baa15fe7b43d0ab3a 100644 (file)
@@ -1,3 +1,10 @@
+2005-01-19  Andrew Cagney  <cagney@gnu.org>
+
+       * utils.c (quit): Simplify, call fatal.
+       * exceptions.c: Include "serial.h"
+       (print_flush): Mimic flush code found in utils.c:quit.
+       * Makefile.in: Update dependencies.
+       
 2005-01-19  Jim Blandy  <jimb@redhat.com>
 
        * configure.tgt: Set build_rdi_share to "yes" on those targets
index 2fdfa08b1d2d084df5460344d5e7ec4ff7ce6531..6a530ba8852aa0ee36210fe296e9a9f2d631d23a 100644 (file)
@@ -1898,7 +1898,7 @@ event-top.o: event-top.c $(defs_h) $(top_h) $(inferior_h) $(target_h) \
        $(exceptions_h) $(gdbcmd_h) $(readline_h) $(readline_history_h)
 exceptions.o: exceptions.c $(defs_h) $(exceptions_h) $(breakpoint_h) \
        $(target_h) $(inferior_h) $(annotate_h) $(ui_out_h) $(gdb_assert_h) \
-       $(gdb_string_h)
+       $(gdb_string_h) $(serial_h)
 exec.o: exec.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) $(gdbcmd_h) \
        $(language_h) $(symfile_h) $(objfiles_h) $(completer_h) $(value_h) \
        $(exec_h) $(readline_h) $(gdb_string_h) $(gdbcore_h) $(gdb_stat_h) \
index 9219462ac41f5561ef0cec9bc19effba5c7eaa26..fae2372002edbb53eb2968430e0032ce3b870934 100644 (file)
@@ -31,6 +31,7 @@
 #include "ui-out.h"
 #include "gdb_assert.h"
 #include "gdb_string.h"
+#include "serial.h"
 
 const struct exception exception_none = { 0, NO_ERROR, NULL };
 
@@ -262,11 +263,29 @@ deprecated_throw_reason (enum return_reason reason)
 static void
 print_flush (void)
 {
+  struct serial *gdb_stdout_serial;
+
   if (deprecated_error_begin_hook)
     deprecated_error_begin_hook ();
   target_terminal_ours ();
-  wrap_here ("");              /* Force out any buffered output */
+
+  /* We want all output to appear now, before we print the error.  We
+     have 3 levels of buffering we have to flush (it's possible that
+     some of these should be changed to flush the lower-level ones
+     too):  */
+
+  /* 1.  The _filtered buffer.  */
+  wrap_here ("");
+
+  /* 2.  The stdio buffer.  */
   gdb_flush (gdb_stdout);
+  gdb_flush (gdb_stderr);
+
+  /* 3.  The system-level buffer.  */
+  gdb_stdout_serial = serial_fdopen (1);
+  serial_drain_output (gdb_stdout_serial);
+  serial_un_fdopen (gdb_stdout_serial);
+
   annotate_error_begin ();
 }
 
index 243fc754db6398f470a9693f1c8b9f8857b3958a..55ee7ec0d047286d771301cd4c6c13c3aa2d55f4 100644 (file)
@@ -880,47 +880,19 @@ print_sys_errmsg (const char *string, int errcode)
 void
 quit (void)
 {
-  struct serial *gdb_stdout_serial = serial_fdopen (1);
-
-  target_terminal_ours ();
-
-  /* We want all output to appear now, before we print "Quit".  We
-     have 3 levels of buffering we have to flush (it's possible that
-     some of these should be changed to flush the lower-level ones
-     too):  */
-
-  /* 1.  The _filtered buffer.  */
-  wrap_here ((char *) 0);
-
-  /* 2.  The stdio buffer.  */
-  gdb_flush (gdb_stdout);
-  gdb_flush (gdb_stderr);
-
-  /* 3.  The system-level buffer.  */
-  serial_drain_output (gdb_stdout_serial);
-  serial_un_fdopen (gdb_stdout_serial);
-
-  annotate_error_begin ();
-
-  /* Don't use *_filtered; we don't want to prompt the user to continue.  */
-  if (quit_pre_print)
-    fputs_unfiltered (quit_pre_print, gdb_stderr);
-
 #ifdef __MSDOS__
   /* No steenking SIGINT will ever be coming our way when the
      program is resumed.  Don't lie.  */
-  fprintf_unfiltered (gdb_stderr, "Quit\n");
+  fatal ("Quit");
 #else
   if (job_control
       /* If there is no terminal switching for this target, then we can't
          possibly get screwed by the lack of job control.  */
       || current_target.to_terminal_ours == NULL)
-    fprintf_unfiltered (gdb_stderr, "Quit\n");
+    fatal ("Quit");
   else
-    fprintf_unfiltered (gdb_stderr,
-                       "Quit (expect signal SIGINT when the program is resumed)\n");
+    fatal ("Quit (expect signal SIGINT when the program is resumed)");
 #endif
-  deprecated_throw_reason (RETURN_QUIT);
 }
 
 /* Control C comes here */