Files
emacs/lisp
Alan Mackenzie 203e61ff83 Make recursive minibuffers and recursive edits work together
* lisp/minibuffer.el (exit-minibuffer): When in a minibuffer, throw an error
should the command loop nesting level be wrong.

* src/lisp.h (minibuffer_quit_level): declare as an extern.
(command_loop_level): Move definition from src/window.h

* src/window.h (command_loop_level): move definition to src/lisp.h.

* src/eval.c (minibuffer_quit_level): Move this variable to file level from
being a static inside internal_catch.
(internal_catch): Simplify the logic.

* src/minibuf.c (Vcommand_loop_level_list): New variable.
(move_minibuffer_onto_frame): Set the major mode of  *Minibuf-0*.
(Fminibuffer_innermost_command_loop_p): New primitive.
(Fabort_minibuffers): Check the command loop level before throwing t to 'exit,
and set minibuffer_quit_level too.
(read_minibuf): New variable calling_window.
Before stacking up minibuffers on the current mini-window, check that the
mini-window is not the current one.
Do not call choose_minibuf_frame from read_minibuf's unwinding process.
Bind calling_frame and calling_window over the recursive edit.
Set the new minibuffer's major mode directly.
Remove the switching away from the minibuffer after the recursive edit.
(get_minibuffer): Record the command loop level in new variable
Vcommand_loop_level_list.  No longer set the major mode of a returned
minibuffer.
(minibuf_c_loop_level): New function.
(read_minibuf_unwind): New variables calling_frame, calling_window are unbound
from the binding stack.  Remove old variable `window', which could not be set
reliably to the expired mini-window.
The expired minibuffer is determined as the nth in the list, rather than the
contents of the current or previous mini-window.
Switch the current window away from the mini-window here (moved from
read_minibuf).
2021-02-11 21:37:45 +00:00
..
2021-01-31 14:17:16 +01:00
2021-02-11 21:41:58 +01:00
2021-01-29 05:52:51 +01:00
2021-02-10 14:42:51 +01:00
2021-01-31 15:00:41 +01:00
2021-02-08 09:10:57 +01:00
2021-02-03 08:11:08 -08:00
2021-01-31 14:35:44 +01:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-02-08 09:10:57 +01:00
2021-01-01 01:13:56 -08:00
2021-02-08 07:52:16 +01:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-02-06 08:10:38 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:28:16 -08:00
2021-02-08 00:25:16 +01:00
2021-01-01 01:13:56 -08:00
2021-02-08 00:25:16 +01:00
2021-02-06 08:10:38 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-02-10 10:58:40 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-02-06 08:10:38 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-02-10 14:42:51 +01:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-02-03 08:11:08 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-03 22:07:59 -05:00
2021-02-08 09:10:57 +01:00
2021-01-01 01:13:56 -08:00
2021-02-01 06:28:21 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-14 07:50:28 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:28:16 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-02-05 10:06:22 +01:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-28 19:36:24 +01:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00
2021-01-01 01:13:56 -08:00

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.