From: Chong Yidong Date: Sat, 20 Aug 2011 21:17:06 +0000 (-0400) Subject: * src/eval.c (Fsignal): Handle `debug' symbol in error handler. X-Git-Tag: emacs-pretest-24.0.90~104^2~152^2~70^2~15^2~35 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bd1ba3e824d2d070b76e0c77529a993db2d8b4ba;p=emacs.git * src/eval.c (Fsignal): Handle `debug' symbol in error handler. Fixes: debbugs:9329 --- 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)))