aboutsummaryrefslogtreecommitdiffstats
path: root/src/fileio.c
diff options
context:
space:
mode:
authorPaul Eggert2016-07-24 11:10:09 +0200
committerPaul Eggert2016-07-25 00:38:34 +0200
commit50cc08bf6e6cdc96dcdcbef388cf9cf76a15f81a (patch)
tree9cfd5f799262e0ba85d7213113bdb20302196e74 /src/fileio.c
parent2c2b0cd07c143e33af9f7237ef4819c28764a90f (diff)
downloademacs-50cc08bf6e6cdc96dcdcbef388cf9cf76a15f81a.tar.gz
emacs-50cc08bf6e6cdc96dcdcbef388cf9cf76a15f81a.zip
‘signal’ no longer returns
Although for decades ‘signal’ has been documented to not return, a corner case in the Lisp debugger causes ‘signal’ to return. Remove the corner case and adjust Emacs internals accordingly. An alternative would be to document the corner case, but this would complicate the Lisp API unnecessarily. (Bug#24047) * src/eval.c (signal_or_quit): New function, with most of the old contents of Fsignal. (quit): New function, which uses signal_or_quit and which might return. All keyboard-based callers of Fsignal (Qquit, Qnil) changed to use this new function instead. (Fsignal): Use signal_or_quit. Now _Noreturn. All callers changed. (xsignal): Move to lisp.h. * src/lisp.h (xsignal): Now an inline function, as it's now just an alias for Fsignal.
Diffstat (limited to 'src/fileio.c')
-rw-r--r--src/fileio.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/fileio.c b/src/fileio.c
index b1f9d3cf73a..66ea761ca56 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -4513,7 +4513,7 @@ by calling `format-decode', which see. */)
4513 PT - BEG, Z - PT - inserted); 4513 PT - BEG, Z - PT - inserted);
4514 4514
4515 if (read_quit) 4515 if (read_quit)
4516 Fsignal (Qquit, Qnil); 4516 quit ();
4517 4517
4518 /* Retval needs to be dealt with in all cases consistently. */ 4518 /* Retval needs to be dealt with in all cases consistently. */
4519 if (NILP (val)) 4519 if (NILP (val))