aboutsummaryrefslogtreecommitdiffstats
path: root/src/xmenu.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/xmenu.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/xmenu.c')
-rw-r--r--src/xmenu.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/xmenu.c b/src/xmenu.c
index 9e1a817946a..9ab7bdf971f 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -1649,7 +1649,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags,
1649 { 1649 {
1650 unblock_input (); 1650 unblock_input ();
1651 /* Make "Cancel" equivalent to C-g. */ 1651 /* Make "Cancel" equivalent to C-g. */
1652 Fsignal (Qquit, Qnil); 1652 quit ();
1653 } 1653 }
1654 1654
1655 unblock_input (); 1655 unblock_input ();
@@ -1913,7 +1913,7 @@ x_dialog_show (struct frame *f, Lisp_Object title,
1913 } 1913 }
1914 else 1914 else
1915 /* Make "Cancel" equivalent to C-g. */ 1915 /* Make "Cancel" equivalent to C-g. */
1916 Fsignal (Qquit, Qnil); 1916 quit ();
1917 1917
1918 return Qnil; 1918 return Qnil;
1919} 1919}
@@ -2304,7 +2304,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags,
2304 if (!(menuflags & MENU_FOR_CLICK)) 2304 if (!(menuflags & MENU_FOR_CLICK))
2305 { 2305 {
2306 unblock_input (); 2306 unblock_input ();
2307 Fsignal (Qquit, Qnil); 2307 quit ();
2308 } 2308 }
2309 break; 2309 break;
2310 } 2310 }