From bd1ba3e824d2d070b76e0c77529a993db2d8b4ba Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 20 Aug 2011 17:17:06 -0400 Subject: [PATCH] * src/eval.c (Fsignal): Handle `debug' symbol in error handler. Fixes: debbugs:9329 --- src/ChangeLog | 4 ++++ src/eval.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 85a55b2b7c9..adf7291eadf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-08-20 Chong Yidong + + * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329). + 2011-08-19 Eli Zaretskii * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of diff --git a/src/eval.c b/src/eval.c index e37425020c9..8b121665ff7 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1699,6 +1699,10 @@ See also the function `condition-case'. */) && (!NILP (Vdebug_on_signal) /* If no handler is present now, try to run the debugger. */ || NILP (clause) + /* A `debug' symbol in the handler list disables the normal + suppression of the debugger. */ + || (CONSP (clause) && CONSP (XCAR (clause)) + && !NILP (Fmemq (Qdebug, XCAR (clause)))) /* Special handler that means "print a message and run debugger if requested". */ || EQ (h->handler, Qerror))) -- 2.39.2