aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorPaul Eggert2017-11-02 21:01:44 -0700
committerPaul Eggert2017-11-02 21:01:44 -0700
commit1441eb76fd08572c25e0128c247cc1a628a79ff2 (patch)
treeaaa9a86485836a33618d258a55d8cdbe6082c91a /doc
parent3ca4a3c8d40ea89ed717e0673fa85f5c1ac851ed (diff)
parent460fe4a1bc40f2ba39deda6448a7baf57e0e6b76 (diff)
downloademacs-1441eb76fd08572c25e0128c247cc1a628a79ff2.tar.gz
emacs-1441eb76fd08572c25e0128c247cc1a628a79ff2.zip
Merge from origin/emacs-26
460fe4a1bc ; Doc fixes 41adf3281e Avoid duplicate calls to xfree for the same pointer 3e7ebbe1bd Don't clobber docstrings of explicitly-defined mode hook v... 9c8fe0248b Avoid fullscreen ediff control frames by default (Bug#29026) 7d32176acc Fix the bug#24034 change (revno 9eb028f) causing infloop (... ee493663ba Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e... ca5eb0d0b7 Fix a typo in the ELisp manual d10c9479ca Fix doc and doc-strings for minibuffer window related func... 18331d00da Fix "Args out of range" error in c-determine-limit. Fixes... edde35e6f8 * lisp/progmodes/perl-mode.el: Fix electric indentation wi... 056587c45f Extend mhtml submode region when in comment 4c4ad80848 Fix mthml submode lighting at end of buffer 557e252aa2 Remember more variables in mhtml-mode 336cd0a11a ; * lisp/select.el (select-enable-primary): Add missing pe... 134099bc90 ; * etc/NEWS (EUDC): Mark as not requiring documentation. 1a340274bf * etc/NEWS (EUDC): Deprecate BBDB 2.x backward compatibility. 4189d0ef7b Fix minibuffer window related docs and strings (Bug#28978) 2ebdde6e9c Add ChkTeX flymake backend for latex-mode 5b59841791 Fix doc typos 82a16c547b Fix some duplicate word typos 266888b1d7 * doc/lispref/commands.texi (Adjusting Point): Fix wording... 00c3c6d88d Avoid segfaults in 64-bit Windows builds a8e6741066 Fix conversion of pixel coordinates to buffer position d43b486f6c Fix doc strings in desktop.el 9102fb603e Add Index to ERT manual 68182a4710 Make manuals and NEWS consistent 451823b0e5 Don't allow (minibuffer-window-active-p nil) to return t cc8f72ca22 Clarify obsolescence message for 'whitespace-tab' 50f711e7fa Fix some duplicate words typos 8bd9524a7c * lisp/button.el (button-activate): Fix doc typo. 0b0d91e60a * lisp/calendar/todo-mode.el (todo-toggle-mark-item): Fix ... e6b4e5ffdf Fix some doc typos e8636ac8cc Fix startup display on Cygwin 3926c5ad83 * src/fileio.c (Fset_default_file_modes): Fix typo in doc ... 9715317dfd * lisp/dired.el (dired-find-alternate-file): Doc fix. (Bu... 9e442a001a Improve documentation of how faces are applied to display ... 1bda71ec3b Improve pixel-scroll-mode 196106d37d Support Certification Authority Authorization in dns-mode.el ec08d70b4f Improve documentation of set-default-file-modes # Conflicts: # etc/NEWS
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/msdos.texi2
-rw-r--r--doc/emacs/programs.texi4
-rw-r--r--doc/emacs/search.texi8
-rw-r--r--doc/lispref/commands.texi10
-rw-r--r--doc/lispref/display.texi21
-rw-r--r--doc/lispref/files.texi4
-rw-r--r--doc/lispref/frames.texi11
-rw-r--r--doc/lispref/functions.texi6
-rw-r--r--doc/lispref/minibuf.texi78
-rw-r--r--doc/lispref/os.texi2
-rw-r--r--doc/misc/ede.texi2
-rw-r--r--doc/misc/ert.texi113
-rw-r--r--doc/misc/flymake.texi2
-rw-r--r--doc/misc/gnus.texi2
-rw-r--r--doc/misc/sem-user.texi2
-rw-r--r--doc/misc/srecode.texi2
16 files changed, 196 insertions, 73 deletions
diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi
index 356936504ec..dd2004fbb00 100644
--- a/doc/emacs/msdos.texi
+++ b/doc/emacs/msdos.texi
@@ -580,7 +580,7 @@ pressed the @key{Shift} key while typing the non-character key.
580@vindex w32-enable-caps-lock 580@vindex w32-enable-caps-lock
581 If the variable @code{w32-enable-caps-lock} is set to a @code{nil} 581 If the variable @code{w32-enable-caps-lock} is set to a @code{nil}
582value, the @key{CapsLock} key produces the symbol @code{capslock} 582value, the @key{CapsLock} key produces the symbol @code{capslock}
583instead of the shifted version of they keys. The default value is 583instead of the shifted version of typed keys. The default value is
584@code{t}. 584@code{t}.
585 585
586@vindex w32-enable-num-lock 586@vindex w32-enable-num-lock
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 2b0649cd924..811dab5cfa0 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1319,16 +1319,20 @@ count as blocks.
1319@kindex S-mouse-2 1319@kindex S-mouse-2
1320@table @kbd 1320@table @kbd
1321@item C-c @@ C-h 1321@item C-c @@ C-h
1322@itemx C-c @@ C-d
1322Hide the current block (@code{hs-hide-block}). 1323Hide the current block (@code{hs-hide-block}).
1323@item C-c @@ C-s 1324@item C-c @@ C-s
1324Show the current block (@code{hs-show-block}). 1325Show the current block (@code{hs-show-block}).
1325@item C-c @@ C-c 1326@item C-c @@ C-c
1327@itemx C-x @@ C-e
1326Either hide or show the current block (@code{hs-toggle-hiding}). 1328Either hide or show the current block (@code{hs-toggle-hiding}).
1327@item S-mouse-2 1329@item S-mouse-2
1328Toggle hiding for the block you click on (@code{hs-mouse-toggle-hiding}). 1330Toggle hiding for the block you click on (@code{hs-mouse-toggle-hiding}).
1329@item C-c @@ C-M-h 1331@item C-c @@ C-M-h
1332@itemx C-c @@ C-t
1330Hide all top-level blocks (@code{hs-hide-all}). 1333Hide all top-level blocks (@code{hs-hide-all}).
1331@item C-c @@ C-M-s 1334@item C-c @@ C-M-s
1335@itemx C-c @@ C-a
1332Show all blocks in the buffer (@code{hs-show-all}). 1336Show all blocks in the buffer (@code{hs-show-all}).
1333@item C-c @@ C-l 1337@item C-c @@ C-l
1334Hide all blocks @var{n} levels below this block 1338Hide all blocks @var{n} levels below this block
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 63cc1c24374..7b334733d67 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1614,6 +1614,14 @@ to go back to the position of the previous occurrence (or what used to
1614be an occurrence), in case you changed it by mistake or want to 1614be an occurrence), in case you changed it by mistake or want to
1615reexamine it. 1615reexamine it.
1616 1616
1617@item u
1618to undo the last replacement and go back to where that replacement was
1619made.
1620
1621@item U
1622to undo all the replacements and go back to where the first
1623replacement was made.
1624
1617@item C-r 1625@item C-r
1618to enter a recursive editing level, in case the occurrence needs to be 1626to enter a recursive editing level, in case the occurrence needs to be
1619edited rather than just replaced with @var{newstring}. When you are 1627edited rather than just replaced with @var{newstring}. When you are
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index ff790e6304f..16b58d3d3c8 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -1005,11 +1005,11 @@ If the last event came from a keyboard macro, the value is @code{macro}.
1005@cindex @code{display} property, and point display 1005@cindex @code{display} property, and point display
1006@cindex @code{composition} property, and point display 1006@cindex @code{composition} property, and point display
1007 1007
1008 It is not easy to display a value of point in the middle of a 1008 Emacs cannot display the cursor when point is in the middle of a
1009sequence of text that has the @code{display}, @code{composition} or 1009sequence of text that has the @code{display} or @code{composition}
1010is invisible. Therefore, after a command finishes and returns to the 1010property, or is invisible. Therefore, after a command finishes and
1011command loop, if point is within such a sequence, the command loop 1011returns to the command loop, if point is within such a sequence, the
1012normally moves point to the edge of the sequence. 1012command loop normally moves point to the edge of the sequence.
1013 1013
1014 A command can inhibit this feature by setting the variable 1014 A command can inhibit this feature by setting the variable
1015@code{disable-point-adjustment}: 1015@code{disable-point-adjustment}:
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 17126ce72b9..a505639f514 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -807,7 +807,7 @@ mechanism can change the variable @code{delayed-warnings-hook}:
807 807
808@defvar delayed-warnings-hook 808@defvar delayed-warnings-hook
809This is a normal hook which is run by the Emacs command loop, after 809This is a normal hook which is run by the Emacs command loop, after
810@code{post-command-hook}, in order to to process and display delayed 810@code{post-command-hook}, in order to process and display delayed
811warnings. 811warnings.
812 812
813Its default value is a list of two functions: 813Its default value is a list of two functions:
@@ -2887,6 +2887,16 @@ non-selected window, Emacs applies the @code{mode-line-inactive} face.
2887For a header line, Emacs applies the @code{header-line} face. 2887For a header line, Emacs applies the @code{header-line} face.
2888 2888
2889@item 2889@item
2890If the text comes from an overlay string via @code{before-string} or
2891@code{after-string} properties (@pxref{Overlay Properties}), or from a
2892display string (@pxref{Other Display Specs}), and the string doesn't
2893contain a @code{face} or @code{mouse-face} property, but the buffer
2894text affected by the overlay/display property does define a face,
2895Emacs applies the face attributes of the ``underlying'' buffer text.
2896Note that this is so even if the overlay or display string is
2897displayed in the display margins (@pxref{Display Margins}).
2898
2899@item
2890If any given attribute has not been specified during the preceding 2900If any given attribute has not been specified during the preceding
2891steps, Emacs applies the attribute of the @code{default} face. 2901steps, Emacs applies the attribute of the @code{default} face.
2892@end itemize 2902@end itemize
@@ -4853,6 +4863,13 @@ certain buffer text, without altering or preventing the display of
4853that text, put a @code{before-string} property on the text and put the 4863that text, put a @code{before-string} property on the text and put the
4854margin display specification on the contents of the before-string. 4864margin display specification on the contents of the before-string.
4855 4865
4866 Note that if the string to be displayed in the margin doesn't
4867specify a face, its face is determined using the same rules and
4868priorities as it is for strings displayed in the text area
4869(@pxref{Displaying Faces}). If this results in undesirable
4870``leaking'' of faces into the margin, make sure the string has an
4871explicit face specified for it.
4872
4856 Before the display margins can display anything, you must give 4873 Before the display margins can display anything, you must give
4857them a nonzero width. The usual way to do that is to set these 4874them a nonzero width. The usual way to do that is to set these
4858variables: 4875variables:
@@ -7488,7 +7505,7 @@ and are continued or truncated at the left margin.
7488@cindex paragraph-separate, and bidirectional display 7505@cindex paragraph-separate, and bidirectional display
7489 Where exactly paragraphs start and end, for the purpose of the Emacs 7506 Where exactly paragraphs start and end, for the purpose of the Emacs
7490@acronym{UBA} implementation, is determined by the following two 7507@acronym{UBA} implementation, is determined by the following two
7491buffer-local variables (note that that @code{paragraph-start} and 7508buffer-local variables (note that @code{paragraph-start} and
7492@code{paragraph-separate} have no influence on this). By default both 7509@code{paragraph-separate} have no influence on this). By default both
7493of these variables are @code{nil}, and paragraphs are bounded by empty 7510of these variables are @code{nil}, and paragraphs are bounded by empty
7494lines, i.e., lines that consist entirely of zero or more whitespace 7511lines, i.e., lines that consist entirely of zero or more whitespace
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 0f0ce157cad..b257c328f4d 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -1821,7 +1821,9 @@ has these permissions, or a subset of them (@code{write-region} will
1821not grant execute permissions even if the default file permissions 1821not grant execute permissions even if the default file permissions
1822allow execution). On GNU and other POSIX-like systems, the default 1822allow execution). On GNU and other POSIX-like systems, the default
1823permissions are given by the bitwise complement of the @samp{umask} 1823permissions are given by the bitwise complement of the @samp{umask}
1824value. 1824value, i.e.@: each bit that is set in the argument @var{mode} will be
1825@emph{reset} in the default permissions with which Emacs creates
1826files.
1825 1827
1826The argument @var{mode} should be an integer which specifies the 1828The argument @var{mode} should be an integer which specifies the
1827permissions, similar to @code{set-file-modes} above. Only the lowest 1829permissions, similar to @code{set-file-modes} above. Only the lowest
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index ad853418ac4..5ea7125882f 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1850,8 +1850,14 @@ yes, @code{nil} means no, @code{only} means this frame is just a
1850minibuffer. If the value is a minibuffer window (in some other 1850minibuffer. If the value is a minibuffer window (in some other
1851frame), the frame uses that minibuffer. 1851frame), the frame uses that minibuffer.
1852 1852
1853This frame parameter takes effect when the frame is created, and can 1853This parameter takes effect when the frame is created. If specified as
1854not be changed afterwards. 1854@code{nil}, Emacs will try to set it to the minibuffer window of
1855@code{default-minibuffer-frame} (@pxref{Minibuffers and Frames}). For
1856an existing frame, this parameter can be used exclusively to specify
1857another minibuffer window. It is not allowed to change it from a
1858minibuffer window to @code{t} and vice-versa, or from @code{t} to
1859@code{nil}. If the parameter specifies a minibuffer window already,
1860setting it to @code{nil} has no effect.
1855 1861
1856@vindex buffer-predicate, a frame parameter 1862@vindex buffer-predicate, a frame parameter
1857@item buffer-predicate 1863@item buffer-predicate
@@ -1872,6 +1878,7 @@ most-recently-selected first.
1872If non-@code{nil}, this frame's window is never split automatically. 1878If non-@code{nil}, this frame's window is never split automatically.
1873@end table 1879@end table
1874 1880
1881
1875@node Frame Interaction Parameters 1882@node Frame Interaction Parameters
1876@subsubsection Frame Interaction Parameters 1883@subsubsection Frame Interaction Parameters
1877@cindex frame interaction parameters 1884@cindex frame interaction parameters
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 116c2990ba2..466a12f7a48 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -712,7 +712,7 @@ the backquote (@pxref{Backquote}), but quotes code and accepts only
712@end defmac 712@end defmac
713 713
714@defmac inline-letevals (bindings@dots{}) body@dots{} 714@defmac inline-letevals (bindings@dots{}) body@dots{}
715This is is similar to @code{let} (@pxref{Local Variables}): it sets up 715This is similar to @code{let} (@pxref{Local Variables}): it sets up
716local variables as specified by @var{bindings}, and then evaluates 716local variables as specified by @var{bindings}, and then evaluates
717@var{body} with those bindings in effect. Each element of 717@var{body} with those bindings in effect. Each element of
718@var{bindings} should be either a symbol or a list of the form 718@var{bindings} should be either a symbol or a list of the form
@@ -2029,8 +2029,8 @@ It is equivalent to the following:
2029@end example 2029@end example
2030@end defmac 2030@end defmac
2031 2031
2032In addition, you can mark a certain a particular calling convention 2032In addition, you can mark a particular calling convention for a
2033for a function as obsolete: 2033function as obsolete:
2034 2034
2035@defun set-advertised-calling-convention function signature when 2035@defun set-advertised-calling-convention function signature when
2036This function specifies the argument list @var{signature} as the 2036This function specifies the argument list @var{signature} as the
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 1ece8996008..75dec13ab7c 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -59,15 +59,16 @@ boundary between the prompt and the actual text.
59 59
60@c See https://debbugs.gnu.org/11276 60@c See https://debbugs.gnu.org/11276
61 The minibuffer's window is normally a single line; it grows 61 The minibuffer's window is normally a single line; it grows
62automatically if the contents require more space. Whilst it is 62automatically if the contents require more space. Whilst the minibuffer
63active, you can explicitly resize it temporarily with the window 63is active, you can explicitly resize its window temporarily with the
64sizing commands; it reverts to its normal size when the minibuffer is 64window sizing commands; the window reverts to its normal size when the
65exited. When the minibuffer is not active, you can resize it 65minibuffer is exited. When the minibuffer is not active, you can resize
66permanently by using the window sizing commands in the frame's other 66its window permanently by using the window sizing commands in the
67window, or dragging the mode line with the mouse. (Due to details of 67frame's other window, or dragging the mode line with the mouse. (Due to
68the current implementation, for this to work @code{resize-mini-windows} 68details of the current implementation, for this to work
69must be @code{nil}.) If the frame contains just a minibuffer, you can 69@code{resize-mini-windows} must be @code{nil}.) If the frame contains
70change the minibuffer's size by changing the frame's size. 70just a minibuffer window, you can change its size by changing the
71frame's size.
71 72
72 Use of the minibuffer reads input events, and that alters the values 73 Use of the minibuffer reads input events, and that alters the values
73of variables such as @code{this-command} and @code{last-command} 74of variables such as @code{this-command} and @code{last-command}
@@ -2256,43 +2257,48 @@ contents of the minibuffer before the point.
2256These functions access and select minibuffer windows, test whether they 2257These functions access and select minibuffer windows, test whether they
2257are active and control how they get resized. 2258are active and control how they get resized.
2258 2259
2259@defun active-minibuffer-window
2260This function returns the currently active minibuffer window, or
2261@code{nil} if there is none.
2262@end defun
2263
2264@defun minibuffer-window &optional frame 2260@defun minibuffer-window &optional frame
2265@anchor{Definition of minibuffer-window} 2261@anchor{Definition of minibuffer-window}
2266This function returns the minibuffer window used for frame @var{frame}. 2262This function returns the minibuffer window used for frame @var{frame}.
2267If @var{frame} is @code{nil}, that stands for the current frame. Note 2263If @var{frame} is @code{nil}, that stands for the selected frame.
2268that the minibuffer window used by a frame need not be part of that 2264
2265Note that the minibuffer window used by a frame need not be part of that
2269frame---a frame that has no minibuffer of its own necessarily uses some 2266frame---a frame that has no minibuffer of its own necessarily uses some
2270other frame's minibuffer window. 2267other frame's minibuffer window. The minibuffer window of a
2268minibuffer-less frame can be changed by setting that frame's
2269@code{minibuffer} frame parameter (@pxref{Buffer Parameters}).
2271@end defun 2270@end defun
2272 2271
2273@defun set-minibuffer-window window 2272@defun set-minibuffer-window window
2274This function specifies @var{window} as the minibuffer window to use. 2273This function specifies @var{window} as the minibuffer window to use.
2275This affects where the minibuffer is displayed if you put text in it 2274This affects where the minibuffer is displayed if you put text in it
2276without invoking the usual minibuffer commands. It has no effect on 2275without invoking the usual minibuffer commands. It has no effect on the
2277the usual minibuffer input functions because they all start by 2276usual minibuffer input functions because they all start by choosing the
2278choosing the minibuffer window according to the current frame. 2277minibuffer window according to the selected frame.
2279@end defun 2278@end defun
2280 2279
2281@c Emacs 19 feature 2280@c Emacs 19 feature
2282@defun window-minibuffer-p &optional window 2281@defun window-minibuffer-p &optional window
2283This function returns non-@code{nil} if @var{window} is a minibuffer 2282This function returns non-@code{nil} if @var{window} is a minibuffer
2284window. 2283window. @var{window} defaults to the selected window.
2285@var{window} defaults to the selected window. 2284@end defun
2285
2286The following function returns the window showing the currently active
2287minibuffer.
2288
2289@defun active-minibuffer-window
2290This function returns the window of the currently active minibuffer, or
2291@code{nil} if there is no active minibuffer.
2286@end defun 2292@end defun
2287 2293
2288It is not correct to determine whether a given window is a minibuffer by 2294It is not sufficient to determine whether a given window shows the
2289comparing it with the result of @code{(minibuffer-window)}, because 2295currently active minibuffer by comparing it with the result of
2290there can be more than one minibuffer window if there is more than one 2296@code{(minibuffer-window)}, because there can be more than one
2291frame. 2297minibuffer window if there is more than one frame.
2292 2298
2293@defun minibuffer-window-active-p window 2299@defun minibuffer-window-active-p window
2294This function returns non-@code{nil} if @var{window} is the currently 2300This function returns non-@code{nil} if @var{window} shows the currently
2295active minibuffer window. 2301active minibuffer.
2296@end defun 2302@end defun
2297 2303
2298The following two options control whether minibuffer windows are resized 2304The following two options control whether minibuffer windows are resized
@@ -2374,14 +2380,14 @@ returns zero.
2374 2380
2375@defopt enable-recursive-minibuffers 2381@defopt enable-recursive-minibuffers
2376If this variable is non-@code{nil}, you can invoke commands (such as 2382If this variable is non-@code{nil}, you can invoke commands (such as
2377@code{find-file}) that use minibuffers even while the minibuffer window 2383@code{find-file}) that use minibuffers even while the minibuffer is
2378is active. Such invocation produces a recursive editing level for a new 2384active. Such invocation produces a recursive editing level for a new
2379minibuffer. The outer-level minibuffer is invisible while you are 2385minibuffer. The outer-level minibuffer is invisible while you are
2380editing the inner one. 2386editing the inner one.
2381 2387
2382If this variable is @code{nil}, you cannot invoke minibuffer 2388If this variable is @code{nil}, you cannot invoke minibuffer commands
2383commands when the minibuffer window is active, not even if you switch to 2389when the minibuffer is active, not even if you switch to another window
2384another window to do it. 2390to do it.
2385@end defopt 2391@end defopt
2386 2392
2387@c Emacs 19 feature 2393@c Emacs 19 feature
@@ -2439,9 +2445,9 @@ minibuffer, it scrolls this window.
2439@end defvar 2445@end defvar
2440 2446
2441@defun minibuffer-selected-window 2447@defun minibuffer-selected-window
2442This function returns the window that was selected when the 2448This function returns the window that was selected just before the
2443minibuffer was entered. If selected window is not a minibuffer 2449minibuffer window was selected. If the selected window is not a
2444window, it returns @code{nil}. 2450minibuffer window, it returns @code{nil}.
2445@end defun 2451@end defun
2446 2452
2447@defopt max-mini-window-height 2453@defopt max-mini-window-height
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 0cb9de9f9a8..501960bdc3f 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -514,7 +514,7 @@ On MS-DOS, Emacs sets the @env{TERM} environment variable to @samp{internal}.
514@end defopt 514@end defopt
515 515
516@defopt term-file-aliases 516@defopt term-file-aliases
517This variable is an an association list mapping terminal types to 517This variable is an association list mapping terminal types to
518their aliases. For example, an element of the form @code{("vt102" 518their aliases. For example, an element of the form @code{("vt102"
519. "vt100")} means to treat a terminal of type @samp{vt102} like one of 519. "vt100")} means to treat a terminal of type @samp{vt102} like one of
520type @samp{vt100}. 520type @samp{vt100}.
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index a79170179bc..4bf0e8dbb2c 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -2555,7 +2555,7 @@ Return non-@code{nil} if @var{THIS} target wants @var{FILE}.
2555@end deffn 2555@end deffn
2556 2556
2557@deffn Method project-add-file :AFTER ot file 2557@deffn Method project-add-file :AFTER ot file
2558Add the current buffer into project project target @var{OT}. 2558Add the current buffer into project target @var{OT}.
2559Argument @var{FILE} is the file to add. 2559Argument @var{FILE} is the file to add.
2560@end deffn 2560@end deffn
2561 2561
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 2a17a211665..de71aca8aea 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -3,6 +3,10 @@
3@setfilename ../../info/ert.info 3@setfilename ../../info/ert.info
4@settitle Emacs Lisp Regression Testing 4@settitle Emacs Lisp Regression Testing
5@include docstyle.texi 5@include docstyle.texi
6@syncodeindex fn cp
7@syncodeindex vr cp
8@syncodeindex pg cp
9@syncodeindex ky cp
6@c %**end of header 10@c %**end of header
7 11
8@dircategory Emacs misc features 12@dircategory Emacs misc features
@@ -59,6 +63,7 @@ traditional software development methods.
59* How to Debug Tests:: What to do if a test fails. 63* How to Debug Tests:: What to do if a test fails.
60* Extending ERT:: ERT is extensible in several ways. 64* Extending ERT:: ERT is extensible in several ways.
61* Other Testing Concepts:: Features not in ERT. 65* Other Testing Concepts:: Features not in ERT.
66* Index:: Concept, Function and Variable Index
62* GNU Free Documentation License:: The license for this documentation. 67* GNU Free Documentation License:: The license for this documentation.
63 68
64@detailmenu 69@detailmenu
@@ -92,6 +97,10 @@ Other Testing Concepts
92* Mocks and Stubs:: Stubbing out code that is irrelevant to the test. 97* Mocks and Stubs:: Stubbing out code that is irrelevant to the test.
93* Fixtures and Test Suites:: How ERT differs from tools for other languages. 98* Fixtures and Test Suites:: How ERT differs from tools for other languages.
94 99
100Index
101
102* Index:: Concept, Function and Variable Index
103
95Appendix 104Appendix
96 105
97* GNU Free Documentation License:: The license for this documentation. 106* GNU Free Documentation License:: The license for this documentation.
@@ -102,6 +111,7 @@ Appendix
102 111
103@node Introduction 112@node Introduction
104@chapter Introduction 113@chapter Introduction
114@cindex introduction to ERT
105 115
106ERT allows you to define @emph{tests} in addition to functions, 116ERT allows you to define @emph{tests} in addition to functions,
107macros, variables, and the other usual Lisp constructs. Tests are 117macros, variables, and the other usual Lisp constructs. Tests are
@@ -169,6 +179,7 @@ Environment}.
169 179
170@node How to Run Tests 180@node How to Run Tests
171@chapter How to Run Tests 181@chapter How to Run Tests
182@cindex how to run ert tests
172 183
173You can run tests either in the Emacs you are working in, or on the 184You can run tests either in the Emacs you are working in, or on the
174command line in a separate Emacs process in batch mode (i.e., with no 185command line in a separate Emacs process in batch mode (i.e., with no
@@ -187,7 +198,10 @@ different Emacs versions.
187 198
188@node Running Tests Interactively 199@node Running Tests Interactively
189@section Running Tests Interactively 200@section Running Tests Interactively
201@cindex running tests interactively
202@cindex interactive testing
190 203
204@findex ert
191You can run the tests that are currently defined in your Emacs with 205You can run the tests that are currently defined in your Emacs with
192the command @kbd{@kbd{M-x} ert @kbd{RET} t @kbd{RET}}. (For an 206the command @kbd{@kbd{M-x} ert @kbd{RET} t @kbd{RET}}. (For an
193explanation of the @code{t} argument, @pxref{Test Selectors}.) ERT will pop 207explanation of the @code{t} argument, @pxref{Test Selectors}.) ERT will pop
@@ -232,6 +246,7 @@ F list-test
232 (different-atoms c d)))) 246 (different-atoms c d))))
233@end example 247@end example
234 248
249@cindex test results buffer
235At the top, there is a summary of the results: we ran all tests defined 250At the top, there is a summary of the results: we ran all tests defined
236in the current Emacs (@code{Selector: t}), 31 of them passed, and 2 251in the current Emacs (@code{Selector: t}), 31 of them passed, and 2
237failed unexpectedly. @xref{Expected Failures}, for an explanation of 252failed unexpectedly. @xref{Expected Failures}, for an explanation of
@@ -245,20 +260,29 @@ unexpected result. In the example above, there are two failures, both
245due to failed @code{should} forms. @xref{Understanding Explanations}, 260due to failed @code{should} forms. @xref{Understanding Explanations},
246for more details. 261for more details.
247 262
263@kindex TAB@r{, in ert results buffer}
264@kindex S-TAB@r{, in ert results buffer}
248In the ERT results buffer, @kbd{TAB} and @kbd{S-TAB} cycle between 265In the ERT results buffer, @kbd{TAB} and @kbd{S-TAB} cycle between
249buttons. Each name of a function or macro in this buffer is a button; 266buttons. Each name of a function or macro in this buffer is a button;
250moving point to it and typing @kbd{RET} jumps to its definition. 267moving point to it and typing @kbd{RET} jumps to its definition.
251 268
269@kindex r@r{, in ert results buffer}
270@kindex d@r{, in ert results buffer}
271@kindex .@r{, in ert results buffer}
272@kindex b@r{, in ert results buffer}
273@cindex backtrace of a failed test
252Pressing @kbd{r} re-runs the test near point on its own. Pressing 274Pressing @kbd{r} re-runs the test near point on its own. Pressing
253@kbd{d} re-runs it with the debugger enabled. @kbd{.} jumps to the 275@kbd{d} re-runs it with the debugger enabled. @kbd{.} jumps to the
254definition of the test near point (@kbd{RET} has the same effect if 276definition of the test near point (@kbd{RET} has the same effect if
255point is on the name of the test). On a failed test, @kbd{b} shows 277point is on the name of the test). On a failed test, @kbd{b} shows
256the backtrace of the failure. 278the backtrace of the failure.
257 279
280@kindex l@r{, in ert results buffer}
258@kbd{l} shows the list of @code{should} forms executed in the test. 281@kbd{l} shows the list of @code{should} forms executed in the test.
259If any messages were generated (with the Lisp function @code{message}) 282If any messages were generated (with the Lisp function @code{message})
260in a test or any of the code that it invoked, @kbd{m} will show them. 283in a test or any of the code that it invoked, @kbd{m} will show them.
261 284
285@kindex L@r{, in ert results buffer}
262By default, long expressions in the failure details are abbreviated 286By default, long expressions in the failure details are abbreviated
263using @code{print-length} and @code{print-level}. Pressing @kbd{L} 287using @code{print-length} and @code{print-level}. Pressing @kbd{L}
264while point is on a test failure will increase the limits to show more 288while point is on a test failure will increase the limits to show more
@@ -267,7 +291,11 @@ of the expression.
267 291
268@node Running Tests in Batch Mode 292@node Running Tests in Batch Mode
269@section Running Tests in Batch Mode 293@section Running Tests in Batch Mode
294@cindex running tests in batch mode
295@cindex batch-mode testing
270 296
297@findex ert-run-tests-batch
298@findex ert-run-tests-batch-and-exit
271ERT supports automated invocations from the command line or from 299ERT supports automated invocations from the command line or from
272scripts or makefiles. There are two functions for this purpose, 300scripts or makefiles. There are two functions for this purpose,
273@code{ert-run-tests-batch} and @code{ert-run-tests-batch-and-exit}. 301@code{ert-run-tests-batch} and @code{ert-run-tests-batch-and-exit}.
@@ -283,6 +311,7 @@ with a zero exit status if all tests passed, or nonzero if any tests
283failed or if anything else went wrong. It will also print progress 311failed or if anything else went wrong. It will also print progress
284messages and error diagnostics to standard output. 312messages and error diagnostics to standard output.
285 313
314@findex ert-summarize-tests-batch-and-exit
286You can also redirect the above output to a log file, say 315You can also redirect the above output to a log file, say
287@file{output.log}, and use the 316@file{output.log}, and use the
288@code{ert-summarize-tests-batch-and-exit} function to produce a neat 317@code{ert-summarize-tests-batch-and-exit} function to produce a neat
@@ -314,6 +343,8 @@ files that it requires are on your @code{load-path}.
314 343
315@node Test Selectors 344@node Test Selectors
316@section Test Selectors 345@section Test Selectors
346@cindex test selector
347@cindex selecting tests
317 348
318Functions like @code{ert} accept a @emph{test selector}, a Lisp 349Functions like @code{ert} accept a @emph{test selector}, a Lisp
319expression specifying a set of tests. Test selector syntax is similar 350expression specifying a set of tests. Test selector syntax is similar
@@ -328,17 +359,22 @@ to Common Lisp's type specifier syntax:
328@item A string is a regular expression that selects all tests with matching names. 359@item A string is a regular expression that selects all tests with matching names.
329@item A test (i.e., an object of @code{ert-test} data type) selects that test. 360@item A test (i.e., an object of @code{ert-test} data type) selects that test.
330@item A symbol selects the test that the symbol names. 361@item A symbol selects the test that the symbol names.
331@item @code{(member TESTS...)} selects the elements of TESTS, a list of 362@item @code{(member @var{tests}...)} selects the elements of
332tests or symbols naming tests. 363@var{tests}, a list of tests or symbols naming tests.
333@item @code{(eql TEST)} selects TEST, a test or a symbol naming a test. 364@item @code{(eql @var{test})} selects @var{test}, a test or a symbol
334@item @code{(and SELECTORS...)} selects the tests that match all SELECTORS. 365naming a test.
335@item @code{(or SELECTORS...)} selects the tests that match any SELECTOR. 366@item @code{(and @var{selectors}@dots{})} selects the tests that match
336@item @code{(not SELECTOR)} selects all tests that do not match SELECTOR. 367all @var{selectors}.
337@item @code{(tag TAG)} selects all tests that have TAG on their tags list. 368@item @code{(or @var{selectors}@dots{})} selects the tests that match
369any of the @var{selectors}.
370@item @code{(not @var{selector})} selects all tests that do not match
371@var{selector}.
372@item @code{(tag @var{tag})} selects all tests that have @var{tag} on
373their tags list.
338(Tags are optional labels you can apply to tests when you define them.) 374(Tags are optional labels you can apply to tests when you define them.)
339@item @code{(satisfies PREDICATE)} selects all tests that satisfy PREDICATE, 375@item @code{(satisfies @var{predicate})} selects all tests that
340a function that takes a test as argument and returns non-@code{nil} if 376satisfy @var{predicate}, a function that takes a test as argument and
341it is selected. 377returns non-@code{nil} if it is selected.
342@end itemize 378@end itemize
343 379
344Selectors that are frequently useful when selecting tests to run 380Selectors that are frequently useful when selecting tests to run
@@ -354,7 +390,9 @@ result in the last run, and tag-based selectors such as @code{(not
354 390
355@node How to Write Tests 391@node How to Write Tests
356@chapter How to Write Tests 392@chapter How to Write Tests
393@cindex how to write tests
357 394
395@findex ert-deftest
358ERT lets you define tests in the same way you define functions. You 396ERT lets you define tests in the same way you define functions. You
359can type @code{ert-deftest} forms in a buffer and evaluate them there 397can type @code{ert-deftest} forms in a buffer and evaluate them there
360with @code{eval-defun} or @code{compile-defun}, or you can save the 398with @code{eval-defun} or @code{compile-defun}, or you can save the
@@ -375,6 +413,7 @@ to find where a test was defined if the test was loaded from a file.
375@node The @code{should} Macro 413@node The @code{should} Macro
376@section The @code{should} Macro 414@section The @code{should} Macro
377 415
416@findex should@r{, ert macro}
378Test bodies can include arbitrary code; but to be useful, they need to 417Test bodies can include arbitrary code; but to be useful, they need to
379check whether the code being tested (or @emph{code under test}) 418check whether the code being tested (or @emph{code under test})
380does what it is supposed to do. The macro @code{should} is similar to 419does what it is supposed to do. The macro @code{should} is similar to
@@ -410,6 +449,8 @@ test failed, it helps to know that the function @code{+} returned 3
410here. ERT records the return value for any predicate called directly 449here. ERT records the return value for any predicate called directly
411within @code{should}. 450within @code{should}.
412 451
452@findex should-not@r{, ert macro}
453@findex should-error@r{, ert macro}
413In addition to @code{should}, ERT provides @code{should-not}, which 454In addition to @code{should}, ERT provides @code{should-not}, which
414checks that the predicate returns @code{nil}, and @code{should-error}, which 455checks that the predicate returns @code{nil}, and @code{should-error}, which
415checks that the form called within it signals an error. An example 456checks that the form called within it signals an error. An example
@@ -438,7 +479,10 @@ default.
438 479
439@node Expected Failures 480@node Expected Failures
440@section Expected Failures 481@section Expected Failures
482@cindex expected failures
483@cindex known bugs
441 484
485@vindex :expected-result
442Some bugs are complicated to fix, or not very important, and are left as 486Some bugs are complicated to fix, or not very important, and are left as
443@emph{known bugs}. If there is a test case that triggers the bug and 487@emph{known bugs}. If there is a test case that triggers the bug and
444fails, ERT will alert you of this failure every time you run all 488fails, ERT will alert you of this failure every time you run all
@@ -492,6 +536,9 @@ versions, specific architectures, etc.:
492@node Tests and Their Environment 536@node Tests and Their Environment
493@section Tests and Their Environment 537@section Tests and Their Environment
494 538
539@cindex skipping tests
540@cindex test preconditions
541@cindex preconditions of a test
495Sometimes, it doesn't make sense to run a test due to missing 542Sometimes, it doesn't make sense to run a test due to missing
496preconditions. A required Emacs feature might not be compiled in, the 543preconditions. A required Emacs feature might not be compiled in, the
497function to be tested could call an external binary which might not be 544function to be tested could call an external binary which might not be
@@ -505,6 +552,7 @@ available on the test machine, you name it. In this case, the macro
505 ...) 552 ...)
506@end lisp 553@end lisp
507 554
555@cindex tests and their environment
508The outcome of running a test should not depend on the current state 556The outcome of running a test should not depend on the current state
509of the environment, and each test should leave its environment in the 557of the environment, and each test should leave its environment in the
510same state it found it in. In particular, a test should not depend on 558same state it found it in. In particular, a test should not depend on
@@ -559,6 +607,8 @@ hook variables to @code{nil}. This avoids the above problems.
559 607
560@node Useful Techniques 608@node Useful Techniques
561@section Useful Techniques when Writing Tests 609@section Useful Techniques when Writing Tests
610@cindex useful techniques
611@cindex tips and tricks
562 612
563Testing simple functions that have no side effects and no dependencies 613Testing simple functions that have no side effects and no dependencies
564on their environment is easy. Such tests often look like this: 614on their environment is easy. Such tests often look like this:
@@ -596,6 +646,8 @@ Here's a more complicated test:
596 " signal(ert-test-failed (\"foo\"))"))))))) 646 " signal(ert-test-failed (\"foo\"))")))))))
597@end lisp 647@end lisp
598 648
649@findex make-ert-test
650@findex ert-equal-including-properties
599This test creates a test object using @code{make-ert-test} whose body 651This test creates a test object using @code{make-ert-test} whose body
600will immediately signal failure. It then runs that test and asserts 652will immediately signal failure. It then runs that test and asserts
601that it fails. Then, it creates a temporary buffer and invokes 653that it fails. Then, it creates a temporary buffer and invokes
@@ -653,6 +705,8 @@ a test failed.
653 705
654@node Understanding Explanations 706@node Understanding Explanations
655@section Understanding Explanations 707@section Understanding Explanations
708@cindex understanding explanations
709@cindex explanations, understanding
656 710
657Failed @code{should} forms are reported like this: 711Failed @code{should} forms are reported like this:
658 712
@@ -720,41 +774,55 @@ function registered. @xref{Defining Explanation Functions}.
720 774
721@node Interactive Debugging 775@node Interactive Debugging
722@section Interactive Debugging 776@section Interactive Debugging
777@cindex interactive debugging
778@cindex debugging failed tests
723 779
724Debugging failed tests essentially works the same way as debugging any 780Debugging failed tests essentially works the same way as debugging any
725other problems with Lisp code. Here are a few tricks specific to 781other problems with Lisp code. Here are a few tricks specific to
726tests: 782tests:
727 783
728@itemize 784@itemize
729@item Re-run the failed test a few times to see if it fails in the same way 785@cindex re-running a failed test
786@item
787Re-run the failed test a few times to see if it fails in the same way
730each time. It's good to find out whether the behavior is 788each time. It's good to find out whether the behavior is
731deterministic before spending any time looking for a cause. In the 789deterministic before spending any time looking for a cause. In the
732ERT results buffer, @kbd{r} re-runs the selected test. 790ERT results buffer, @kbd{r} re-runs the selected test.
733 791
734@item Use @kbd{.} to jump to the source code of the test to find out exactly 792@cindex jump to the test source code
793@item
794Use @kbd{.} to jump to the source code of the test to find out exactly
735what it does. Perhaps the test is broken rather than the code 795what it does. Perhaps the test is broken rather than the code
736under test. 796under test.
737 797
738@item If the test contains a series of @code{should} forms and you can't 798@item
799If the test contains a series of @code{should} forms and you can't
739tell which one failed, use @kbd{l}, which shows you the list of all 800tell which one failed, use @kbd{l}, which shows you the list of all
740@code{should} forms executed during the test before it failed. 801@code{should} forms executed during the test before it failed.
741 802
742@item Use @kbd{b} to view the backtrace. You can also use @kbd{d} to re-run 803@cindex show backtrace of failed test
804@item
805Use @kbd{b} to view the backtrace. You can also use @kbd{d} to re-run
743the test with debugging enabled, this will enter the debugger and show 806the test with debugging enabled, this will enter the debugger and show
744the backtrace as well; but the top few frames shown there will not be 807the backtrace as well; but the top few frames shown there will not be
745relevant to you since they are ERT's own debugger hook. @kbd{b} 808relevant to you since they are ERT's own debugger hook. @kbd{b}
746strips them out, so it is more convenient. 809strips them out, so it is more convenient.
747 810
748@item If the test or the code under testing prints messages using 811@item
812If the test or the code under testing prints messages using
749@code{message}, use @kbd{m} to see what messages it printed before it 813@code{message}, use @kbd{m} to see what messages it printed before it
750failed. This can be useful to figure out how far it got. 814failed. This can be useful to figure out how far it got.
751 815
752@item You can instrument tests for debugging the same way you instrument 816@cindex instrumenting test for Edebug
817@item
818You can instrument tests for debugging the same way you instrument
753@code{defun}s for debugging: go to the source code of the test and 819@code{defun}s for debugging: go to the source code of the test and
754type @kbd{@kbd{C-u} @kbd{C-M-x}}. Then, go back to the ERT buffer and 820type @kbd{@kbd{C-u} @kbd{C-M-x}}. Then, go back to the ERT buffer and
755re-run the test with @kbd{r} or @kbd{d}. 821re-run the test with @kbd{r} or @kbd{d}.
756 822
757@item If you have been editing and rearranging tests, it is possible that 823@cindex discard obsolete test results
824@item
825If you have been editing and rearranging tests, it is possible that
758ERT remembers an old test that you have since renamed or removed: 826ERT remembers an old test that you have since renamed or removed:
759renamings or removals of definitions in the source code leave around a 827renamings or removals of definitions in the source code leave around a
760stray definition under the old name in the running process (this is a 828stray definition under the old name in the running process (this is a
@@ -765,6 +833,7 @@ forget about the obsolete test.
765 833
766@node Extending ERT 834@node Extending ERT
767@chapter Extending ERT 835@chapter Extending ERT
836@cindex extending ert
768 837
769There are several ways to add functionality to ERT. 838There are several ways to add functionality to ERT.
770 839
@@ -776,6 +845,7 @@ There are several ways to add functionality to ERT.
776 845
777@node Defining Explanation Functions 846@node Defining Explanation Functions
778@section Defining Explanation Functions 847@section Defining Explanation Functions
848@cindex defining explanation functions
779 849
780The explanation function for a predicate is a function that takes the 850The explanation function for a predicate is a function that takes the
781same arguments as the predicate and returns an @emph{explanation}. 851same arguments as the predicate and returns an @emph{explanation}.
@@ -786,6 +856,7 @@ comprehensible printed representation. If the return value of the
786predicate needs no explanation for a given list of arguments, the 856predicate needs no explanation for a given list of arguments, the
787explanation function should return @code{nil}. 857explanation function should return @code{nil}.
788 858
859@vindex ert-explainer@r{, property}
789To associate an explanation function with a predicate, add the 860To associate an explanation function with a predicate, add the
790property @code{ert-explainer} to the symbol that names the predicate. 861property @code{ert-explainer} to the symbol that names the predicate.
791The value of the property should be the symbol that names the 862The value of the property should be the symbol that names the
@@ -794,6 +865,7 @@ explanation function.
794 865
795@node Low-Level Functions for Working with Tests 866@node Low-Level Functions for Working with Tests
796@section Low-Level Functions for Working with Tests 867@section Low-Level Functions for Working with Tests
868@cindex low-level functions
797 869
798Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch} 870Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch}
799are implemented on top of the lower-level test handling code in the 871are implemented on top of the lower-level test handling code in the
@@ -821,6 +893,7 @@ For information on mocks, stubs, fixtures, or test suites, see below.
821 893
822@node Mocks and Stubs 894@node Mocks and Stubs
823@section Other Tools for Emacs Lisp 895@section Other Tools for Emacs Lisp
896@cindex mocks and stubs
824 897
825Stubbing out functions or using so-called @emph{mocks} can make it 898Stubbing out functions or using so-called @emph{mocks} can make it
826easier to write tests. See 899easier to write tests. See
@@ -834,6 +907,7 @@ offers mocks for Emacs Lisp and can be used in conjunction with ERT.
834 907
835@node Fixtures and Test Suites 908@node Fixtures and Test Suites
836@section Fixtures and Test Suites 909@section Fixtures and Test Suites
910@cindex fixtures
837 911
838In many ways, ERT is similar to frameworks for other languages like 912In many ways, ERT is similar to frameworks for other languages like
839SUnit or JUnit. However, two features commonly found in such 913SUnit or JUnit. However, two features commonly found in such
@@ -891,6 +965,11 @@ e.g., to run quick tests during interactive development and slow tests less
891often. This can be achieved with the @code{:tag} argument to 965often. This can be achieved with the @code{:tag} argument to
892@code{ert-deftest} and @code{tag} test selectors. 966@code{ert-deftest} and @code{tag} test selectors.
893 967
968@node Index
969@unnumbered Index
970
971@printindex cp
972
894@node GNU Free Documentation License 973@node GNU Free Documentation License
895@appendix GNU Free Documentation License 974@appendix GNU Free Documentation License
896@include doclicense.texi 975@include doclicense.texi
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index b0a56492bcd..e2a80bb5f11 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -65,7 +65,7 @@ modify this GNU manual.''
65@cindex using flymake 65@cindex using flymake
66 66
67Flymake is a universal on-the-fly buffer checker implemented as an 67Flymake is a universal on-the-fly buffer checker implemented as an
68Emacs minor minor. To use Flymake, you must first activate 68Emacs minor mode. To use Flymake, you must first activate
69@code{flymake-mode} by using the command @kbd{flymake-mode}. 69@code{flymake-mode} by using the command @kbd{flymake-mode}.
70 70
71When enabled, Flymake collects information about problems in the 71When enabled, Flymake collects information about problems in the
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 33078d711a2..169509bae9e 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -21391,7 +21391,7 @@ correct group name @samp{mail.misc}.
21391 21391
21392Extra switches may be passed to the namazu search command by setting the 21392Extra switches may be passed to the namazu search command by setting the
21393variable @code{nnir-namazu-additional-switches}. It is particularly 21393variable @code{nnir-namazu-additional-switches}. It is particularly
21394important not to pass any any switches to namazu that will change the 21394important not to pass any switches to namazu that will change the
21395output format. Good switches to use include @option{--sort}, 21395output format. Good switches to use include @option{--sort},
21396@option{--ascending}, @option{--early} and @option{--late}. 21396@option{--ascending}, @option{--early} and @option{--late}.
21397Refer to the Namazu documentation for further 21397Refer to the Namazu documentation for further
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi
index 4e395f7a112..374c72402a5 100644
--- a/doc/misc/sem-user.texi
+++ b/doc/misc/sem-user.texi
@@ -953,7 +953,7 @@ list, you can use @kbd{M-x semanticdb-find-test-translate-path}.
953@xref{Semanticdb search debugging commands}. 953@xref{Semanticdb search debugging commands}.
954 954
955If items should be loaded but aren't, or if you see some tables that 955If items should be loaded but aren't, or if you see some tables that
956have no tags in them, then you you may have an incorrectly-set search 956have no tags in them, then you may have an incorrectly-set search
957throttle (@pxref{Search Throttle}). For example, 957throttle (@pxref{Search Throttle}). For example,
958 958
959@example 959@example
diff --git a/doc/misc/srecode.texi b/doc/misc/srecode.texi
index 74904f37e1e..80bf85c3a71 100644
--- a/doc/misc/srecode.texi
+++ b/doc/misc/srecode.texi
@@ -511,7 +511,7 @@ to insert it anywhere in the template search list.
511If there are multiple templates with the same context and name, the 511If there are multiple templates with the same context and name, the
512template with the highest priority number will be used. 512template with the highest priority number will be used.
513 513
514If multiple files have the same priority, then then sort order is 514If multiple files have the same priority, then the sort order is
515unpredictable. If no template names match, then it doesn't matter. 515unpredictable. If no template names match, then it doesn't matter.
516 516
517Example: 517Example: