]> git.eshelyaron.com Git - emacs.git/commit
Quit minibuffers without aborting kmacros
authorMiha Rihtaršič <miha@kamnitnik.top>
Tue, 20 Jul 2021 12:36:45 +0000 (14:36 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 20 Jul 2021 12:36:45 +0000 (14:36 +0200)
commit7edbcb3648e9d08a4ccc291f672f831b4f07eb5c
tree30f6ce7415be55f973b0071d2d957023b9b8c4c7
parent557c59591cb03729c7ab56719e5ed87a1f06d435
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.
doc/lispref/commands.texi
doc/lispref/errors.texi
etc/NEWS
lisp/minibuffer.el
lisp/simple.el
src/data.c
src/keyboard.c
src/lisp.h
src/macros.c
src/minibuf.c