aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref
diff options
context:
space:
mode:
authorJoakim Verona2011-07-15 04:39:29 +0200
committerJoakim Verona2011-07-15 04:39:29 +0200
commit4f616a2e7ed1db28da98df90266e9751a8ae9ee1 (patch)
tree74a9dcbe13e945e712ae04a4a94c2202ca720591 /doc/lispref
parentff2be00005c3aeda6e11d7ed264ce86f02b60958 (diff)
parentec2bc542a4d0127425625e8cb458684bd825675a (diff)
downloademacs-4f616a2e7ed1db28da98df90266e9751a8ae9ee1.tar.gz
emacs-4f616a2e7ed1db28da98df90266e9751a8ae9ee1.zip
merge from upstream
Diffstat (limited to 'doc/lispref')
-rw-r--r--doc/lispref/ChangeLog135
-rw-r--r--doc/lispref/commands.texi35
-rw-r--r--doc/lispref/customize.texi233
-rw-r--r--doc/lispref/display.texi59
-rw-r--r--doc/lispref/elisp.texi6
-rw-r--r--doc/lispref/frames.texi78
-rw-r--r--doc/lispref/functions.texi13
-rw-r--r--doc/lispref/help.texi11
-rw-r--r--doc/lispref/keymaps.texi11
-rw-r--r--doc/lispref/modes.texi24
-rw-r--r--doc/lispref/objects.texi4
-rw-r--r--doc/lispref/searching.texi6
-rw-r--r--doc/lispref/streams.texi6
-rw-r--r--doc/lispref/strings.texi14
-rw-r--r--doc/lispref/syntax.texi2
-rw-r--r--doc/lispref/text.texi22
-rw-r--r--doc/lispref/variables.texi52
-rw-r--r--doc/lispref/vol1.texi2
-rw-r--r--doc/lispref/vol2.texi2
19 files changed, 443 insertions, 272 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 7946e4b91ff..153d7e839c3 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,138 @@
12011-07-14 Eli Zaretskii <eliz@gnu.org>
2
3 * display.texi (Other Display Specs): Document that `left-fringe'
4 and `right-fringe' display specifications are of the "replacing"
5 kind.
6
72011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
8
9 * help.texi (Documentation Basics): Add a link to the Function
10 Documentation node (bug#6580).
11
122011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
13
14 * keymaps.texi (Menu Bar): Mention :visible and :enable
15 (bug#6344). Text by Drew Adams.
16
17 * modes.texi (Running Hooks): Mention buffer-local hook variables
18 (bug#6218).
19
20 * objects.texi (General Escape Syntax): "a with grave accent" is
21 ?xe0, not ?x8e0 (bug#5259).
22
232011-07-12 Chong Yidong <cyd@stupidchicken.com>
24
25 * display.texi (Face Attributes, Font Selection): Add references
26 to the Fonts node in the Emacs manual (Bug#4178).
27
282011-07-12 Chong Yidong <cyd@stupidchicken.com>
29
30 * display.texi (Window Systems): `window-system' is
31 terminal-local.
32
33 * frames.texi (Frame Parameters, Parameter Access): Don't mention
34 frame-local variables.
35
36 * variables.texi (Buffer-Local Variables): Don't mention obsolete
37 frame-local variables.
38 (Frame-Local Variables): Node deleted.
39
40 * elisp.texi (Top): Update node listing.
41
422011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
43
44 * elisp.texi: Change "inferiors" to "subnodes" in three places
45 (bug#3523).
46
472011-07-11 Chong Yidong <cyd@stupidchicken.com>
48
49 * frames.texi (Window System Selections): Discussion of
50 x-select-enable-clipboard moved to Emacs manual.
51
522011-07-11 Deniz Dogan <deniz@dogan.se>
53
54 * commands.texi (Prefix Command Arguments): Remove excessive
55 apostrophe.
56
572011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
58
59 * syntax.texi (Syntax Descriptors): Clarify that the ". 23" syntax
60 description is a string (bug#3313).
61
62 * frames.texi (Display Feature Testing): Try to explain what all
63 the visual classes mean (bug#3042).
64
652011-07-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
66
67 * modes.texi (Mode Line Variables): Document `mode-line-remote'
68 and `mode-line-client' (bug#2974).
69
70 * text.texi (Insertion): Clarify marker movements (bug#1651).
71 Text from Drew Adams.
72
732011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
74
75 * text.texi (Special Properties): Clarify the format of `face'
76 (bug#1375).
77
78 * commands.texi (Interactive Call): Add a `call-interactively'
79 example (bug#1010).
80
812011-07-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
82
83 * functions.texi (Calling Functions): Link to the "Interactive
84 Call" node (bug#1001).
85
862011-07-06 Chong Yidong <cyd@stupidchicken.com>
87
88 * customize.texi (Composite Types): Move alist and plist to here
89 from Simple Types (Bug#7545).
90
91 * elisp.texi (Top): Update menu description.
92
93 * display.texi (Face Attributes): Document negative line widths
94 (Bug#6113).
95
962011-07-03 Tobias C. Rittweiler <tcr@freebits.de> (tiny change)
97
98 * searching.texi (Match Data): Note that match data can be
99 overwritten by most functions (bug#2499).
100
1012011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
102
103 * strings.texi (Formatting Strings): Clarify what the "-" and "0"
104 flags mean (bug#6659).
105
106 * functions.texi (What Is a Function): Document the autoload
107 object (bug#6496).
108
1092011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
110
111 * customize.texi (Variable Definitions): Clarify that SETFUNCTION
112 is only used in the Customize user interface (bug#6089).
113
114 * display.texi (Showing Images): Mention the point of sliced
115 images (bug#7836).
116
1172011-07-02 Eli Zaretskii <eliz@gnu.org>
118
119 * variables.texi (Defining Variables, Void Variables)
120 (Constant Variables): Fix incorrect usage of @kindex.
121
1222011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
123
124 * variables.texi (Defining Variables): Add an index entry for
125 `set-variable' (bug#7262).
126 (Defining Variables): Use @findex for functions.
127
128 * frames.texi (Basic Parameters): Document the `explicit-name'
129 parameter (bug#6951).
130
131 * customize.texi (Type Keywords): Clarify that :value provides a
132 default value for all types (bug#7386).
133
134 * streams.texi (Output Functions): Document `pp'.
135
12011-06-25 Chong Yidong <cyd@stupidchicken.com> 1362011-06-25 Chong Yidong <cyd@stupidchicken.com>
2 137
3 * keymaps.texi (Searching Keymaps): 138 * keymaps.texi (Searching Keymaps):
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index eb42ddb11a4..e76b2bafd79 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -597,13 +597,32 @@ realistic example of using @code{commandp}.
597 597
598@defun call-interactively command &optional record-flag keys 598@defun call-interactively command &optional record-flag keys
599This function calls the interactively callable function @var{command}, 599This function calls the interactively callable function @var{command},
600reading arguments according to its interactive calling specifications. 600providing arguments according to its interactive calling specifications.
601It returns whatever @var{command} returns. An error is signaled if 601It returns whatever @var{command} returns.
602@var{command} is not a function or if it cannot be called 602
603interactively (i.e., is not a command). Note that keyboard macros 603If, for instance, you have a function with the following signature:
604(strings and vectors) are not accepted, even though they are 604
605considered commands, because they are not functions. If @var{command} 605@example
606is a symbol, then @code{call-interactively} uses its function definition. 606(defun foo (begin end)
607 (interactive "r")
608 ...)
609@end example
610
611then saying
612
613@example
614(call-interactively 'foo)
615@end example
616
617will call @code{foo} with the region (@code{point} and @code{mark}) as
618the arguments.
619
620An error is signaled if @var{command} is not a function or if it
621cannot be called interactively (i.e., is not a command). Note that
622keyboard macros (strings and vectors) are not accepted, even though
623they are considered commands, because they are not functions. If
624@var{command} is a symbol, then @code{call-interactively} uses its
625function definition.
607 626
608@cindex record command history 627@cindex record command history
609If @var{record-flag} is non-@code{nil}, then this command and its 628If @var{record-flag} is non-@code{nil}, then this command and its
@@ -2993,7 +3012,7 @@ An integer, which stands for itself.
2993 3012
2994@item 3013@item
2995A list of one element, which is an integer. This form of prefix 3014A list of one element, which is an integer. This form of prefix
2996argument results from one or a succession of @kbd{C-u}'s with no 3015argument results from one or a succession of @kbd{C-u}s with no
2997digits. The numeric value is the integer in the list, but some 3016digits. The numeric value is the integer in the list, but some
2998commands make a distinction between such a list and an integer alone. 3017commands make a distinction between such a list and an integer alone.
2999 3018
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi
index e58c8c298c9..868edaa5bd4 100644
--- a/doc/lispref/customize.texi
+++ b/doc/lispref/customize.texi
@@ -326,11 +326,12 @@ individual types for a description of how to use @code{:options}.
326@item :set @var{setfunction} 326@item :set @var{setfunction}
327@kindex set@r{, @code{defcustom} keyword} 327@kindex set@r{, @code{defcustom} keyword}
328Specify @var{setfunction} as the way to change the value of this 328Specify @var{setfunction} as the way to change the value of this
329option. The function @var{setfunction} should take two arguments, a 329option when using the Customize user interface. The function
330symbol (the option name) and the new value, and should do whatever is 330@var{setfunction} should take two arguments, a symbol (the option
331necessary to update the value properly for this option (which may not 331name) and the new value, and should do whatever is necessary to update
332mean simply setting the option as a Lisp variable). The default for 332the value properly for this option (which may not mean simply setting
333@var{setfunction} is @code{set-default}. 333the option as a Lisp variable). The default for @var{setfunction} is
334@code{set-default}.
334 335
335@item :get @var{getfunction} 336@item :get @var{getfunction}
336@kindex get@r{, @code{defcustom} keyword} 337@kindex get@r{, @code{defcustom} keyword}
@@ -512,8 +513,7 @@ equivalent to @code{(string)}.
512Introduction, widget, The Emacs Widget Library}, for details. 513Introduction, widget, The Emacs Widget Library}, for details.
513 514
514@menu 515@menu
515* Simple Types:: Simple customization types: sexp, integer, number, 516* Simple Types:: Simple customization types: sexp, integer, etc.
516 string, file, directory, alist.
517* Composite Types:: Build new types from other types or data. 517* Composite Types:: Build new types from other types or data.
518* Splicing into Lists:: Splice elements into list with @code{:inline}. 518* Splicing into Lists:: Splice elements into list with @code{:inline}.
519* Type Keywords:: Keyword-argument pairs in a customization type. 519* Type Keywords:: Keyword-argument pairs in a customization type.
@@ -576,22 +576,103 @@ You can use the @code{:options} keyword in a hook variable's
576@code{defcustom} to specify a list of functions recommended for use in 576@code{defcustom} to specify a list of functions recommended for use in
577the hook; see @ref{Variable Definitions}. 577the hook; see @ref{Variable Definitions}.
578 578
579@item alist 579@item symbol
580The value must be a list of cons-cells, the @sc{car} of each cell 580The value must be a symbol. It appears in the customization buffer as
581representing a key, and the @sc{cdr} of the same cell representing an 581the name of the symbol.
582associated value. The user can add and delete key/value pairs, and
583edit both the key and the value of each pair.
584 582
585You can specify the key and value types like this: 583@item function
584The value must be either a lambda expression or a function name. When
585it is a function name, you can do completion with @kbd{M-@key{TAB}}.
586 586
587@smallexample 587@item variable
588(alist :key-type @var{key-type} :value-type @var{value-type}) 588The value must be a variable name, and you can do completion with
589@end smallexample 589@kbd{M-@key{TAB}}.
590
591@item face
592The value must be a symbol which is a face name, and you can do
593completion with @kbd{M-@key{TAB}}.
594
595@item boolean
596The value is boolean---either @code{nil} or @code{t}. Note that by
597using @code{choice} and @code{const} together (see the next section),
598you can specify that the value must be @code{nil} or @code{t}, but also
599specify the text to describe each value in a way that fits the specific
600meaning of the alternative.
601
602@item coding-system
603The value must be a coding-system name, and you can do completion with
604@kbd{M-@key{TAB}}.
605
606@item color
607The value must be a valid color name, and you can do completion with
608@kbd{M-@key{TAB}}. A sample is provided.
609@end table
610
611@node Composite Types
612@subsection Composite Types
613@cindex composite types (customization)
614
615 When none of the simple types is appropriate, you can use composite
616types, which build new types from other types or from specified data.
617The specified types or data are called the @dfn{arguments} of the
618composite type. The composite type normally looks like this:
619
620@example
621(@var{constructor} @var{arguments}@dots{})
622@end example
590 623
591@noindent 624@noindent
592where @var{key-type} and @var{value-type} are customization type 625but you can also add keyword-value pairs before the arguments, like
593specifications. The default key type is @code{sexp}, and the default 626this:
594value type is @code{sexp}. 627
628@example
629(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
630@end example
631
632 Here is a table of constructors and how to use them to write
633composite types:
634
635@table @code
636@item (cons @var{car-type} @var{cdr-type})
637The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
638its @sc{cdr} must fit @var{cdr-type}. For example, @code{(cons string
639symbol)} is a customization type which matches values such as
640@code{("foo" . foo)}.
641
642In the customization buffer, the @sc{car} and the @sc{cdr} are
643displayed and edited separately, each according to the type
644that you specify for it.
645
646@item (list @var{element-types}@dots{})
647The value must be a list with exactly as many elements as the
648@var{element-types} given; and each element must fit the
649corresponding @var{element-type}.
650
651For example, @code{(list integer string function)} describes a list of
652three elements; the first element must be an integer, the second a
653string, and the third a function.
654
655In the customization buffer, each element is displayed and edited
656separately, according to the type specified for it.
657
658@item (group @var{element-types}@dots{})
659This works like @code{list} except for the formatting
660of text in the Custom buffer. @code{list} labels each
661element value with its tag; @code{group} does not.
662
663@item (vector @var{element-types}@dots{})
664Like @code{list} except that the value must be a vector instead of a
665list. The elements work the same as in @code{list}.
666
667@item (alist :key-type @var{key-type} :value-type @var{value-type})
668The value must be a list of cons-cells, the @sc{car} of each cell
669representing a key of customization type @var{key-type}, and the
670@sc{cdr} of the same cell representing a value of customization type
671@var{value-type}. The user can add and delete key/value pairs, and
672edit both the key and the value of each pair.
673
674If omitted, @var{key-type} and @var{value-type} default to
675@code{sexp}.
595 676
596The user can add any key matching the specified key type, but you can 677The user can add any key matching the specified key type, but you can
597give some keys a preferential treatment by specifying them with the 678give some keys a preferential treatment by specifying them with the
@@ -686,105 +767,11 @@ and the VALUE is a list of that person's pets."
686 :type '(alist :value-type (repeat string))) 767 :type '(alist :value-type (repeat string)))
687@end smallexample 768@end smallexample
688 769
689@item plist 770@item (plist :key-type @var{key-type} :value-type @var{value-type})
690The @code{plist} custom type is similar to the @code{alist} (see above), 771This customization type is similar to @code{alist} (see above), except
691except that the information is stored as a property list, i.e. a list of 772that (i) the information is stored as a property list,
692this form: 773(@pxref{Property Lists}), and (ii) @var{key-type}, if omitted,
693 774defaults to @code{symbol} rather than @code{sexp}.
694@smallexample
695(@var{key} @var{value} @var{key} @var{value} @var{key} @var{value} @dots{})
696@end smallexample
697
698The default @code{:key-type} for @code{plist} is @code{symbol},
699rather than @code{sexp}.
700
701@item symbol
702The value must be a symbol. It appears in the customization buffer as
703the name of the symbol.
704
705@item function
706The value must be either a lambda expression or a function name. When
707it is a function name, you can do completion with @kbd{M-@key{TAB}}.
708
709@item variable
710The value must be a variable name, and you can do completion with
711@kbd{M-@key{TAB}}.
712
713@item face
714The value must be a symbol which is a face name, and you can do
715completion with @kbd{M-@key{TAB}}.
716
717@item boolean
718The value is boolean---either @code{nil} or @code{t}. Note that by
719using @code{choice} and @code{const} together (see the next section),
720you can specify that the value must be @code{nil} or @code{t}, but also
721specify the text to describe each value in a way that fits the specific
722meaning of the alternative.
723
724@item coding-system
725The value must be a coding-system name, and you can do completion with
726@kbd{M-@key{TAB}}.
727
728@item color
729The value must be a valid color name, and you can do completion with
730@kbd{M-@key{TAB}}. A sample is provided.
731@end table
732
733@node Composite Types
734@subsection Composite Types
735@cindex composite types (customization)
736
737 When none of the simple types is appropriate, you can use composite
738types, which build new types from other types or from specified data.
739The specified types or data are called the @dfn{arguments} of the
740composite type. The composite type normally looks like this:
741
742@example
743(@var{constructor} @var{arguments}@dots{})
744@end example
745
746@noindent
747but you can also add keyword-value pairs before the arguments, like
748this:
749
750@example
751(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
752@end example
753
754 Here is a table of constructors and how to use them to write
755composite types:
756
757@table @code
758@item (cons @var{car-type} @var{cdr-type})
759The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
760its @sc{cdr} must fit @var{cdr-type}. For example, @code{(cons string
761symbol)} is a customization type which matches values such as
762@code{("foo" . foo)}.
763
764In the customization buffer, the @sc{car} and the @sc{cdr} are
765displayed and edited separately, each according to the type
766that you specify for it.
767
768@item (list @var{element-types}@dots{})
769The value must be a list with exactly as many elements as the
770@var{element-types} given; and each element must fit the
771corresponding @var{element-type}.
772
773For example, @code{(list integer string function)} describes a list of
774three elements; the first element must be an integer, the second a
775string, and the third a function.
776
777In the customization buffer, each element is displayed and edited
778separately, according to the type specified for it.
779
780@item (group @var{element-types}@dots{})
781This works like @code{list} except for the formatting
782of text in the Custom buffer. @code{list} labels each
783element value with its tag; @code{group} does not.
784
785@item (vector @var{element-types}@dots{})
786Like @code{list} except that the value must be a vector instead of a
787list. The elements work the same as in @code{list}.
788 775
789@item (choice @var{alternative-types}@dots{}) 776@item (choice @var{alternative-types}@dots{})
790The value must fit at least one of @var{alternative-types}. 777The value must fit at least one of @var{alternative-types}.
@@ -1035,7 +1022,12 @@ meanings:
1035 1022
1036@table @code 1023@table @code
1037@item :value @var{default} 1024@item :value @var{default}
1038This is used for a type that appears as an alternative inside of 1025Provide a default value.
1026
1027If @code{nil} is not a valid value for the alternative, then it is
1028essential to specify a valid default with @code{:value}.
1029
1030If you use this for a type that appears as an alternative inside of
1039@code{choice}; it specifies the default value to use, at first, if and 1031@code{choice}; it specifies the default value to use, at first, if and
1040when the user selects this alternative with the menu in the 1032when the user selects this alternative with the menu in the
1041customization buffer. 1033customization buffer.
@@ -1043,9 +1035,6 @@ customization buffer.
1043Of course, if the actual value of the option fits this alternative, it 1035Of course, if the actual value of the option fits this alternative, it
1044will appear showing the actual value, not @var{default}. 1036will appear showing the actual value, not @var{default}.
1045 1037
1046If @code{nil} is not a valid value for the alternative, then it is
1047essential to specify a valid default with @code{:value}.
1048
1049@item :format @var{format-string} 1038@item :format @var{format-string}
1050@kindex format@r{, customization keyword} 1039@kindex format@r{, customization keyword}
1051This string will be inserted in the buffer to represent the value 1040This string will be inserted in the buffer to represent the value
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 069b3c91d7b..d8be424a69f 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -1800,9 +1800,9 @@ height.
1800@cindex faces 1800@cindex faces
1801 1801
1802 A @dfn{face} is a collection of graphical attributes for displaying 1802 A @dfn{face} is a collection of graphical attributes for displaying
1803text: font family, foreground color, background color, optional 1803text: font, foreground color, background color, optional underlining,
1804underlining, and so on. Faces control how buffer text is displayed, 1804and so on. Faces control how buffer text is displayed, and how some
1805and how some parts of the frame, such as the mode-line, are displayed. 1805parts of the frame, such as the mode-line, are displayed.
1806@xref{Standard Faces,,, emacs, The GNU Emacs Manual}, for the list of 1806@xref{Standard Faces,,, emacs, The GNU Emacs Manual}, for the list of
1807faces Emacs normally comes with. 1807faces Emacs normally comes with.
1808 1808
@@ -2001,16 +2001,17 @@ attribute is ignored.
2001 2001
2002@table @code 2002@table @code
2003@item :family 2003@item :family
2004Font family name or fontset name (a string). If you specify a font 2004Font family or fontset (a string). @xref{Fonts,,, emacs, The GNU
2005family name, the wild-card characters @samp{*} and @samp{?} are 2005Emacs Manual}. If you specify a font family name, the wild-card
2006allowed. The function @code{font-family-list}, described below, 2006characters @samp{*} and @samp{?} are allowed. The function
2007returns a list of available family names. @xref{Fontsets}, for 2007@code{font-family-list}, described below, returns a list of available
2008information about fontsets. 2008family names. @xref{Fontsets}, for information about fontsets.
2009 2009
2010@item :foundry 2010@item :foundry
2011The name of the @dfn{font foundry} in which the font family specified 2011The name of the @dfn{font foundry} for the font family specified by
2012by the @code{:family} attribute is located (a string). The wild-card 2012the @code{:family} attribute (a string). The wild-card characters
2013characters @samp{*} and @samp{?} are allowed. 2013@samp{*} and @samp{?} are allowed. @xref{Fonts,,, emacs, The GNU
2014Emacs Manual}.
2014 2015
2015@item :width 2016@item :width
2016Relative proportionate character width, also known as the character 2017Relative proportionate character width, also known as the character
@@ -2092,7 +2093,10 @@ Draw a box with lines of width 1, in color @var{color}.
2092 2093
2093@item @code{(:line-width @var{width} :color @var{color} :style @var{style})} 2094@item @code{(:line-width @var{width} :color @var{color} :style @var{style})}
2094This way you can explicitly specify all aspects of the box. The value 2095This way you can explicitly specify all aspects of the box. The value
2095@var{width} specifies the width of the lines to draw; it defaults to 1. 2096@var{width} specifies the width of the lines to draw; it defaults to
20971. A negative width @var{-n} means to draw a line of width @var{n}
2098that occupies the space of the underlying text, thus avoiding any
2099increase in the character height or width.
2096 2100
2097The value @var{color} specifies the color to draw with. The default is 2101The value @var{color} specifies the color to draw with. The default is
2098the foreground color of the face for simple boxes, and the background 2102the foreground color of the face for simple boxes, and the background
@@ -2681,14 +2685,15 @@ usually assign faces to around 400 to 600 characters at each call.
2681 Before Emacs can draw a character on a particular display, it must 2685 Before Emacs can draw a character on a particular display, it must
2682select a @dfn{font} for that character@footnote{In this context, the 2686select a @dfn{font} for that character@footnote{In this context, the
2683term @dfn{font} has nothing to do with Font Lock (@pxref{Font Lock 2687term @dfn{font} has nothing to do with Font Lock (@pxref{Font Lock
2684Mode}).}. Normally, Emacs automatically chooses a font based on the 2688Mode}).}. @xref{Fonts,,, emacs, The GNU Emacs Manual}. Normally,
2685faces assigned to that character---specifically, the face attributes 2689Emacs automatically chooses a font based on the faces assigned to that
2686@code{:family}, @code{:weight}, @code{:slant}, and @code{:width} 2690character---specifically, the face attributes @code{:family},
2687(@pxref{Face Attributes}). The choice of font also depends on the 2691@code{:weight}, @code{:slant}, and @code{:width} (@pxref{Face
2688character to be displayed; some fonts can only display a limited set 2692Attributes}). The choice of font also depends on the character to be
2689of characters. If no available font exactly fits the requirements, 2693displayed; some fonts can only display a limited set of characters.
2690Emacs looks for the @dfn{closest matching font}. The variables in 2694If no available font exactly fits the requirements, Emacs looks for
2691this section control how Emacs makes this selection. 2695the @dfn{closest matching font}. The variables in this section
2696control how Emacs makes this selection.
2692 2697
2693@defopt face-font-family-alternatives 2698@defopt face-font-family-alternatives
2694If a given family is specified but does not exist, this variable 2699If a given family is specified but does not exist, this variable
@@ -3894,7 +3899,8 @@ Margins}).
3894@itemx (right-fringe @var{bitmap} @r{[}@var{face}@r{]}) 3899@itemx (right-fringe @var{bitmap} @r{[}@var{face}@r{]})
3895This display specification on any character of a line of text causes 3900This display specification on any character of a line of text causes
3896the specified @var{bitmap} be displayed in the left or right fringes 3901the specified @var{bitmap} be displayed in the left or right fringes
3897for that line. The optional @var{face} specifies the colors to be 3902for that line, instead of the characters that have the display
3903specification. The optional @var{face} specifies the colors to be
3898used for the bitmap. @xref{Fringe Bitmaps}, for the details. 3904used for the bitmap. @xref{Fringe Bitmaps}, for the details.
3899 3905
3900@item (space-width @var{factor}) 3906@item (space-width @var{factor})
@@ -4700,10 +4706,17 @@ it a @code{display} property which specifies @var{image}. @xref{Display
4700Property}. 4706Property}.
4701@end defun 4707@end defun
4702 4708
4709@cindex slice, image
4710@cindex image slice
4703@defun insert-sliced-image image &optional string area rows cols 4711@defun insert-sliced-image image &optional string area rows cols
4704This function inserts @var{image} in the current buffer at point, like 4712This function inserts @var{image} in the current buffer at point, like
4705@code{insert-image}, but splits the image into @var{rows}x@var{cols} 4713@code{insert-image}, but splits the image into @var{rows}x@var{cols}
4706equally sized slices. 4714equally sized slices.
4715
4716If an image is inserted ``sliced'', then the Emacs display engine will
4717treat each slice as a separate image, and allow more intuitive
4718scrolling up/down, instead of jumping up/down the entire image when
4719paging through a buffer that displays (large) images.
4707@end defun 4720@end defun
4708 4721
4709@defun put-image image pos &optional string area 4722@defun put-image image pos &optional string area
@@ -5900,8 +5913,8 @@ differently. An Emacs frame is a single window as far as X is
5900concerned; the individual Emacs windows are not known to X at all. 5913concerned; the individual Emacs windows are not known to X at all.
5901 5914
5902@defvar window-system 5915@defvar window-system
5903This frame-local variable tells Lisp programs what window system Emacs is using 5916This terminal-local variable tells Lisp programs what window system
5904for displaying the frame. The possible values are 5917Emacs is using for displaying the frame. The possible values are
5905 5918
5906@table @code 5919@table @code
5907@item x 5920@item x
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 264d63511bc..bb05f1b4a0b 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -193,7 +193,7 @@ Appendices
193 --- The Detailed Node Listing --- 193 --- The Detailed Node Listing ---
194 --------------------------------- 194 ---------------------------------
195 195
196Here are other nodes that are inferiors of those already listed, 196Here are other nodes that are subnodes of those already listed,
197mentioned here so you can get to them in one step: 197mentioned here so you can get to them in one step:
198 198
199Introduction 199Introduction
@@ -430,7 +430,6 @@ Variables
430* File Local Variables:: Handling local variable lists in files. 430* File Local Variables:: Handling local variable lists in files.
431* Directory Local Variables:: Local variables common to all files in a 431* Directory Local Variables:: Local variables common to all files in a
432 directory. 432 directory.
433* Frame-Local Variables:: Frame-local bindings for variables.
434* Variable Aliases:: Variables that are aliases for other variables. 433* Variable Aliases:: Variables that are aliases for other variables.
435* Variables with Restricted Values:: Non-constant variables whose value can 434* Variables with Restricted Values:: Non-constant variables whose value can
436 @emph{not} be an arbitrary Lisp object. 435 @emph{not} be an arbitrary Lisp object.
@@ -508,8 +507,7 @@ Writing Customization Definitions
508 507
509Customization Types 508Customization Types
510 509
511* Simple Types:: Simple customization types: sexp, integer, number, 510* Simple Types:: Simple customization types: sexp, integer, etc.
512 string, file, directory, alist.
513* Composite Types:: Build new types from other types or data. 511* Composite Types:: Build new types from other types or data.
514* Splicing into Lists:: Splice elements into list with @code{:inline}. 512* Splicing into Lists:: Splice elements into list with @code{:inline}.
515* Type Keywords:: Keyword-argument pairs in a customization type. 513* Type Keywords:: Keyword-argument pairs in a customization type.
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index c5136456177..b6012a4dd53 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -337,9 +337,6 @@ parameters @code{foreground-color}, @code{background-color},
337If the terminal supports frame transparency, the parameter 337If the terminal supports frame transparency, the parameter
338@code{alpha} is also meaningful. 338@code{alpha} is also meaningful.
339 339
340 You can use frame parameters to define frame-local bindings for
341variables. @xref{Frame-Local Variables}.
342
343@menu 340@menu
344* Parameter Access:: How to change a frame's parameters. 341* Parameter Access:: How to change a frame's parameters.
345* Initial Parameters:: Specifying frame parameters when you make a frame. 342* Initial Parameters:: Specifying frame parameters when you make a frame.
@@ -374,9 +371,6 @@ elements of @var{alist}. Each element of @var{alist} has the form
374parameter. If you don't mention a parameter in @var{alist}, its value 371parameter. If you don't mention a parameter in @var{alist}, its value
375doesn't change. If @var{frame} is @code{nil}, it defaults to the selected 372doesn't change. If @var{frame} is @code{nil}, it defaults to the selected
376frame. 373frame.
377
378You can use this function to define frame-local bindings for
379variables, see @ref{Frame-Local Variables}.
380@end defun 374@end defun
381 375
382@defun set-frame-parameter frame parm value 376@defun set-frame-parameter frame parm value
@@ -520,6 +514,11 @@ you don't specify a name, Emacs sets the frame name automatically
520If you specify the frame name explicitly when you create the frame, the 514If you specify the frame name explicitly when you create the frame, the
521name is also used (instead of the name of the Emacs executable) when 515name is also used (instead of the name of the Emacs executable) when
522looking up X resources for the frame. 516looking up X resources for the frame.
517
518@item explicit-name
519If the frame name was specified explicitly when the frame was created,
520this parameter will be that name. If the frame wasn't explicitly
521named, this parameter will be @code{nil}.
523@end table 522@end table
524 523
525@node Position Parameters 524@node Position Parameters
@@ -1954,30 +1953,34 @@ defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos
1954@node Window System Selections 1953@node Window System Selections
1955@section Window System Selections 1954@section Window System Selections
1956@cindex selection (for window systems) 1955@cindex selection (for window systems)
1957 1956@cindex clipboard
1958The X server records a set of @dfn{selections} which permit transfer of 1957@cindex primary selection
1959data between application programs. The various selections are 1958@cindex secondary selection
1960distinguished by @dfn{selection types}, represented in Emacs by 1959
1961symbols. X clients including Emacs can read or set the selection for 1960 In the X window system, data can be transferred between different
1962any given type. 1961applications by means of @dfn{selections}. X defines an arbitrary
1962number of @dfn{selection types}, each of which can store its own data;
1963however, only three are commonly used: the @dfn{clipboard},
1964@dfn{primary selection}, and @dfn{secondary selection}. @xref{Cut and
1965Paste,, Cut and Paste, emacs, The GNU Emacs Manual}, for Emacs
1966commands that make use of these selections. This section documents
1967the low-level functions for reading and setting X selections.
1963 1968
1964@deffn Command x-set-selection type data 1969@deffn Command x-set-selection type data
1965This function sets a ``selection'' in the X server. It takes two 1970This function sets an X selection. It takes two arguments: a
1966arguments: a selection type @var{type}, and the value to assign to it, 1971selection type @var{type}, and the value to assign to it, @var{data}.
1967@var{data}. If @var{data} is @code{nil}, it means to clear out the 1972
1968selection. Otherwise, @var{data} may be a string, a symbol, an integer 1973@var{type} should be a symbol; it is usually one of @code{PRIMARY},
1969(or a cons of two integers or list of two integers), an overlay, or a 1974@code{SECONDARY} or @code{CLIPBOARD}. These are symbols with
1970cons of two markers pointing to the same buffer. An overlay or a pair 1975upper-case names, in accord with X Window System conventions. If
1971of markers stands for text in the overlay or between the markers. 1976@var{type} is @code{nil}, that stands for @code{PRIMARY}.
1972 1977
1973The argument @var{data} may also be a vector of valid non-vector 1978If @var{data} is @code{nil}, it means to clear out the selection.
1974selection values. 1979Otherwise, @var{data} may be a string, a symbol, an integer (or a cons
1975 1980of two integers or list of two integers), an overlay, or a cons of two
1976Each possible @var{type} has its own selection value, which changes 1981markers pointing to the same buffer. An overlay or a pair of markers
1977independently. The usual values of @var{type} are @code{PRIMARY}, 1982stands for text in the overlay or between the markers. The argument
1978@code{SECONDARY} and @code{CLIPBOARD}; these are symbols with upper-case 1983@var{data} may also be a vector of valid non-vector selection values.
1979names, in accord with X Window System conventions. If @var{type} is
1980@code{nil}, that stands for @code{PRIMARY}.
1981 1984
1982This function returns @var{data}. 1985This function returns @var{data}.
1983@end deffn 1986@end deffn
@@ -2014,14 +2017,6 @@ and @code{x-set-selection} on MS-Windows support the text data type
2014only; if the clipboard holds other types of data, Emacs treats the 2017only; if the clipboard holds other types of data, Emacs treats the
2015clipboard as empty. 2018clipboard as empty.
2016 2019
2017@defopt x-select-enable-clipboard
2018If this is non-@code{nil}, the Emacs yank functions consult the
2019clipboard before the primary selection, and the kill functions store in
2020the clipboard as well as the primary selection. Otherwise they do not
2021access the clipboard at all. The default is @code{t} on systems with
2022clipboards.
2023@end defopt
2024
2025@node Drag and Drop 2020@node Drag and Drop
2026@section Drag and Drop 2021@section Drag and Drop
2027 2022
@@ -2441,10 +2436,13 @@ For a tty display, it is log to base two of the number of colors supported.
2441@end defun 2436@end defun
2442 2437
2443@defun display-visual-class &optional display 2438@defun display-visual-class &optional display
2444This function returns the visual class for the screen. The value is one 2439This function returns the visual class for the screen. The value is
2445of the symbols @code{static-gray}, @code{gray-scale}, 2440one of the symbols @code{static-gray} (a limited, unchangeable number
2446@code{static-color}, @code{pseudo-color}, @code{true-color}, and 2441of grays), @code{gray-scale} (a full range of grays),
2447@code{direct-color}. 2442@code{static-color} (a limited, unchangeable number of colors),
2443@code{pseudo-color} (a limited number of colors), @code{true-color} (a
2444full range of colors), and @code{direct-color} (a full range of
2445colors).
2448@end defun 2446@end defun
2449 2447
2450@defun display-color-cells &optional display 2448@defun display-color-cells &optional display
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 974487382c8..f3b2375b61d 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -112,6 +112,13 @@ editors; for Lisp programs, the distinction is normally unimportant.
112@item byte-code function 112@item byte-code function
113A @dfn{byte-code function} is a function that has been compiled by the 113A @dfn{byte-code function} is a function that has been compiled by the
114byte compiler. @xref{Byte-Code Type}. 114byte compiler. @xref{Byte-Code Type}.
115
116@item autoload object
117@cindex autoload object
118An @dfn{autoload object} is a place-holder for a real function. If
119the autoload object is called, it will make Emacs load the file
120containing the definition of the real function, and then call the real
121function instead.
115@end table 122@end table
116 123
117@defun functionp object 124@defun functionp object
@@ -783,6 +790,12 @@ This function returns @var{arg} and has no side effects.
783This function ignores any arguments and returns @code{nil}. 790This function ignores any arguments and returns @code{nil}.
784@end defun 791@end defun
785 792
793 Emacs Lisp functions can also be user-visible @dfn{commands}. A
794command is a function that has an @dfn{interactive} specification.
795You may want to call these functions as if they were called
796interactively. See @ref{Interactive Call} for details on how to do
797that.
798
786@node Mapping Functions 799@node Mapping Functions
787@section Mapping Functions 800@section Mapping Functions
788@cindex mapping functions 801@cindex mapping functions
diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi
index 63fc06c929b..0ce05d55a07 100644
--- a/doc/lispref/help.texi
+++ b/doc/lispref/help.texi
@@ -78,11 +78,12 @@ function or variable that it describes:
78@item 78@item
79@kindex function-documentation 79@kindex function-documentation
80The documentation for a function is usually stored in the function 80The documentation for a function is usually stored in the function
81definition itself (@pxref{Lambda Expressions}). The function 81definition itself (@pxref{Lambda Expressions} and @pxref{Function
82@code{documentation} knows how to extract it. You can also put 82Documentation}). The function @code{documentation} knows how to
83function documentation in the @code{function-documentation} property 83extract it. You can also put function documentation in the
84of the function name. That is useful with definitions such as 84@code{function-documentation} property of the function name. That is
85keyboard macros that can't hold a documentation string. 85useful with definitions such as keyboard macros that can't hold a
86documentation string.
86 87
87@item 88@item
88@kindex variable-documentation 89@kindex variable-documentation
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index cf1db5b7fce..15b2f2079ba 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -2262,6 +2262,17 @@ the double-dash and replacing each single dash with capitalization of
2262the following word. Thus, @code{"--:singleLine"}, is equivalent to 2262the following word. Thus, @code{"--:singleLine"}, is equivalent to
2263@code{"--single-line"}. 2263@code{"--single-line"}.
2264 2264
2265 You can use a longer form to specify keywords such as @code{:enable}
2266and @code{:visible} for a menu separator:
2267
2268@code{(menu-item @var{separator-type} nil . @var{item-property-list})}
2269
2270For example:
2271
2272@example
2273(menu-item "--" nil :visible (boundp 'foo))
2274@end example
2275
2265 Some systems and display toolkits don't really handle all of these 2276 Some systems and display toolkits don't really handle all of these
2266separator types. If you use a type that isn't supported, the menu 2277separator types. If you use a type that isn't supported, the menu
2267displays a similar kind of separator that is supported. 2278displays a similar kind of separator that is supported.
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 562cc76c3f0..dd3b2e3038f 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -101,6 +101,11 @@ one, with no arguments.
101The hook variable's value can also be a single function---either a 101The hook variable's value can also be a single function---either a
102lambda expression or a symbol with a function definition---which 102lambda expression or a symbol with a function definition---which
103@code{run-hooks} calls. But this usage is obsolete. 103@code{run-hooks} calls. But this usage is obsolete.
104
105If the hook variable is buffer-local, the buffer-local variable will
106be used instead of the global variable. However, if the buffer-local
107variable contains the element @code{t}, the global hook variable will
108be run as well.
104@end defun 109@end defun
105 110
106@defun run-hook-with-args hook &rest args 111@defun run-hook-with-args hook &rest args
@@ -169,11 +174,11 @@ function goes at the end of the hook list and will be executed last.
169value is a single function; it sets or changes the value to a list of 174value is a single function; it sets or changes the value to a list of
170functions. 175functions.
171 176
172If @var{local} is non-@code{nil}, that says to add @var{function} to 177If @var{local} is non-@code{nil}, that says to add @var{function} to the
173the buffer-local hook list instead of to the global hook list. If 178buffer-local hook list instead of to the global hook list. This makes
174needed, this makes the hook buffer-local and adds @code{t} to the 179the hook buffer-local and adds @code{t} to the buffer-local value. The
175buffer-local value. The latter acts as a flag to run the hook 180latter acts as a flag to run the hook functions in the default value as
176functions in the default value as well as in the local value. 181well as in the local value.
177@end defun 182@end defun
178 183
179@defun remove-hook hook function &optional local 184@defun remove-hook hook function &optional local
@@ -1866,6 +1871,15 @@ default value also displays the recursive editing level, information
1866on the process status, and whether narrowing is in effect. 1871on the process status, and whether narrowing is in effect.
1867@end defopt 1872@end defopt
1868 1873
1874@defopt mode-line-remote
1875This variable is used to show whether @code{default-directory} for the
1876current buffer is remote.
1877@end defopt
1878
1879@defopt mode-line-client
1880This variable is used to identify @code{emacsclient} frames.
1881@end defopt
1882
1869 The following three variables are used in @code{mode-line-modes}: 1883 The following three variables are used in @code{mode-line-modes}:
1870 1884
1871@defvar mode-name 1885@defvar mode-name
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 27d9ba10aef..6d63bb7b750 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -392,7 +392,7 @@ value is more important than the @acronym{ASCII} representation.
392and the hexadecimal character code. You can use any number of hex 392and the hexadecimal character code. You can use any number of hex
393digits, so you can represent any character code in this way. 393digits, so you can represent any character code in this way.
394Thus, @samp{?\x41} for the character @kbd{A}, @samp{?\x1} for the 394Thus, @samp{?\x41} for the character @kbd{A}, @samp{?\x1} for the
395character @kbd{C-a}, and @code{?\x8e0} for the Latin-1 character 395character @kbd{C-a}, and @code{?\xe0} for the Latin-1 character
396@iftex 396@iftex
397@samp{@`a}. 397@samp{@`a}.
398@end iftex 398@end iftex
@@ -1037,7 +1037,7 @@ digits as necessary. (Multibyte non-@acronym{ASCII} character codes are all
1037greater than 256.) Any character which is not a valid hex digit 1037greater than 256.) Any character which is not a valid hex digit
1038terminates this construct. If the next character in the string could be 1038terminates this construct. If the next character in the string could be
1039interpreted as a hex digit, write @w{@samp{\ }} (backslash and space) to 1039interpreted as a hex digit, write @w{@samp{\ }} (backslash and space) to
1040terminate the hex escape---for example, @w{@samp{\x8e0\ }} represents 1040terminate the hex escape---for example, @w{@samp{\xe0\ }} represents
1041one character, @samp{a} with grave accent. @w{@samp{\ }} in a string 1041one character, @samp{a} with grave accent. @w{@samp{\ }} in a string
1042constant is just like backslash-newline; it does not contribute any 1042constant is just like backslash-newline; it does not contribute any
1043character to the string, but it does terminate the preceding hex escape. 1043character to the string, but it does terminate the preceding hex escape.
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 27b089f75b6..6272301dbb4 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -1207,6 +1207,12 @@ search you wish to refer back to and the use of the match data. If you
1207can't avoid another intervening search, you must save and restore the 1207can't avoid another intervening search, you must save and restore the
1208match data around it, to prevent it from being overwritten. 1208match data around it, to prevent it from being overwritten.
1209 1209
1210 Notice that all functions are allowed to overwrite the match data
1211unless they're explicitly documented not to do so. A consequence is
1212that functions that are run implictly in the background
1213(@pxref{Timers}, and @ref{Idle Timers}) should likely save and restore
1214the match data explicitly.
1215
1210@menu 1216@menu
1211* Replacing Match:: Replacing a substring that was matched. 1217* Replacing Match:: Replacing a substring that was matched.
1212* Simple Match Data:: Accessing single items of match data, 1218* Simple Match Data:: Accessing single items of match data,
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 9802c7485dd..4d3a66d8852 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -684,6 +684,12 @@ For example, if the current buffer name is @samp{foo},
684returns @code{"The buffer is foo"}. 684returns @code{"The buffer is foo"}.
685@end defmac 685@end defmac
686 686
687@defun pp object &optional stream
688This function outputs @var{object} to @var{stream}, just like
689@code{prin1}, but does it in a more ``pretty'' way. That is, it'll
690indent and fill the object to make it more readable for humans.
691@end defun
692
687@node Output Variables 693@node Output Variables
688@section Variables Affecting Output 694@section Variables Affecting Output
689@cindex output-controlling variables 695@cindex output-controlling variables
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 05ac40e90c1..2b8911277cd 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -856,14 +856,16 @@ with @samp{0x} or @samp{0X}. For @samp{%e}, @samp{%f}, and @samp{%g},
856the @samp{#} flag means include a decimal point even if the precision 856the @samp{#} flag means include a decimal point even if the precision
857is zero. 857is zero.
858 858
859 The flag @samp{0} ensures that the padding consists of @samp{0}
860characters instead of spaces. This flag is ignored for non-numerical
861specification characters like @samp{%s}, @samp{%S} and @samp{%c}.
862These specification characters accept the @samp{0} flag, but still pad
863with @emph{spaces}.
864
859 The flag @samp{-} causes the padding inserted by the width 865 The flag @samp{-} causes the padding inserted by the width
860specifier, if any, to be inserted on the right rather than the left. 866specifier, if any, to be inserted on the right rather than the left.
861The flag @samp{0} ensures that the padding consists of @samp{0} 867If both @samp{-} and @samp{0} are present, the @samp{0} flag is
862characters instead of spaces, inserted on the left. These flags are 868ignored.
863ignored for specification characters for which they do not make sense:
864@samp{%s}, @samp{%S} and @samp{%c} accept the @samp{0} flag, but still
865pad with @emph{spaces} on the left. If both @samp{-} and @samp{0} are
866present and valid, @samp{-} takes precedence.
867 869
868@example 870@example
869@group 871@group
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index 6582a8dfb0c..31ee7eb4e7d 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -108,7 +108,7 @@ Then come the characters for any desired flags. If no matching
108character or flags are needed, one character is sufficient. 108character or flags are needed, one character is sufficient.
109 109
110 For example, the syntax descriptor for the character @samp{*} in C 110 For example, the syntax descriptor for the character @samp{*} in C
111mode is @samp{@w{. 23}} (i.e., punctuation, matching character slot 111mode is @code{". 23"} (i.e., punctuation, matching character slot
112unused, second character of a comment-starter, first character of a 112unused, second character of a comment-starter, first character of a
113comment-ender), and the entry for @samp{/} is @samp{@w{. 14}} (i.e., 113comment-ender), and the entry for @samp{/} is @samp{@w{. 14}} (i.e.,
114punctuation, matching character slot unused, first character of a 114punctuation, matching character slot unused, first character of a
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 7d2c3831a5a..b91afb044f0 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -364,14 +364,13 @@ after point. Some insertion functions leave point before the inserted
364text, while other functions leave it after. We call the former 364text, while other functions leave it after. We call the former
365insertion @dfn{after point} and the latter insertion @dfn{before point}. 365insertion @dfn{after point} and the latter insertion @dfn{before point}.
366 366
367 Insertion relocates markers that point at positions after the 367 Insertion moves markers located at positions after the insertion
368insertion point, so that they stay with the surrounding text 368point, so that they stay with the surrounding text (@pxref{Markers}).
369(@pxref{Markers}). When a marker points at the place of insertion, 369When a marker points at the place of insertion, insertion may or may
370insertion may or may not relocate the marker, depending on the marker's 370not relocate the marker, depending on the marker's insertion type
371insertion type (@pxref{Marker Insertion Types}). Certain special 371(@pxref{Marker Insertion Types}). Certain special functions such as
372functions such as @code{insert-before-markers} relocate all such markers 372@code{insert-before-markers} relocate all such markers to point after
373to point after the inserted text, regardless of the markers' insertion 373the inserted text, regardless of the markers' insertion type.
374type.
375 374
376 Insertion functions signal an error if the current buffer is 375 Insertion functions signal an error if the current buffer is
377read-only or if they insert within read-only text. 376read-only or if they insert within read-only text.
@@ -2978,8 +2977,7 @@ character.
2978You can use the property @code{face} to control the font and color of 2977You can use the property @code{face} to control the font and color of
2979text. @xref{Faces}, for more information. 2978text. @xref{Faces}, for more information.
2980 2979
2981In the simplest case, the value is a face name. It can also be a list; 2980@code{face} can be the following:
2982then each element can be any of these possibilities;
2983 2981
2984@itemize @bullet 2982@itemize @bullet
2985@item 2983@item
@@ -2994,8 +2992,8 @@ time you want to specify a particular attribute for certain text.
2994@xref{Face Attributes}. 2992@xref{Face Attributes}.
2995@end itemize 2993@end itemize
2996 2994
2997It works to use the latter two forms directly as the value 2995@code{face} can also be a list, where each element uses one of the
2998of the @code{face} property. 2996forms listed above.
2999 2997
3000Font Lock mode (@pxref{Font Lock Mode}) works in most buffers by 2998Font Lock mode (@pxref{Font Lock Mode}) works in most buffers by
3001dynamically updating the @code{face} property of characters based on 2999dynamically updating the @code{face} property of characters based on
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 08712466b5c..3da09369882 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -39,7 +39,6 @@ representing the variable.
39* Buffer-Local Variables:: Variable values in effect only in one buffer. 39* Buffer-Local Variables:: Variable values in effect only in one buffer.
40* File Local Variables:: Handling local variable lists in files. 40* File Local Variables:: Handling local variable lists in files.
41* Directory Local Variables:: Local variables common to all files in a directory. 41* Directory Local Variables:: Local variables common to all files in a directory.
42* Frame-Local Variables:: Frame-local bindings for variables.
43* Variable Aliases:: Variables that are aliases for other variables. 42* Variable Aliases:: Variables that are aliases for other variables.
44* Variables with Restricted Values:: Non-constant variables whose value can 43* Variables with Restricted Values:: Non-constant variables whose value can
45 @emph{not} be an arbitrary Lisp object. 44 @emph{not} be an arbitrary Lisp object.
@@ -99,7 +98,7 @@ x
99 98
100@node Constant Variables 99@node Constant Variables
101@section Variables that Never Change 100@section Variables that Never Change
102@kindex setting-constant 101@cindex @code{setting-constant} error
103@cindex keyword symbol 102@cindex keyword symbol
104@cindex variable with constant value 103@cindex variable with constant value
105@cindex constant variables 104@cindex constant variables
@@ -288,7 +287,7 @@ has room to execute.
288 287
289@node Void Variables 288@node Void Variables
290@section When a Variable is ``Void'' 289@section When a Variable is ``Void''
291@kindex void-variable 290@cindex @code{void-variable} error
292@cindex void variable 291@cindex void variable
293 292
294 If you have never given a symbol any value as a global variable, we 293 If you have never given a symbol any value as a global variable, we
@@ -583,7 +582,8 @@ and is a string, and its first character is @samp{*}, then the variable
583is a user option. Aliases of user options are also user options. 582is a user option. Aliases of user options are also user options.
584@end defun 583@end defun
585 584
586@kindex variable-interactive 585@cindex @code{variable-interactive} property
586@findex set-variable
587 If a user option variable has a @code{variable-interactive} property, 587 If a user option variable has a @code{variable-interactive} property,
588the @code{set-variable} command uses that value to control reading the 588the @code{set-variable} command uses that value to control reading the
589new value for the variable. The property's value is used as if it were 589new value for the variable. The property's value is used as if it were
@@ -1186,8 +1186,7 @@ additional, unusual kinds of variable binding, such as
1186@dfn{buffer-local} bindings, which apply only in one buffer. Having 1186@dfn{buffer-local} bindings, which apply only in one buffer. Having
1187different values for a variable in different buffers is an important 1187different values for a variable in different buffers is an important
1188customization method. (Variables can also have bindings that are 1188customization method. (Variables can also have bindings that are
1189local to each terminal, or to each frame. @xref{Multiple Terminals}, 1189local to each terminal. @xref{Multiple Terminals}.)
1190and @xref{Frame-Local Variables}.)
1191 1190
1192@menu 1191@menu
1193* Intro to Buffer-Local:: Introduction and concepts. 1192* Intro to Buffer-Local:: Introduction and concepts.
@@ -1286,9 +1285,8 @@ buffer-local binding of buffer @samp{b}.
1286values when you visit the file. @xref{File Variables,,, emacs, The 1285values when you visit the file. @xref{File Variables,,, emacs, The
1287GNU Emacs Manual}. 1286GNU Emacs Manual}.
1288 1287
1289 A buffer-local variable cannot be made frame-local 1288 A buffer-local variable cannot be made terminal-local
1290(@pxref{Frame-Local Variables}) or terminal-local (@pxref{Multiple 1289(@pxref{Multiple Terminals}).
1291Terminals}).
1292 1290
1293@node Creating Buffer-Local 1291@node Creating Buffer-Local
1294@subsection Creating and Deleting Buffer-Local Bindings 1292@subsection Creating and Deleting Buffer-Local Bindings
@@ -1339,9 +1337,9 @@ is not current either on entry to or exit from the @code{let}. This is
1339because @code{let} does not distinguish between different kinds of 1337because @code{let} does not distinguish between different kinds of
1340bindings; it knows only which variable the binding was made for. 1338bindings; it knows only which variable the binding was made for.
1341 1339
1342If the variable is terminal-local (@pxref{Multiple Terminals}), or 1340If the variable is terminal-local (@pxref{Multiple Terminals}), this
1343frame-local (@pxref{Frame-Local Variables}), this function signals an 1341function signals an error. Such variables cannot have buffer-local
1344error. Such variables cannot have buffer-local bindings as well. 1342bindings as well.
1345 1343
1346@strong{Warning:} do not use @code{make-local-variable} for a hook 1344@strong{Warning:} do not use @code{make-local-variable} for a hook
1347variable. The hook variables are automatically made buffer-local as 1345variable. The hook variables are automatically made buffer-local as
@@ -1879,36 +1877,6 @@ modification times of the associated directory local variables file
1879updates this list. 1877updates this list.
1880@end defvar 1878@end defvar
1881 1879
1882@node Frame-Local Variables
1883@section Frame-Local Values for Variables
1884@cindex frame-local variables
1885
1886 In addition to buffer-local variable bindings (@pxref{Buffer-Local
1887Variables}), Emacs supports @dfn{frame-local} bindings. A frame-local
1888binding for a variable is in effect in a frame for which it was
1889defined.
1890
1891 In practice, frame-local variables have not proven very useful.
1892Ordinary frame parameters are generally used instead (@pxref{Frame
1893Parameters}). The function @code{make-variable-frame-local}, which
1894was used to define frame-local variables, has been deprecated since
1895Emacs 22.2. However, you can still define a frame-specific binding
1896for a variable @var{var} in frame @var{frame}, by setting the
1897@var{var} frame parameter for that frame:
1898
1899@lisp
1900 (modify-frame-parameters @var{frame} '((@var{var} . @var{value})))
1901@end lisp
1902
1903@noindent
1904This causes the variable @var{var} to be bound to the specified
1905@var{value} in the named @var{frame}. To check the frame-specific
1906values of such variables, use @code{frame-parameter}. @xref{Parameter
1907Access}.
1908
1909 Note that you cannot have a frame-local binding for a variable that
1910has a buffer-local binding.
1911
1912@node Variable Aliases 1880@node Variable Aliases
1913@section Variable Aliases 1881@section Variable Aliases
1914@cindex variable aliases 1882@cindex variable aliases
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi
index afcd3d6cbd6..3b7718814b5 100644
--- a/doc/lispref/vol1.texi
+++ b/doc/lispref/vol1.texi
@@ -211,7 +211,7 @@ Appendices
211 --- The Detailed Node Listing --- 211 --- The Detailed Node Listing ---
212 --------------------------------- 212 ---------------------------------
213 213
214Here are other nodes that are inferiors of those already listed, 214Here are other nodes that are subnodes of those already listed,
215mentioned here so you can get to them in one step: 215mentioned here so you can get to them in one step:
216 216
217Introduction 217Introduction
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi
index 65ffbc23860..22a51d3235c 100644
--- a/doc/lispref/vol2.texi
+++ b/doc/lispref/vol2.texi
@@ -210,7 +210,7 @@ Appendices
210 --- The Detailed Node Listing --- 210 --- The Detailed Node Listing ---
211 --------------------------------- 211 ---------------------------------
212 212
213Here are other nodes that are inferiors of those already listed, 213Here are other nodes that are subnodes of those already listed,
214mentioned here so you can get to them in one step: 214mentioned here so you can get to them in one step:
215 215
216Introduction 216Introduction