summaryrefslogtreecommitdiff
path: root/src/lisp.h
diff options
context:
space:
mode:
authorMiha Rihtaršič <miha@kamnitnik.top>2021-07-20 14:36:45 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-07-20 14:36:45 +0200
commit7edbcb3648e9d08a4ccc291f672f831b4f07eb5c (patch)
tree30f6ce7415be55f973b0071d2d957023b9b8c4c7 /src/lisp.h
parent557c59591cb03729c7ab56719e5ed87a1f06d435 (diff)
downloademacs-7edbcb3648e9d08a4ccc291f672f831b4f07eb5c.tar.gz
Quit minibuffers without aborting kmacros
* doc/lispref/commands.texi (Quitting): Document `minibuffer-quit' (Recursive Editing): Document throwing of function values to `exit'. * doc/lispref/errors.texi (Standard Errors): Document `minibuffer-quit' * lisp/minibuffer.el (minibuffer-quit-recursive-edit): New function. * lisp/simple.el (minibuffer-error-function): Do not abort keyboard macro execution if is minibuffer-quit is signaled (bug#48603). * src/data.c (syms_of_data): New error symbol `minibuffer-quit' * src/keyboard.c (recursive_edit_1): Implement throwing of function values to `exit`. In that case, the function will be called without arguments before returning from the command loop. (cmd_error): (Fcommand_error_default_function): Do not abort keyboard macro execution if minibuffer-quit is signaled. (command_loop_2): New argument HANDLERS. * src/macros.c (Fexecute_kbd_macro): Use command_loop_2 instead of command_loop_1. * src/minibuf.c (Fabort_minibuffers): Use it.
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 1795b9d811b..b3f1dc16b13 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4417,7 +4417,7 @@ extern bool detect_input_pending_ignore_squeezables (void);
extern bool detect_input_pending_run_timers (bool);
extern void safe_run_hooks (Lisp_Object);
extern void cmd_error_internal (Lisp_Object, const char *);
-extern Lisp_Object command_loop_1 (void);
+extern Lisp_Object command_loop_2 (Lisp_Object);
extern Lisp_Object read_menu_command (void);
extern Lisp_Object recursive_edit_1 (void);
extern void record_auto_save (void);