summaryrefslogtreecommitdiff
path: root/lispref
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2006-12-03 15:03:30 +0000
committerKaroly Lorentey <lorentey@elte.hu>2006-12-03 15:03:30 +0000
commit974b73e83842d63b14512aa225cc53983a9b5d14 (patch)
tree462170d38cbb7057e98f08e8c612a9d30eeea0fd /lispref
parentd0104e754a241cf83811fef30195d41201de533c (diff)
parentf5be22a273892218aad1db32c43ba562a08f3925 (diff)
downloademacs-974b73e83842d63b14512aa225cc53983a9b5d14.tar.gz
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-490 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-491 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-492 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-493 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-494 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-495 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-496 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-497 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-498 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-499 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-500 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-501 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-502 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-503 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-504 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-505 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-506 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-507 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-508 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-509 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-510 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-511 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-512 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-513 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-514 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-515 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-516 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-517 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-518 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-519 Update from CVS: etc/TUTORIAL.cn: Updated. * emacs@sv.gnu.org/emacs--devo--0--patch-520 Merge from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-521 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-522 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-523 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-524 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-525 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-526 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-527 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-528 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-529 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-530 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-531 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-532 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-533 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-534 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-535 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-161 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-162 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-163 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-164 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-165 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-166 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-167 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-168 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-169 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-170 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-588
Diffstat (limited to 'lispref')
-rw-r--r--lispref/ChangeLog40
-rw-r--r--lispref/customize.texi30
-rw-r--r--lispref/display.texi15
-rw-r--r--lispref/elisp.texi4
-rw-r--r--lispref/frames.texi16
-rw-r--r--lispref/keymaps.texi32
-rw-r--r--lispref/lists.texi6
-rw-r--r--lispref/makefile.w32-in4
-rw-r--r--lispref/modes.texi40
-rw-r--r--lispref/searching.texi3
10 files changed, 142 insertions, 48 deletions
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 03359e1cd29..312932c591a 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,10 +1,45 @@
+2006-11-29 Richard Stallman <rms@gnu.org>
+
+ * frames.texi (Visibility of Frames): Explain visible windows
+ can be covered by others. Add xref for raise-frame.
+
+2006-11-28 Richard Stallman <rms@gnu.org>
+
+ * searching.texi (Regexp Special): Update when ^ is special.
+
+2006-11-27 Eli Zaretskii <eliz@gnu.org>
+
+ * customize.texi (Customization, Common Keywords)
+ (Group Definitions, Variable Definitions, Composite Types)
+ (Type Keywords, Customization Types): Add index entries for
+ various customization keywords.
+
+2006-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Multiline Font Lock): Rephrase some parts for clarity.
+
+2006-11-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Window System Selections): Remove clipboard from
+ description of selection-coding-system.
+
+2006-11-06 Richard Stallman <rms@gnu.org>
+
+ * lists.texi (List Variables): Document COMPARE-FN.
+
+ * keymaps.texi: Avoid use of "binding" to mean a relation;
+ use it only to refer to the meaning associated with a key.
+ (Keymaps): Change menu node description.
+
+ * elisp.texi (Top): Change menu node description.
+
+ * display.texi (Managing Overlays): Document overlay-recenter.
+
2006-10-29 Chong Yidong <cyd@stupidchicken.com>
* Makefile.in: Use relative paths to avoid advertising filesystem
contents during compilation.
- * makefile.w32-in: Likewise.
-
2006-10-23 Kim F. Storm <storm@cua.dk>
* commands.texi (Event Input Misc): Update unread-command-events.
@@ -5435,6 +5470,7 @@ Tue Apr 11 12:23:28 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
;; Local Variables:
;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
;; End:
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
diff --git a/lispref/customize.texi b/lispref/customize.texi
index 9e10e547b56..d47c86308c8 100644
--- a/lispref/customize.texi
+++ b/lispref/customize.texi
@@ -7,6 +7,7 @@
@node Customization, Loading, Macros, Top
@chapter Writing Customization Definitions
+@cindex customization definitions
This chapter describes how to declare user options for customization,
and also customization groups for classifying them. We use the term
@dfn{customization item} to include both kinds of customization
@@ -23,6 +24,7 @@ definitions---as well as face definitions (@pxref{Defining Faces}).
@node Common Keywords
@section Common Item Keywords
+@cindex customization keywords
All kinds of customization declarations (for variables and groups, and
for faces) accept keyword arguments for specifying various information.
This section describes some keywords that apply to all kinds.
@@ -34,6 +36,7 @@ display one name.
@table @code
@item :tag @var{label}
+@kindex tag@r{, customization keyword}
Use @var{label}, a string, instead of the item's name, to label the
item in customization menus and buffers. @strong{Don't use a tag
which is substantially different from the item's real name; that would
@@ -45,6 +48,7 @@ specify a dash where normally a hyphen would be converted to a space:
:tag "Cursor In Non-selected Windows"
@end example
+@kindex group@r{, customization keyword}
@item :group @var{group}
Put this customization item in group @var{group}. When you use
@code{:group} in a @code{defgroup}, it makes the new group a subgroup of
@@ -55,6 +59,7 @@ more than one group. Displaying any of those groups will show this
item. Please don't overdo this, since the result would be annoying.
@item :link @var{link-data}
+@kindex link@r{, customization keyword}
Include an external link after the documentation string for this item.
This is a sentence containing an active field which references some
other documentation.
@@ -114,11 +119,13 @@ An item can have more than one external link; however, most items have
none at all.
@item :load @var{file}
+@kindex load@r{, customization keyword}
Load file @var{file} (a string) before displaying this customization
item. Loading is done with @code{load-library}, and only if the file is
not already loaded.
@item :require @var{feature}
+@kindex require@r{, customization keyword}
Execute @code{(require '@var{feature})} when your saved customizations
set the value of this item. @var{feature} should be a symbol.
@@ -127,11 +134,13 @@ a feature such as a minor mode, and just setting the variable won't have
any effect unless the code which implements the mode is loaded.
@item :version @var{version}
+@kindex version@r{, customization keyword}
This option specifies that the item was first introduced in Emacs
version @var{version}, or that its default value was changed in that
version. The value @var{version} must be a string.
@item :package-version '(@var{package} . @var{version})
+@kindex package-version@r{, customization keyword}
This option specifies that the item was first introduced in
@var{package} version @var{version}, or that its meaning or default
value was changed in that version. The value of @var{package} is a
@@ -179,6 +188,7 @@ choice is the official name of the package, such as MH-E or Gnus.
@node Group Definitions
@section Defining Custom Groups
+@cindex custom groups, how to define
Each Emacs Lisp package should have one main customization group which
contains all the options, faces and other groups in the package. If the
package has a small number of options and faces, use just one group and
@@ -221,6 +231,7 @@ also use this keyword in @code{defgroup}:
@table @code
@item :prefix @var{prefix}
+@kindex prefix@r{, @code{defgroup} keyword}
If the name of an item in the group starts with @var{prefix}, then the
tag for that item is constructed (by default) by omitting @var{prefix}.
@@ -249,6 +260,8 @@ turn this feature back on, if someone would like to do the work.
@node Variable Definitions
@section Defining Customization Variables
+@cindex customization variables, how to define
+@cindex declare user-editable variables
Use @code{defcustom} to declare user-editable variables.
@defmac defcustom option standard doc [keyword value]@dots{}
@@ -297,6 +310,7 @@ values are legitimate, and how to display the value.
@xref{Customization Types}, for more information.
@item :options @var{list}
+@kindex options@r{, @code{defcustom} keyword}
Specify @var{list} as the list of reasonable values for use in this
option. The user is not restricted to using only these values, but they
are offered as convenient alternatives.
@@ -306,6 +320,7 @@ This is meaningful only for certain types, currently including
individual types for a description of how to use @code{:options}.
@item :set @var{setfunction}
+@kindex set@r{, @code{defcustom} keyword}
Specify @var{setfunction} as the way to change the value of this
option. The function @var{setfunction} should take two arguments, a
symbol (the option name) and the new value, and should do whatever is
@@ -314,6 +329,7 @@ mean simply setting the option as a Lisp variable). The default for
@var{setfunction} is @code{set-default}.
@item :get @var{getfunction}
+@kindex get@r{, @code{defcustom} keyword}
Specify @var{getfunction} as the way to extract the value of this
option. The function @var{getfunction} should take one argument, a
symbol, and should return whatever customize should use as the
@@ -327,6 +343,7 @@ is almost surely a mistake to specify @code{getfunction} for a value
that really is stored in a Lisp variable.
@item :initialize @var{function}
+@kindex initialize@r{, @code{defcustom} keyword}
@var{function} should be a function used to initialize the variable
when the @code{defcustom} is evaluated. It should take two arguments,
the option name (a symbol) and the value. Here are some predefined
@@ -374,6 +391,7 @@ variables and functions will be defined, so there will not be an error.
@end table
@item :set-after @var{variables}
+@kindex set-after@r{, @code{defcustom} keyword}
When setting variables according to saved customizations, make sure to
set the variables @var{variables} before this one; in other words, delay
setting this variable until after those others have been handled. Use
@@ -425,11 +443,13 @@ an expression which evaluates to the value.
@node Customization Types
@section Customization Types
+@cindex customization types
When you define a user option with @code{defcustom}, you must specify
its @dfn{customization type}. That is a Lisp object which describes (1)
which values are legitimate and (2) how to display the value in the
customization buffer for editing.
+@kindex type@r{, @code{defcustom} keyword}
You specify the customization type in @code{defcustom} with the
@code{:type} keyword. The argument of @code{:type} is evaluated, but
only once when the @code{defcustom} is executed, so it isn't useful
@@ -905,10 +925,12 @@ purposes. This is useful for a type that appears inside of a
@code{choice}.
@item :match-alternatives @var{criteria}
+@kindex match-alternatives@r{, customization keyword}
Use @var{criteria} to match possible values. This is used only in
@code{restricted-sexp}.
@item :args @var{argument-list}
+@kindex args@r{, customization keyword}
Use the elements of @var{argument-list} as the arguments of the type
construct. For instance, @code{(const :args (foo))} is equivalent to
@code{(const foo)}. You rarely need to write @code{:args} explicitly,
@@ -986,6 +1008,7 @@ If @code{nil} is not a valid value for the alternative, then it is
essential to specify a valid default with @code{:value}.
@item :format @var{format-string}
+@kindex format@r{, customization keyword}
This string will be inserted in the buffer to represent the value
corresponding to the type. The following @samp{%} escapes are available
for use in @var{format-string}:
@@ -1024,14 +1047,18 @@ Display a literal @samp{%}.
@end table
@item :action @var{action}
+@kindex action@r{, customization keyword}
Perform @var{action} if the user clicks on a button.
@item :button-face @var{face}
+@kindex button-face@r{, customization keyword}
Use the face @var{face} (a face name or a list of face names) for button
text displayed with @samp{%[@dots{}%]}.
@item :button-prefix @var{prefix}
@itemx :button-suffix @var{suffix}
+@kindex button-prefix@r{, customization keyword}
+@kindex button-suffix@r{, customization keyword}
These specify the text to display before and after a button.
Each can be:
@@ -1051,6 +1078,7 @@ Use @var{tag} (a string) as the tag for the value (or part of the value)
that corresponds to this type.
@item :doc @var{doc}
+@kindex doc@r{, customization keyword}
Use @var{doc} as the documentation string for this value (or part of the
value) that corresponds to this type. In order for this to work, you
must specify a value for @code{:format}, and use @samp{%d} or @samp{%h}
@@ -1061,6 +1089,7 @@ provide more information about the meanings of alternatives inside a
@code{:choice} type or the parts of some other composite type.
@item :help-echo @var{motion-doc}
+@kindex help-echo@r{, customization keyword}
When you move to this item with @code{widget-forward} or
@code{widget-backward}, it will display the string @var{motion-doc} in
the echo area. In addition, @var{motion-doc} is used as the mouse
@@ -1069,6 +1098,7 @@ to yield a help string. If it is a function, it is called with one
argument, the widget.
@item :match @var{function}
+@kindex match@r{, customization keyword}
Specify how to decide whether a value matches the type. The
corresponding value, @var{function}, should be a function that accepts
two arguments, a widget and a value; it should return non-@code{nil} if
diff --git a/lispref/display.texi b/lispref/display.texi
index e7fab3ac7a8..a60cb9ab69d 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -1259,6 +1259,21 @@ foo
@result{} t
@end example
+ Emacs stores the overlays of each buffer in two lists, divided
+around an arbitrary ``center position.'' One list extends backwards
+through the buffer from that center position, and the other extends
+forwards from that center position. The center position can be anywhere
+in the buffer.
+
+@defun overlay-recenter pos
+This function recenters the overlays of the current buffer around
+position @var{pos}. That makes overlay lookup faster for positions
+near @var{pos}, but slower for positions far away from @var{pos}.
+@end defun
+
+ A loop that scans the buffer forwards, creating overlays, can run
+faster if you do @code{(overlay-recenter (point-max))} first.
+
@node Overlay Properties
@subsection Overlay Properties
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index 367932ab13c..7b869d04041 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -7,7 +7,7 @@
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
@set VERSION 2.9
-@set EMACSVER 22.0.90
+@set EMACSVER 22.0.91
@dircategory Emacs
@direntry
@@ -614,7 +614,7 @@ Keymaps
* Key Lookup:: How extracting elements from keymaps works.
* Functions for Key Lookup:: How to request key lookup.
* Changing Key Bindings:: Redefining a key in a keymap.
-* Remapping Commands:: Bindings that translate one command to another.
+* Remapping Commands:: A keymap can translate one command to another.
* Key Binding Commands:: Interactive interfaces for redefining keys.
* Scanning Keymaps:: Looking through all keymaps, for printing help.
* Menu Keymaps:: A keymap can define a menu for X
diff --git a/lispref/frames.texi b/lispref/frames.texi
index 617a2a1d05d..f27aa35432c 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -1203,17 +1203,19 @@ moved by the OS to the selected frame.)
@cindex frame visibility
A window frame may be @dfn{visible}, @dfn{invisible}, or
-@dfn{iconified}. If it is visible, you can see its contents. If it is
-iconified, the frame's contents do not appear on the screen, but an icon
-does. If the frame is invisible, it doesn't show on the screen, not
-even as an icon.
+@dfn{iconified}. If it is visible, you can see its contents, unless
+other windows cover it. If it is iconified, the frame's contents do
+not appear on the screen, but an icon does. If the frame is
+invisible, it doesn't show on the screen, not even as an icon.
Visibility is meaningless for terminal frames, since only the selected
one is actually displayed in any case.
@deffn Command make-frame-visible &optional frame
-This function makes frame @var{frame} visible. If you omit @var{frame},
-it makes the selected frame visible.
+This function makes frame @var{frame} visible. If you omit
+@var{frame}, it makes the selected frame visible. This does not raise
+the frame, but you can do that with @code{raise-frame} if you wish
+(@pxref{Raising and Lowering}).
@end deffn
@deffn Command make-frame-invisible &optional frame force
@@ -1691,7 +1693,7 @@ the third, and so on through all eight cut buffers.
@defvar selection-coding-system
This variable specifies the coding system to use when reading and
-writing selections, the clipboard, or a cut buffer. @xref{Coding
+writing selections or the clipboard. @xref{Coding
Systems}. The default is @code{compound-text-with-extensions}, which
converts to the text representation that X11 normally uses.
@end defvar
diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi
index 1f017b1f43e..a9b9ca2d512 100644
--- a/lispref/keymaps.texi
+++ b/lispref/keymaps.texi
@@ -8,12 +8,12 @@
@chapter Keymaps
@cindex keymap
- The bindings between input events and commands are recorded in data
-structures called @dfn{keymaps}. Each binding in a keymap associates
-(or @dfn{binds}) an individual event type, either to another keymap or to
-a command. When an event type is bound to a keymap, that keymap is used
-to look up the next input event; this continues until a command is
-found. The whole process is called @dfn{key lookup}.
+ The command bindings of input events are recorded in data structures
+called @dfn{keymaps}. Each entry in a keymap associates (or
+@dfn{binds}) an individual event type, either to another keymap or to
+a command. When an event type is bound to a keymap, that keymap is
+used to look up the next input event; this continues until a command
+is found. The whole process is called @dfn{key lookup}.
@menu
* Key Sequences:: Key sequences as Lisp objects.
@@ -32,7 +32,7 @@ found. The whole process is called @dfn{key lookup}.
* Key Lookup:: Finding a key's binding in one keymap.
* Functions for Key Lookup:: How to request key lookup.
* Changing Key Bindings:: Redefining a key in a keymap.
-* Remapping Commands:: Bindings that translate one command to another.
+* Remapping Commands:: A keymap can translate one command to another.
* Translation Keymaps:: Keymaps for translating sequences of events.
* Key Binding Commands:: Interactive interfaces for redefining keys.
* Scanning Keymaps:: Looking through all keymaps, for printing help.
@@ -382,19 +382,21 @@ definition is a keymap; the same symbol appears in the new copy.
@dfn{parent keymap}. Such a keymap looks like this:
@example
-(keymap @var{bindings}@dots{} . @var{parent-keymap})
+(keymap @var{elements}@dots{} . @var{parent-keymap})
@end example
@noindent
The effect is that this keymap inherits all the bindings of
@var{parent-keymap}, whatever they may be at the time a key is looked up,
-but can add to them or override them with @var{bindings}.
-
-If you change the bindings in @var{parent-keymap} using @code{define-key}
-or other key-binding functions, these changes are visible in the
-inheriting keymap unless shadowed by @var{bindings}. The converse is
-not true: if you use @code{define-key} to change the inheriting keymap,
-that affects @var{bindings}, but has no effect on @var{parent-keymap}.
+but can add to them or override them with @var{elements}.
+
+If you change the bindings in @var{parent-keymap} using
+@code{define-key} or other key-binding functions, these changed
+bindings are visible in the inheriting keymap, unless shadowed by the
+bindings made by @var{elements}. The converse is not true: if you use
+@code{define-key} to change bindings in the inheriting keymap, these
+changes are recorded in @var{elements}, but have no effect on
+@var{parent-keymap}.
The proper way to construct a keymap with a parent is to use
@code{set-keymap-parent}; if you have code that directly constructs a
diff --git a/lispref/lists.texi b/lispref/lists.texi
index 62c7600fd17..cf725413895 100644
--- a/lispref/lists.texi
+++ b/lispref/lists.texi
@@ -713,12 +713,14 @@ l
Two functions modify lists that are the values of variables.
-@defun add-to-list symbol element &optional append
+@defun add-to-list symbol element &optional append compare-fn
This function sets the variable @var{symbol} by consing @var{element}
onto the old value, if @var{element} is not already a member of that
value. It returns the resulting list, whether updated or not. The
value of @var{symbol} had better be a list already before the call.
-Membership is tested using @code{equal}.
+@code{add-to-list} uses @var{compare-fn} to compare @var{element}
+against existing list members; if @var{compare-fn} is @code{nil}, it
+uses @code{equal}.
Normally, if @var{element} is added, it is added to the front of
@var{symbol}, but if the optional argument @var{append} is
diff --git a/lispref/makefile.w32-in b/lispref/makefile.w32-in
index 93bb5ae6d45..7da88058bd5 100644
--- a/lispref/makefile.w32-in
+++ b/lispref/makefile.w32-in
@@ -22,7 +22,7 @@
# Standard configure variables.
srcdir = .
-infodir = ../info
+infodir = $(srcdir)/../info
usermanualdir = $(srcdir)/../man
# Redefine `TEX' if `tex' does not invoke plain TeX. For example:
@@ -106,7 +106,7 @@ $(infodir)/dir:
$(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp
$(infodir)/elisp: $(srcs)
- cd $(srcdir); $(MAKEINFO) -I. -I$(infodir) elisp.texi -o $(infodir)/elisp
+ $(MAKEINFO) -I. -I$(srcdir) -o $(infodir)/elisp $(srcdir)/elisp.texi
elisp.dvi: $(srcs)
$(texinputdir) $(TEX) -I $(usermanualdir) $(srcdir)/elisp.texi
diff --git a/lispref/modes.texi b/lispref/modes.texi
index d5e058fa1c8..4f68bb5064b 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -3043,16 +3043,19 @@ constructs:
@itemize
@item
-Place a @code{font-lock-multiline}
-property on the construct when it is added to the buffer.
-@item
-Use @code{font-lock-fontify-region-function} hook to extend the scan
-so that the scanned text never starts or ends in the middle of a
-multiline construct.
-@item
Add a function to @code{font-lock-extend-region-functions} that does
the @emph{identification} and extends the scan so that the scanned
text never starts or ends in the middle of a multiline construct.
+@item
+Use the @code{font-lock-fontify-region-function} hook similarly to
+extend the scan so that the scanned text never starts or ends in the
+middle of a multiline construct.
+@item
+Somehow identify the multiline construct right when it gets inserted
+into the buffer (or at any point after that but before font-lock
+tries to highlight it), and mark it with a @code{font-lock-multiline}
+which will instruct font-lock not to start or end the scan in the
+middle of the construct.
@end itemize
There are three ways to do rehighlighting of multiline constructs:
@@ -3062,18 +3065,21 @@ text never starts or ends in the middle of a multiline construct.
Place a @code{font-lock-multiline} property on the construct. This
will rehighlight the whole construct if any part of it is changed. In
some cases you can do this automatically by setting the
-@code{font-lock-multiline} variable.
+@code{font-lock-multiline} variable, which see.
@item
-Use @code{jit-lock-contextually}. This will only rehighlight the part
-of the construct that follows the actual change, and will do it after
-a short delay. This only works if the highlighting of the various
-parts of your multiline construct never depends on text in subsequent
-lines. Since @code{jit-lock-contextually} is activated by default,
-this can be an attractive solution.
+Make sure @code{jit-lock-contextually} is set and rely on it doing its
+job. This will only rehighlight the part of the construct that
+follows the actual change, and will do it after a short delay.
+This only works if the highlighting of the various parts of your
+multiline construct never depends on text in subsequent lines.
+Since @code{jit-lock-contextually} is activated by default, this can
+be an attractive solution.
@item
Place a @code{jit-lock-defer-multiline} property on the construct.
-This works only if @code{jit-lock-contextually} is used, but it can
-handle the case where highlighting depends on subsequent lines.
+This works only if @code{jit-lock-contextually} is used, and with the
+same delay before rehighlighting, but like @code{font-lock-multiline},
+it also handles the case where highlighting depends on
+subsequent lines.
@end itemize
@menu
@@ -3086,7 +3092,7 @@ handle the case where highlighting depends on subsequent lines.
@subsubsection Font Lock Multiline
One way to ensure reliable rehighlighting of multiline Font Lock
-constructs is to put on the text property @code{font-lock-multiline}.
+constructs is to put on them the text property @code{font-lock-multiline}.
It should be present and non-@code{nil} for text that is part of a
multiline construct.
diff --git a/lispref/searching.texi b/lispref/searching.texi
index 204cfa1d319..bc3fd9ce911 100644
--- a/lispref/searching.texi
+++ b/lispref/searching.texi
@@ -438,7 +438,8 @@ When matching a string instead of a buffer, @samp{^} matches at the
beginning of the string or after a newline character.
For historical compatibility reasons, @samp{^} can be used only at the
-beginning of the regular expression, or after @samp{\(} or @samp{\|}.
+beginning of the regular expression, or after @samp{\(}, @samp{\(?:}
+or @samp{\|}.
@item @samp{$}
@cindex @samp{$} in regexp