* frames.texi (Frames): Clean up introduction. Document `ns'

return value for framep.
(Creating Frames): Note how the terminal is chosen.
(Multiple Terminals, Multiple Displays): Merge into a single node.
(Color Parameters): Fix typo.

* variables.texi (Local Variables, Buffer-Local Variables)
(Creating Buffer-Local): Change link to Multiple Terminals.

* os.texi (X11 Keysyms): Change link to Multiple Terminals.

* keymaps.texi (Controlling Active Maps): Change link to Multiple
Terminals.

* commands.texi (Command Loop Info, Keyboard Macros): Change link
to Multiple Terminals.

* elisp.texi (Top): Update node listing.
* vol2.texi (Top): Update node listing.
* vol1.texi (Top): Update node listing.
This commit is contained in:
Chong Yidong 2009-04-04 22:34:23 +00:00
parent e173bbce45
commit 3ec61d4e52
9 changed files with 231 additions and 196 deletions

View file

@ -1,5 +1,26 @@
2009-04-04 Chong Yidong <cyd@stupidchicken.com>
* frames.texi (Frames): Clean up introduction. Document `ns'
return value for framep.
(Creating Frames): Note how the terminal is chosen.
(Multiple Terminals, Multiple Displays): Merge into a single node.
(Color Parameters): Fix typo.
* variables.texi (Local Variables, Buffer-Local Variables)
(Creating Buffer-Local): Change link to Multiple Terminals.
* os.texi (X11 Keysyms): Change link to Multiple Terminals.
* keymaps.texi (Controlling Active Maps): Change link to Multiple
Terminals.
* commands.texi (Command Loop Info, Keyboard Macros): Change link
to Multiple Terminals.
* elisp.texi (Top): Update node listing.
* vol2.texi (Top): Update node listing.
* vol1.texi (Top): Update node listing.
* buffers.texi (Current Buffer): Note that the append-to-buffer
example is no longer in synch with the latest code. Tie the two
examples together.

View file

@ -781,7 +781,7 @@ the command loop, except when the command has specified a prefix
argument for the following command.
This variable is always local to the current terminal and cannot be
buffer-local. @xref{Multiple Displays}.
buffer-local. @xref{Multiple Terminals}.
@end defvar
@defvar real-last-command
@ -3340,7 +3340,7 @@ The commands @code{start-kbd-macro}, @code{kmacro-start-macro} and
@code{end-kbd-macro} set this variable---do not set it yourself.
The variable is always local to the current terminal and cannot be
buffer-local. @xref{Multiple Displays}.
buffer-local. @xref{Multiple Terminals}.
@end defvar
@defvar last-kbd-macro
@ -3348,7 +3348,7 @@ This variable is the definition of the most recently defined keyboard
macro. Its value is a string or vector, or @code{nil}.
The variable is always local to the current terminal and cannot be
buffer-local. @xref{Multiple Displays}.
buffer-local. @xref{Multiple Terminals}.
@end defvar
@defvar kbd-macro-termination-hook

View file

@ -938,8 +938,7 @@ Windows
Frames
* Creating Frames:: Creating additional frames.
* Multiple Displays:: Creating frames on other displays.
* Multiple Terminals:: Displaying on several different devices.
* Multiple Terminals:: Displaying on several different devices.
* Frame Parameters:: Controlling frame size, position, font, etc.
* Terminal Parameters:: Parameters common for all frames on terminal.
* Frame Titles:: Automatic updating of frame titles.

View file

