aboutsummaryrefslogtreecommitdiff
path: root/gdb/top.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1995-04-04 20:07:21 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1995-04-04 20:07:21 +0000
commitdee803840d2ba679a5444ed6715be25194a8e8d7 (patch)
treed212125a99632bc7f52d5ce684a0ac119d51c716 /gdb/top.c
parent01c32fc42ce3ad8e03b04c81db50fd6b0e171c26 (diff)
downloadgdb-dee803840d2ba679a5444ed6715be25194a8e8d7.zip
gdb-dee803840d2ba679a5444ed6715be25194a8e8d7.tar.gz
gdb-dee803840d2ba679a5444ed6715be25194a8e8d7.tar.bz2
* top.c, utils.c, main.c: Replace error_pre_print with two
variables: error_pre_print (for RETURN_ERROR) and quit_pre_print (for RETURN_QUIT). Fixes a bug whereby typing ^C (e.g. in "maint print sym") could output extraneous stuff. * objfiles.c: Don't declare error_pre_print; defs.h does it.
Diffstat (limited to 'gdb/top.c')
-rw-r--r--gdb/top.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/gdb/top.c b/gdb/top.c
index 2068471..3ba7581 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -493,15 +493,22 @@ catch_errors (func, args, errstring, mask)
int val;
struct cleanup *saved_cleanup_chain;
char *saved_error_pre_print;
+ char *saved_quit_pre_print;
saved_cleanup_chain = save_cleanups ();
saved_error_pre_print = error_pre_print;
+ saved_quit_pre_print = quit_pre_print;
if (mask & RETURN_MASK_ERROR)
- memcpy ((char *)saved_error, (char *)error_return, sizeof (jmp_buf));
+ {
+ memcpy ((char *)saved_error, (char *)error_return, sizeof (jmp_buf));
+ error_pre_print = errstring;
+ }
if (mask & RETURN_MASK_QUIT)
- memcpy (saved_quit, quit_return, sizeof (jmp_buf));
- error_pre_print = errstring;
+ {
+ memcpy (saved_quit, quit_return, sizeof (jmp_buf));
+ quit_pre_print = errstring;
+ }
if (setjmp (tmp_jmp) == 0)
{
@@ -516,11 +523,16 @@ catch_errors (func, args, errstring, mask)
restore_cleanups (saved_cleanup_chain);
- error_pre_print = saved_error_pre_print;
if (mask & RETURN_MASK_ERROR)
- memcpy (error_return, saved_error, sizeof (jmp_buf));
+ {
+ memcpy (error_return, saved_error, sizeof (jmp_buf));
+ error_pre_print = saved_error_pre_print;
+ }
if (mask & RETURN_MASK_QUIT)
- memcpy (quit_return, saved_quit, sizeof (jmp_buf));
+ {
+ memcpy (quit_return, saved_quit, sizeof (jmp_buf));
+ quit_pre_print = saved_quit_pre_print;
+ }
return val;
}