diff options
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c index 8149683a104..e722b53fb72 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1358,8 +1358,12 @@ A handler is applicable to an error | |||
| 1358 | if CONDITION-NAME is one of the error's condition names. | 1358 | if CONDITION-NAME is one of the error's condition names. |
| 1359 | If an error happens, the first applicable handler is run. | 1359 | If an error happens, the first applicable handler is run. |
| 1360 | 1360 | ||
| 1361 | The car of a handler may be a list of condition names | 1361 | The car of a handler may be a list of condition names instead of a |
| 1362 | instead of a single condition name. Then it handles all of them. | 1362 | single condition name; then it handles all of them. If the special |
| 1363 | condition name `debug' is present in this list, it allows another | ||
| 1364 | condition in the list to run the debugger if `debug-on-error' and the | ||
| 1365 | other usual mechanisms says it should (otherwise, `condition-case' | ||
| 1366 | suppresses the debugger). | ||
| 1363 | 1367 | ||
| 1364 | When a handler handles an error, control returns to the `condition-case' | 1368 | When a handler handles an error, control returns to the `condition-case' |
| 1365 | and it executes the handler's BODY... | 1369 | and it executes the handler's BODY... |
| @@ -1700,6 +1704,10 @@ See also the function `condition-case'. */) | |||
| 1700 | && (!NILP (Vdebug_on_signal) | 1704 | && (!NILP (Vdebug_on_signal) |
| 1701 | /* If no handler is present now, try to run the debugger. */ | 1705 | /* If no handler is present now, try to run the debugger. */ |
| 1702 | || NILP (clause) | 1706 | || NILP (clause) |
| 1707 | /* A `debug' symbol in the handler list disables the normal | ||
| 1708 | suppression of the debugger. */ | ||
| 1709 | || (CONSP (clause) && CONSP (XCAR (clause)) | ||
| 1710 | && !NILP (Fmemq (Qdebug, XCAR (clause)))) | ||
| 1703 | /* Special handler that means "print a message and run debugger | 1711 | /* Special handler that means "print a message and run debugger |
| 1704 | if requested". */ | 1712 | if requested". */ |
| 1705 | || EQ (h->handler, Qerror))) | 1713 | || EQ (h->handler, Qerror))) |