Index: gdb/exceptions.c |
diff --git a/gdb/exceptions.c b/gdb/exceptions.c |
index 7db9df9eb805662f3c342bac53d0de56f5984f3a..2495fa56605eaec4224f4509fd0dbc9960f86b33 100644 |
--- a/gdb/exceptions.c |
+++ b/gdb/exceptions.c |
@@ -1,6 +1,6 @@ |
/* Exception (throw catch) mechanism, for GDB, the GNU debugger. |
- Copyright (C) 1986, 1988-2012 Free Software Foundation, Inc. |
+ Copyright (C) 1986-2013 Free Software Foundation, Inc. |
This file is part of GDB. |
@@ -25,7 +25,7 @@ |
#include "annotate.h" |
#include "ui-out.h" |
#include "gdb_assert.h" |
-#include "gdb_string.h" |
+#include <string.h> |
#include "serial.h" |
#include "gdbthread.h" |
@@ -221,7 +221,7 @@ exceptions_state_mc_action_iter_1 (void) |
void |
throw_exception (struct gdb_exception exception) |
{ |
- quit_flag = 0; |
+ clear_quit_flag (); |
immediate_quit = 0; |
do_cleanups (all_cleanups ()); |
@@ -234,28 +234,6 @@ throw_exception (struct gdb_exception exception) |
EXCEPTIONS_SIGLONGJMP (current_catcher->buf, exception.reason); |
} |
-void |
-deprecated_throw_reason (enum return_reason reason) |
-{ |
- struct gdb_exception exception; |
- |
- memset (&exception, 0, sizeof exception); |
- |
- exception.reason = reason; |
- switch (reason) |
- { |
- case RETURN_QUIT: |
- break; |
- case RETURN_ERROR: |
- exception.error = GENERIC_ERROR; |
- break; |
- default: |
- internal_error (__FILE__, __LINE__, _("bad switch")); |
- } |
- |
- throw_exception (exception); |
-} |
- |
static void |
print_flush (void) |
{ |
@@ -563,7 +541,7 @@ catch_errors (catch_errors_ftype *func, void *func_args, char *errstring, |
} |
int |
-catch_command_errors (catch_command_errors_ftype * command, |
+catch_command_errors (catch_command_errors_ftype *command, |
char *arg, int from_tty, return_mask mask) |
{ |
volatile struct gdb_exception e; |
@@ -577,3 +555,19 @@ catch_command_errors (catch_command_errors_ftype * command, |
return 0; |
return 1; |
} |
+ |
+int |
+catch_command_errors_const (catch_command_errors_const_ftype *command, |
+ const char *arg, int from_tty, return_mask mask) |
+{ |
+ volatile struct gdb_exception e; |
+ |
+ TRY_CATCH (e, mask) |
+ { |
+ command (arg, from_tty); |
+ } |
+ print_any_exception (gdb_stderr, NULL, e); |
+ if (e.reason < 0) |
+ return 0; |
+ return 1; |
+} |