aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1992-07-27 02:56:28 +0000
committerRichard M. Stallman <[email protected]>1992-07-27 02:56:28 +0000
commitab67260b084615a1451e263c1c05b2f64230c6e1 (patch)
treebce921daf1e129f90eec9e3980cf9d68794ef0dd /src/eval.c
parent8a4c10dcc63f575b0a5e20b50757640c0a158ee7 (diff)
*** empty log message ***
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c27
1 files changed, 8 insertions, 19 deletions
diff --git a/src/eval.c b/src/eval.c
index 5ec675111a..562974b7dc 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1127,32 +1127,21 @@ static int
wants_debugger (list, conditions)
Lisp_Object list, conditions;
{
- static int looking = 0;
-
- if (looking)
- {
- /* We got an error while looking in LIST. */
- looking = 0;
- return 1;
- }
-
if (NILP (list))
return 0;
if (! CONSP (list))
return 1;
- looking = 1;
- while (!NILP (conditions))
+ while (CONSP (conditions))
{
- Lisp_Object tem;
- tem = Fmemq (XCONS (conditions)->car, list);
- if (! NILP (tem))
- {
- looking = 0;
+ Lisp_Object this, tail;
+ this = XCONS (conditions)->car;
+ for (tail = list; CONSP (tail); tail = XCONS (tail)->cdr)
+ if (EQ (XCONS (tail)->car, this))
return 1;
- }
conditions = XCONS (conditions)->cdr;
}
+ return 0;
}
/* Value of Qlambda means we have called debugger and user has continued.
@@ -1174,8 +1163,8 @@ find_handler_clause (handlers, conditions, sig, data, debugger_value_ptr)
if (wants_debugger (Vstack_trace_on_error, conditions))
internal_with_output_to_temp_buffer ("*Backtrace*", Fbacktrace, Qnil);
if (!entering_debugger
- && ((EQ (sig, Qquit) && debug_on_quit)
- || wants_debugger (Vdebug_on_error, conditions)))
+ && (EQ (sig, Qquit) ? debug_on_quit
+ : wants_debugger (Vdebug_on_error, conditions)))
{
int count = specpdl_ptr - specpdl;
specbind (Qdebug_on_error, Qnil);