summaryrefslogtreecommitdiff
path: root/src/minibuf.c
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/minibuf.c
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/minibuf.c')
-rw-r--r--src/minibuf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/minibuf.c b/src/minibuf.c
index 1b842b77211..0f4349e70b8 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -496,7 +496,7 @@ confirm the aborting of the current minibuffer and all contained ones. */)
}
}
else
- Fthrow (Qexit, Qt);
+ CALLN (Ffuncall, intern ("minibuffer-quit-recursive-edit"));
return Qnil;
}