• Miha Rihtaršič's avatar
    Quit minibuffers without aborting kmacros · 7edbcb36
    Miha Rihtaršič authored
    * 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.
    7edbcb36
lisp.h 163 KB