@ -8,39 +8,42 @@
@chapter Frames
@cindex frame
In Emacs editing, a @dfn{frame} is a screen object that contains one
or more Emacs windows, see @ref{Windows}. It's the kind of object that
is called a ``window'' in the terminology of graphical environments; but
we can't call it a ``window'' here, because Emacs uses that word in a
different way. In Emacs Lisp, a @dfn{frame object} is a Lisp object
that represents a frame on the screen. @xref{Frame Type}.
A @dfn{frame} is a screen object that contains one or more Emacs
windows (@pxref{Windows}). It is the kind of object called a
``window'' in the terminology of graphical environments; but we can't
call it a ``window'' here, because Emacs uses that word in a different
way. In Emacs Lisp, a @dfn{frame object} is a Lisp object that
represents a frame on the screen. @xref{Frame Type}.
A frame initially contains a single main window and/or a minibuffer
window; you can subdivide the main window vertically or horizontally
into smaller windows. @xref{Splitting Windows}.
@cindex terminal
A @dfn{terminal} is a display device capable of displaying one or
more Emacs frames. On GNU and Unix systems, Emacs supports any number
of different terminals in one session, and can mix GUI and text-only
frames in the same session.
Emacs represents each terminal on which it displays frames as a
special @dfn{terminal object} data type, see @ref{Terminal Type}.
more Emacs frames. In Emacs Lisp, a @dfn{terminal object} is a Lisp
object that represents a terminal. @xref{Terminal Type}.
@cindex terminal frame
When Emacs runs on a text-only terminal, it starts with one
@dfn{terminal frame}. If you create additional frames on the same
terminal, Emacs displays one and only one at any given time---on that
terminal screen, of course. You can create additional frames, either
text-only or GUI, on other terminals from the same Emacs session.
(This comes in handy when you connect to the same session from several
remote locations.) @xref{Multiple Terminals}.
@cindex window frame
When Emacs communicates directly with a supported window system, such
as X, it does not have a terminal frame; instead, it starts with
a single @dfn{window frame}, but you can create more, and Emacs can
display several such frames at once as is usual for window systems.
There are two classes of terminals: text-only terminals and
graphical terminals. Text-only terminals are non-graphics-capable
display devices, including ``terminal emulators'' such as xterm. On
text-only terminals, each frame occupies the entire terminal screen;
although you can create additional frames and switch between them,
only one frame can be shown at any given time. We refer to frames on
text-only terminals as @dfn{terminal frames}. Graphical terminals, on
the other hand, are graphics-capable windowing systems, such as the X
Window System. On a graphical terminal, Emacs can display multiple
frames simultaneously. We refer to such frames as @dfn{window
frames}.
On GNU and Unix systems, you can create additional frames on any
available terminal, within a single Emacs session, regardless of
whether Emacs was started on a text-only or graphical terminal. Emacs
can display on both graphical and text-only terminals simultaneously.
This comes in handy, for instance, when you connect to the same
session from several remote locations. @xref{Multiple Terminals}.
@defun framep object
This predicate returns a non-@code{nil} value if @var{object} is a
@ -54,15 +57,17 @@ The frame is displayed in an X window.
A terminal frame on a character display.
@item w32
The frame is displayed on MS-Windows 9X/NT.
@item ns
The frame is displayed on a GNUstep or Macintosh Cocoa display.
@item pc
The frame is displayed on an MS-DOS terminal.
@end table
@end defun
@defun frame-terminal &optional frame
This function returns the terminal object (@pxref{Terminal Type}) that
displays @var{frame}. If @var{frame} is @code{nil} or unspecified, it
defaults to the selected frame.
This function returns the terminal object that displays @var{frame}.
If @var{frame} is @code{nil} or unspecified, it defaults to the
selected frame.
@end defun
@defun terminal-live-p object
@ -75,7 +80,6 @@ is the same as for @code{framep} above.
@menu
* Creating Frames:: Creating additional frames.
* Multiple Displays:: Creating frames on other displays.
* Multiple Terminals:: Displaying on several different devices.
* Frame Parameters:: Controlling frame size, position, font, etc.
* Terminal Parameters:: Parameters common for all frames on terminal.
@ -103,9 +107,6 @@ is the same as for @code{framep} above.
* Display Feature Testing:: Determining the features of a terminal.
@end menu
@xref{Display}, for information about the related topic of
controlling Emacs redisplay.
@node Creating Frames
@section Creating Frames
@ -113,35 +114,34 @@ To create a new frame, call the function @code{make-frame}.
@defun make-frame &optional alist
This function creates and returns a new frame, displaying the current
buffer. If you are using a supported window system, it makes a window
frame; otherwise, it makes a terminal frame.
buffer.
The argument is an alist specifying frame parameters. Any parameters
not mentioned in @var{alist} default according to the value of the
variable @code{default-frame-alist}; parameters not specified even there
default from the standard X resources or whatever is used instead on
your system.
The @var{alist} argument is an alist that specifies frame parameters
for the new frame. @xref{Frame Parameters}. If you specify the
@code{terminal} parameter in @var{alist}, the new frame is created on
that terminal. Otherwise, if you specify the @code{window-system}
frame parameter in @var{alist}, that determines whether the frame
should be displayed on a text-only or graphical terminal.
@xref{Window Systems}. If neither is specified, the new frame is
created in the same terminal as the selected frame.
After the frame is created, this function applies to it the
parameters, if any, listed in the value of
@code{frame-inherited-parameters} (see below) and not present in the
argument, taking the values from the frame that was selected when
@code{make-frame} was called.
The set of possible parameters depends in principle on what kind of
window system Emacs uses to display its frames. @xref{Window Frame
Parameters}, for documentation of individual parameters you can specify.
Any parameters not mentioned in @var{alist} default to the values in
the alist @code{default-frame-alist} (@pxref{Initial Parameters});
parameters not specified there default from the X resources or its
equivalent on your operating system (@pxref{X Resources,, X Resources,
emacs, The GNU Emacs Manual}). After the frame is created, Emacs
applies any parameters listed in @code{frame-inherited-parameters}
(see below) and not present in the argument, taking the values from
the frame that was selected when @code{make-frame} was called.
This function itself does not make the new frame the selected frame.
@xref{Input Focus}. The previously selected frame remains selected.
However, the window system may select the new frame for its own reasons,
for instance if the frame appears under the mouse pointer and your
setup is for focus to follow the pointer.
On graphical terminals, however, the windowing system may select the
new frame for its own reasons.
@end defun
@defvar before-make-frame-hook
A normal hook run by @code{make-frame} before it actually creates the
frame.
A normal hook run by @code{make-frame} before it creates the frame.
@end defvar
@defvar after-make-frame-functions
@ -159,130 +159,40 @@ that parameter in the created frame to its value in the selected
frame.
@end defvar
@node Multiple Displays
@section Multiple Displays
@cindex multiple X displays
@cindex displays, multiple
A single Emacs can talk to more than one X display.
Initially, Emacs uses just one display---the one chosen with the
@code{DISPLAY} environment variable or with the @samp{--display} option
(@pxref{Initial Options,,, emacs, The GNU Emacs Manual}). To connect to
another display, use the command @code{make-frame-on-display} or specify
the @code{display} frame parameter when you create the frame.
Emacs treats each X server as a separate terminal, giving each one its
own selected frame and its own minibuffer windows. However, only one of
those frames is ``@emph{the} selected frame'' at any given moment, see
@ref{Input Focus}.
A few Lisp variables are @dfn{terminal-local}; that is, they have a
separate binding for each terminal. The binding in effect at any time
is the one for the terminal that the currently selected frame belongs
to. These variables include @code{default-minibuffer-frame},
@code{defining-kbd-macro}, @code{last-kbd-macro}, and
@code{system-key-alist}. They are always terminal-local, and can never
be buffer-local (@pxref{Buffer-Local Variables}).
A single X server can handle more than one screen. A display name
@samp{@var{host}:@var{server}.@var{screen}} has three parts; the last
part specifies the screen number for a given server. When you use two
screens belonging to one server, Emacs knows by the similarity in their
names that they share a single keyboard, and it treats them as a single
terminal.
Note that some graphical terminals can output to more than a one
monitor (or other output device) at the same time. On these
``multi-monitor'' setups, a single @var{display} value controls the
output to all the physical monitors. In this situation, there is
currently no platform-independent way for Emacs to distinguish between
the different physical monitors.
@deffn Command make-frame-on-display display &optional parameters
This creates and returns a new frame on display @var{display}, taking
the other frame parameters from @var{parameters}. Aside from the
@var{display} argument, it is like @code{make-frame} (@pxref{Creating
Frames}).
@end deffn
@defun x-display-list
This returns a list that indicates which X displays Emacs has a
connection to. The elements of the list are strings, and each one is
a display name.
@end defun
@defun x-open-connection display &optional xrm-string must-succeed
This function opens a connection to the X display @var{display}. It
does not create a frame on that display, but it permits you to check
that communication can be established with that display.
The optional argument @var{xrm-string}, if not @code{nil}, is a
string of resource names and values, in the same format used in the
@file{.Xresources} file. The values you specify override the resource
values recorded in the X server itself; they apply to all Emacs frames
created on this display. Here's an example of what this string might
look like:
@example
"*BorderWidth: 3\n*InternalBorder: 2\n"
@end example
@xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
If @var{must-succeed} is non-@code{nil}, failure to open the connection
terminates Emacs. Otherwise, it is an ordinary Lisp error.
@end defun
@defun x-close-connection display
This function closes the connection to display @var{display}. Before
you can do this, you must first delete all the frames that were open on
that display (@pxref{Deleting Frames}).
@end defun
@node Multiple Terminals
@section Multiple Terminals
@cindex multiple terminals
@cindex multi-tty
@cindex multiple X displays
@cindex displays, multiple
Emacs represents each terminal on which it displays frames as a
special @dfn{terminal object} data type, see @ref{Terminal Type}. The
Emacs represents each terminal, whether graphical or text-only, as a
@dfn{terminal object} data type (@pxref{Terminal Type}). On GNU and
Unix systems, Emacs can use multiple terminals simultaneously in each
session. On other systems, it can only use a single terminal. Each
terminal object has the following attributes:
@itemize @bullet
@item
The name of the device used by the terminal (e.g., @file{/dev/tty}).
The name of the device used by the terminal (e.g., @samp{:0.0} or
@file{/dev/tty}).
@item
The terminal and keyboard coding systems (@pxref{Terminal I/O
Encoding}) used on the terminal.
The terminal and keyboard coding systems used on the terminal.
@xref{Terminal I/O Encoding}.
@item
The kind of frames (@pxref{Frames}) the terminal is displaying.
The kind of display associated with the terminal. This is the symbol
returned by the function @code{terminal-live-p} (i.e., @code{x},
@code{t}, @code{w32}, @code{ns}, or @code{pc}). @xref{Frames}.
@item
A list of the terminal parameters (@pxref{Terminal Parameters}).
A list of terminal parameters. @xref{Terminal Parameters}.
@end itemize
There's no primitive for creating terminal objects; Emacs creates
them as needed when you call one of the primitives, such as
@code{make-frame-on-tty} (@pxref{Multiple Displays}), that start
displaying on a new terminal.
@defun terminal-list
This function return the list of all the terminal objects used by
Emacs to display frames in this session.
@end defun
@defun delete-terminal &optional terminal force
This function deletes all frames on @var{terminal} and frees the
resources used by it. @var{terminal} can be a terminal object, a
frame (meaning that frame's terminal), or @code{nil} (meaning the
selected frame's terminal). Normally, the function signals an error
if you attempt to delete the sole active terminal, but if @var{force}
is non-@code{nil}, you are allowed to do so. This function runs the
hook @code{delete-terminal-functions}, passing each function a single
argument, @var{terminal}.
@end defun
There is no primitive for creating terminal objects. Emacs creates
them as needed, such as when you call @code{make-frame-on-display}
(which is described below).
@defun terminal-name &optional terminal
This function returns the file name of the device used by
@ -291,17 +201,122 @@ defaults to the selected frame's terminal. @var{terminal} can also be
a frame, meaning that frame's terminal.
@end defun
@defun terminal-list
This function returns a list of all terminal objects currently in use.
@end defun
@defun get-device-terminal device
This function is in a sense the opposite of @code{terminal-name}: it
returns a terminal whose device name is given by @var{device}. If
@var{device} is a string, it can be either the file name of a terminal
device or the name of an X display of the form
@samp{@var{host}:@var{server}.@var{screen}} (@pxref{Multiple
Displays}). If @var{device} is a frame, this function returns that
frame's terminal; @code{nil} means the selected frame. Finally, if
@var{device} is a terminal object that represents a live terminal,
that terminal is returned. The function signals an error if its
argument is none of the above.
This function returns a terminal whose device name is given by
@var{device}. If @var{device} is a string, it can be either the file
name of a terminal device, or the name of an X display of the form
@samp{@var{host}:@var{server}.@var{screen}}. If @var{device} is a
frame, this function returns that frame's terminal; @code{nil} means
the selected frame. Finally, if @var{device} is a terminal object
that represents a live terminal, that terminal is returned. The
function signals an error if its argument is none of the above.
@end defun
@defun delete-terminal &optional terminal force
This function deletes all frames on @var{terminal} and frees the
resources used by it. It runs the abnormal hook
@code{delete-terminal-functions}, passing @var{terminal} as the
argument to each function.
If @var{terminal} is omitted or @code{nil}, it defaults to the
selected frame's terminal. @var{terminal} can also be a frame,
meaning that frame's terminal.
Normally, this function signals an error if you attempt to delete the
sole active terminal, but if @var{force} is non-@code{nil}, you are
allowed to do so. Emacs automatically calls this function when the
last frame on a terminal is deleted (@pxref{Deleting Frames}).
@end defun
@defvar delete-terminal-functions
An abnormal hook run by @code{delete-terminal}. Each function
receives one argument, the @var{terminal} argument passed to
@code{delete-terminal}. Due to technical details, the functions may
be called either just before the terminal is deleted, or just
afterwards.
@end defvar
@cindex terminal-local variables
A few Lisp variables are @dfn{terminal-local}; that is, they have a
separate binding for each terminal. The binding in effect at any time
is the one for the terminal that the currently selected frame belongs
to. These variables include @code{default-minibuffer-frame},
@code{defining-kbd-macro}, @code{last-kbd-macro}, and
@code{system-key-alist}. They are always terminal-local, and can
never be buffer-local (@pxref{Buffer-Local Variables}).
On GNU and Unix systems, each X display is a separate graphical
terminal. When Emacs is started from within the X window system, it
uses the X display chosen with the @code{DISPLAY} environment
variable, or with the @samp{--display} option. @xref{Initial
Options,,, emacs, The GNU Emacs Manual}. Emacs can connect to other X
displays via the command @code{make-frame-on-display}. Each X display
has its own selected frame and its own minibuffer windows; however,
only one of those frames is ``@emph{the} selected frame'' at any given
moment (@pxref{Input Focus}). Emacs can even connect to other
text-only terminals, by interacting with the @command{emacsclient}
program. @xref{Emacs Server,,, emacs, The GNU Emacs Manual}.
A single X server can handle more than one display. Each X display
has a three-part name, @samp{@var{host}:@var{server}.@var{screen}}.
The first two parts, @var{host} and @var{server}, identify the X
server; the third part, @var{screen}, identifies a screen number on
that X server. When you use two or more screens belonging to one
server, Emacs knows by the similarity in their names that they share a
single keyboard.
On some ``multi-monitor'' setups, a single X display outputs to more
than one monitor. Currently, there is no way for Emacs to distinguish
between the different physical monitors.
@deffn Command make-frame-on-display display &optional parameters
This function creates and returns a new frame on @var{display}, taking
the other frame parameters from the alist @var{parameters}.
@var{display} should be the name of an X display (a string).
Before creating the frame, this function ensures that Emacs is ``set
up'' to display graphics. For instance, if Emacs has not processed X
resources (e.g., if it was started on a text-only terminal), it does
so at this time. In all other respects, this function behaves like
@code{make-frame} (@pxref{Creating Frames}).
@end deffn
@defun x-display-list
This function returns a list that indicates which X displays Emacs has
a connection to. The elements of the list are strings, and each one
is a display name.
@end defun
@defun x-open-connection display &optional xrm-string must-succeed
This function opens a connection to the X display @var{display},
without creating a frame on that display. Normally, Emacs Lisp
programs need not call this function, as @code{make-frame-on-display}
calls it automatically. The only reason for calling it is to check
whether communication can be established with a given X display.
The optional argument @var{xrm-string}, if not @code{nil}, is a string
of resource names and values, in the same format used in the
@file{.Xresources} file. @xref{X Resources,, X Resources, emacs, The
GNU Emacs Manual}. These values apply to all Emacs frames created on
this display, overriding the resource values recorded in the X server.
Here's an example of what this string might look like:
@example
"*BorderWidth: 3\n*InternalBorder: 2\n"
@end example
If @var{must-succeed} is non-@code{nil}, failure to open the connection
terminates Emacs. Otherwise, it is an ordinary Lisp error.
@end defun
@defun x-close-connection display
This function closes the connection to display @var{display}. Before
you can do this, you must first delete all the frames that were open
on that display (@pxref{Deleting Frames}).
@end defun
@node Frame Parameters
@ -852,10 +867,10 @@ completely opaque. It can also have a @code{nil} value, which tells
Emacs not to set the frame opacity (leaving it to the window manager).
To prevent the frame from disappearing completely from view, the
variable @var{frame-alpha-lower-limit} defines a lower opacity limit.
variable @code{frame-alpha-lower-limit} defines a lower opacity limit.
If the value of the frame parameter is less than the value of this
variable, Emacs uses the latter. By default,
@var{frame-alpha-lower-limit} is 20.
@code{frame-alpha-lower-limit} is 20.
The @code{alpha} frame parameter can also be a cons cell
@code{(@samp{active} . @samp{inactive})}, where @samp{active} is the
@ -1278,7 +1293,7 @@ when you enter the minibuffer. If so, set the variable
This variable specifies the frame to use for the minibuffer window, by
default. It does not affect existing frames. It is always local to
the current terminal and cannot be buffer-local. @xref{Multiple
Displays}.
Terminals}.
@end defvar
@node Input Focus
@ -1290,15 +1305,15 @@ At any time, one frame in Emacs is the @dfn{selected frame}. The selected
window always resides on the selected frame.
When Emacs displays its frames on several terminals (@pxref{Multiple
Displays}), each terminal has its own selected frame. But only one of
these is ``@emph{the} selected frame'': it's the frame that belongs to
the terminal from which the most recent input came. That is, when Emacs
runs a command that came from a certain terminal, the selected frame is
the one of that terminal. Since Emacs runs only a single command at any
given time, it needs to consider only one selected frame at a time; this
frame is what we call @dfn{the selected frame} in this manual. The
display on which the selected frame is shown is the @dfn{selected
frame's display}.
Terminals}), each terminal has its own selected frame. But only one
of these is ``@emph{the} selected frame'': it's the frame that belongs
to the terminal from which the most recent input came. That is, when
Emacs runs a command that came from a certain terminal, the selected
frame is the one of that terminal. Since Emacs runs only a single
command at any given time, it needs to consider only one selected
frame at a time; this frame is what we call @dfn{the selected frame}
in this manual. The display on which the selected frame is shown is
the @dfn{selected frame's display}.
@defun selected-frame
This function returns the selected frame.
@ -2285,7 +2300,7 @@ On a character terminal, it gives the height in characters.
For graphical terminals, note that on ``multi-monitor'' setups this
refers to the pixel width for all physical monitors associated with
@var{display}. @xref{Multiple Displays}.
@var{display}. @xref{Multiple Terminals}.
@end defun
@defun display-pixel-width &optional display
@ -2294,7 +2309,7 @@ On a character terminal, it gives the width in characters.
For graphical terminals, note that on ``multi-monitor'' setups this
refers to the pixel width for all physical monitors associated with
@var{display}. @xref{Multiple Displays}.
@var{display}. @xref{Multiple Terminals}.
@end defun
@defun display-mm-height &optional display

View file

@ -898,7 +898,7 @@ If non-@code{nil}, this variable holds a keymap to use instead of
or overlay keymaps, and all the minor mode keymaps.
This variable is always local to the current terminal and cannot be
buffer-local. @xref{Multiple Displays}. It is used to implement
buffer-local. @xref{Multiple Terminals}. It is used to implement
incremental search mode.
@end defvar

View file

@ -2071,7 +2071,7 @@ servers; those do no harm, as long as they don't conflict with the ones
used by the X server actually in use.
The variable is always local to the current terminal, and cannot be
buffer-local. @xref{Multiple Displays}.
buffer-local. @xref{Multiple Terminals}.
@end defvar
You can specify which keysyms Emacs should use for the Meta, Alt, Hyper, and Super modifiers by setting these variables:

View file

@ -256,7 +256,7 @@ Macro calls (@pxref{Macros}).
Variables can also have buffer-local bindings (@pxref{Buffer-Local
Variables}); a few variables have terminal-local bindings
(@pxref{Multiple Displays}). These kinds of bindings work somewhat
(@pxref{Multiple Terminals}). These kinds of bindings work somewhat
like ordinary local bindings, but they are localized depending on
``where'' you are in Emacs, rather than localized in time.
@ -1091,7 +1091,7 @@ additional, unusual kinds of variable binding, such as
@dfn{buffer-local} bindings, which apply only in one buffer. Having
different values for a variable in different buffers is an important
customization method. (Variables can also have bindings that are
local to each terminal, or to each frame. @xref{Multiple Displays},
local to each terminal, or to each frame. @xref{Multiple Terminals},
and @xref{Frame-Local Variables}.)
@menu
@ -1193,7 +1193,7 @@ GNU Emacs Manual}.
A buffer-local variable cannot be made frame-local
(@pxref{Frame-Local Variables}) or terminal-local (@pxref{Multiple
Displays}).
Terminals}).
@node Creating Buffer-Local
@subsection Creating and Deleting Buffer-Local Bindings
@ -1245,7 +1245,7 @@ is not current either on entry to or exit from the @code{let}. This is
because @code{let} does not distinguish between different kinds of
bindings; it knows only which variable the binding was made for.
If the variable is terminal-local (@pxref{Multiple Displays}), or
If the variable is terminal-local (@pxref{Multiple Terminals}), or
frame-local (@pxref{Frame-Local Variables}), this function signals an
error. Such variables cannot have buffer-local bindings as well.

View file

@ -948,7 +948,7 @@ Windows
Frames
* Creating Frames:: Creating additional frames.
* Multiple Displays:: Creating frames on other displays.
* Multiple Terminals:: Creating frames on other displays.
* Frame Parameters:: Controlling frame size, position, font, etc.
* Frame Titles:: Automatic updating of frame titles.
* Deleting Frames:: Frames last until explicitly deleted.

View file

@ -947,7 +947,7 @@ Windows
Frames
* Creating Frames:: Creating additional frames.
* Multiple Displays:: Creating frames on other displays.
* Multiple Terminals:: Creating frames on other displays.
* Frame Parameters:: Controlling frame size, position, font, etc.
* Frame Titles:: Automatic updating of frame titles.
* Deleting Frames:: Frames last until explicitly deleted.