• Paul Eggert's avatar
    ‘signal’ no longer returns · 50cc08bf
    Paul Eggert authored
    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
    (xsignal): Move to lisp.h.
    * src/lisp.h (xsignal): Now an inline function, as it's now
    just an alias for Fsignal.
w32fns.c 332 KB