1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-10 01:34:36 -08:00
emacs/doc/lispref
Alan Mackenzie c7c154bb57 Fix incompleteness in the implementation of minibuffer-follows-selected-frame
In particular, add a new value to the variable, and fix several bugs apparent
with the implementation up till now.

* doc/emacs/mini.texi (Basic Minibuffer): Add a description of the new
non-nil, non-t value of minibuffer-follows-selected-frame.

* doc/emacs/trouble.texi (Quitting): Add a description of how C-g handles
recursive minibuffers when typed in one which isn't the most nested.

* doc/lispref/minibuf.texi (Intro to Minibuffers): Add an @dfn for "active
minibuffer".
(Minibuffer Commands): Document that exit-minibuffer throws an error when not
invoked from the innermost Minibuffer.
(Recursive Mini): Amend the description of the visibility of outer level
minibuffers.
(Minibuffer Misc): In the description of the minibuffer hooks, replace "the
minibuffer" with "a minibuffer".

* etc/NEWS (Entry announcing minibuffer-follows-selected-frame): Add a
description of the new non-nil, non-t value.

* lisp/cus-start.el (top level): make the customize entry for
minibuffer-follows-selected-frame a choice between three entries.

* lisp/minibuffer.el (exit-minibuffer): throw an error when we're not in the
most nested minibuffer.
(top level): Bind C-g to abort-minibuffers in minibuffer-local-map.

* lisp/window.el (window-deletable-p): return the symbol `frame' when (amongst
other things) minibuffer-follows-selected-frame is t.

* src/eval.c (internal_catch): Add a mechanism to (throw 'exit t) repeatedly
when the throw currently being processed doesn't terminate the current
minibuffer.

* src/lisp.h (this_minibuffer_depth): New extern declaration
(minibuf_level): extern declaration moved here from window.h.

* src/minibuf.c (minibuffer_follows_frame, minibuf_stays_put)
(minibuf_moves_frame_when_opened): New and amended functions to query the
value of minibuffer-follows-selected-frame.
(choose_minibuf_frame): check (minibuf > 1) in place of (minibufer > 0) at a
particular place.  At another place, check that an alleged frame is so and is
live.  Before selecting a non-miniwindow on a different frame, ensure it
really is a different frame.
(move_minibuffer_onto_frame): Stack up all recursive minibuffers on the target
frame.  Check the minibuf_window isn't in the old frame before setting that
frame's miniwindow to an inactive minibuffer.
(Finnermost_minibuffer_p, Fabort_minibuffers): New primitives.
(this_minibuffer_depth): New function.
(read_minibuf): Record the calling frame in a variable, and switch back to it
after the recursive edit has terminated normally, using
select-frame-set-input-focus.  Stack up all the recursive minibuffers on the
miniwindow where a new minibuffer is being opened.  After the recursive edit,
switch the selected window away from the expired minibuffer's window.
(nth_minibuffer): New function.
(minibuffer-follows-selected-frame): Change from a DEFVAR_BOOL to a
DEFVAR_LISP.

* src/window.c (decode_next_window_args): Set *minibuf to w's mini-window's
content when that content is a minibuffer.

* src/window.h (minibuf_level) Declaration moved from here to lisp.h.
2021-01-10 20:32:40 +00:00
..
abbrevs.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
anti.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
back.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
backups.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
book-spine.texi Fix single-quoting style in PDF manuals 2015-05-01 12:06:38 -07:00
buffers.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
ChangeLog.1 Update copyright year to 2021 2021-01-01 01:13:56 -08:00
commands.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
compile.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
control.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
customize.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
debugging.texi Pretty-print keys without <> around modifiers (bug#45536) 2021-01-05 11:28:58 +01:00
display.texi Add support for flat buttons 2021-01-10 14:10:18 +01:00
doclicense.texi Merge from Gnulib 2017-10-01 18:31:10 -07:00
edebug.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
elisp.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
errors.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
eval.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
files.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
frames.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
functions.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
gpl.texi Merge from Gnulib 2017-10-01 18:31:10 -07:00
hash.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
help.texi Pretty-print keys without <> around modifiers (bug#45536) 2021-01-05 11:28:58 +01:00
hooks.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
index.texi
internals.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
intro.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
keymaps.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
lay-flat.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
lists.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
loading.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
macros.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
Makefile.in Update copyright year to 2021 2021-01-01 01:13:56 -08:00
maps.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
markers.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
minibuf.texi Fix incompleteness in the implementation of minibuffer-follows-selected-frame 2021-01-10 20:32:40 +00:00
modes.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
nonascii.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
numbers.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
objects.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
os.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
package.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
positions.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
processes.texi Merge from origin/emacs-27 2021-01-01 01:14:58 -08:00
README Update copyright year to 2021 2021-01-01 01:13:56 -08:00
records.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
searching.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
sequences.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
spellfile Update lispref spellfile 2019-06-04 08:34:16 -07:00
streams.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
strings.texi Merge from origin/emacs-27 2021-01-04 07:50:25 -08:00
symbols.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
syntax.texi * doc/lispref/syntax.texi (Syntax Class Table): Clarify @ 2021-01-03 20:14:16 -05:00
text.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
threads.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
tips.texi Merge from origin/emacs-27 2021-01-01 01:28:16 -08:00
two-volume-cross-refs.txt Update copyright year to 2021 2021-01-01 01:13:56 -08:00
two-volume.make Update copyright year to 2021 2021-01-01 01:13:56 -08:00
variables.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
windows.texi Add a display-buffer window selection function that's more like XEmacs 2021-01-07 16:35:48 +01:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2021 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <https://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called 'elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run 'make info'.

** Use 'make elisp.pdf' or 'make elisp.html' to create PDF or HTML versions.


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.