| 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;
|
| +}
|
|
|