aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPo Lu2024-07-24 11:41:58 +0800
committerPo Lu2024-07-24 11:41:58 +0800
commit6d22bd4d3a0a9cb55bbfffb29ed3e3190c63b565 (patch)
tree16d76ac65a47a7fef96bee8f3c528cfff234a26a
parent19a18e487b8e2f0c1627b9cc98e601327e884eb2 (diff)
parentc66bda1a19afd7d8391765e2ed207e44107d8a50 (diff)
downloademacs-6d22bd4d3a0a9cb55bbfffb29ed3e3190c63b565.tar.gz
emacs-6d22bd4d3a0a9cb55bbfffb29ed3e3190c63b565.zip
Merge from savannah/emacs-30
c66bda1a19a Improve treesit-node-child-by-field-name docstring 85773ab9771 Minor copyedits in tree-sitter starting guide 2dacec1609a Update tag for prebuilt tree-sitter grammars 68615a38669 Fix punctuation and doc style in treesit.c 00adee897ac ; Fix punctuation in docs ab29b28d4ba Fix DocView with PostScript files
-rw-r--r--admin/notes/tree-sitter/starter-guide58
-rw-r--r--doc/emacs/custom.texi2
-rw-r--r--doc/emacs/display.texi2
-rw-r--r--doc/emacs/fortran-xtra.texi2
-rw-r--r--doc/emacs/frames.texi2
-rw-r--r--doc/emacs/trouble.texi2
-rw-r--r--doc/emacs/vc1-xtra.texi2
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi8
-rw-r--r--doc/lispref/commands.texi2
-rw-r--r--doc/lispref/display.texi2
-rw-r--r--doc/lispref/files.texi4
-rw-r--r--doc/lispref/modes.texi2
-rw-r--r--doc/lispref/package.texi4
-rw-r--r--doc/lispref/positions.texi2
-rw-r--r--doc/lispref/processes.texi2
-rw-r--r--doc/lispref/searching.texi4
-rw-r--r--doc/lispref/sequences.texi2
-rw-r--r--doc/lispref/streams.texi2
-rw-r--r--doc/lispref/variables.texi2
-rw-r--r--doc/man/etags.12
-rw-r--r--doc/misc/auth.texi12
-rw-r--r--doc/misc/autotype.texi2
-rw-r--r--doc/misc/bovine.texi2
-rw-r--r--doc/misc/calc.texi84
-rw-r--r--doc/misc/cc-mode.texi8
-rw-r--r--doc/misc/cl.texi4
-rw-r--r--doc/misc/dbus.texi4
-rw-r--r--doc/misc/ebrowse.texi6
-rw-r--r--doc/misc/ede.texi2
-rw-r--r--doc/misc/ediff.texi76
-rw-r--r--doc/misc/efaq-w32.texi36
-rw-r--r--doc/misc/efaq.texi8
-rw-r--r--doc/misc/eglot.texi4
-rw-r--r--doc/misc/emacs-mime.texi2
-rw-r--r--doc/misc/ert.texi10
-rw-r--r--doc/misc/eshell.texi12
-rw-r--r--doc/misc/eudc.texi40
-rw-r--r--doc/misc/flymake.texi2
-rw-r--r--doc/misc/forms.texi22
-rw-r--r--doc/misc/gnus-faq.texi26
-rw-r--r--doc/misc/gnus.texi44
-rw-r--r--doc/misc/htmlfontify.texi2
-rw-r--r--doc/misc/idlwave.texi16
-rw-r--r--doc/misc/info.texi2
-rw-r--r--doc/misc/message.texi14
-rw-r--r--doc/misc/modus-themes.org50
-rw-r--r--doc/misc/newsticker.texi20
-rw-r--r--doc/misc/nxml-mode.texi82
-rw-r--r--doc/misc/org.org22
-rw-r--r--doc/misc/pcl-cvs.texi2
-rw-r--r--doc/misc/rcirc.texi2
-rw-r--r--doc/misc/reftex.texi24
-rw-r--r--doc/misc/sc.texi2
-rw-r--r--doc/misc/ses.texi56
-rw-r--r--doc/misc/speedbar.texi2
-rw-r--r--doc/misc/todo-mode.texi4
-rw-r--r--doc/misc/transient.texi10
-rw-r--r--doc/misc/use-package.texi4
-rw-r--r--doc/misc/vhdl-mode.texi28
-rw-r--r--doc/misc/vip.texi18
-rw-r--r--doc/misc/viper.texi40
-rw-r--r--doc/misc/widget.texi4
-rw-r--r--doc/misc/wisent.texi4
-rw-r--r--lisp/doc-view.el2
-rw-r--r--src/treesit.c37
65 files changed, 479 insertions, 482 deletions
diff --git a/admin/notes/tree-sitter/starter-guide b/admin/notes/tree-sitter/starter-guide
index b07c80b203c..72102250bbb 100644
--- a/admin/notes/tree-sitter/starter-guide
+++ b/admin/notes/tree-sitter/starter-guide
@@ -34,10 +34,9 @@ merged) and rebuild Emacs.
34 34
35* Install language definitions 35* Install language definitions
36 36
37Tree-sitter by itself doesn’t know how to parse any particular 37Tree-sitter by itself doesn’t know how to parse any particular language.
38language. We need to install language definitions (or “grammars”) for 38We need to install language definitions (or “grammars”) for a language
39a language to be able to parse it. There are a couple of ways to get 39to be able to parse it. There are a couple of ways to get them.
40them.
41 40
42You can use this script that I put together here: 41You can use this script that I put together here:
43 42
@@ -48,9 +47,9 @@ C++, Rust, JSON, Go, HTML, JavaScript, CSS, Python, Typescript,
48C#, etc. Better yet, I pre-built these language definitions for 47C#, etc. Better yet, I pre-built these language definitions for
49GNU/Linux and macOS, they can be downloaded here: 48GNU/Linux and macOS, they can be downloaded here:
50 49
51 https://github.com/casouri/tree-sitter-module/releases/tag/v2.1 50 https://github.com/casouri/tree-sitter-module/releases/tag/v2.4
52 51
53To build them yourself, run 52To build them yourself, run:
54 53
55 git clone git@github.com:casouri/tree-sitter-module.git 54 git clone git@github.com:casouri/tree-sitter-module.git
56 cd tree-sitter-module 55 cd tree-sitter-module
@@ -73,26 +72,25 @@ automatically download and compile the language grammar for you.
73 72
74* Setting up for adding major mode features 73* Setting up for adding major mode features
75 74
76Start Emacs and load tree-sitter with 75Start Emacs and load tree-sitter with:
77 76
78 (require 'treesit) 77 (require 'treesit)
79 78
80Now check if Emacs is built with tree-sitter library 79Now check if Emacs is built with tree-sitter library:
81 80
82 (treesit-available-p) 81 (treesit-available-p)
83 82
84Make sure Emacs can find the language grammar you want to use 83Make sure Emacs can find the language grammar you want to use:
85 84
86 (treesit-language-available-p 'lang) 85 (treesit-language-available-p 'lang)
87 86
88* Tree-sitter major modes 87* Tree-sitter major modes
89 88
90Tree-sitter modes should be separate major modes, so other modes 89Tree-sitter modes should be separate major modes, so other modes
91inheriting from the original mode don't break if tree-sitter is 90inheriting from the original mode don't break if tree-sitter is enabled.
92enabled. For example js2-mode inherits js-mode, we can't enable 91For example js2-mode inherits js-mode, we can't enable tree-sitter in
93tree-sitter in js-mode, lest js-mode would not setup things that 92js-mode, lest js-mode would not setup things that js2-mode expects to
94js2-mode expects to inherit from. So it's best to use separate major 93inherit from. So it's best to use separate major modes.
95modes.
96 94
97If the tree-sitter variant and the "native" variant could share some 95If the tree-sitter variant and the "native" variant could share some
98setup, you can create a "base mode", which only contains the common 96setup, you can create a "base mode", which only contains the common
@@ -119,19 +117,18 @@ you. The query function returns a list of (capture-name . node). For
119font-lock, we use face names as capture names. And the captured node 117font-lock, we use face names as capture names. And the captured node
120will be fontified in their capture name. 118will be fontified in their capture name.
121 119
122The capture name could also be a function, in which case (NODE 120The capture name could also be a function, in which case (NODE OVERRIDE
123OVERRIDE START END) is passed to the function for fontification. START 121START END) is passed to the function for fontification. START and END
124and END are the start and end of the region to be fontified. The 122are the start and end of the region to be fontified. The function
125function should only fontify within that region. The function should 123should only fontify within that region. The function should also allow
126also allow more optional arguments with (&rest _), for future 124more optional arguments with (&rest _), for future extensibility. For
127extensibility. For OVERRIDE check out the docstring of 125OVERRIDE check out the docstring of treesit-font-lock-rules.
128treesit-font-lock-rules.
129 126
130** Query syntax 127** Query syntax
131 128
132There are two types of nodes, named, like (identifier), 129There are two types of nodes, named, like (identifier),
133(function_definition), and anonymous, like "return", "def", "(", 130(function_definition), and anonymous, like "return", "def", "(",
134"}". Parent-child relationship is expressed as 131"}". Parent-child relationship is expressed as:
135 132
136 (parent (child) (child) (child (grand_child))) 133 (parent (child) (child) (child (grand_child)))
137 134
@@ -155,8 +152,7 @@ The query above captures both parent and child.
155 152
156 ["return" "continue" "break"] @keyword 153 ["return" "continue" "break"] @keyword
157 154
158The query above captures all the keywords with capture name 155The query above captures all the keywords with capture name "keyword".
159"keyword".
160 156
161These are the common syntax, see all of them in the manual 157These are the common syntax, see all of them in the manual
162("Parsing Program Source" section). 158("Parsing Program Source" section).
@@ -168,7 +164,7 @@ open any python source file, type M-x treesit-explore-mode RET. Now
168you should see the parse-tree in a separate window, automatically 164you should see the parse-tree in a separate window, automatically
169updated as you select text or edit the buffer. Besides this, you can 165updated as you select text or edit the buffer. Besides this, you can
170consult the grammar of the language definition. For example, Python’s 166consult the grammar of the language definition. For example, Python’s
171grammar file is at 167grammar file is at:
172 168
173 https://github.com/tree-sitter/tree-sitter-python/blob/master/grammar.js 169 https://github.com/tree-sitter/tree-sitter-python/blob/master/grammar.js
174 170
@@ -262,7 +258,7 @@ Concretely, something like this:
262 258
263* Indent 259* Indent
264 260
265Indent works like this: We have a bunch of rules that look like 261Indent works like this: We have a bunch of rules that look like:
266 262
267 (MATCHER ANCHOR OFFSET) 263 (MATCHER ANCHOR OFFSET)
268 264
@@ -354,9 +350,8 @@ Set ‘treesit-simple-imenu-settings’ and call
354 350
355* Navigation 351* Navigation
356 352
357Set ‘treesit-defun-type-regexp’ and call 353Set ‘treesit-defun-type-regexp’ and call ‘treesit-major-mode-setup’.
358‘treesit-major-mode-setup’. You can additionally set 354You can additionally set ‘treesit-defun-name-function’.
359‘treesit-defun-name-function’.
360 355
361* Which-func 356* Which-func
362 357
@@ -404,13 +399,12 @@ BTW ‘treesit-node-string’ does different things.
404* Manual 399* Manual
405 400
406I suggest you read the manual section for tree-sitter in Info. The 401I suggest you read the manual section for tree-sitter in Info. The
407section is Parsing Program Source. Typing 402section is Parsing Program Source. Typing:
408 403
409 C-h i d m elisp RET g Parsing Program Source RET 404 C-h i d m elisp RET g Parsing Program Source RET
410 405
411will bring you to that section. You don’t need to read through every 406will bring you to that section. You don’t need to read through every
412sentence, just read the text paragraphs and glance over function 407sentence, just read the text paragraphs and glance over function names.
413names.
414 408
415* Appendix 1 409* Appendix 1
416 410
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index a385d06bb1d..1527e42bbfe 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -2044,7 +2044,7 @@ sequences. For example, to bind @kbd{C-c h} to the string
2044@end example 2044@end example
2045 2045
2046 Non-@acronym{ASCII} characters can be specified directly in the 2046 Non-@acronym{ASCII} characters can be specified directly in the
2047string. To bind to e.g. @samp{ol@'a}, use: 2047string. To bind to e.g. @samp{ol@'a}, use:
2048 2048
2049@example 2049@example
2050(keymap-global-set "C-c h" (key-description "ol@'a")) 2050(keymap-global-set "C-c h" (key-description "ol@'a"))
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 8f22e3c88da..88520874c8e 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -2198,7 +2198,7 @@ The line numbers are displayed in a special face @code{line-number}.
2198The current line number is displayed in a different face, 2198The current line number is displayed in a different face,
2199@code{line-number-current-line}, so you can make the current line's 2199@code{line-number-current-line}, so you can make the current line's
2200number have a distinct appearance, which will help locating the line 2200number have a distinct appearance, which will help locating the line
2201showing point. Additional faces @code{line-number-major-tick} and 2201showing point. Additional faces @code{line-number-major-tick} and
2202@code{line-number-minor-tick} can be used to highlight the line numbers 2202@code{line-number-minor-tick} can be used to highlight the line numbers
2203of lines which are a multiple of certain numbers. Customize 2203of lines which are a multiple of certain numbers. Customize
2204@code{display-line-numbers-major-tick} and 2204@code{display-line-numbers-major-tick} and
diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi
index 5225dfccbd0..1884ee76219 100644
--- a/doc/emacs/fortran-xtra.texi
+++ b/doc/emacs/fortran-xtra.texi
@@ -124,7 +124,7 @@ check the outermost block since that may be incomplete.
124@findex f90-beginning-of-block 124@findex f90-beginning-of-block
125@item C-M-p 125@item C-M-p
126Move to the start of the current code block 126Move to the start of the current code block
127(@code{fortran-beginning-of-block}/@code{f90-beginning-of-block}). This 127(@code{fortran-beginning-of-block}/@code{f90-beginning-of-block}). This
128is like @code{fortran-end-of-block}, but moves backwards. 128is like @code{fortran-end-of-block}, but moves backwards.
129@end table 129@end table
130 130
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index e1fbf9768af..b5f2c5f5e84 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -1543,7 +1543,7 @@ After customizing the variable @code{tab-bar-select-tab-modifiers} to
1543specify one or more @var{modifier} keys, you can select a tab by its 1543specify one or more @var{modifier} keys, you can select a tab by its
1544ordinal number using one of the specified modifiers in combination 1544ordinal number using one of the specified modifiers in combination
1545with the tab number to select. The number 9 can be used to select the 1545with the tab number to select. The number 9 can be used to select the
1546last tab. You can select any modifiers supported by Emacs, 1546last tab. You can select any modifiers supported by Emacs,
1547@pxref{Modifier Keys}. To display the tab number alongside the tab 1547@pxref{Modifier Keys}. To display the tab number alongside the tab
1548name, you can customize another variable @code{tab-bar-tab-hints}. 1548name, you can customize another variable @code{tab-bar-tab-hints}.
1549This will help you decide which numerical key to press to select the 1549This will help you decide which numerical key to press to select the
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index e4993fb0014..c385d6b0b3d 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1488,7 +1488,7 @@ the Emacs Lisp Reference Manual
1488@cindex coding standards for Emacs submissions 1488@cindex coding standards for Emacs submissions
1489 1489
1490Contributed code should follow the GNU Coding Standards 1490Contributed code should follow the GNU Coding Standards
1491@url{https://www.gnu.org/prep/standards/}. This may also be available 1491@url{https://www.gnu.org/prep/standards/}. This may also be available
1492in info on your system. 1492in info on your system.
1493 1493
1494If it doesn't, we'll need to find someone to fix the code before we 1494If it doesn't, we'll need to find someone to fix the code before we
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 303efa05d82..8897129d1b0 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -177,7 +177,7 @@ current directory as a tag named @var{name}
177@findex vc-retrieve-tag 177@findex vc-retrieve-tag
178@item C-x v r @var{name} @key{RET} 178@item C-x v r @var{name} @key{RET}
179For all registered files at or below the current directory level, 179For all registered files at or below the current directory level,
180retrieve the tagged revision @var{name}. This command will switch to a 180retrieve the tagged revision @var{name}. This command will switch to a
181branch if @var{name} is a branch name and your VCS distinguishes 181branch if @var{name} is a branch name and your VCS distinguishes
182branches from tags. (@code{vc-retrieve-tag}). 182branches from tags. (@code{vc-retrieve-tag}).
183 183
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 4649cd59962..bc4dc31bf4c 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -130,7 +130,7 @@ Boston, MA 02110-1301 USA
130@end iftex 130@end iftex
131 131
132@ifnottex 132@ifnottex
133Printed copies available from @uref{https://shop.fsf.org/}. Published by: 133Printed copies available from @uref{https://shop.fsf.org/}. Published by:
134 134
135@example 135@example
136GNU Press, https://www.fsf.org/licensing/gnu-press/ 136GNU Press, https://www.fsf.org/licensing/gnu-press/
@@ -1969,7 +1969,7 @@ argument is the string of characters, the second and third arguments
1969are numbers that indicate the beginning (inclusive) and end 1969are numbers that indicate the beginning (inclusive) and end
1970(exclusive) of the substring. The numbers are a count of the number 1970(exclusive) of the substring. The numbers are a count of the number
1971of characters (including spaces and punctuation) from the beginning of 1971of characters (including spaces and punctuation) from the beginning of
1972the string. Note that the characters in a string are numbered from 1972the string. Note that the characters in a string are numbered from
1973zero, not one. 1973zero, not one.
1974 1974
1975@need 800 1975@need 800
@@ -5314,7 +5314,7 @@ Looking at the @code{let*} expression in @code{append-to-buffer}:
5314 5314
5315@noindent 5315@noindent
5316we see that @code{append-to} is bound to the value returned by the 5316we see that @code{append-to} is bound to the value returned by the
5317@w{@code{(get-buffer-create buffer)}}. On the next line, 5317@w{@code{(get-buffer-create buffer)}}. On the next line,
5318@code{append-to} is used as an argument to 5318@code{append-to} is used as an argument to
5319@code{get-buffer-window-list}; this would not be possible with the 5319@code{get-buffer-window-list}; this would not be possible with the
5320@code{let} expression. Note that @code{point} is automatically bound 5320@code{let} expression. Note that @code{point} is automatically bound
@@ -16099,7 +16099,7 @@ placing point somewhere in the buffer, typing @kbd{M-:}, typing the
16099and then typing @key{RET}. This causes Emacs to evaluate the 16099and then typing @key{RET}. This causes Emacs to evaluate the
16100expression in the minibuffer, but to use as the value of point the 16100expression in the minibuffer, but to use as the value of point the
16101position of point in the @file{*scratch*} buffer. (@kbd{M-:} is the 16101position of point in the @file{*scratch*} buffer. (@kbd{M-:} is the
16102key binding for @code{eval-expression}. Also, @code{nil} does not 16102key binding for @code{eval-expression}. Also, @code{nil} does not
16103appear in the @file{*scratch*} buffer since the expression is 16103appear in the @file{*scratch*} buffer since the expression is
16104evaluated in the minibuffer.) 16104evaluated in the minibuffer.)
16105 16105
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index 6ddb70a3b9f..df8266a7157 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -1741,7 +1741,7 @@ this is @code{nil}.
1741@item @var{dx}, @var{dy} 1741@item @var{dx}, @var{dy}
1742These are the pixel offsets of the click relative to the top left 1742These are the pixel offsets of the click relative to the top left
1743corner of the @var{object}'s glyph that is the nearest one to the 1743corner of the @var{object}'s glyph that is the nearest one to the
1744click. The relevant @var{object}s can be either a buffer, or a string, 1744click. The relevant @var{object}s can be either a buffer, or a string,
1745or an image, see above. If @var{object} is @code{nil} or a string, 1745or an image, see above. If @var{object} is @code{nil} or a string,
1746the coordinates are relative to the top left corner of the character 1746the coordinates are relative to the top left corner of the character
1747glyph clicked on. Note that the offsets are always zero on text-mode 1747glyph clicked on. Note that the offsets are always zero on text-mode
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 16f60bdebf6..7564a831fd2 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -2771,7 +2771,7 @@ width of the vertical and horizontal lines to draw; they default to (1
2771. 1). A negative horizontal or vertical width @minus{}@var{n} means 2771. 1). A negative horizontal or vertical width @minus{}@var{n} means
2772to draw a line of width @var{n} that occupies the space of the 2772to draw a line of width @var{n} that occupies the space of the
2773underlying text, thus avoiding any increase in the character height or 2773underlying text, thus avoiding any increase in the character height or
2774width. For simplification the width could be specified with only a 2774width. For simplification the width could be specified with only a
2775single number @var{n} instead of a list, such case is equivalent to 2775single number @var{n} instead of a list, such case is equivalent to
2776@code{((abs @var{n}) . @var{n})}. 2776@code{((abs @var{n}) . @var{n})}.
2777 2777
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 1a8f3812f1e..70db8521481 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -2708,7 +2708,7 @@ file names (@pxref{Magic File Names}).
2708 2708
2709@defmac file-name-unquote name 2709@defmac file-name-unquote name
2710This macro removes the quotation prefix @samp{/:} from the file 2710This macro removes the quotation prefix @samp{/:} from the file
2711@var{name}, if any. If @var{name} is a remote file name, the local 2711@var{name}, if any. If @var{name} is a remote file name, the local
2712part of @var{name} is unquoted. 2712part of @var{name} is unquoted.
2713@end defmac 2713@end defmac
2714 2714
@@ -2740,7 +2740,7 @@ This function creates a temporary file and returns its name. Emacs
2740creates the temporary file's name by adding to @var{prefix} some 2740creates the temporary file's name by adding to @var{prefix} some
2741random characters that are different in each Emacs job. The result is 2741random characters that are different in each Emacs job. The result is
2742guaranteed to be a newly created file, containing @var{text} if that's 2742guaranteed to be a newly created file, containing @var{text} if that's
2743given as a string and empty otherwise. On MS-DOS, this function can 2743given as a string and empty otherwise. On MS-DOS, this function can
2744truncate @var{prefix} to fit into the 8+3 file-name limits. If 2744truncate @var{prefix} to fit into the 8+3 file-name limits. If
2745@var{prefix} is a relative file name, it is expanded against 2745@var{prefix} is a relative file name, it is expanded against
2746@code{temporary-file-directory}. 2746@code{temporary-file-directory}.
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index f3d4f5347b3..7c7823b5f9b 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -4530,7 +4530,7 @@ and a few other such modes) has been made more generic over the years,
4530so if your language seems somewhat similar to one of those languages, 4530so if your language seems somewhat similar to one of those languages,
4531you might try to use that engine. @c FIXME: documentation? 4531you might try to use that engine. @c FIXME: documentation?
4532Another one is SMIE which takes an approach in the spirit 4532Another one is SMIE which takes an approach in the spirit
4533of Lisp sexps and adapts it to non-Lisp languages. Yet another one is 4533of Lisp sexps and adapts it to non-Lisp languages. Yet another one is
4534to rely on a full-blown parser, for example, the tree-sitter library. 4534to rely on a full-blown parser, for example, the tree-sitter library.
4535 4535
4536@menu 4536@menu
diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
index 60cff9d1891..eb0b4ca213c 100644
--- a/doc/lispref/package.texi
+++ b/doc/lispref/package.texi
@@ -387,7 +387,7 @@ following queries:
387 387
388@table @asis 388@table @asis
389@item archive-contents 389@item archive-contents
390Return a lisp form describing the archive contents. The form is a list 390Return a lisp form describing the archive contents. The form is a list
391of 'package-desc' structures (see @file{package.el}), except the first 391of 'package-desc' structures (see @file{package.el}), except the first
392element of the list is the archive version. 392element of the list is the archive version.
393 393
@@ -398,7 +398,7 @@ Return the long description of the package.
398Return the signature for the file. 398Return the signature for the file.
399 399
400@item <file name> 400@item <file name>
401Return the file. This will be the tarball for a multi-file 401Return the file. This will be the tarball for a multi-file
402package, or the single file for a simple package. 402package, or the single file for a simple package.
403 403
404@end table 404@end table
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi
index ead7833af61..37cfe264157 100644
--- a/doc/lispref/positions.texi
+++ b/doc/lispref/positions.texi
@@ -450,7 +450,7 @@ in the buffer, or in the region if the region is active.
450@cindex line number 450@cindex line number
451This function returns the line number in the current buffer 451This function returns the line number in the current buffer
452corresponding to the buffer position @var{pos}. If @var{pos} is 452corresponding to the buffer position @var{pos}. If @var{pos} is
453@code{nil} or omitted, the current buffer position is used. If 453@code{nil} or omitted, the current buffer position is used. If
454@var{absolute} is @code{nil}, the default, counting starts at 454@var{absolute} is @code{nil}, the default, counting starts at
455@code{(point-min)}, so the value refers to the contents of the 455@code{(point-min)}, so the value refers to the contents of the
456accessible portion of the (potentially narrowed) buffer. If 456accessible portion of the (potentially narrowed) buffer. If
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index c5fbb0fb818..53468e0d252 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -135,7 +135,7 @@ stream to a different destination.
135 135
136@cindex program arguments 136@cindex program arguments
137 All three of the subprocess-creating functions allow specifying 137 All three of the subprocess-creating functions allow specifying
138command-line arguments for the process to run. For @code{call-process} 138command-line arguments for the process to run. For @code{call-process}
139and @code{call-process-region}, these come in the form of a 139and @code{call-process-region}, these come in the form of a
140@code{&rest} argument, @var{args}. For @code{make-process}, both the 140@code{&rest} argument, @var{args}. For @code{make-process}, both the
141program to run and its command-line arguments are specified as a list 141program to run and its command-line arguments are specified as a list
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 6e3680bdb4f..7cefd581afb 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -1771,7 +1771,7 @@ required for @code{rx-to-string} to work. Example:
1771 1771
1772Another difference from @code{rx-let} is that the @var{bindings} are 1772Another difference from @code{rx-let} is that the @var{bindings} are
1773dynamically scoped, and thus also available in functions called from 1773dynamically scoped, and thus also available in functions called from
1774@var{body}. However, they are not visible inside functions defined in 1774@var{body}. However, they are not visible inside functions defined in
1775@var{body}. 1775@var{body}.
1776@end defmac 1776@end defmac
1777 1777
@@ -1919,7 +1919,7 @@ symptoms less likely and help alleviate problems that do arise.
1919@itemize 1919@itemize
1920@item 1920@item
1921Anchor regexps at the beginning of a line, string or buffer using 1921Anchor regexps at the beginning of a line, string or buffer using
1922zero-width assertions (@samp{^} and @code{\`}). This takes advantage 1922zero-width assertions (@samp{^} and @code{\`}). This takes advantage
1923of fast paths in the implementation and can avoid futile matching 1923of fast paths in the implementation and can avoid futile matching
1924attempts. Other zero-width assertions may also bring benefits by 1924attempts. Other zero-width assertions may also bring benefits by
1925causing a match to fail early. 1925causing a match to fail early.
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index d5695e4c83d..9b0a0d74f30 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -937,7 +937,7 @@ use instead of the default @code{equal}.
937 937
938@defun seq-set-equal-p sequence1 sequence2 &optional testfn 938@defun seq-set-equal-p sequence1 sequence2 &optional testfn
939This function checks whether @var{sequence1} and @var{sequence2} 939This function checks whether @var{sequence1} and @var{sequence2}
940contain the same elements, regardless of the order. If the optional 940contain the same elements, regardless of the order. If the optional
941argument @var{testfn} is non-@code{nil}, it is a function of two 941argument @var{testfn} is non-@code{nil}, it is a function of two
942arguments to use instead of the default @code{equal}. 942arguments to use instead of the default @code{equal}.
943 943
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 86ec82b66a1..a48e6380d32 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -970,7 +970,7 @@ you can use, see the variable's documentation string.
970@defvar print-integers-as-characters 970@defvar print-integers-as-characters
971When this variable is non-@code{nil}, integers that represent 971When this variable is non-@code{nil}, integers that represent
972graphic base characters will be printed using Lisp character syntax 972graphic base characters will be printed using Lisp character syntax
973(@pxref{Basic Char Syntax}). Other numbers are printed the usual way. 973(@pxref{Basic Char Syntax}). Other numbers are printed the usual way.
974For example, the list @code{(4 65 -1 10)} would be printed as 974For example, the list @code{(4 65 -1 10)} would be printed as
975@samp{(4 ?A -1 ?\n)}. 975@samp{(4 ?A -1 ?\n)}.
976 976
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 0ed1936cd84..76f15b2595c 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -2613,7 +2613,7 @@ compatibility. You can do this with @code{defvaralias}.
2613 2613
2614@defun defvaralias new-alias base-variable &optional docstring 2614@defun defvaralias new-alias base-variable &optional docstring
2615This function defines the symbol @var{new-alias} as a variable alias 2615This function defines the symbol @var{new-alias} as a variable alias
2616for symbol @var{base-variable}. This means that retrieving the value 2616for symbol @var{base-variable}. This means that retrieving the value
2617of @var{new-alias} returns the value of @var{base-variable}, and 2617of @var{new-alias} returns the value of @var{base-variable}, and
2618changing the value of @var{new-alias} changes the value of 2618changing the value of @var{new-alias} changes the value of
2619@var{base-variable}. The two aliased variable names always share the 2619@var{base-variable}. The two aliased variable names always share the
diff --git a/doc/man/etags.1 b/doc/man/etags.1
index c567c51d7ef..9b8df50a6bb 100644
--- a/doc/man/etags.1
+++ b/doc/man/etags.1
@@ -171,7 +171,7 @@ of \- means standard output; overrides default \fBTAGS\fP or \fBtags\fP.
171 171
172Make tags based on regexp matching for the files following this option, 172Make tags based on regexp matching for the files following this option,
173in addition to the tags made with the standard parsing based on 173in addition to the tags made with the standard parsing based on
174language. May be freely intermixed with filenames and the \fB\-R\fP 174language. May be freely intermixed with filenames and the \fB\-R\fP
175option. The regexps are cumulative, i.e., each such option will add to 175option. The regexps are cumulative, i.e., each such option will add to
176the previous ones. The regexps are of one of the forms: 176the previous ones. The regexps are of one of the forms:
177.br 177.br
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi
index 8d802be535c..bb4beb38837 100644
--- a/doc/misc/auth.texi
+++ b/doc/misc/auth.texi
@@ -136,12 +136,12 @@ You can use spaces inside a password or other token by surrounding the
136token with either single or double quotes. 136token with either single or double quotes.
137 137
138You can use apostrophes inside a password or other token by 138You can use apostrophes inside a password or other token by
139surrounding it with double quotes, e.g., @code{"he'llo"}. Similarly you 139surrounding it with double quotes, e.g., @code{"he'llo"}. Similarly you
140can use double quotes inside a password or other token by surrounding 140can use double quotes inside a password or other token by surrounding
141it with apostrophes, e.g., @code{'he"llo'}. You can't mix both (so a 141it with apostrophes, e.g., @code{'he"llo'}. You can't mix both (so a
142password or other token can't have both apostrophes and double quotes). 142password or other token can't have both apostrophes and double quotes).
143 143
144All this is optional. You could just say (but we don't recommend it, 144All this is optional. You could just say (but we don't recommend it,
145we're just showing that it's possible) 145we're just showing that it's possible)
146 146
147@example 147@example
@@ -267,7 +267,7 @@ earlier. Since Tramp has about 88 connection methods, this may be
267necessary if you have an unusual (see earlier comment on those) setup. 267necessary if you have an unusual (see earlier comment on those) setup.
268 268
269The netrc format is directly translated into JSON, if you are into 269The netrc format is directly translated into JSON, if you are into
270that sort of thing. Just point to a JSON file with entries like this: 270that sort of thing. Just point to a JSON file with entries like this:
271 271
272@example 272@example
273[ 273[
@@ -501,7 +501,9 @@ The username can also be expressed as a prefix, separated from the
501host with an at-sign (@code{@@}). 501host with an at-sign (@code{@@}).
502 502
503@item gnu.org:22.gpg 503@item gnu.org:22.gpg
504The port (aka. service) to match can only be expressed after the host and separated with a colon (@code{:}). The separator can be changed through the @code{auth-source-pass-port-separator} variable. 504The port (aka. service) to match can only be expressed after the host
505and separated with a colon (@code{:}). The separator can be changed
506through the @code{auth-source-pass-port-separator} variable.
505 507
506@item gnu.org:22/rms.gpg 508@item gnu.org:22/rms.gpg
507 509
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index d927816c492..4bd07c8d312 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -290,7 +290,7 @@ be inserted.
290 It can also be a function, which allows doing various things. The function 290 It can also be a function, which allows doing various things. The function
291can simply insert some text, indeed, it can be skeleton command (@pxref{Using 291can simply insert some text, indeed, it can be skeleton command (@pxref{Using
292Skeletons}). It can be a lambda function which will for example conditionally 292Skeletons}). It can be a lambda function which will for example conditionally
293call another function. Or it can even reset the mode for the buffer. If you 293call another function. Or it can even reset the mode for the buffer. If you
294want to perform several such actions in order, you use a vector, i.e., several 294want to perform several such actions in order, you use a vector, i.e., several
295of the above elements between square brackets (@samp{[@r{@dots{}}]}). 295of the above elements between square brackets (@samp{[@r{@dots{}}]}).
296 296
diff --git a/doc/misc/bovine.texi b/doc/misc/bovine.texi
index 5cef9ffbb93..f4eb0784cb2 100644
--- a/doc/misc/bovine.texi
+++ b/doc/misc/bovine.texi
@@ -346,7 +346,7 @@ semantic list.
346@item (EXPANDFULL @var{$1} @var{nonterminal} @var{depth}) 346@item (EXPANDFULL @var{$1} @var{nonterminal} @var{depth})
347Is like @code{EXPAND}, except that the parser will iterate over 347Is like @code{EXPAND}, except that the parser will iterate over
348@var{nonterminal} until there are no more matches. (The same way the 348@var{nonterminal} until there are no more matches. (The same way the
349parser iterates over the starting rule (@pxref{Starting Rules}). This 349parser iterates over the starting rule (@pxref{Starting Rules}). This
350lets you have much simpler rules in this specific case, and also lets 350lets you have much simpler rules in this specific case, and also lets
351you have positional information in the returned tokens, and error 351you have positional information in the returned tokens, and error
352skipping. 352skipping.
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 54909c130c3..384ad889ae1 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -355,7 +355,7 @@ To print the Calc manual in one huge tome, you will need the
355Emacs source, which contains the source code to this manual, 355Emacs source, which contains the source code to this manual,
356@file{calc.texi}. Change to the @file{doc/misc} subdirectory of the 356@file{calc.texi}. Change to the @file{doc/misc} subdirectory of the
357Emacs source distribution, which contains source code for this manual, 357Emacs source distribution, which contains source code for this manual,
358and type @kbd{make calc.pdf}. (Don't worry if you get some ``overfull 358and type @kbd{make calc.pdf}. (Don't worry if you get some ``overfull
359box'' warnings while @TeX{} runs.) The result will be this entire 359box'' warnings while @TeX{} runs.) The result will be this entire
360manual as a pdf file. 360manual as a pdf file.
361@end ifnottex 361@end ifnottex
@@ -524,7 +524,7 @@ matrix into a
524@infoline 2x3 524@infoline 2x3
525matrix. Type @w{@kbd{v u}} to unpack the rows into two separate 525matrix. Type @w{@kbd{v u}} to unpack the rows into two separate
526vectors. Now type @w{@kbd{V R + @key{TAB} V R +}} to compute the sums 526vectors. Now type @w{@kbd{V R + @key{TAB} V R +}} to compute the sums
527of the two original columns. (There is also a special 527of the two original columns. (There is also a special
528grab-and-sum-columns command, @kbd{C-x * :}.) 528grab-and-sum-columns command, @kbd{C-x * :}.)
529 529
530@strong{Units conversion.} Units are entered algebraically. 530@strong{Units conversion.} Units are entered algebraically.
@@ -929,7 +929,7 @@ is
929Calc has added annotations to the file to help it remember the modes 929Calc has added annotations to the file to help it remember the modes
930that were used for this formula. They are formatted like comments 930that were used for this formula. They are formatted like comments
931in the @TeX{} typesetting language, just in case you are using @TeX{} or 931in the @TeX{} typesetting language, just in case you are using @TeX{} or
932@LaTeX{}. (In this example @TeX{} is not being used, so you might want 932@LaTeX{}. (In this example @TeX{} is not being used, so you might want
933to move these comments up to the top of the file or otherwise put them 933to move these comments up to the top of the file or otherwise put them
934out of the way.) 934out of the way.)
935 935
@@ -1174,7 +1174,7 @@ that arbitrary-size integers were just as easy as large integers.
1174Arbitrary floating-point precision was the logical next step. Also, 1174Arbitrary floating-point precision was the logical next step. Also,
1175since the large integer arithmetic was there anyway it seemed only 1175since the large integer arithmetic was there anyway it seemed only
1176fair to give the user direct access to it, which in turn made it 1176fair to give the user direct access to it, which in turn made it
1177practical to support fractions as well as floats. All these features 1177practical to support fractions as well as floats. All these features
1178inspired me to look around for other data types that might be worth 1178inspired me to look around for other data types that might be worth
1179having. 1179having.
1180 1180
@@ -5762,7 +5762,7 @@ which in algebraic notation is written like @samp{ninteg(f(t), t, 0, x)}
5762with any integrand @samp{f(t)}. Define a @kbd{z s} command and 5762with any integrand @samp{f(t)}. Define a @kbd{z s} command and
5763@code{Si} function that implement this. You will need to edit the 5763@code{Si} function that implement this. You will need to edit the
5764default argument list a bit. As a test, @samp{Si(1)} should return 5764default argument list a bit. As a test, @samp{Si(1)} should return
57650.946083. (If you don't get this answer, you might want to check that 57650.946083. (If you don't get this answer, you might want to check that
5766Calc is in Radians mode. Also, @code{ninteg} will run a lot faster if 5766Calc is in Radians mode. Also, @code{ninteg} will run a lot faster if
5767you reduce the precision to, say, six digits beforehand.) 5767you reduce the precision to, say, six digits beforehand.)
5768@xref{Programming Answer 1, 1}. (@bullet{}) 5768@xref{Programming Answer 1, 1}. (@bullet{})
@@ -9758,7 +9758,7 @@ by a zero) resets the Calculator to its initial state. This clears
9758the stack, resets all the modes to their initial values (the values 9758the stack, resets all the modes to their initial values (the values
9759that were saved with @kbd{m m} (@code{calc-save-modes})), clears the 9759that were saved with @kbd{m m} (@code{calc-save-modes})), clears the
9760caches (@pxref{Caches}), and so on. (It does @emph{not} erase the 9760caches (@pxref{Caches}), and so on. (It does @emph{not} erase the
9761values of any variables.) With an argument of 0, Calc will be reset to 9761values of any variables.) With an argument of 0, Calc will be reset to
9762its default state; namely, the modes will be given their default values. 9762its default state; namely, the modes will be given their default values.
9763With a positive prefix argument, @kbd{C-x * 0} preserves the contents of 9763With a positive prefix argument, @kbd{C-x * 0} preserves the contents of
9764the stack but resets everything else to its initial state; with a 9764the stack but resets everything else to its initial state; with a
@@ -10254,7 +10254,7 @@ specified number of operations. When the Calculator is quit, as with
10254the @kbd{q} (@code{calc-quit}) command, the undo history will be 10254the @kbd{q} (@code{calc-quit}) command, the undo history will be
10255truncated to the length of the customizable variable 10255truncated to the length of the customizable variable
10256@code{calc-undo-length} (@pxref{Customizing Calc}), which by default 10256@code{calc-undo-length} (@pxref{Customizing Calc}), which by default
10257is @expr{100}. (Recall that @kbd{C-x * c} is synonymous with 10257is @expr{100}. (Recall that @kbd{C-x * c} is synonymous with
10258@code{calc-quit} while inside the Calculator; this also truncates the 10258@code{calc-quit} while inside the Calculator; this also truncates the
10259undo history.) 10259undo history.)
10260 10260
@@ -11050,8 +11050,8 @@ calendar.
11050 11050
11051Some calendars attempt to mimic the historical situation by using the 11051Some calendars attempt to mimic the historical situation by using the
11052Gregorian calendar for recent dates and the Julian calendar for older 11052Gregorian calendar for recent dates and the Julian calendar for older
11053dates. The @code{cal} program in most Unix implementations does this, 11053dates. The @code{cal} program in most Unix implementations does this,
11054for example. While January 1 wasn't always the beginning of a calendar 11054for example. While January 1 wasn't always the beginning of a calendar
11055year, these hybrid calendars still use January 1 as the beginning of 11055year, these hybrid calendars still use January 1 as the beginning of
11056the year even for older dates. The customizable variable 11056the year even for older dates. The customizable variable
11057@code{calc-gregorian-switch} (@pxref{Customizing Calc}) can be set to 11057@code{calc-gregorian-switch} (@pxref{Customizing Calc}) can be set to
@@ -11405,7 +11405,7 @@ means a variable is random, and its value could
11405be anything but is ``probably'' within one 11405be anything but is ``probably'' within one
11406@texline @math{\sigma} 11406@texline @math{\sigma}
11407@infoline @var{sigma} 11407@infoline @var{sigma}
11408of the mean value @expr{x}. An interval 11408of the mean value @expr{x}. An interval
11409`@tfn{[}@var{a} @tfn{..@:} @var{b}@tfn{]}' means a 11409`@tfn{[}@var{a} @tfn{..@:} @var{b}@tfn{]}' means a
11410variable's value is unknown, but guaranteed to lie in the specified 11410variable's value is unknown, but guaranteed to lie in the specified
11411range. Error forms are statistical or ``average case'' approximations; 11411range. Error forms are statistical or ``average case'' approximations;
@@ -11862,7 +11862,7 @@ any portion of a vector or formula on the stack.
11862@cindex Moving stack entries 11862@cindex Moving stack entries
11863The command @kbd{C-x C-t} (@code{calc-transpose-lines}) will transpose 11863The command @kbd{C-x C-t} (@code{calc-transpose-lines}) will transpose
11864the stack object determined by the point with the stack object at the 11864the stack object determined by the point with the stack object at the
11865next higher level. For example, with @samp{10 20 30 40 50} on the 11865next higher level. For example, with @samp{10 20 30 40 50} on the
11866stack and the point on the line containing @samp{30}, @kbd{C-x C-t} 11866stack and the point on the line containing @samp{30}, @kbd{C-x C-t}
11867creates @samp{10 20 40 30 50}. More generally, @kbd{C-x C-t} acts on 11867creates @samp{10 20 40 30 50}. More generally, @kbd{C-x C-t} acts on
11868the stack objects determined by the current point (and mark) similar 11868the stack objects determined by the current point (and mark) similar
@@ -11871,7 +11871,7 @@ lines. With argument @var{n}, @kbd{C-x C-t} will move the stack object
11871at the level above the current point and move it past N other objects; 11871at the level above the current point and move it past N other objects;
11872for example, with @samp{10 20 30 40 50} on the stack and the point on 11872for example, with @samp{10 20 30 40 50} on the stack and the point on
11873the line containing @samp{30}, @kbd{C-u 2 C-x C-t} creates 11873the line containing @samp{30}, @kbd{C-u 2 C-x C-t} creates
11874@samp{10 40 20 30 50}. With an argument of 0, @kbd{C-x C-t} will switch 11874@samp{10 40 20 30 50}. With an argument of 0, @kbd{C-x C-t} will switch
11875the stack objects at the levels determined by the point and the mark. 11875the stack objects at the levels determined by the point and the mark.
11876 11876
11877@node Editing Stack Entries 11877@node Editing Stack Entries
@@ -12062,14 +12062,14 @@ the stack contains the sole number 5, but after @kbd{2 @key{RET} 3 K +},
12062the stack contains the arguments and the result: @samp{2 3 5}. 12062the stack contains the arguments and the result: @samp{2 3 5}.
12063 12063
12064With the exception of keyboard macros, this works for all commands that 12064With the exception of keyboard macros, this works for all commands that
12065take arguments off the stack. (To avoid potentially unpleasant behavior, 12065take arguments off the stack. (To avoid potentially unpleasant behavior,
12066a @kbd{K} prefix before a keyboard macro will be ignored. A @kbd{K} 12066a @kbd{K} prefix before a keyboard macro will be ignored. A @kbd{K}
12067prefix called @emph{within} the keyboard macro will still take effect.) 12067prefix called @emph{within} the keyboard macro will still take effect.)
12068As another example, @kbd{K a s} simplifies a formula, pushing the 12068As another example, @kbd{K a s} simplifies a formula, pushing the
12069simplified version of the formula onto the stack after the original 12069simplified version of the formula onto the stack after the original
12070formula (rather than replacing the original formula). Note that you 12070formula (rather than replacing the original formula). Note that you
12071could get the same effect by typing @kbd{@key{RET} a s}, copying the 12071could get the same effect by typing @kbd{@key{RET} a s}, copying the
12072formula and then simplifying the copy. One difference is that for a very 12072formula and then simplifying the copy. One difference is that for a very
12073large formula the time taken to format the intermediate copy in 12073large formula the time taken to format the intermediate copy in
12074@kbd{@key{RET} a s} could be noticeable; @kbd{K a s} would avoid this 12074@kbd{@key{RET} a s} could be noticeable; @kbd{K a s} would avoid this
12075extra work. 12075extra work.
@@ -13171,7 +13171,7 @@ Calc can display @expr{w}-bit integers using two's complement
13171notation, although this is most useful with the binary, octal and 13171notation, although this is most useful with the binary, octal and
13172hexadecimal display modes. This option is selected by using the 13172hexadecimal display modes. This option is selected by using the
13173@kbd{O} option prefix before setting the display radix, and a negative word 13173@kbd{O} option prefix before setting the display radix, and a negative word
13174size might be appropriate (@pxref{Binary Functions}). In two's 13174size might be appropriate (@pxref{Binary Functions}). In two's
13175complement notation, the integers in the (nearly) symmetric interval 13175complement notation, the integers in the (nearly) symmetric interval
13176from 13176from
13177@texline @math{-2^{w-1}} 13177@texline @math{-2^{w-1}}
@@ -13502,7 +13502,7 @@ date representation, this week goes from 2013-W01-1 (December 31,
13502All three ISO 8601 representations arrange the numbers from most 13502All three ISO 8601 representations arrange the numbers from most
13503significant to least significant; as well as being unambiguous 13503significant to least significant; as well as being unambiguous
13504representations, they are easy to sort since chronological order in 13504representations, they are easy to sort since chronological order in
13505this formats corresponds to lexicographical order. The hyphens are 13505this formats corresponds to lexicographical order. The hyphens are
13506sometimes omitted. 13506sometimes omitted.
13507 13507
13508The ISO 8601 standard uses a 24 hour clock; a particular time is 13508The ISO 8601 standard uses a 24 hour clock; a particular time is
@@ -13744,7 +13744,7 @@ order), then all other characters are ignored and this information
13744determines the date. Otherwise, all words and numbers are isolated 13744determines the date. Otherwise, all words and numbers are isolated
13745from the string; other characters are ignored. All words must be 13745from the string; other characters are ignored. All words must be
13746either month names or day-of-week names (the latter of which are 13746either month names or day-of-week names (the latter of which are
13747ignored). Names can be written in full or as three-letter 13747ignored). Names can be written in full or as three-letter
13748abbreviations. 13748abbreviations.
13749 13749
13750Large numbers, or numbers with @samp{+} or @samp{-} signs, 13750Large numbers, or numbers with @samp{+} or @samp{-} signs,
@@ -14205,9 +14205,9 @@ quotients are written using @code{\over} in @TeX{} mode (as in
14205@code{\choose} in @TeX{} mode (as in @code{@{a \choose b@}}) and 14205@code{\choose} in @TeX{} mode (as in @code{@{a \choose b@}}) and
14206@code{\binom} in @LaTeX{} mode (as in @code{\binom@{a@}@{b@}}). 14206@code{\binom} in @LaTeX{} mode (as in @code{\binom@{a@}@{b@}}).
14207Interval forms are written with @code{\ldots}, and error forms are 14207Interval forms are written with @code{\ldots}, and error forms are
14208written with @code{\pm}. Absolute values are written as in 14208written with @code{\pm}. Absolute values are written as in
14209@samp{|x + 1|}, and the floor and ceiling functions are written with 14209@samp{|x + 1|}, and the floor and ceiling functions are written with
14210@code{\lfloor}, @code{\rfloor}, etc. The words @code{\left} and 14210@code{\lfloor}, @code{\rfloor}, etc. The words @code{\left} and
14211@code{\right} are ignored when reading formulas in @TeX{} and @LaTeX{} 14211@code{\right} are ignored when reading formulas in @TeX{} and @LaTeX{}
14212modes. Both @code{inf} and @code{uinf} are written as @code{\infty}; 14212modes. Both @code{inf} and @code{uinf} are written as @code{\infty};
14213when read, @code{\infty} always translates to @code{inf}. 14213when read, @code{\infty} always translates to @code{inf}.
@@ -16290,7 +16290,7 @@ interpretations; the expression @samp{a/b*c} should be written
16290@samp{(a/b)*c} or @samp{a/(b*c)}, as appropriate. Without the 16290@samp{(a/b)*c} or @samp{a/(b*c)}, as appropriate. Without the
16291parentheses, Calc will interpret @samp{a/b*c} as @samp{a/(b*c)}, since 16291parentheses, Calc will interpret @samp{a/b*c} as @samp{a/(b*c)}, since
16292in algebraic entry Calc gives division a lower precedence than 16292in algebraic entry Calc gives division a lower precedence than
16293multiplication. (This is not standard across all computer languages, and 16293multiplication. (This is not standard across all computer languages, and
16294Calc may change the precedence depending on the language mode being used. 16294Calc may change the precedence depending on the language mode being used.
16295@xref{Language Modes}.) This default ordering can be changed by setting 16295@xref{Language Modes}.) This default ordering can be changed by setting
16296the customizable variable @code{calc-multiplication-has-precedence} to 16296the customizable variable @code{calc-multiplication-has-precedence} to
@@ -17456,7 +17456,7 @@ converting into a generalized time zone (see below).
17456The Lisp function @code{math-prev-weekday-in-month} is useful for 17456The Lisp function @code{math-prev-weekday-in-month} is useful for
17457daylight saving computations. This is an internal version of 17457daylight saving computations. This is an internal version of
17458the user-level @code{pwday} function described in the previous 17458the user-level @code{pwday} function described in the previous
17459section. It takes four arguments: The floating-point date value, 17459section. It takes four arguments: The floating-point date value,
17460the corresponding six-element date list, the day-of-month number, 17460the corresponding six-element date list, the day-of-month number,
17461and the weekday number (0--6). 17461and the weekday number (0--6).
17462 17462
@@ -20150,7 +20150,7 @@ that the counts in the result vector don't add up to the length of the
20150input vector.) 20150input vector.)
20151 20151
20152If no prefix is given, then you will be prompted for a vector which 20152If no prefix is given, then you will be prompted for a vector which
20153will be used to determine the bins. (If a positive integer is given at 20153will be used to determine the bins. (If a positive integer is given at
20154this prompt, it will be still treated as if it were given as a 20154this prompt, it will be still treated as if it were given as a
20155prefix.) Each bin will consist of the interval of numbers closest to 20155prefix.) Each bin will consist of the interval of numbers closest to
20156the corresponding number of this new vector; if the vector 20156the corresponding number of this new vector; if the vector
@@ -21636,7 +21636,7 @@ to
21636 21636
21637@noindent 21637@noindent
21638Every character not part of the sub-formula @samp{b} has been changed 21638Every character not part of the sub-formula @samp{b} has been changed
21639to a dot. (If the customizable variable 21639to a dot. (If the customizable variable
21640@code{calc-highlight-selections-with-faces} is non-@code{nil}, then the characters 21640@code{calc-highlight-selections-with-faces} is non-@code{nil}, then the characters
21641not part of the sub-formula are de-emphasized by using a less 21641not part of the sub-formula are de-emphasized by using a less
21642noticeable face instead of using dots. @pxref{Displaying Selections}.) 21642noticeable face instead of using dots. @pxref{Displaying Selections}.)
@@ -22837,12 +22837,12 @@ suitable numbers.
22837This section describes all simplifications that are performed by 22837This section describes all simplifications that are performed by
22838the algebraic simplification mode, which is the default simplification 22838the algebraic simplification mode, which is the default simplification
22839mode. If you have switched to a different simplification mode, you can 22839mode. If you have switched to a different simplification mode, you can
22840switch back with the @kbd{m A} command. Even in other simplification 22840switch back with the @kbd{m A} command. Even in other simplification
22841modes, the @kbd{a s} command will use these algebraic simplifications to 22841modes, the @kbd{a s} command will use these algebraic simplifications to
22842simplify the formula. 22842simplify the formula.
22843 22843
22844There is a variable, @code{AlgSimpRules}, in which you can put rewrites 22844There is a variable, @code{AlgSimpRules}, in which you can put rewrites
22845to be applied. Its use is analogous to @code{EvalRules}, 22845to be applied. Its use is analogous to @code{EvalRules},
22846but without the special restrictions. Basically, the simplifier does 22846but without the special restrictions. Basically, the simplifier does
22847@samp{@w{a r} AlgSimpRules} with an infinite repeat count on the whole 22847@samp{@w{a r} AlgSimpRules} with an infinite repeat count on the whole
22848expression being simplified, then it traverses the expression applying 22848expression being simplified, then it traverses the expression applying
@@ -22991,7 +22991,7 @@ function; for example, @expr{1/@tfn{sec}(x)} is simplified to
22991hyperbolic functions are also handled. 22991hyperbolic functions are also handled.
22992 22992
22993Trigonometric functions of their inverse functions are 22993Trigonometric functions of their inverse functions are
22994simplified. The expression @expr{@tfn{sin}(@tfn{arcsin}(x))} is 22994simplified. The expression @expr{@tfn{sin}(@tfn{arcsin}(x))} is
22995simplified to @expr{x}, and similarly for @code{cos} and @code{tan}. 22995simplified to @expr{x}, and similarly for @code{cos} and @code{tan}.
22996Trigonometric functions of inverses of different trigonometric 22996Trigonometric functions of inverses of different trigonometric
22997functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))} 22997functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))}
@@ -27646,7 +27646,7 @@ simplifications.
27646Most of the special limitations for @code{EvalRules} don't apply to 27646Most of the special limitations for @code{EvalRules} don't apply to
27647@code{AlgSimpRules}. Calc simply does an @kbd{a r AlgSimpRules} 27647@code{AlgSimpRules}. Calc simply does an @kbd{a r AlgSimpRules}
27648command with an infinite repeat count as the first step of algebraic 27648command with an infinite repeat count as the first step of algebraic
27649simplifications. It then applies its own built-in simplifications 27649simplifications. It then applies its own built-in simplifications
27650throughout the formula, and then repeats these two steps (along with 27650throughout the formula, and then repeats these two steps (along with
27651applying the default simplifications) until no further changes are 27651applying the default simplifications) until no further changes are
27652possible. 27652possible.
@@ -27883,7 +27883,7 @@ while typing @kbd{u c au/yr @key{RET}} produces
27883If the units you request are inconsistent with the original units, the 27883If the units you request are inconsistent with the original units, the
27884number will be converted into your units times whatever ``remainder'' 27884number will be converted into your units times whatever ``remainder''
27885units are left over. For example, converting @samp{55 mph} into acres 27885units are left over. For example, converting @samp{55 mph} into acres
27886produces @samp{6.08e-3 acre / (m s)}. Remainder units are expressed in terms of 27886produces @samp{6.08e-3 acre / (m s)}. Remainder units are expressed in terms of
27887``fundamental'' units like @samp{m} and @samp{s}, regardless of the 27887``fundamental'' units like @samp{m} and @samp{s}, regardless of the
27888input units. 27888input units.
27889 27889
@@ -28257,7 +28257,7 @@ is defined to be
28257@infoline @math{10 log10(P1/P0) dB}. 28257@infoline @math{10 log10(P1/P0) dB}.
28258@texline @math{10 \log_{10}(P_{1}/P_{0}) {\rm dB}}. 28258@texline @math{10 \log_{10}(P_{1}/P_{0}) {\rm dB}}.
28259(The factor of 10 is because a decibel, as its name implies, is 28259(The factor of 10 is because a decibel, as its name implies, is
28260one-tenth of a bel. The bel, named after Alexander Graham Bell, was 28260one-tenth of a bel. The bel, named after Alexander Graham Bell, was
28261considered to be too large of a unit and was effectively replaced by 28261considered to be too large of a unit and was effectively replaced by
28262the decibel.) If @math{F} is a field quantity with power 28262the decibel.) If @math{F} is a field quantity with power
28263@math{P=k F^2}, then a reference quantity of 28263@math{P=k F^2}, then a reference quantity of
@@ -28353,10 +28353,10 @@ capital @kbd{O} prefix is used.
28353@tindex lufquant 28353@tindex lufquant
28354The @kbd{l q} (@code{calc-lu-quant}) [@code{lupquant}] 28354The @kbd{l q} (@code{calc-lu-quant}) [@code{lupquant}]
28355command computes the power quantity corresponding to a given number of 28355command computes the power quantity corresponding to a given number of
28356logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the 28356logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the
28357reference level will be read from the top of the stack. (In an 28357reference level will be read from the top of the stack. (In an
28358algebraic formula, @code{lupquant} can be given an optional second 28358algebraic formula, @code{lupquant} can be given an optional second
28359argument which will be used for the reference level.) For example, 28359argument which will be used for the reference level.) For example,
28360@code{20 dB @key{RET} l q} will return @code{100 mW}; 28360@code{20 dB @key{RET} l q} will return @code{100 mW};
28361@code{20 dB @key{RET} 4 W @key{RET} O l q} will return @code{400 W}. 28361@code{20 dB @key{RET} 4 W @key{RET} O l q} will return @code{400 W}.
28362The @kbd{H l q} [@code{lufquant}] command behaves like @kbd{l q} but 28362The @kbd{H l q} [@code{lufquant}] command behaves like @kbd{l q} but
@@ -28469,7 +28469,7 @@ The @kbd{l *} (@code{calc-lu-times}) [@code{lupmul}] and @kbd{H l *}
28469[@code{lufmul}] commands will ``multiply'' a logarithmic unit by a 28469[@code{lufmul}] commands will ``multiply'' a logarithmic unit by a
28470number; the @kbd{l /} (@code{calc-lu-divide}) [@code{lupdiv}] and 28470number; the @kbd{l /} (@code{calc-lu-divide}) [@code{lupdiv}] and
28471@kbd{H l /} [@code{lufdiv}] commands will ``divide'' a logarithmic 28471@kbd{H l /} [@code{lufdiv}] commands will ``divide'' a logarithmic
28472unit by a number. Note that the reference quantities don't play a role 28472unit by a number. Note that the reference quantities don't play a role
28473in this arithmetic. 28473in this arithmetic.
28474 28474
28475@node Musical Notes 28475@node Musical Notes
@@ -28528,7 +28528,7 @@ example, @code{500 Hz} gets converted to
28528@tindex midi 28528@tindex midi
28529The @kbd{l m} (@code{calc-midi}) [@code{midi}] command converts either 28529The @kbd{l m} (@code{calc-midi}) [@code{midi}] command converts either
28530a frequency or a note given in scientific pitch notation to the 28530a frequency or a note given in scientific pitch notation to the
28531corresponding midi number. For example, @code{C_6} gets converted to 84 28531corresponding midi number. For example, @code{C_6} gets converted to 84
28532and @code{440 Hz} to 69. 28532and @code{440 Hz} to 69.
28533 28533
28534@kindex l f 28534@kindex l f
@@ -28536,7 +28536,7 @@ and @code{440 Hz} to 69.
28536@tindex freq 28536@tindex freq
28537The @kbd{l f} (@code{calc-freq}) [@code{freq}] command converts either 28537The @kbd{l f} (@code{calc-freq}) [@code{freq}] command converts either
28538either a midi number or a note given in scientific pitch notation to 28538either a midi number or a note given in scientific pitch notation to
28539the corresponding frequency. For example, @code{Asharp_2 + 30 cents} 28539the corresponding frequency. For example, @code{Asharp_2 + 30 cents}
28540gets converted to @code{118.578040134 Hz} and @code{55} to 28540gets converted to @code{118.578040134 Hz} and @code{55} to
28541@code{195.99771799 Hz}. 28541@code{195.99771799 Hz}.
28542 28542
@@ -29530,7 +29530,7 @@ will be computed for the surface.
29530 29530
29531Data values in the graph of a function are normally computed to a 29531Data values in the graph of a function are normally computed to a
29532precision of five digits, regardless of the current precision at the 29532precision of five digits, regardless of the current precision at the
29533time. This is usually more than adequate, but there are cases where 29533time. This is usually more than adequate, but there are cases where
29534it will not be. For example, plotting @expr{1 + x} with @expr{x} in the 29534it will not be. For example, plotting @expr{1 + x} with @expr{x} in the
29535interval @samp{[0 ..@: 1e-6]} will round all the data points down 29535interval @samp{[0 ..@: 1e-6]} will round all the data points down
29536to 1.0! Putting the command @samp{set precision @var{n}} in the 29536to 1.0! Putting the command @samp{set precision @var{n}} in the
@@ -29975,7 +29975,7 @@ register will be deleted from the Calc buffer.
29975It is possible to add additional stack entries to a register. The 29975It is possible to add additional stack entries to a register. The
29976command @kbd{M-x calc-append-to-register} will prompt for a register, 29976command @kbd{M-x calc-append-to-register} will prompt for a register,
29977then add the stack entries in the region to the end of the register 29977then add the stack entries in the region to the end of the register
29978contents. The command @kbd{M-x calc-prepend-to-register} will 29978contents. The command @kbd{M-x calc-prepend-to-register} will
29979similarly prompt for a register and add the stack entries in the 29979similarly prompt for a register and add the stack entries in the
29980region to the beginning of the register contents. Both commands take 29980region to the beginning of the register contents. Both commands take
29981@kbd{C-u} arguments, which will cause the region to be deleted after being 29981@kbd{C-u} arguments, which will cause the region to be deleted after being
@@ -30620,7 +30620,7 @@ like most Calc commands, but rather in regular editing buffers that
30620are visiting your own files. 30620are visiting your own files.
30621 30621
30622Calc will try to guess an appropriate language based on the major mode 30622Calc will try to guess an appropriate language based on the major mode
30623of the editing buffer. (@xref{Language Modes}.) If the current buffer is 30623of the editing buffer. (@xref{Language Modes}.) If the current buffer is
30624in @code{latex-mode}, for example, Calc will set its language to @LaTeX{}. 30624in @code{latex-mode}, for example, Calc will set its language to @LaTeX{}.
30625Similarly, Calc will use @TeX{} language for @code{tex-mode}, 30625Similarly, Calc will use @TeX{} language for @code{tex-mode},
30626@code{plain-tex-mode} and @code{context-mode}, C language for 30626@code{plain-tex-mode} and @code{context-mode}, C language for
@@ -30657,7 +30657,7 @@ on their own separate lines or in-line with the formula.
30657If you give a positive or negative numeric prefix argument, Calc 30657If you give a positive or negative numeric prefix argument, Calc
30658instead uses the current point as one end of the formula, and includes 30658instead uses the current point as one end of the formula, and includes
30659that many lines forward or backward (respectively, including the current 30659that many lines forward or backward (respectively, including the current
30660line). Explicit delimiters are not necessary in this case. 30660line). Explicit delimiters are not necessary in this case.
30661 30661
30662With a prefix argument of zero, Calc uses the current region (delimited 30662With a prefix argument of zero, Calc uses the current region (delimited
30663by point and mark) instead of formula delimiters. With a prefix 30663by point and mark) instead of formula delimiters. With a prefix
@@ -31189,7 +31189,7 @@ use @kbd{C-x * u} to update the buffer by hand.
31189@noindent 31189@noindent
31190The mode settings can be changed while Calc is in embedded mode, but 31190The mode settings can be changed while Calc is in embedded mode, but
31191by default they will revert to their original values when embedded mode 31191by default they will revert to their original values when embedded mode
31192is ended. However, the modes saved when the mode-recording mode is 31192is ended. However, the modes saved when the mode-recording mode is
31193@code{Save} (see below) and the modes in effect when the @kbd{m e} 31193@code{Save} (see below) and the modes in effect when the @kbd{m e}
31194(@code{calc-embedded-preserve-modes}) command is given 31194(@code{calc-embedded-preserve-modes}) command is given
31195will be preserved when embedded mode is ended. 31195will be preserved when embedded mode is ended.
@@ -31315,7 +31315,7 @@ on it in order to get it to notice the new annotation.
31315 31315
31316Two more mode-recording modes selectable by @kbd{m R} are available 31316Two more mode-recording modes selectable by @kbd{m R} are available
31317which are also available outside of Embedded mode. 31317which are also available outside of Embedded mode.
31318(@pxref{General Mode Commands}.) They are @code{Save}, in which mode 31318(@pxref{General Mode Commands}.) They are @code{Save}, in which mode
31319settings are recorded permanently in your Calc init file (the file given 31319settings are recorded permanently in your Calc init file (the file given
31320by the variable @code{calc-settings-file}, typically @file{~/.emacs.d/calc.el}) 31320by the variable @code{calc-settings-file}, typically @file{~/.emacs.d/calc.el})
31321rather than by annotating the current document, and no-recording 31321rather than by annotating the current document, and no-recording
@@ -35645,7 +35645,7 @@ formulas in normal language modes. If
35645@code{calc-multiplication-has-precedence} is non-@code{nil}, then 35645@code{calc-multiplication-has-precedence} is non-@code{nil}, then
35646multiplication has precedence (and, for certain obscure reasons, is 35646multiplication has precedence (and, for certain obscure reasons, is
35647right associative), and so for example @samp{a/b*c} will be interpreted 35647right associative), and so for example @samp{a/b*c} will be interpreted
35648as @samp{a/(b*c)}. If @code{calc-multiplication-has-precedence} is 35648as @samp{a/(b*c)}. If @code{calc-multiplication-has-precedence} is
35649@code{nil}, then multiplication has the same precedence as division 35649@code{nil}, then multiplication has the same precedence as division
35650(and, like division, is left associative), and so for example 35650(and, like division, is left associative), and so for example
35651@samp{a/b*c} will be interpreted as @samp{(a/b)*c}. The default value 35651@samp{a/b*c} will be interpreted as @samp{(a/b)*c}. The default value
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index ced59c0eee6..c0819b232a4 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -182,7 +182,7 @@ modify this GNU manual.''
182@end quotation 182@end quotation
183@end copying 183@end copying
184 184
185@comment Info directory entry for use by install-info. The indentation 185@comment Info directory entry for use by install-info. The indentation
186@comment here is by request from the FSF folks. 186@comment here is by request from the FSF folks.
187@dircategory Emacs editing modes 187@dircategory Emacs editing modes
188@direntry 188@direntry
@@ -1429,7 +1429,7 @@ continuation of the preceding @code{if}.
1429@findex abbrev-mode 1429@findex abbrev-mode
1430@cindex Abbrev mode 1430@cindex Abbrev mode
1431@ccmode{} uses Abbrev mode (@pxref{Abbrevs,,,@emacsman{}, @emacsmantitle{}}) 1431@ccmode{} uses Abbrev mode (@pxref{Abbrevs,,,@emacsman{}, @emacsmantitle{}})
1432to accomplish this. It's therefore turned on by default in all language 1432to accomplish this. It's therefore turned on by default in all language
1433modes except IDL mode, since CORBA IDL doesn't have any statements. 1433modes except IDL mode, since CORBA IDL doesn't have any statements.
1434@end deffn 1434@end deffn
1435 1435
@@ -2704,7 +2704,7 @@ for C code in GNU programs.
2704 2704
2705@item k&r 2705@item k&r
2706@cindex K&R style 2706@cindex K&R style
2707The classic Kernighan and Ritchie style for C code. If you're looking 2707The classic Kernighan and Ritchie style for C code. If you're looking
2708for the style used in the 2nd edition of their book ``The C 2708for the style used in the 2nd edition of their book ``The C
2709Programming Language'', then check out the @code{stroustrup} style. 2709Programming Language'', then check out the @code{stroustrup} style.
2710 2710
@@ -7591,7 +7591,7 @@ Started}.
7591@kindex C-M-\ 7591@kindex C-M-\
7592@emph{How do I reindent the whole file?} 7592@emph{How do I reindent the whole file?}
7593 7593
7594Visit the file and hit @kbd{C-x h} to mark the whole buffer. Then hit 7594Visit the file and hit @kbd{C-x h} to mark the whole buffer. Then hit
7595@kbd{C-M-\}. @xref{Indentation Commands}. 7595@kbd{C-M-\}. @xref{Indentation Commands}.
7596 7596
7597@item 7597@item
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index c3a91f7dab1..113029700ec 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -860,7 +860,7 @@ Thus @code{(cl-typep @var{object} 'null)} is equivalent to
860 860
861@item 861@item
862The type symbol @code{atom} represents all objects that are not cons 862The type symbol @code{atom} represents all objects that are not cons
863cells. Thus @code{(cl-typep @var{object} 'atom)} is equivalent to 863cells. Thus @code{(cl-typep @var{object} 'atom)} is equivalent to
864@code{(atom @var{object})}. 864@code{(atom @var{object})}.
865 865
866@item 866@item
@@ -2191,7 +2191,7 @@ term restricts the search to just the specified property. The
2191Properties,,,elisp}. 2191Properties,,,elisp}.
2192 2192
2193@item for @var{var} being the frames 2193@item for @var{var} being the frames
2194This clause iterates over all Emacs frames. The clause @code{screens} is 2194This clause iterates over all Emacs frames. The clause @code{screens} is
2195a synonym for @code{frames}. The frames are visited in 2195a synonym for @code{frames}. The frames are visited in
2196@code{next-frame} order starting from @code{selected-frame}. 2196@code{next-frame} order starting from @code{selected-frame}.
2197 2197
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi
index 104cde01227..b81c862c80f 100644
--- a/doc/misc/dbus.texi
+++ b/doc/misc/dbus.texi
@@ -1259,7 +1259,7 @@ object. Example:
1259@end lisp 1259@end lisp
1260 1260
1261With the @code{dbus-introspect} function it is possible to explore the 1261With the @code{dbus-introspect} function it is possible to explore the
1262interfaces of @samp{org.freedesktop.Hal} service. It offers the 1262interfaces of @samp{org.freedesktop.Hal} service. It offers the
1263interfaces @samp{org.freedesktop.Hal.Manager} for the object at the 1263interfaces @samp{org.freedesktop.Hal.Manager} for the object at the
1264path @samp{/org/freedesktop/Hal/Manager} as well as the interface 1264path @samp{/org/freedesktop/Hal/Manager} as well as the interface
1265@samp{org.freedesktop.Hal.Device} for all objects prefixed with the 1265@samp{org.freedesktop.Hal.Device} for all objects prefixed with the
@@ -1978,7 +1978,7 @@ If this variable is non-@code{nil}, D-Bus specific debug messages are raised.
1978Input parameters of @code{dbus-call-method}, 1978Input parameters of @code{dbus-call-method},
1979@code{dbus-call-method-asynchronously}, @code{dbus-send-signal}, 1979@code{dbus-call-method-asynchronously}, @code{dbus-send-signal},
1980@code{dbus-register-method}, @code{dbus-register-property} and 1980@code{dbus-register-method}, @code{dbus-register-property} and
1981@code{dbus-register-signal} are checked for correct D-Bus types. If 1981@code{dbus-register-signal} are checked for correct D-Bus types. If
1982there is a type mismatch, the Lisp error @code{wrong-type-argument} 1982there is a type mismatch, the Lisp error @code{wrong-type-argument}
1983@code{D-Bus @var{arg}} is raised. 1983@code{D-Bus @var{arg}} is raised.
1984 1984
diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi
index dca6266d8ae..27a5deb86d9 100644
--- a/doc/misc/ebrowse.texi
+++ b/doc/misc/ebrowse.texi
@@ -513,8 +513,8 @@ practical than to clutter up the buffer list with dozens of member
513buffers. 513buffers.
514 514
515If you want to display more than one member list at a time you can 515If you want to display more than one member list at a time you can
516@dfn{freeze} its member buffer. Freezing a member buffer prevents it 516@dfn{freeze} its member buffer. Freezing a member buffer prevents it
517from being overwritten the next time you display a member list. You can 517from being overwritten the next time you display a member list. You can
518toggle this buffer status at any time. 518toggle this buffer status at any time.
519 519
520Every member list display command in the tree buffer can be used with a 520Every member list display command in the tree buffer can be used with a
@@ -747,7 +747,7 @@ menu.
747@cindex unmark all 747@cindex unmark all
748@item M a 748@item M a
749Unmark all classes. With prefix argument @kbd{C-u}, mark all classes in 749Unmark all classes. With prefix argument @kbd{C-u}, mark all classes in
750the tree. Since this command operates on the whole buffer, it can also be 750the tree. Since this command operates on the whole buffer, it can also be
751found in the buffer's object menu. 751found in the buffer's object menu.
752@end table 752@end table
753 753
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index ae179832753..4ed3fc9d1df 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -1120,7 +1120,7 @@ number. It also holds a list of @code{ede-target} objects and a list
1120of sub projects, or more @code{ede-project} objects. 1120of sub projects, or more @code{ede-project} objects.
1121 1121
1122New project types must subclass @code{ede-project} to add special 1122New project types must subclass @code{ede-project} to add special
1123behavior. New project types also need to subclass @code{ede-target} to 1123behavior. New project types also need to subclass @code{ede-target} to
1124add specialty behavior. 1124add specialty behavior.
1125 1125
1126In this way, the common @ede{} interface is designed to work against 1126In this way, the common @ede{} interface is designed to work against
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index 749025c870b..ae107323d9c 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -135,10 +135,10 @@ The architecture and the interface are, of course, drastically different.
135 135
136When Ediff starts up, it displays a small control window, which accepts the 136When Ediff starts up, it displays a small control window, which accepts the
137Ediff commands, and two or three windows displaying the files to be compared 137Ediff commands, and two or three windows displaying the files to be compared
138or merged. The control window can be in its own small frame or it can be 138or merged. The control window can be in its own small frame or it can be
139part of a bigger frame that displays other buffers. In any case, it is 139part of a bigger frame that displays other buffers. In any case, it is
140important that the control window be active (i.e., be the one receiving the 140important that the control window be active (i.e., be the one receiving the
141keystrokes) when you use Ediff. You can switch to other Emacs buffers at 141keystrokes) when you use Ediff. You can switch to other Emacs buffers at
142will and even edit the files currently being compared with Ediff and then 142will and even edit the files currently being compared with Ediff and then
143switch back to Ediff at any time by activating the appropriate Emacs windows. 143switch back to Ediff at any time by activating the appropriate Emacs windows.
144 144
@@ -156,13 +156,13 @@ Compare two files.
156 156
157@item ediff-backup 157@item ediff-backup
158@findex ediff-backup 158@findex ediff-backup
159Compare a file with its backup. If there are several numerical backups, use 159Compare a file with its backup. If there are several numerical backups, use
160the latest. If the file is itself a backup, then compare it with its 160the latest. If the file is itself a backup, then compare it with its
161original. 161original.
162 162
163@item ediff-current-file 163@item ediff-current-file
164@findex ediff-current-file 164@findex ediff-current-file
165Compare the buffer with its file on disk. This function can be used as a 165Compare the buffer with its file on disk. This function can be used as a
166safe version of @code{revert-buffer}. 166safe version of @code{revert-buffer}.
167 167
168@item ediff-buffers 168@item ediff-buffers
@@ -220,14 +220,14 @@ Compare text visible in 2 windows line-by-line.
220@findex ediff-regions-wordwise 220@findex ediff-regions-wordwise
221Compare regions word-by-word. The regions can come from the same buffer 221Compare regions word-by-word. The regions can come from the same buffer
222and they can even overlap. You will be asked to specify the buffers that 222and they can even overlap. You will be asked to specify the buffers that
223contain the regions, which you want to compare. For each buffer, you will 223contain the regions, which you want to compare. For each buffer, you will
224also be asked to mark the regions to be compared. Pay attention to the 224also be asked to mark the regions to be compared. Pay attention to the
225messages that appear in the minibuffer. 225messages that appear in the minibuffer.
226 226
227@item ediff-regions-linewise 227@item ediff-regions-linewise
228@findex ediff-regions-linewise 228@findex ediff-regions-linewise
229Similar to @code{ediff-windows-linewise}, but compares the regions 229Similar to @code{ediff-windows-linewise}, but compares the regions
230line-by-line. See @code{ediff-windows-linewise} for more details. 230line-by-line. See @code{ediff-windows-linewise} for more details.
231 231
232@item ediff-revision 232@item ediff-revision
233@findex ediff-revision 233@findex ediff-revision
@@ -246,7 +246,7 @@ will be able to patch the files selectively. @xref{Session Groups}, for
246more details. 246more details.
247 247
248Since the patch might be in a buffer or a file, you will be asked which is 248Since the patch might be in a buffer or a file, you will be asked which is
249the case. To avoid this extra prompt, you can invoke this command with a 249the case. To avoid this extra prompt, you can invoke this command with a
250prefix argument. With an odd prefix argument, Ediff assumes the patch 250prefix argument. With an odd prefix argument, Ediff assumes the patch
251is in a file; with an even argument, a buffer is assumed. 251is in a file; with an even argument, a buffer is assumed.
252 252
@@ -280,7 +280,7 @@ This function would refuse to apply a multifile patch to a buffer. Use
280modified by the @code{patch} utility). 280modified by the @code{patch} utility).
281 281
282Since the patch might be in a buffer or a file, you will be asked which is 282Since the patch might be in a buffer or a file, you will be asked which is
283the case. To avoid this extra prompt, you can invoke this command with a 283the case. To avoid this extra prompt, you can invoke this command with a
284prefix argument. With an odd prefix argument, Ediff assumes the patch 284prefix argument. With an odd prefix argument, Ediff assumes the patch
285is in a file; with an even argument, a buffer is assumed. 285is in a file; with an even argument, a buffer is assumed.
286 286
@@ -683,7 +683,7 @@ again puts Ediff back in the original state.
683@vindex ediff-ignore-case-option 683@vindex ediff-ignore-case-option
684@vindex ediff-ignore-case-option3 684@vindex ediff-ignore-case-option3
685@vindex ediff-ignore-case 685@vindex ediff-ignore-case
686Toggle case sensitivity in the diff program. All diffs are recomputed. 686Toggle case sensitivity in the diff program. All diffs are recomputed.
687Case sensitivity is controlled by the variables 687Case sensitivity is controlled by the variables
688@code{ediff-ignore-case-option}, @code{ediff-ignore-case-option3}, 688@code{ediff-ignore-case-option}, @code{ediff-ignore-case-option3},
689and @code{ediff-ignore-case}, which are explained elsewhere. 689and @code{ediff-ignore-case}, which are explained elsewhere.
@@ -814,7 +814,7 @@ it. Typing @kbd{$$} again undoes this setting.
814@kindex $* 814@kindex $*
815When merging files with large number of differences, it is sometimes 815When merging files with large number of differences, it is sometimes
816convenient to be able to skip the difference regions for which you already 816convenient to be able to skip the difference regions for which you already
817decided which variant is most appropriate. Typing @kbd{$*} will accomplish 817decided which variant is most appropriate. Typing @kbd{$*} will accomplish
818precisely this. 818precisely this.
819 819
820To be more precise, this toggles the check for whether the current merge is 820To be more precise, this toggles the check for whether the current merge is
@@ -898,9 +898,9 @@ child Ediff session for comparing regions in buffers A, B, or
898C as follows. 898C as follows.
899 899
900First, you will be asked whether you want to compare the fine differences 900First, you will be asked whether you want to compare the fine differences
901between the currently highlighted buffers on a word-by-word basis. If you 901between the currently highlighted buffers on a word-by-word basis. If you
902accept, a child Ediff session will start using the currently highlighted 902accept, a child Ediff session will start using the currently highlighted
903regions. Ediff will let you step over the differences word-wise. 903regions. Ediff will let you step over the differences word-wise.
904 904
905If you reject the offer, you will be asked to select regions of your choice. 905If you reject the offer, you will be asked to select regions of your choice.
906 906
@@ -1054,9 +1054,9 @@ directories.
1054 1054
1055@cindex Directory difference buffer 1055@cindex Directory difference buffer
1056Sometimes it is desirable to copy some files from one directory to another 1056Sometimes it is desirable to copy some files from one directory to another
1057without exiting Ediff. The @emph{directory difference buffer}, which is 1057without exiting Ediff. The @emph{directory difference buffer}, which is
1058displayed by typing @kbd{D} as discussed above, can be used for this 1058displayed by typing @kbd{D} as discussed above, can be used for this
1059purpose. If a file is, say, in Ediff's Directory A, but is missing in 1059purpose. If a file is, say, in Ediff's Directory A, but is missing in
1060Ediff's Directory B (Ediff will refuse to override existing files), then 1060Ediff's Directory B (Ediff will refuse to override existing files), then
1061typing @kbd{C} or clicking mouse button 2 over that file (which must be 1061typing @kbd{C} or clicking mouse button 2 over that file (which must be
1062displayed in directory difference buffer) will copy that file from 1062displayed in directory difference buffer) will copy that file from
@@ -1130,7 +1130,7 @@ for hiding or, with @kbd{=m}, for further operations.
1130 1130
1131The comparison operations @kbd{==}, @kbd{=h}, and @kbd{=m} can recurse into 1131The comparison operations @kbd{==}, @kbd{=h}, and @kbd{=m} can recurse into
1132subdirectories to see if they have identical contents (so the user will not 1132subdirectories to see if they have identical contents (so the user will not
1133need to descend into those subdirectories manually). These commands ask the 1133need to descend into those subdirectories manually). These commands ask the
1134user whether or not to do a recursive descent. 1134user whether or not to do a recursive descent.
1135 1135
1136 1136
@@ -1221,7 +1221,7 @@ of Ediff.
1221@vindex ediff-after-setup-windows-hook 1221@vindex ediff-after-setup-windows-hook
1222These two hooks are called before and after Ediff sets up its window 1222These two hooks are called before and after Ediff sets up its window
1223configuration. These hooks are run each time Ediff rearranges windows to 1223configuration. These hooks are run each time Ediff rearranges windows to
1224its liking. This happens whenever it detects that the user changed the 1224its liking. This happens whenever it detects that the user changed the
1225windows setup. 1225windows setup.
1226 1226
1227@item ediff-suspend-hook 1227@item ediff-suspend-hook
@@ -1323,7 +1323,7 @@ Hooks run after setting up the registry for all active Ediff session.
1323@item ediff-before-session-group-setup-hook 1323@item ediff-before-session-group-setup-hook
1324@vindex ediff-before-session-group-setup-hook 1324@vindex ediff-before-session-group-setup-hook
1325Hooks run before setting up a control panel for a group of related Ediff 1325Hooks run before setting up a control panel for a group of related Ediff
1326sessions. Can be used, for example, to save window configuration to restore 1326sessions. Can be used, for example, to save window configuration to restore
1327later. 1327later.
1328@item ediff-after-session-group-setup-hook 1328@item ediff-after-session-group-setup-hook
1329@vindex ediff-after-session-group-setup-hook 1329@vindex ediff-after-session-group-setup-hook
@@ -1598,21 +1598,21 @@ problem.
1598@vindex ediff-ignore-case-option 1598@vindex ediff-ignore-case-option
1599@vindex ediff-ignore-case-option3 1599@vindex ediff-ignore-case-option3
1600@vindex ediff-ignore-case 1600@vindex ediff-ignore-case
1601Finally, Ediff can be told to ignore the case of the letters. This behavior 1601Finally, Ediff can be told to ignore the case of the letters. This behavior
1602can be toggled with @kbd{#c} and it is controlled with three variables: 1602can be toggled with @kbd{#c} and it is controlled with three variables:
1603@code{ediff-ignore-case-option}, @code{ediff-ignore-case-option3}, and 1603@code{ediff-ignore-case-option}, @code{ediff-ignore-case-option3}, and
1604@code{ediff-ignore-case}. 1604@code{ediff-ignore-case}.
1605 1605
1606The variable @code{ediff-ignore-case-option} specifies the option to pass 1606The variable @code{ediff-ignore-case-option} specifies the option to pass
1607to the diff program for comparing two files or buffers. For GNU 1607to the diff program for comparing two files or buffers. For GNU
1608@code{diff}, this option is @code{"-i"}. The variable 1608@code{diff}, this option is @code{"-i"}. The variable
1609@code{ediff-ignore-case-option3} specifies the option to pass to the 1609@code{ediff-ignore-case-option3} specifies the option to pass to the
1610@code{diff3} program in order to make it case-insensitive. GNU @code{diff3} 1610@code{diff3} program in order to make it case-insensitive. GNU @code{diff3}
1611does not have such an option, so when merging or comparing three files with 1611does not have such an option, so when merging or comparing three files with
1612this program, ignoring the letter case is not supported. 1612this program, ignoring the letter case is not supported.
1613 1613
1614The variable @code{ediff-ignore-case} controls whether Ediff starts out by 1614The variable @code{ediff-ignore-case} controls whether Ediff starts out by
1615ignoring letter case or not. It can be set in @file{.emacs} using 1615ignoring letter case or not. It can be set in @file{.emacs} using
1616@code{setq-default}. 1616@code{setq-default}.
1617 1617
1618When case sensitivity is toggled, all difference 1618When case sensitivity is toggled, all difference
@@ -1875,11 +1875,11 @@ Customize interface instead of using @code{setq} directly.)
1875@item ediff-coding-system-for-read 1875@item ediff-coding-system-for-read
1876@vindex ediff-coding-system-for-read 1876@vindex ediff-coding-system-for-read
1877This variable specifies the coding system to use when reading the output 1877This variable specifies the coding system to use when reading the output
1878that the programs @code{diff3} and @code{diff} send to Emacs. The default 1878that the programs @code{diff3} and @code{diff} send to Emacs. The default
1879is @code{raw-text}, and this should work fine in Unix and in most 1879is @code{raw-text}, and this should work fine in Unix and in most
1880cases under Windows NT/98/2000. There are @code{diff} programs 1880cases under Windows NT/98/2000. There are @code{diff} programs
1881for which the default option doesn't work under Windows. In such cases, 1881for which the default option doesn't work under Windows. In such cases,
1882@code{raw-text-dos} might work. If not, you will have to experiment with 1882@code{raw-text-dos} might work. If not, you will have to experiment with
1883other coding systems or use GNU diff. 1883other coding systems or use GNU diff.
1884 1884
1885@item ediff-patch-program 1885@item ediff-patch-program
@@ -1992,7 +1992,7 @@ the difference region from the ancestor buffer, if available
1992======= end 1992======= end
1993@end example 1993@end example
1994 1994
1995The above is the default template for the combined region. The user can 1995The above is the default template for the combined region. The user can
1996customize this template using the variable 1996customize this template using the variable
1997@code{ediff-combination-pattern}. 1997@code{ediff-combination-pattern}.
1998 1998
@@ -2000,11 +2000,11 @@ customize this template using the variable
2000The variable @code{ediff-combination-pattern} specifies the template that 2000The variable @code{ediff-combination-pattern} specifies the template that
2001determines how the combined merged region looks like. The template is 2001determines how the combined merged region looks like. The template is
2002represented as a list of the form @code{(STRING1 Symbol1 STRING2 Symbol2 2002represented as a list of the form @code{(STRING1 Symbol1 STRING2 Symbol2
2003STRING3 Symbol3 STRING4)}. The symbols here must be atoms of the form 2003STRING3 Symbol3 STRING4)}. The symbols here must be atoms of the form
2004@code{A}, @code{B}, or @code{Ancestor}. They determine the order in which 2004@code{A}, @code{B}, or @code{Ancestor}. They determine the order in which
2005the corresponding difference regions (from buffers A, B, and the ancestor 2005the corresponding difference regions (from buffers A, B, and the ancestor
2006buffer) are displayed in the merged region of buffer C@. The strings in the 2006buffer) are displayed in the merged region of buffer C@. The strings in the
2007template determine the text that separates the aforesaid regions. The 2007template determine the text that separates the aforesaid regions. The
2008default template is 2008default template is
2009 2009
2010@smallexample 2010@smallexample
@@ -2014,8 +2014,8 @@ default template is
2014 2014
2015@noindent 2015@noindent
2016(this is one long line) and the corresponding combined region is shown 2016(this is one long line) and the corresponding combined region is shown
2017above. The order in which the regions are shown (and the separator 2017above. The order in which the regions are shown (and the separator
2018strings) can be changed by changing the above template. It is even 2018strings) can be changed by changing the above template. It is even
2019possible to add or delete region specifiers in this template (although 2019possible to add or delete region specifiers in this template (although
2020the only possibly useful such modification seems to be the deletion of 2020the only possibly useful such modification seems to be the deletion of
2021the ancestor). 2021the ancestor).
@@ -2154,7 +2154,7 @@ change this variable.
2154@vindex ediff-merge-filename-prefix 2154@vindex ediff-merge-filename-prefix
2155When merge buffers are saved automatically as directed by 2155When merge buffers are saved automatically as directed by
2156@code{ediff-autostore-merges}, Ediff attaches a prefix to each file, as 2156@code{ediff-autostore-merges}, Ediff attaches a prefix to each file, as
2157specified by the variable @code{ediff-merge-filename-prefix}. The default 2157specified by the variable @code{ediff-merge-filename-prefix}. The default
2158is @code{merge_}, but this can be changed by the user. 2158is @code{merge_}, but this can be changed by the user.
2159 2159
2160@node Support for Version Control 2160@node Support for Version Control
@@ -2318,9 +2318,9 @@ unconditionally (e.g., by making @code{ediff-janitor} into one of these hooks).
2318 2318
2319@item ediff-keep-tmp-versions 2319@item ediff-keep-tmp-versions
2320@vindex ediff-keep-tmp-versions 2320@vindex ediff-keep-tmp-versions
2321Default is @code{nil}. If @code{t}, the versions of the files being 2321Default is @code{nil}. If @code{t}, the versions of the files being
2322compared or merged using operations such as @code{ediff-revision} or 2322compared or merged using operations such as @code{ediff-revision} or
2323@code{ediff-merge-revisions} are not deleted on exit. The normal action is 2323@code{ediff-merge-revisions} are not deleted on exit. The normal action is
2324to clean up and delete these version files. 2324to clean up and delete these version files.
2325 2325
2326@item ediff-grab-mouse 2326@item ediff-grab-mouse
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi
index c5ba6c8609f..411450cdc42 100644
--- a/doc/misc/efaq-w32.texi
+++ b/doc/misc/efaq-w32.texi
@@ -773,7 +773,7 @@ corrupted while unpacking and Emacs will not start.
773 773
774If it is still not working, send mail to the 774If it is still not working, send mail to the
775@email{help-gnu-emacs@@gnu.org} mailing list, describing what you've 775@email{help-gnu-emacs@@gnu.org} mailing list, describing what you've
776done, and what you are seeing. (The more information you send the more 776done, and what you are seeing. (The more information you send the more
777likely it is that you'll receive a helpful response.) 777likely it is that you'll receive a helpful response.)
778 778
779@node Virus 779@node Virus
@@ -1592,7 +1592,7 @@ smtpmail is loaded, then you'll need to change
1592@code{smtpmail-smtp-server}. 1592@code{smtpmail-smtp-server}.
1593 1593
1594If you are experiencing problems with sending large messages, check 1594If you are experiencing problems with sending large messages, check
1595the value of the variable @code{smtpmail-debug-info}. If it is 1595the value of the variable @code{smtpmail-debug-info}. If it is
1596non-@code{nil}, you should set it to @code{nil}: 1596non-@code{nil}, you should set it to @code{nil}:
1597 1597
1598@node Incoming mail with Rmail 1598@node Incoming mail with Rmail
@@ -1908,9 +1908,9 @@ See the following two URLs for details:
1908@cindex MSVC++, compiling within Emacs 1908@cindex MSVC++, compiling within Emacs
1909@findex compile 1909@findex compile
1910 1910
1911This is an app note on how to use Microsoft Visual C++ with Emacs. The 1911This is an app note on how to use Microsoft Visual C++ with Emacs. The
1912experiments done below were done with Emacs 19.34.1 on Windows 95, 1912experiments done below were done with Emacs 19.34.1 on Windows 95,
1913using Visual C++ 4.0 Standard Edition. Your mileage may vary. 1913using Visual C++ 4.0 Standard Edition. Your mileage may vary.
1914 1914
1915This writeup assumes minimal knowledge of Emacs hacking on the part of 1915This writeup assumes minimal knowledge of Emacs hacking on the part of
1916the reader. 1916the reader.
@@ -1939,14 +1939,14 @@ For all versions of Windows you can alternatively set the variables
1939just inside Emacs by using @code{setenv} calls in your init file. 1939just inside Emacs by using @code{setenv} calls in your init file.
1940@xref{Installing Emacs,,Where do I put my init file?}. 1940@xref{Installing Emacs,,Where do I put my init file?}.
1941 1941
1942You should now be able to compile from Emacs. Load a source file from 1942You should now be able to compile from Emacs. Load a source file from
1943a VC++ project. Type @kbd{M-x compile}. Replace the proposed command line 1943a VC++ project. Type @kbd{M-x compile}. Replace the proposed command line
1944with: 1944with:
1945@example 1945@example
1946nmake -f @var{ProjectName}.mak 1946nmake -f @var{ProjectName}.mak
1947@end example 1947@end example
1948 1948
1949You will find that this defaults to a debug build. You can change it 1949You will find that this defaults to a debug build. You can change it
1950to a release build with: 1950to a release build with:
1951@example 1951@example
1952nmake -f @var{ProjectName}.mak CFG="@var{ProjectName} - Win32 Release" 1952nmake -f @var{ProjectName}.mak CFG="@var{ProjectName} - Win32 Release"
@@ -2018,21 +2018,21 @@ click on @code{Customize...}. In the @code{Tools} tab, click on
2018@file{emacsclientw.exe} file in your Emacs bin directory, and 2018@file{emacsclientw.exe} file in your Emacs bin directory, and
2019select it. For arguments, use @option{+$(CurLine)} 2019select it. For arguments, use @option{+$(CurLine)}
2020@option{"$(FilePath)"} and for the directory use the @code{$(WkspDir)} 2020@option{"$(FilePath)"} and for the directory use the @code{$(WkspDir)}
2021(the quotes around FilePath handle paths with spaces in them). Set the 2021(the quotes around FilePath handle paths with spaces in them). Set the
2022Menu Text to say "Em&acs". The @option{+$(CurLine)} will set point in 2022Menu Text to say "Em&acs". The @option{+$(CurLine)} will set point in
2023Emacs to the same line as the cursor position in VC++. The ampersand 2023Emacs to the same line as the cursor position in VC++. The ampersand
2024in the word @code{Em&acs} allows you to select emacs from the keyboard. 2024in the word @code{Em&acs} allows you to select emacs from the keyboard.
2025(E is already used for the OLE control test container.) 2025(E is already used for the OLE control test container.)
2026 2026
2027You should now be able to go to any source file in your project. Then, 2027You should now be able to go to any source file in your project. Then,
2028use the pull-down menu @code{Tools->Emacs}. The active file in your 2028use the pull-down menu @code{Tools->Emacs}. The active file in your
2029VC++ IDE should now be front and center in Emacs, all ready to edit as 2029VC++ IDE should now be front and center in Emacs, all ready to edit as
2030you wish. If you use keystrokes to work the menus, try @kbd{Alt-T A} to 2030you wish. If you use keystrokes to work the menus, try @kbd{Alt-T A} to
2031move the file into Emacs. Binding this tool to a keystroke will be 2031move the file into Emacs. Binding this tool to a keystroke will be
2032left as an exercise for the student. 2032left as an exercise for the student.
2033 2033
2034If you have the option of saving files before running tools, make sure 2034If you have the option of saving files before running tools, make sure
2035this option is set. (I don't see it on VC++ 4.0.) 2035this option is set. (I don't see it on VC++ 4.0.)
2036 2036
2037@node Borland C++ Builder 2037@node Borland C++ Builder
2038@section Emacs and Borland C++ Builder 2038@section Emacs and Borland C++ Builder
@@ -2072,8 +2072,8 @@ Free native Windows binaries. For those that don't Cygwin may be an option.
2072From Jay Rogers: 2072From Jay Rogers:
2073 2073
2074Some versions of the perl debugger itself need to be patched to work 2074Some versions of the perl debugger itself need to be patched to work
2075with emacs. They are perl versions 5.001 and less, and version 2075with emacs. They are perl versions 5.001 and less, and version
20765.004_01. To fix, locate and change the code similar to the following 20765.004_01. To fix, locate and change the code similar to the following
2077code in lib/perl5db.pl 2077code in lib/perl5db.pl
2078@example 2078@example
2079 if (-e "/dev/tty") @{ 2079 if (-e "/dev/tty") @{
@@ -2273,7 +2273,7 @@ If you have general questions about Emacs, the best places to start
2273looking are @ref{Top,,, emacs, The GNU Emacs Manual}, and 2273looking are @ref{Top,,, emacs, The GNU Emacs Manual}, and
2274@ref{Top,,, efaq, the standard Emacs FAQ}. 2274@ref{Top,,, efaq, the standard Emacs FAQ}.
2275In Emacs, you can browse the manual using Info by typing @kbd{C-h r}, 2275In Emacs, you can browse the manual using Info by typing @kbd{C-h r},
2276and you can view the FAQ by typing @kbd{C-h C-f}. Other resources include: 2276and you can view the FAQ by typing @kbd{C-h C-f}. Other resources include:
2277 2277
2278@itemize 2278@itemize
2279@item @uref{https://www.gnu.org/software/emacs/, The Emacs website} 2279@item @uref{https://www.gnu.org/software/emacs/, The Emacs website}
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 73bc2442678..b342e73bb52 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -3692,7 +3692,7 @@ feature.
3692 3692
3693Emacs has a list of local variables that are known to be safe to set. 3693Emacs has a list of local variables that are known to be safe to set.
3694If a file tries to set any variable outside this list, it asks the 3694If a file tries to set any variable outside this list, it asks the
3695user to confirm whether the variables should be set. You can also tell 3695user to confirm whether the variables should be set. You can also tell
3696Emacs whether to allow the evaluation of Emacs Lisp code found at the 3696Emacs whether to allow the evaluation of Emacs Lisp code found at the
3697bottom of files by setting the variable @code{enable-local-eval}. 3697bottom of files by setting the variable @code{enable-local-eval}.
3698 3698
@@ -3835,7 +3835,7 @@ in the distribution.
3835To build Emacs from source for MS-DOS, see the instructions in the file 3835To build Emacs from source for MS-DOS, see the instructions in the file
3836@file{msdos/INSTALL} in the distribution. The DOS port builds and runs 3836@file{msdos/INSTALL} in the distribution. The DOS port builds and runs
3837on plain DOS, and also on all versions of MS-Windows from version 3.X 3837on plain DOS, and also on all versions of MS-Windows from version 3.X
3838onwards, including Windows XP and Vista. Pre-built binaries may be 3838onwards, including Windows XP and Vista. Pre-built binaries may be
3839available at 3839available at
3840@uref{https://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README} 3840@uref{https://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README}
3841 3841
@@ -4761,14 +4761,14 @@ these systems, you should configure @code{movemail} to use @code{flock}.
4761Ron Isaacson says: When you hit 4761Ron Isaacson says: When you hit
4762@kbd{r} to reply in Rmail, by default it Ccs all of the original 4762@kbd{r} to reply in Rmail, by default it Ccs all of the original
4763recipients (everyone on the original @samp{To} and @samp{CC} 4763recipients (everyone on the original @samp{To} and @samp{CC}
4764lists). With a prefix argument (i.e., typing @kbd{C-u} before @kbd{r}), 4764lists). With a prefix argument (i.e., typing @kbd{C-u} before @kbd{r}),
4765it replies only to the sender. However, going through the whole 4765it replies only to the sender. However, going through the whole
4766@kbd{C-u} business every time you want to reply is a pain. This is the 4766@kbd{C-u} business every time you want to reply is a pain. This is the
4767best fix I've been able to come up with: 4767best fix I've been able to come up with:
4768 4768
4769@lisp 4769@lisp
4770(defun rmail-reply-t () 4770(defun rmail-reply-t ()
4771 "Reply only to the sender of the current message. (See rmail-reply.)" 4771 "Reply only to the sender of the current message. (See rmail-reply.)"
4772 (interactive) 4772 (interactive)
4773 (rmail-reply t)) 4773 (rmail-reply t))
4774 4774
diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi
index 85fef6be553..ba7aeb448e5 100644
--- a/doc/misc/eglot.texi
+++ b/doc/misc/eglot.texi
@@ -1313,7 +1313,7 @@ based on compile-time information.
1313 1313
1314The language server reports the regions by periodically sending a 1314The language server reports the regions by periodically sending a
1315@code{textDocument/inactiveRegions} notification for each managed 1315@code{textDocument/inactiveRegions} notification for each managed
1316buffer (@pxref{Eglot and Buffers}). Normally, unknown server 1316buffer (@pxref{Eglot and Buffers}). Normally, unknown server
1317notifications are ignored by Eglot, but we're going change that. 1317notifications are ignored by Eglot, but we're going change that.
1318 1318
1319Both the announcement of the client capability and the handling of the 1319Both the announcement of the client capability and the handling of the
@@ -1353,7 +1353,7 @@ called @code{eglot-clangd}, so that the method would be simplified:
1353However, this would require that users tweak 1353However, this would require that users tweak
1354@code{eglot-server-program} to tell Eglot instantiate such sub-classes 1354@code{eglot-server-program} to tell Eglot instantiate such sub-classes
1355instead of the generic @code{eglot-lsp-server} (@pxref{Setting Up LSP 1355instead of the generic @code{eglot-lsp-server} (@pxref{Setting Up LSP
1356Servers}). For the purposes of this particular demonstration, we're 1356Servers}). For the purposes of this particular demonstration, we're
1357going to use the more hacky regexp route which doesn't require that. 1357going to use the more hacky regexp route which doesn't require that.
1358 1358
1359Note, however, that detecting server versions before announcing new 1359Note, however, that detecting server versions before announcing new
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index ef7ea614f8b..22bef4739a4 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -379,7 +379,7 @@ This variable is @code{resize} by default, which means that images
379that are bigger than the Emacs window are resized so that they fit. 379that are bigger than the Emacs window are resized so that they fit.
380If you set this to @code{nil}, large images are not displayed in 380If you set this to @code{nil}, large images are not displayed in
381Emacs, but can instead be displayed externally (e.g., with 381Emacs, but can instead be displayed externally (e.g., with
382@samp{ImageMagick} or @samp{xv}). Setting this variable to @code{t} 382@samp{ImageMagick} or @samp{xv}). Setting this variable to @code{t}
383disables this check and makes the library display all inline images as 383disables this check and makes the library display all inline images as
384inline, regardless of their size. 384inline, regardless of their size.
385 385
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index cecde5f3232..109dbd0f0ce 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -203,11 +203,11 @@ different Emacs versions.
203@cindex interactive testing 203@cindex interactive testing
204 204
205@findex ert 205@findex ert
206You can run the tests that are currently defined in your Emacs with 206You can run the tests that are currently defined in your Emacs with the
207the command @kbd{M-x ert @key{RET} t @key{RET}}. (For an 207command @kbd{M-x ert @key{RET} t @key{RET}}. (For an explanation of the
208explanation of the @code{t} argument, @pxref{Test Selectors}.) ERT will pop 208@code{t} argument, @pxref{Test Selectors}.) ERT will pop up a new
209up a new buffer, the ERT results buffer, showing the results of the 209buffer, the ERT results buffer, showing the results of the tests run.
210tests run. It looks like this: 210It looks like this:
211 211
212@example 212@example
213Selector: t 213Selector: t
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index eb32b1fd5f7..f8abb3d860a 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -344,7 +344,7 @@ form} or in @dfn{Lisp form}.
344 344
345You can use the semicolon (@code{;}) to separate multiple command 345You can use the semicolon (@code{;}) to separate multiple command
346invocations on a single line, executing each in turn. You can also 346invocations on a single line, executing each in turn. You can also
347separate commands with @code{&&} or @code{||}. When using @code{&&}, 347separate commands with @code{&&} or @code{||}. When using @code{&&},
348Eshell will execute the second command only if the first succeeds 348Eshell will execute the second command only if the first succeeds
349(i.e.@: has an exit status of 0); with @code{||}, Eshell will execute 349(i.e.@: has an exit status of 0); with @code{||}, Eshell will execute
350the second command only if the first fails. 350the second command only if the first fails.
@@ -1995,7 +1995,7 @@ Matches one or more copies of the glob pattern @var{x}. Thus,
1995etc. 1995etc.
1996 1996
1997@item @var{x}~@var{y} 1997@item @var{x}~@var{y}
1998Matches anything that matches the pattern @var{x} but not @var{y}. For 1998Matches anything that matches the pattern @var{x} but not @var{y}. For
1999example, @samp{[[:digit:]]#~4?} matches @file{1} and @file{12}, but 1999example, @samp{[[:digit:]]#~4?} matches @file{1} and @file{12}, but
2000not @file{42}. Note that unlike in Zsh, only a single @samp{~} 2000not @file{42}. Note that unlike in Zsh, only a single @samp{~}
2001operator can be used in a pattern, and it cannot be inside of a group 2001operator can be used in a pattern, and it cannot be inside of a group
@@ -2416,9 +2416,9 @@ Adds the text passed to it to the clipboard.
2416@findex eshell-close-target 2416@findex eshell-close-target
2417You can, of course, define your own virtual targets. These are entries 2417You can, of course, define your own virtual targets. These are entries
2418in @code{eshell-virtual-targets} with the form @samp{(@var{filename} 2418in @code{eshell-virtual-targets} with the form @samp{(@var{filename}
2419@var{output-function} @var{pass-mode})}. The first element, 2419@var{output-function} @var{pass-mode})}. The first element,
2420@var{filename}, is the device name, usually of the form 2420@var{filename}, is the device name, usually of the form
2421@samp{"/dev/@var{name}"}. The second, @var{output-function}, should be a 2421@samp{"/dev/@var{name}"}. The second, @var{output-function}, should be a
2422function: Eshell will repeatedly call it with the redirected output. 2422function: Eshell will repeatedly call it with the redirected output.
2423This argument can also be an @code{eshell-generic-target} instance. In 2423This argument can also be an @code{eshell-generic-target} instance. In
2424this case, Eshell will repeatedly call the generic function 2424this case, Eshell will repeatedly call the generic function
@@ -2547,7 +2547,7 @@ for the built-in functions and some common external commands, and you
2547can define your own for any command. 2547can define your own for any command.
2548 2548
2549@kindex TAB 2549@kindex TAB
2550Eshell completion also works for Lisp forms and glob patterns. If the 2550Eshell completion also works for Lisp forms and glob patterns. If the
2551point is on a Lisp form, then @key{TAB} will behave similarly to 2551point is on a Lisp form, then @key{TAB} will behave similarly to
2552completion in @code{elisp-mode} and @code{lisp-interaction-mode}. For 2552completion in @code{elisp-mode} and @code{lisp-interaction-mode}. For
2553glob patterns, the pattern will be removed from the input line, and 2553glob patterns, the pattern will be removed from the input line, and
@@ -2985,7 +2985,7 @@ Also a new @command{less} buffer was created with nothing in it@dots{}
2985If @command{less.exe} is invoked from the Eshell command line, the 2985If @command{less.exe} is invoked from the Eshell command line, the
2986expected output is written to the buffer. 2986expected output is written to the buffer.
2987 2987
2988Note that this happens on NT-Emacs 20.6.1 on Windows 2000. The term.el 2988Note that this happens on NT-Emacs 20.6.1 on Windows 2000. The term.el
2989package and the supplied shell both use the @command{cmdproxy} program 2989package and the supplied shell both use the @command{cmdproxy} program
2990for running shells. 2990for running shells.
2991 2991
diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi
index 615ab76c326..0a16f2561f7 100644
--- a/doc/misc/eudc.texi
+++ b/doc/misc/eudc.texi
@@ -131,7 +131,7 @@ Quoted from RFC 1777:
131@quotation 131@quotation
132[LDAP] is designed to provide access to the X.500 Directory while not 132[LDAP] is designed to provide access to the X.500 Directory while not
133incurring the resource requirements of the Directory Access Protocol 133incurring the resource requirements of the Directory Access Protocol
134(DAP). This protocol is specifically targeted at simple management 134(DAP). This protocol is specifically targeted at simple management
135applications and browser applications that provide simple read/write 135applications and browser applications that provide simple read/write
136interactive access to the X.500 Directory, and is intended to be a 136interactive access to the X.500 Directory, and is intended to be a
137complement to the DAP itself. 137complement to the DAP itself.
@@ -564,7 +564,7 @@ to customize in this process.
564 564
565Before doing any query you will need to set the directory server. You 565Before doing any query you will need to set the directory server. You
566need to specify the name of the host machine running the server software 566need to specify the name of the host machine running the server software
567and the protocol to use. If you do not set the server in any fashion, 567and the protocol to use. If you do not set the server in any fashion,
568EUDC will ask you for one when you make your first query. 568EUDC will ask you for one when you make your first query.
569 569
570You can set the server by selecting one from your hotlist of servers 570You can set the server by selecting one from your hotlist of servers
@@ -579,9 +579,9 @@ buffer will be displayed where you can edit the search base and other
579parameters for the server. 579parameters for the server.
580 580
581@defvar eudc-server 581@defvar eudc-server
582The name or IP address of the remote directory server. A TCP port number 582The name or IP address of the remote directory server. A TCP port number
583may be specified by appending a colon and a number to the name of the 583may be specified by appending a colon and a number to the name of the
584server. You will not need this unless your server runs on a port other 584server. You will not need this unless your server runs on a port other
585than the default (which depends on the protocol). 585than the default (which depends on the protocol).
586If the directory server resides on your own computer (which is the case 586If the directory server resides on your own computer (which is the case
587if you use the BBDB back end) then @samp{localhost} is a reasonable value but 587if you use the BBDB back end) then @samp{localhost} is a reasonable value but
@@ -609,12 +609,12 @@ attributes you want to see, if different from the server defaults.
609@defvar eudc-default-return-attributes 609@defvar eudc-default-return-attributes
610A list of the default attributes to extract from directory entries. If 610A list of the default attributes to extract from directory entries. If
611set to the symbol @code{all} then all available attributes are 611set to the symbol @code{all} then all available attributes are
612returned. A value of @code{nil}, the default, means to return the 612returned. A value of @code{nil}, the default, means to return the
613default attributes as configured in the server. 613default attributes as configured in the server.
614@end defvar 614@end defvar
615 615
616The server may return several matching records to a query. Some of the 616The server may return several matching records to a query. Some of the
617records may however not contain all the attributes you requested. You can 617records may however not contain all the attributes you requested. You can
618discard those records. 618discard those records.
619 619
620@defopt eudc-strict-return-matches 620@defopt eudc-strict-return-matches
@@ -626,32 +626,32 @@ attributes are ignored. Default is @code{t}.
626@subsection Duplicate Attributes 626@subsection Duplicate Attributes
627 627
628Directory standards may authorize different instances of the same 628Directory standards may authorize different instances of the same
629attribute in a record. For instance the record of a person may contain 629attribute in a record. For instance the record of a person may contain
630several email fields containing different email addresses, in which 630several email fields containing different email addresses, in which
631case EUDC will consider the attribute duplicated. 631case EUDC will consider the attribute duplicated.
632 632
633EUDC has several methods to deal with duplicated attributes. The 633EUDC has several methods to deal with duplicated attributes. The
634available methods are: 634available methods are:
635 635
636@table @code 636@table @code
637@item list 637@item list
638Makes a list with the different values of the duplicate attribute. The 638Makes a list with the different values of the duplicate attribute. The
639record is returned with only one instance of the attribute with a list 639record is returned with only one instance of the attribute with a list
640of all the different values as a value. This is the default method that 640of all the different values as a value. This is the default method that
641is used to handle duplicate fields for which no other method has been 641is used to handle duplicate fields for which no other method has been
642specified. 642specified.
643@item first 643@item first
644Discards all the duplicate values of the field keeping only the first 644Discards all the duplicate values of the field keeping only the first
645one. 645one.
646@item concat 646@item concat
647Concatenates the different values using a newline as a separator. The 647Concatenates the different values using a newline as a separator. The
648record keeps only one instance of the field the value of which is a 648record keeps only one instance of the field the value of which is a
649single multi-line string. 649single multi-line string.
650@item duplicate 650@item duplicate
651Duplicates the whole record into as many instances as there are different 651Duplicates the whole record into as many instances as there are different
652values for the field. This is the default for the email field. Thus a 652values for the field. This is the default for the email field. Thus a
653record containing 3 different email addresses is duplicated into three 653record containing 3 different email addresses is duplicated into three
654different records each having a single email address. This is 654different records each having a single email address. This is
655particularly useful in combination with @code{select} as the method to 655particularly useful in combination with @code{select} as the method to
656handle multiple matches in inline expansion queries (@pxref{Inline Query 656handle multiple matches in inline expansion queries (@pxref{Inline Query
657Expansion}) because you are presented with the 3 addresses in a 657Expansion}) because you are presented with the 3 addresses in a
@@ -667,7 +667,7 @@ A method to handle entries containing duplicate attributes. This is
667either an alist of elements @code{(@var{attr} . @var{method})}, or a symbol 667either an alist of elements @code{(@var{attr} . @var{method})}, or a symbol
668@var{method}. The alist form of the variable associates a method to an 668@var{method}. The alist form of the variable associates a method to an
669individual attribute name; the second form specifies a method applicable 669individual attribute name; the second form specifies a method applicable
670to all attribute names. Available methods are: @code{list}, 670to all attribute names. Available methods are: @code{list},
671@code{first}, @code{concat}, and @code{duplicate} (see above). The default is 671@code{first}, @code{concat}, and @code{duplicate} (see above). The default is
672@code{list}. 672@code{list}.
673@end defvar 673@end defvar
@@ -678,8 +678,8 @@ to all attribute names. Available methods are: @code{list},
678@section Query Form 678@section Query Form
679 679
680The simplest way to query your directory server is to use the query 680The simplest way to query your directory server is to use the query
681form. You display the query form with the @samp{Query with Form} menu 681form. You display the query form with the @samp{Query with Form} menu
682item or by invoking the command @kbd{M-x eudc-query-form}. The attribute 682item or by invoking the command @kbd{M-x eudc-query-form}. The attribute
683names presented in this form are defined by the 683names presented in this form are defined by the
684@code{eudc-query-form-attributes} variable (unless a non-@code{nil} 684@code{eudc-query-form-attributes} variable (unless a non-@code{nil}
685argument is supplied to @code{eudc-query-form}). 685argument is supplied to @code{eudc-query-form}).
@@ -717,7 +717,7 @@ names for directory attribute names. This variable is ignored if
717 717
718@defvar eudc-user-attribute-names-alist 718@defvar eudc-user-attribute-names-alist
719This is an alist of user-defined names for the directory attributes used in 719This is an alist of user-defined names for the directory attributes used in
720query/response forms. Prompt strings for attributes that are not in this 720query/response forms. Prompt strings for attributes that are not in this
721alist are derived by splitting the attribute name at underscores and 721alist are derived by splitting the attribute name at underscores and
722capitalizing the individual words. 722capitalizing the individual words.
723@end defvar 723@end defvar
@@ -893,7 +893,7 @@ against the @code{cn} attribute of LDAP servers:
893 893
894@defvar eudc-inline-expansion-format 894@defvar eudc-inline-expansion-format
895This variable lets you control exactly what is inserted into the 895This variable lets you control exactly what is inserted into the
896buffer upon an inline expansion request. It can be set to @code{nil}, 896buffer upon an inline expansion request. It can be set to @code{nil},
897to a function, or to a list. Default is @code{nil}. 897to a function, or to a list. Default is @code{nil}.
898 898
899When the value is a list, the first element is a string passed to 899When the value is a list, the first element is a string passed to
@@ -926,7 +926,7 @@ any of the formats:
926 926
927Email address specifications, as are generated by inline expansion, 927Email address specifications, as are generated by inline expansion,
928need to comply with RFC 5322 in order to be useful in email 928need to comply with RFC 5322 in order to be useful in email
929messages. When an invalid address specification is present in an email 929messages. When an invalid address specification is present in an email
930message header, the message is likely to be rejected by a receiving 930message header, the message is likely to be rejected by a receiving
931MTA. It is hence recommended to switch old configurations, which use 931MTA. It is hence recommended to switch old configurations, which use
932a list value, to the new @code{nil}, or function value type since it 932a list value, to the new @code{nil}, or function value type since it
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 6b605a6c095..af9639ebb5a 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -194,7 +194,7 @@ The following statuses are defined:
194@item [@var{nerrors} @var{nwarnings} ...] 194@item [@var{nerrors} @var{nwarnings} ...]
195@tab Normal operation. @var{nerrors} and @var{nwarnings} are, respectively, 195@tab Normal operation. @var{nerrors} and @var{nwarnings} are, respectively,
196the total number of errors and warnings found during the last buffer 196the total number of errors and warnings found during the last buffer
197check, for all backends. They may be followed by other totals for 197check, for all backends. They may be followed by other totals for
198other types of diagnostics (@pxref{Flymake error types}). 198other types of diagnostics (@pxref{Flymake error types}).
199 199
200@item @code{Wait} 200@item @code{Wait}
diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi
index e0221d90fd9..226445ff9a0 100644
--- a/doc/misc/forms.texi
+++ b/doc/misc/forms.texi
@@ -298,9 +298,9 @@ Similar to @code{forms-next-field} but moves backwards.
298@item M-x forms-save-buffer 298@item M-x forms-save-buffer
299@kindex C-x C-s 299@kindex C-x C-s
300@itemx C-x C-s 300@itemx C-x C-s
301Forms mode replacement for @code{save-buffer}. When executed in the 301Forms mode replacement for @code{save-buffer}. When executed in the
302forms buffer it will save the contents of the (modified) data buffer 302forms buffer it will save the contents of the (modified) data buffer
303instead. In Forms mode this function will be bound to @kbd{C-x C-s}. 303instead. In Forms mode this function will be bound to @kbd{C-x C-s}.
304 304
305@findex forms-print 305@findex forms-print
306@item M-x forms-print 306@item M-x forms-print
@@ -374,10 +374,10 @@ string @code{forms-field-sep}, which is @code{"\t"} (a Tab) by default.
374If the format of the data file is not suitable enough you can define the 374If the format of the data file is not suitable enough you can define the
375filter functions @code{forms-read-file-filter} and 375filter functions @code{forms-read-file-filter} and
376@code{forms-write-file-filter}. @code{forms-read-file-filter} is called 376@code{forms-write-file-filter}. @code{forms-read-file-filter} is called
377when the data file is read from disk into the data buffer. It operates 377when the data file is read from disk into the data buffer. It operates
378on the data buffer, ignoring read-only protections. When the data file 378on the data buffer, ignoring read-only protections. When the data file
379is saved to disk @code{forms-write-file-filter} is called to cancel the 379is saved to disk @code{forms-write-file-filter} is called to cancel the
380effects of @code{forms-read-file-filter}. After being saved, 380effects of @code{forms-read-file-filter}. After being saved,
381@code{forms-read-file-filter} is called again to prepare the data buffer 381@code{forms-read-file-filter} is called again to prepare the data buffer
382for further processing. 382for further processing.
383 383
@@ -488,7 +488,7 @@ The default value is @code{"\^k"}, the character Control-K@. Example:
488@findex forms-read-file-filter 488@findex forms-read-file-filter
489@item forms-read-file-filter 489@item forms-read-file-filter
490This variable holds the name of a function to be called after the data 490This variable holds the name of a function to be called after the data
491file has been read in. This can be used to transform the contents of the 491file has been read in. This can be used to transform the contents of the
492data file into a format more suitable for forms processing. 492data file into a format more suitable for forms processing.
493If it is @code{nil}, no function is called. For example, to maintain a 493If it is @code{nil}, no function is called. For example, to maintain a
494gzipped database: 494gzipped database:
@@ -533,7 +533,7 @@ modified, just before updating the Forms data file. If it is
533@findex forms-insert-after 533@findex forms-insert-after
534@item forms-insert-after 534@item forms-insert-after
535If this variable is not @code{nil}, new records are created @emph{after} the 535If this variable is not @code{nil}, new records are created @emph{after} the
536current record. Also, upon visiting a file, the initial position will be 536current record. Also, upon visiting a file, the initial position will be
537at the last record instead of the first one. 537at the last record instead of the first one.
538 538
539@findex forms-check-number-of-fields 539@findex forms-check-number-of-fields
@@ -798,8 +798,8 @@ newline in a field, while @code{forms-multi-line} was @code{nil}.
798 798
799@item Field separator occurs in record - update refused! 799@item Field separator occurs in record - update refused!
800The current record contains the field separator string inside one of the 800The current record contains the field separator string inside one of the
801fields. It can not be written back to the data file, for it would 801fields. It can not be written back to the data file, for it would
802corrupt it. Probably you inserted the field separator string in a field. 802corrupt it. Probably you inserted the field separator string in a field.
803 803
804@item Record number @var{xx} out of range 1..@var{yy} 804@item Record number @var{xx} out of range 1..@var{yy}
805A jump was made to non-existing record @var{xx}. @var{yy} denotes the 805A jump was made to non-existing record @var{xx}. @var{yy} denotes the
@@ -813,7 +813,7 @@ An attempt was made to enable edit mode on a file that has been write
813protected. 813protected.
814 814
815@item Search failed: @var{regexp} 815@item Search failed: @var{regexp}
816The @var{regexp} could not be found in the data file. Forward searching 816The @var{regexp} could not be found in the data file. Forward searching
817is done from the current location until the end of the file, then 817is done from the current location until the end of the file, then
818retrying from the beginning of the file until the current location. 818retrying from the beginning of the file until the current location.
819Backward searching is done from the current location until the beginning 819Backward searching is done from the current location until the beginning
@@ -828,7 +828,7 @@ Forms mode's idea of the number of records has been adjusted to the
828number of records actually present in the data file. 828number of records actually present in the data file.
829 829
830@item Problem saving buffers? 830@item Problem saving buffers?
831An error occurred while saving the data file buffer. Most likely, Emacs 831An error occurred while saving the data file buffer. Most likely, Emacs
832did ask to confirm deleting the buffer because it had been modified, and 832did ask to confirm deleting the buffer because it had been modified, and
833you said ``no''. 833you said ``no''.
834@end table 834@end table
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 33c9f3bea81..a773d48417c 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -115,7 +115,7 @@ development version that became Gnus 5.12.
115* FAQ 2-4:: My group buffer becomes a bit crowded, is there a way to 115* FAQ 2-4:: My group buffer becomes a bit crowded, is there a way to
116 sort my groups into categories so I can easier browse through 116 sort my groups into categories so I can easier browse through
117 them? 117 them?
118* FAQ 2-5:: How to manually sort the groups in Group buffer? How to 118* FAQ 2-5:: How to manually sort the groups in Group buffer? How to
119 sort the groups in a topic? 119 sort the groups in a topic?
120@end menu 120@end menu
121 121
@@ -146,7 +146,7 @@ what's this?
146@subsubheading Answer 146@subsubheading Answer
147 147
148You get the message described in the q/a pair above while 148You get the message described in the q/a pair above while
149starting Gnus, right? It's another symptom for the same 149starting Gnus, right? It's another symptom for the same
150problem, so read the answer above. 150problem, so read the answer above.
151 151
152@node FAQ 2-3 152@node FAQ 2-3
@@ -190,7 +190,7 @@ groups nicely indented.
190@node FAQ 2-5 190@node FAQ 2-5
191@subsubheading Question 2.5 191@subsubheading Question 2.5
192 192
193How to manually sort the groups in Group buffer? How to 193How to manually sort the groups in Group buffer? How to
194sort the groups in a topic? 194sort the groups in a topic?
195 195
196@subsubheading Answer 196@subsubheading Answer
@@ -583,7 +583,7 @@ each POP3 mail source. @xref{Mail Source Specifiers}, for details on
583* FAQ 4-8:: Is there anything I can do to make poorly formatted 583* FAQ 4-8:: Is there anything I can do to make poorly formatted
584 mails more readable? 584 mails more readable?
585* FAQ 4-9:: Is there a way to automatically ignore posts by specific 585* FAQ 4-9:: Is there a way to automatically ignore posts by specific
586 authors or with specific words in the subject? And can I 586 authors or with specific words in the subject? And can I
587 highlight more interesting ones in some way? 587 highlight more interesting ones in some way?
588* FAQ 4-10:: How can I disable threading in some (e.g., mail-) groups, 588* FAQ 4-10:: How can I disable threading in some (e.g., mail-) groups,
589 or set other variables specific for some groups? 589 or set other variables specific for some groups?
@@ -593,7 +593,7 @@ each POP3 mail source. @xref{Mail Source Specifiers}, for details on
593 displays in group buffer is by far to high, especially in mail 593 displays in group buffer is by far to high, especially in mail
594 groups. Is this a bug? 594 groups. Is this a bug?
595* FAQ 4-13:: I don't like the layout of summary and article buffer, 595* FAQ 4-13:: I don't like the layout of summary and article buffer,
596 how to change it? Perhaps even a three pane display? 596 how to change it? Perhaps even a three pane display?
597* FAQ 4-14:: I don't like the way the Summary buffer looks, how to 597* FAQ 4-14:: I don't like the way the Summary buffer looks, how to
598 tweak it? 598 tweak it?
599* FAQ 4-15:: How to split incoming mails in several groups? 599* FAQ 4-15:: How to split incoming mails in several groups?
@@ -750,7 +750,7 @@ other deuglifications).
750@subsubheading Question 4.9 750@subsubheading Question 4.9
751 751
752Is there a way to automatically ignore posts by specific 752Is there a way to automatically ignore posts by specific
753authors or with specific words in the subject? And can I 753authors or with specific words in the subject? And can I
754highlight more interesting ones in some way? 754highlight more interesting ones in some way?
755 755
756@subsubheading Answer 756@subsubheading Answer
@@ -876,7 +876,7 @@ groups again).
876@subsubheading Question 4.13 876@subsubheading Question 4.13
877 877
878I don't like the layout of summary and article buffer, how 878I don't like the layout of summary and article buffer, how
879to change it? Perhaps even a three pane display? 879to change it? Perhaps even a three pane display?
880 880
881@subsubheading Answer 881@subsubheading Answer
882 882
@@ -1056,7 +1056,7 @@ of the variables @code{shr-color-visible-distance-min} and
1056 signature...? 1056 signature...?
1057* FAQ 5-4:: Can I set things like From, Signature etc. group based on 1057* FAQ 5-4:: Can I set things like From, Signature etc. group based on
1058 the group I post too? 1058 the group I post too?
1059* FAQ 5-5:: Is there a spell-checker? Perhaps even on-the-fly 1059* FAQ 5-5:: Is there a spell-checker? Perhaps even on-the-fly
1060 spell-checking? 1060 spell-checking?
1061* FAQ 5-6:: Can I set the dictionary based on the group I'm posting 1061* FAQ 5-6:: Can I set the dictionary based on the group I'm posting
1062 to? 1062 to?
@@ -1212,7 +1212,7 @@ at the bottom.
1212@node FAQ 5-5 1212@node FAQ 5-5
1213@subsubheading Question 5.5 1213@subsubheading Question 5.5
1214 1214
1215Is there a spell-checker? Perhaps even on-the-fly spell-checking? 1215Is there a spell-checker? Perhaps even on-the-fly spell-checking?
1216 1216
1217@subsubheading Answer 1217@subsubheading Answer
1218 1218
@@ -1562,7 +1562,7 @@ gnu.emacs.gnus and want to archive it there are several
1562solutions. The first and easiest is to save it to a file 1562solutions. The first and easiest is to save it to a file
1563by saying @kbd{O f}. However, wouldn't 1563by saying @kbd{O f}. However, wouldn't
1564it be much more convenient to have more direct access to 1564it be much more convenient to have more direct access to
1565the archived message from Gnus? If you say yes, put this 1565the archived message from Gnus? If you say yes, put this
1566snippet by Frank Haun <pille3003@@fhaun.de> in 1566snippet by Frank Haun <pille3003@@fhaun.de> in
1567@file{~/.gnus.el}: 1567@file{~/.gnus.el}:
1568 1568
@@ -1584,7 +1584,7 @@ more then one article."
1584@noindent 1584@noindent
1585 1585
1586You can now say @kbd{M-x my-archive-article} in summary buffer to 1586You can now say @kbd{M-x my-archive-article} in summary buffer to
1587archive the article under the cursor in a nnml group. (Change nnml to 1587archive the article under the cursor in a nnml group. (Change nnml to
1588your preferred back end.) 1588your preferred back end.)
1589 1589
1590Of course you can also make sure the cache is enabled by saying 1590Of course you can also make sure the cache is enabled by saying
@@ -1664,7 +1664,7 @@ follows a slightly different approach, here all article
1664where the read mark is set are expirable. 1664where the read mark is set are expirable.
1665 1665
1666To activate auto-expire, include auto-expire in the 1666To activate auto-expire, include auto-expire in the
1667Group parameters for the group. (Hit @kbd{G 1667Group parameters for the group. (Hit @kbd{G
1668c} in summary buffer with point over the 1668c} in summary buffer with point over the
1669group to change group parameters). For total-expire add 1669group to change group parameters). For total-expire add
1670total-expire to the group-parameters. 1670total-expire to the group-parameters.
@@ -1808,7 +1808,7 @@ other possibility is to set, again in the summary
1808buffer, downloadable (%) marks for the articles you 1808buffer, downloadable (%) marks for the articles you
1809want by typing @kbd{@@} with point over 1809want by typing @kbd{@@} with point over
1810the article and then typing @kbd{J u}. 1810the article and then typing @kbd{J u}.
1811What's the difference? Well, process marks are erased as 1811What's the difference? Well, process marks are erased as
1812soon as you exit the summary buffer while downloadable 1812soon as you exit the summary buffer while downloadable
1813marks are permanent. You can actually set downloadable 1813marks are permanent. You can actually set downloadable
1814marks in several groups then use fetch session ('J s' in 1814marks in several groups then use fetch session ('J s' in
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index d0ede930996..f4c87bd64dd 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -5837,7 +5837,7 @@ Mail a very wide reply to the author of the current article
5837(@code{gnus-summary-very-wide-reply}). A @dfn{very wide reply} is a 5837(@code{gnus-summary-very-wide-reply}). A @dfn{very wide reply} is a
5838reply that goes out to all people listed in the @code{To}, @code{From} 5838reply that goes out to all people listed in the @code{To}, @code{From}
5839(or @code{Reply-To}) and @code{Cc} headers in all the process/prefixed 5839(or @code{Reply-To}) and @code{Cc} headers in all the process/prefixed
5840articles. This command uses the process/prefix convention. If given a 5840articles. This command uses the process/prefix convention. If given a
5841prefix argument, the body of the current article will also be yanked. 5841prefix argument, the body of the current article will also be yanked.
5842 5842
5843@item S V 5843@item S V
@@ -7424,7 +7424,7 @@ meaningful. Here's one example:
7424@end lisp 7424@end lisp
7425 7425
7426And another example: the protonmail bridge adds fake message-ids to 7426And another example: the protonmail bridge adds fake message-ids to
7427@code{References} in message headers, which can confuse threading. To 7427@code{References} in message headers, which can confuse threading. To
7428remove these spurious ids 7428remove these spurious ids
7429 7429
7430@lisp 7430@lisp
@@ -10558,7 +10558,7 @@ course, it'll make group entry somewhat slow.
10558 10558
10559@vindex gnus-refer-thread-use-search 10559@vindex gnus-refer-thread-use-search
10560If @code{gnus-refer-thread-use-search} is @code{nil} (the default) 10560If @code{gnus-refer-thread-use-search} is @code{nil} (the default)
10561then thread-referral only looks for articles in the current group. If 10561then thread-referral only looks for articles in the current group. If
10562this variable is @code{t} the server to which the current group 10562this variable is @code{t} the server to which the current group
10563belongs is searched (provided that searching is available for the 10563belongs is searched (provided that searching is available for the
10564server's backend). If this variable is a list of servers, each server 10564server's backend). If this variable is a list of servers, each server
@@ -14706,7 +14706,7 @@ Here's a complete example @code{nnimap} backend with a client-side
14706 14706
14707If you're using Google's Gmail, you may want to see your Gmail labels 14707If you're using Google's Gmail, you may want to see your Gmail labels
14708when reading your mail. Gnus can give you this information if you ask 14708when reading your mail. Gnus can give you this information if you ask
14709for @samp{X-GM-LABELS} in the variable @code{gnus-extra-headers}. For 14709for @samp{X-GM-LABELS} in the variable @code{gnus-extra-headers}. For
14710example: 14710example:
14711 14711
14712@example 14712@example
@@ -15387,7 +15387,7 @@ corresponding keywords.
15387 15387
15388@item :mailbox 15388@item :mailbox
15389The name of the mailbox to get mail from. The default is @samp{INBOX} 15389The name of the mailbox to get mail from. The default is @samp{INBOX}
15390which normally is the mailbox which receives incoming mail. Instead of 15390which normally is the mailbox which receives incoming mail. Instead of
15391a single mailbox, this can be a list of mailboxes to fetch mail from. 15391a single mailbox, this can be a list of mailboxes to fetch mail from.
15392 15392
15393@item :predicate 15393@item :predicate
@@ -20602,7 +20602,7 @@ key will lead to creation of @file{ADAPT} files.)
20602@cindex score file atoms 20602@cindex score file atoms
20603@item score-fn 20603@item score-fn
20604The value of this entry should be one or more user-defined function 20604The value of this entry should be one or more user-defined function
20605names in parentheses. Each function will be called in order and the 20605names in parentheses. Each function will be called in order and the
20606returned value is required to be an integer. 20606returned value is required to be an integer.
20607 20607
20608@example 20608@example
@@ -22355,7 +22355,7 @@ calling @code{nnmairix-search} with @samp{f:From}.
22355@item G G o 22355@item G G o
22356@kindex G G o @r{(Summary)} 22356@kindex G G o @r{(Summary)}
22357@findex nnmairix-goto-original-article 22357@findex nnmairix-goto-original-article
22358(Only in @code{nnmairix} groups!) Tries determine the group this article 22358(Only in @code{nnmairix} groups!) Tries determine the group this article
22359originally came from and displays the article in this group, so that, 22359originally came from and displays the article in this group, so that,
22360e.g., replying to this article the correct posting styles/group 22360e.g., replying to this article the correct posting styles/group
22361parameters are applied (@code{nnmairix-goto-original-article}). This 22361parameters are applied (@code{nnmairix-goto-original-article}). This
@@ -26641,13 +26641,13 @@ data across multiple machines.
26641 26641
26642Very often, you want all your marks (what articles you've read, which 26642Very often, you want all your marks (what articles you've read, which
26643ones were important, and so on) to be synchronized between several 26643ones were important, and so on) to be synchronized between several
26644machines. With IMAP, that's built into the protocol, so you can read 26644machines. With IMAP, that's built into the protocol, so you can read
26645nnimap groups from many machines and they are automatically 26645nnimap groups from many machines and they are automatically
26646synchronized. But NNTP, nnrss, and many other backends do not store 26646synchronized. But NNTP, nnrss, and many other backends do not store
26647marks, so you have to do it locally. 26647marks, so you have to do it locally.
26648 26648
26649The Gnus Cloud package stores the marks, plus any files you choose, on 26649The Gnus Cloud package stores the marks, plus any files you choose, on
26650an IMAP server in a special folder. It's like a 26650an IMAP server in a special folder. It's like a
26651DropTorrentSyncBoxOakTree(TM).@footnote{The name ``Gnus Cloud'' 26651DropTorrentSyncBoxOakTree(TM).@footnote{The name ``Gnus Cloud''
26652parodizes but otherwise has little to do with ``cloud computing'', a 26652parodizes but otherwise has little to do with ``cloud computing'', a
26653@url{https://www.gnu.org/philosophy/words-to-avoid.html#CloudComputing, 26653@url{https://www.gnu.org/philosophy/words-to-avoid.html#CloudComputing,
@@ -26661,17 +26661,17 @@ misleading term normally best avoided}.}
26661@node Gnus Cloud Setup 26661@node Gnus Cloud Setup
26662@subsection Gnus Cloud Setup 26662@subsection Gnus Cloud Setup
26663 26663
26664Setting up the Gnus Cloud takes less than a minute. From the Group 26664Setting up the Gnus Cloud takes less than a minute. From the Group
26665buffer: 26665buffer:
26666 26666
26667Press @kbd{^} to go to the Server buffer. Here you'll see all the 26667Press @kbd{^} to go to the Server buffer. Here you'll see all the
26668servers that Gnus knows. @xref{Server Buffer}. 26668servers that Gnus knows. @xref{Server Buffer}.
26669 26669
26670Then press @kbd{i} to mark any servers as cloud-synchronized (their marks are synchronized). 26670Then press @kbd{i} to mark any servers as cloud-synchronized (their marks are synchronized).
26671 26671
26672Then press @kbd{I} to mark a single server as the cloud host (it must 26672Then press @kbd{I} to mark a single server as the cloud host (it must
26673be an IMAP server, and will host a special IMAP folder with all the 26673be an IMAP server, and will host a special IMAP folder with all the
26674synchronization data). This will set the variable 26674synchronization data). This will set the variable
26675@code{gnus-cloud-method} (using the Customize facilities), then ask 26675@code{gnus-cloud-method} (using the Customize facilities), then ask
26676you to optionally upload your first CloudSynchronizationDataPack(TM). 26676you to optionally upload your first CloudSynchronizationDataPack(TM).
26677 26677
@@ -26691,37 +26691,37 @@ Download the latest Gnus Cloud data.
26691@item ~ ~ 26691@item ~ ~
26692@findex gnus-cloud-upload-all-data 26692@findex gnus-cloud-upload-all-data
26693@cindex cloud, download 26693@cindex cloud, download
26694Upload the local Gnus Cloud data. Creates a new 26694Upload the local Gnus Cloud data. Creates a new
26695CloudSynchronizationDataPack(TM). 26695CloudSynchronizationDataPack(TM).
26696 26696
26697@end table 26697@end table
26698 26698
26699But wait, there's more. Of course there's more. So much more. You can 26699But wait, there's more. Of course there's more. So much more. You can
26700customize all of the following. 26700customize all of the following.
26701 26701
26702@defvar gnus-cloud-synced-files 26702@defvar gnus-cloud-synced-files
26703These are the files that will be part of every 26703These are the files that will be part of every
26704CloudSynchronizationDataPack(TM). They are included in every upload, 26704CloudSynchronizationDataPack(TM). They are included in every upload,
26705so don't synchronize a lot of large files. Files under 100Kb are best. 26705so don't synchronize a lot of large files. Files under 100Kb are best.
26706@end defvar 26706@end defvar
26707 26707
26708@defvar gnus-cloud-storage-method 26708@defvar gnus-cloud-storage-method
26709This is a choice from several storage methods. It's highly recommended 26709This is a choice from several storage methods. It's highly recommended
26710to use the EPG facilities. It will be automatic if have GnuPG 26710to use the EPG facilities. It will be automatic if have GnuPG
26711installed and EPG loaded. Otherwise, you could use Base64+gzip, 26711installed and EPG loaded. Otherwise, you could use Base64+gzip,
26712Base64, or no encoding. 26712Base64, or no encoding.
26713@end defvar 26713@end defvar
26714 26714
26715@defvar gnus-cloud-interactive 26715@defvar gnus-cloud-interactive
26716When this is set, and by default it is, the Gnus Cloud package will 26716When this is set, and by default it is, the Gnus Cloud package will
26717ask you for confirmation here and there. Leave it on until you're 26717ask you for confirmation here and there. Leave it on until you're
26718comfortable with the package. 26718comfortable with the package.
26719@end defvar 26719@end defvar
26720 26720
26721 26721
26722@defvar gnus-cloud-method 26722@defvar gnus-cloud-method
26723The name of the IMAP server to store the 26723The name of the IMAP server to store the
26724CloudSynchronizationDataPack(TM)s. It's easiest to set this from the 26724CloudSynchronizationDataPack(TM)s. It's easiest to set this from the
26725Server buffer (@pxref{Gnus Cloud Setup}). 26725Server buffer (@pxref{Gnus Cloud Setup}).
26726@end defvar 26726@end defvar
26727 26727
diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi
index 7446f3ee9f4..40d5d13b51f 100644
--- a/doc/misc/htmlfontify.texi
+++ b/doc/misc/htmlfontify.texi
@@ -1167,7 +1167,7 @@ An assoc of @code{(point . @var{face-symbol})} or
1167. end)} elements, in descending order of point value (i.e., from the 1167. end)} elements, in descending order of point value (i.e., from the
1168file's end to its beginning). The map is in reverse order because 1168file's end to its beginning). The map is in reverse order because
1169inserting a @samp{<style>} tag (or any other string) at @var{point} 1169inserting a @samp{<style>} tag (or any other string) at @var{point}
1170invalidates the map for all entries with a greater value of point. By 1170invalidates the map for all entries with a greater value of point. By
1171traversing the map from greatest to least @var{point}, we still 1171traversing the map from greatest to least @var{point}, we still
1172invalidate the map as we go, but only those points we have already 1172invalidate the map as we go, but only those points we have already
1173dealt with (and therefore no longer care about) will be invalid at any 1173dealt with (and therefore no longer care about) will be invalid at any
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 782812169ca..845c9dbd690 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -189,7 +189,7 @@ IDLWAVE consists of two main parts: a major mode for editing IDL
189source files (@code{idlwave-mode}) and a mode for running the IDL 189source files (@code{idlwave-mode}) and a mode for running the IDL
190program as an inferior shell (@code{idlwave-shell-mode}). Although 190program as an inferior shell (@code{idlwave-shell-mode}). Although
191one mode can be used without the other, both work together closely to 191one mode can be used without the other, both work together closely to
192form a complete development environment. Here is a brief summary of 192form a complete development environment. Here is a brief summary of
193what IDLWAVE does: 193what IDLWAVE does:
194 194
195@itemize @bullet 195@itemize @bullet
@@ -504,7 +504,7 @@ keywords again? Go back to the source window and put the cursor into
504the ``plot'' line and press @kbd{C-c ?}. This shows the routine info 504the ``plot'' line and press @kbd{C-c ?}. This shows the routine info
505window for the plot routine, which contains a list of keywords, along 505window for the plot routine, which contains a list of keywords, along
506with the argument list. Oh, we wanted @code{YTITLE}. Fix that up. 506with the argument list. Oh, we wanted @code{YTITLE}. Fix that up.
507Recompile with @kbd{C-c C-d C-c}. Jump back into the shell with 507Recompile with @kbd{C-c C-d C-c}. Jump back into the shell with
508@kbd{C-c C-s}, press the @key{UP} arrow to recall the previous command 508@kbd{C-c C-s}, press the @key{UP} arrow to recall the previous command
509and execute again. 509and execute again.
510 510
@@ -566,7 +566,7 @@ directory---but do not be dismayed; for the most part, you can just
566copy and work from the examples given here. 566copy and work from the examples given here.
567 567
568Let's first use a boolean variable. These are variables which you turn 568Let's first use a boolean variable. These are variables which you turn
569on or off, much like a checkbox. A value of @samp{t} means on, a value 569on or off, much like a checkbox. A value of @samp{t} means on, a value
570of @samp{nil} means off. Copy the following line into your 570of @samp{nil} means off. Copy the following line into your
571@file{.emacs} file, exit and restart Emacs. 571@file{.emacs} file, exit and restart Emacs.
572 572
@@ -604,7 +604,7 @@ If you cannot seem to master this Lisp customization in @file{.emacs},
604there is another, more user-friendly way to customize all the IDLWAVE 604there is another, more user-friendly way to customize all the IDLWAVE
605variables. You can access it through the IDLWAVE menu in one of the 605variables. You can access it through the IDLWAVE menu in one of the
606@file{.pro} buffers, menu item @code{Customize->Browse IDLWAVE 606@file{.pro} buffers, menu item @code{Customize->Browse IDLWAVE
607Group}. Here you'll be presented with all the various variables grouped 607Group}. Here you'll be presented with all the various variables grouped
608into categories. You can navigate the hierarchy (e.g., @samp{IDLWAVE 608into categories. You can navigate the hierarchy (e.g., @samp{IDLWAVE
609Code Formatting->Idlwave Abbrev And Indent Action->Idlwave Expand 609Code Formatting->Idlwave Abbrev And Indent Action->Idlwave Expand
610Generic End} to turn on @code{END} expansion), read about the variables, 610Generic End} to turn on @code{END} expansion), read about the variables,
@@ -1899,7 +1899,7 @@ commands. Emacs abbreviations are expanded by typing text into the
1899buffer and pressing @key{SPC} or @key{RET}. The special abbreviations 1899buffer and pressing @key{SPC} or @key{RET}. The special abbreviations
1900used to insert code templates all start with a @samp{\} (the backslash), 1900used to insert code templates all start with a @samp{\} (the backslash),
1901or, optionally, any other character set in 1901or, optionally, any other character set in
1902@code{idlwave-abbrev-start-char}. IDLWAVE ensures that abbreviations are 1902@code{idlwave-abbrev-start-char}. IDLWAVE ensures that abbreviations are
1903only expanded where they should be (i.e., not in a string or comment), 1903only expanded where they should be (i.e., not in a string or comment),
1904and permits the point to be moved after an abbreviation expansion: 1904and permits the point to be moved after an abbreviation expansion:
1905very useful for positioning the mark inside of parentheses, etc. 1905very useful for positioning the mark inside of parentheses, etc.
@@ -2659,7 +2659,7 @@ setting and clearing commands, and @code{debug} for other debug,
2659stepping, and continue commands. In addition, if the variable is set to 2659stepping, and continue commands. In addition, if the variable is set to
2660the single symbol @code{'everything}, all the copious shell input is 2660the single symbol @code{'everything}, all the copious shell input is
2661displayed (which is probably only useful for debugging purposes). 2661displayed (which is probably only useful for debugging purposes).
2662N.B. For hidden commands which produce output by side-effect, that 2662N.B. For hidden commands which produce output by side-effect, that
2663output remains hidden (e.g., stepping through a @code{print} command). 2663output remains hidden (e.g., stepping through a @code{print} command).
2664As a special case, any error message in the output will be displayed 2664As a special case, any error message in the output will be displayed
2665(e.g., stepping to an error). 2665(e.g., stepping to an error).
@@ -3429,7 +3429,7 @@ the file @file{idlw-rinfo.el}.
3429IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session 3429IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session
3430for routine definitions. This is done automatically when routine 3430for routine definitions. This is done automatically when routine
3431information or completion is first requested by the user. Each new 3431information or completion is first requested by the user. Each new
3432buffer and each buffer saved after making changes is also scanned. The 3432buffer and each buffer saved after making changes is also scanned. The
3433command @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used 3433command @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used
3434at any time to rescan all buffers. 3434at any time to rescan all buffers.
3435 3435
@@ -3786,7 +3786,7 @@ itself.
3786 3786
3787There are a wide variety of possible browsers to use for displaying 3787There are a wide variety of possible browsers to use for displaying
3788the online HTML help available with IDLWAVE (starting with version 3788the online HTML help available with IDLWAVE (starting with version
37895.0). Since IDL v6.2, a single cross-platform HTML help browser, the 37895.0). Since IDL v6.2, a single cross-platform HTML help browser, the
3790@emph{IDL Assistant} is distributed with IDL@. If this help browser is 3790@emph{IDL Assistant} is distributed with IDL@. If this help browser is
3791available, it is the preferred choice, and the default. The variable 3791available, it is the preferred choice, and the default. The variable
3792@code{idlwave-help-use-assistant}, enabled by default, controls 3792@code{idlwave-help-use-assistant}, enabled by default, controls
diff --git a/doc/misc/info.texi b/doc/misc/info.texi
index 01c7f614e7d..d68b8e3b261 100644
--- a/doc/misc/info.texi
+++ b/doc/misc/info.texi
@@ -473,7 +473,7 @@ depends on the Info reader you use.) This is because @kbd{n} and
473level}. The present node is contained in a menu (see next) of the 473level}. The present node is contained in a menu (see next) of the
474node you came from, and hence is considered to be at a lower level. 474node you came from, and hence is considered to be at a lower level.
475It is the only node in the previous node's menu (even though it was 475It is the only node in the previous node's menu (even though it was
476listed three times). Hence it has no next or previous node that 476listed three times). Hence it has no next or previous node that
477@kbd{n} or @kbd{p} could move to. 477@kbd{n} or @kbd{p} could move to.
478 478
479If you systematically move through a manual by typing @kbd{n}, you run 479If you systematically move through a manual by typing @kbd{n}, you run
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 6e0e4be7bf5..468bf81599d 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -1338,8 +1338,8 @@ your PGP implementation, so we refer to it.
1338 1338
1339If you have imported your old PGP 2.x key into GnuPG, and want to send 1339If you have imported your old PGP 2.x key into GnuPG, and want to send
1340signed and encrypted messages to your fellow PGP 2.x users, you'll 1340signed and encrypted messages to your fellow PGP 2.x users, you'll
1341discover that the receiver cannot understand what you send. One 1341discover that the receiver cannot understand what you send. One
1342solution is to use PGP 2.x instead. You could also convince your 1342solution is to use PGP 2.x instead. You could also convince your
1343fellow PGP 2.x users to convert to GnuPG@. 1343fellow PGP 2.x users to convert to GnuPG@.
1344@vindex mml-signencrypt-style-alist 1344@vindex mml-signencrypt-style-alist
1345As a final workaround, you can make the sign and encryption work in 1345As a final workaround, you can make the sign and encryption work in
@@ -1687,8 +1687,8 @@ Allegedly.
1687@item message-default-headers 1687@item message-default-headers
1688@vindex message-default-headers 1688@vindex message-default-headers
1689Header lines to be inserted in outgoing messages before you edit the 1689Header lines to be inserted in outgoing messages before you edit the
1690message, so you can edit or delete their lines. If set to a string, it 1690message, so you can edit or delete their lines. If set to a string, it
1691is directly inserted. If set to a function, it is called and its 1691is directly inserted. If set to a function, it is called and its
1692result is inserted. 1692result is inserted.
1693 1693
1694@item message-subject-re-regexp 1694@item message-subject-re-regexp
@@ -2190,7 +2190,7 @@ posting a prepared news message.
2190@table @code 2190@table @code
2191@item message-cite-style 2191@item message-cite-style
2192@vindex message-cite-style 2192@vindex message-cite-style
2193The overall style to be used when replying to messages. This controls 2193The overall style to be used when replying to messages. This controls
2194things like where the reply should be put relative to the original, 2194things like where the reply should be put relative to the original,
2195how the citation is formatted, where the signature goes, etc. 2195how the citation is formatted, where the signature goes, etc.
2196 2196
@@ -2198,12 +2198,12 @@ Value is either @code{nil} (no variable overrides) or a let-style list
2198of pairs @code{(VARIABLE VALUE)} to override default values. 2198of pairs @code{(VARIABLE VALUE)} to override default values.
2199 2199
2200See @code{gnus-posting-styles} to set this variable for specific 2200See @code{gnus-posting-styles} to set this variable for specific
2201groups. Presets to impersonate popular mail agents are available in the 2201groups. Presets to impersonate popular mail agents are available in the
2202@code{message-cite-style-*} variables. 2202@code{message-cite-style-*} variables.
2203 2203
2204@item message-cite-reply-position 2204@item message-cite-reply-position
2205@vindex message-cite-reply-position 2205@vindex message-cite-reply-position
2206Where the reply should be positioned. Available styles are 2206Where the reply should be positioned. Available styles are
2207@code{traditional} to reply inline, @code{above} for top-posting, and 2207@code{traditional} to reply inline, @code{above} for top-posting, and
2208@code{below} for bottom-posting 2208@code{below} for bottom-posting
2209 2209
diff --git a/doc/misc/modus-themes.org b/doc/misc/modus-themes.org
index 1006359c6e1..20fa93c6dbc 100644
--- a/doc/misc/modus-themes.org
+++ b/doc/misc/modus-themes.org
@@ -1237,7 +1237,7 @@ and ==*modus-operandi-list-mappings*= for the semantic color mappings.
1237:END: 1237:END:
1238 1238
1239The Modus themes provide the means to access the palette of (i) the 1239The Modus themes provide the means to access the palette of (i) the
1240active theme or (ii) any theme in the Modus collection. These are 1240active theme or (ii) any theme in the Modus collection. These are
1241useful for Do-It-Yourself customizations ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]), 1241useful for Do-It-Yourself customizations ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]),
1242though it can also be helpful in other cases, such as to reuse a color 1242though it can also be helpful in other cases, such as to reuse a color
1243value in some other application. 1243value in some other application.
@@ -1252,8 +1252,8 @@ value in some other application.
1252 1252
1253#+findex: modus-themes-get-color-value 1253#+findex: modus-themes-get-color-value
1254The function ~modus-themes-get-color-value~ can be called from Lisp to 1254The function ~modus-themes-get-color-value~ can be called from Lisp to
1255return the value of a color from the active Modus theme palette. It 1255return the value of a color from the active Modus theme palette. It
1256takea a =COLOR= argument and an optional =OVERRIDES=. It also accepts 1256takea a =COLOR= argument and an optional =OVERRIDES=. It also accepts
1257a third =THEME= argument, to get the color from the given theme. 1257a third =THEME= argument, to get the color from the given theme.
1258 1258
1259=COLOR= is a symbol that represents a named color entry in the 1259=COLOR= is a symbol that represents a named color entry in the
@@ -1264,7 +1264,7 @@ mapping), this function recurs until it finds the underlying color
1264value. 1264value.
1265 1265
1266With an optional =OVERRIDES= argument as a non-~nil~ value, it 1266With an optional =OVERRIDES= argument as a non-~nil~ value, it
1267accounts for palette overrides. Else it reads only the default palette 1267accounts for palette overrides. Else it reads only the default palette
1268([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]]) 1268([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]])
1269 1269
1270With an optional =THEME= as a symbol among the ~modus-themes-items~ 1270With an optional =THEME= as a symbol among the ~modus-themes-items~
@@ -1309,12 +1309,12 @@ with/without overrides and when recursive mappings are introduced.
1309 1309
1310#+findex: modus-themes-with-colors 1310#+findex: modus-themes-with-colors
1311Advanced users may want to apply many colors from the palette of the 1311Advanced users may want to apply many colors from the palette of the
1312active Modus theme in their custom code. In such a case, retrieving 1312active Modus theme in their custom code. In such a case, retrieving
1313each value with the function ~modus-themes-get-color-value~ is 1313each value with the function ~modus-themes-get-color-value~ is
1314inefficient ([[#h:1cc552c1-5f5f-4a56-ae78-7b69e8512c4e][Get a single color from the palette]]). The Lisp macro 1314inefficient ([[#h:1cc552c1-5f5f-4a56-ae78-7b69e8512c4e][Get a single color from the palette]]). The Lisp macro
1315~modus-themes-with-colors~ provides the requisite functionality. It 1315~modus-themes-with-colors~ provides the requisite functionality. It
1316supplies the current theme's palette to the code called from inside of 1316supplies the current theme's palette to the code called from inside of
1317it. For example: 1317it. For example:
1318 1318
1319#+begin_src emacs-lisp 1319#+begin_src emacs-lisp
1320(modus-themes-with-colors 1320(modus-themes-with-colors
@@ -1323,9 +1323,9 @@ it. For example:
1323#+end_src 1323#+end_src
1324 1324
1325The above return value is for ~modus-operandi~ when that is the active 1325The above return value is for ~modus-operandi~ when that is the active
1326theme. Switching to another theme and evaluating this code anew will 1326theme. Switching to another theme and evaluating this code anew will
1327return the relevant results for that theme (remember that since 1327return the relevant results for that theme (remember that since
1328version 4, the Modus themes consist of many items ([[#h:f0f3dbcb-602d-40cf-b918-8f929c441baf][Overview]])). The 1328version 4, the Modus themes consist of many items ([[#h:f0f3dbcb-602d-40cf-b918-8f929c441baf][Overview]])). The
1329same with ~modus-vivendi~ as the active theme: 1329same with ~modus-vivendi~ as the active theme:
1330 1330
1331#+begin_src emacs-lisp 1331#+begin_src emacs-lisp
@@ -1340,7 +1340,7 @@ like =blue-warmer= and (ii) semantic color mappings like =warning=.
1340We provide commands to inspect those ([[#h:f4d4b71b-2ca5-4c3d-b0b4-9bfd7aa7fb4d][Preview theme colors]]). 1340We provide commands to inspect those ([[#h:f4d4b71b-2ca5-4c3d-b0b4-9bfd7aa7fb4d][Preview theme colors]]).
1341 1341
1342Others sections in this manual show how to use the aforementioned 1342Others sections in this manual show how to use the aforementioned
1343macro ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]). In practice, the use of a hook will 1343macro ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]). In practice, the use of a hook will
1344also be needed ([[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][DIY Use a hook at the post-load-theme phase]]). 1344also be needed ([[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][DIY Use a hook at the post-load-theme phase]]).
1345 1345
1346* Advanced customization 1346* Advanced customization
@@ -1355,7 +1355,7 @@ mechanism to control things with precision ([[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd
1355 1355
1356This section is of interest only to users who are prepared to maintain 1356This section is of interest only to users who are prepared to maintain
1357their own local tweaks and who are willing to deal with any possible 1357their own local tweaks and who are willing to deal with any possible
1358incompatibilities between versioned releases of the themes. As such, 1358incompatibilities between versioned releases of the themes. As such,
1359they are labeled as "do-it-yourself" or "DIY". 1359they are labeled as "do-it-yourself" or "DIY".
1360 1360
1361** DIY Palette override presets 1361** DIY Palette override presets
@@ -2076,14 +2076,14 @@ Reload the theme for changes to take effect.
2076:end: 2076:end:
2077 2077
2078This is one of our practical examples to override the semantic colors 2078This is one of our practical examples to override the semantic colors
2079of the Modus themes ([[#h:df1199d8-eaba-47db-805d-6b568a577bf3][Stylistic variants using palette overrides]]). Here 2079of the Modus themes ([[#h:df1199d8-eaba-47db-805d-6b568a577bf3][Stylistic variants using palette overrides]]). Here
2080we show how to change the presentation of Org blocks (and other such 2080we show how to change the presentation of Org blocks (and other such
2081blocks like Markdown fenced code sections, though the exact 2081blocks like Markdown fenced code sections, though the exact
2082presentation depends on each major mode). 2082presentation depends on each major mode).
2083 2083
2084The default style of Org blocks is a subtle gray background for the 2084The default style of Org blocks is a subtle gray background for the
2085contents and for the delimiter lines (the =#+begin_= and =#+end_= 2085contents and for the delimiter lines (the =#+begin_= and =#+end_=
2086parts). The text of the delimiter lines is a subtle gray foreground 2086parts). The text of the delimiter lines is a subtle gray foreground
2087color. 2087color.
2088 2088
2089[[#h:bb5b396f-5532-4d52-ab13-149ca24854f1][Make inline code in prose use alternative styles]]. 2089[[#h:bb5b396f-5532-4d52-ab13-149ca24854f1][Make inline code in prose use alternative styles]].
@@ -2123,8 +2123,8 @@ color.
2123#+end_src 2123#+end_src
2124 2124
2125The previous examples differentiate the delimiter lines from the 2125The previous examples differentiate the delimiter lines from the
2126block's contents. Though we can mimic the default aesthetic of a 2126block's contents. Though we can mimic the default aesthetic of a
2127uniform background, while changing the applicable colors. Here are 2127uniform background, while changing the applicable colors. Here are
2128some nice combinations: 2128some nice combinations:
2129 2129
2130#+begin_src emacs-lisp 2130#+begin_src emacs-lisp
@@ -2152,7 +2152,7 @@ some nice combinations:
2152 2152
2153Finally, the following makes code blocks have no distinct background. 2153Finally, the following makes code blocks have no distinct background.
2154The minimal styles are applied to the delimiter lines, which only use 2154The minimal styles are applied to the delimiter lines, which only use
2155a subtle gray foreground. This was the default for the Modus themes up 2155a subtle gray foreground. This was the default for the Modus themes up
2156until version 4.3.0. 2156until version 4.3.0.
2157 2157
2158#+begin_src emacs-lisp 2158#+begin_src emacs-lisp
@@ -3280,11 +3280,11 @@ invoke {{{kbd(M-x org-mode-restart)}}}.
3280 3280
3281In versions of the Modus themes before =4.4.0= there was an option to 3281In versions of the Modus themes before =4.4.0= there was an option to
3282change the coloration of Org source blocks so that certain languages 3282change the coloration of Org source blocks so that certain languages
3283would have a distinctly colored background. This was not flexible 3283would have a distinctly colored background. This was not flexible
3284enough, because (i) we cannot cover all languages effectively and (ii) 3284enough, because (i) we cannot cover all languages effectively and (ii)
3285the user had no choice over the =language --> color= mapping. 3285the user had no choice over the =language --> color= mapping.
3286 3286
3287As such, the old user option is no more. Users can use the following 3287As such, the old user option is no more. Users can use the following
3288to achieve what they want: 3288to achieve what they want:
3289 3289
3290[ All this is done by setting the Org user option ~org-src-block-faces~, 3290[ All this is done by setting the Org user option ~org-src-block-faces~,
@@ -3323,9 +3323,9 @@ to achieve what they want:
3323[[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][DIY Use a hook at the post-load-theme phase]]. 3323[[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][DIY Use a hook at the post-load-theme phase]].
3324 3324
3325Note that the ~org-src-block-faces~ accepts a named face, as shown 3325Note that the ~org-src-block-faces~ accepts a named face, as shown
3326above, as well as a list of face attributes. The latter approach is 3326above, as well as a list of face attributes. The latter approach is
3327not good enough because it hardcodes values in such a way that an 3327not good enough because it hardcodes values in such a way that an
3328~org-mode-restart~ is necessary. Whereas the indirection of the named 3328~org-mode-restart~ is necessary. Whereas the indirection of the named
3329face lets the theme change the values while Org buffers continue to 3329face lets the theme change the values while Org buffers continue to
3330show the right colors. 3330show the right colors.
3331 3331
@@ -3768,7 +3768,7 @@ Reload the theme for changes to take effect.
3768:END: 3768:END:
3769 3769
3770Many of the Do-It-Yourself (DIY) snippets provided herein make use of 3770Many of the Do-It-Yourself (DIY) snippets provided herein make use of
3771a hook to apply the desired changes. In most examples, this hook is 3771a hook to apply the desired changes. In most examples, this hook is
3772the ~modus-themes-after-load-theme-hook~ (alias ~modus-themes-post-load-hook~). 3772the ~modus-themes-after-load-theme-hook~ (alias ~modus-themes-post-load-hook~).
3773This hook is provided by the Modus themes and is called at the end of 3773This hook is provided by the Modus themes and is called at the end of
3774one the following: 3774one the following:
@@ -3786,7 +3786,7 @@ one the following:
3786 3786
3787Users who switch between themes that are not limited to the Modus 3787Users who switch between themes that are not limited to the Modus
3788collection cannot benefit from the aforementioned hook: it only works 3788collection cannot benefit from the aforementioned hook: it only works
3789with the Modus themes. A theme-agnostic hook is needed in such a case. 3789with the Modus themes. A theme-agnostic hook is needed in such a case.
3790Before Emacs 29, this had to be set up manually ([[#h:86f6906b-f090-46cc-9816-1fe8aeb38776][DIY A theme-agnostic hook for theme loading]]). 3790Before Emacs 29, this had to be set up manually ([[#h:86f6906b-f090-46cc-9816-1fe8aeb38776][DIY A theme-agnostic hook for theme loading]]).
3791Starting with Emacs 29, the special hook ~enable-theme-functions~ 3791Starting with Emacs 29, the special hook ~enable-theme-functions~
3792works with anything that uses the basic ~enable-theme~ function. 3792works with anything that uses the basic ~enable-theme~ function.
@@ -3799,7 +3799,7 @@ the way it is done with every hook:
3799#+end_src 3799#+end_src
3800 3800
3801Functions added to ~enable-theme-functions~ accept a single =THEME= 3801Functions added to ~enable-theme-functions~ accept a single =THEME=
3802argument. The examples shown in this manual use the pattern =(&rest 3802argument. The examples shown in this manual use the pattern =(&rest
3803_)=, which is how a function accepts one or more arguments but 3803_)=, which is how a function accepts one or more arguments but
3804declares it will not use them (in plain terms, the code works with or 3804declares it will not use them (in plain terms, the code works with or
3805without ~enable-theme-functions~). 3805without ~enable-theme-functions~).
@@ -3809,7 +3809,7 @@ without ~enable-theme-functions~).
3809:custom_id: h:86f6906b-f090-46cc-9816-1fe8aeb38776 3809:custom_id: h:86f6906b-f090-46cc-9816-1fe8aeb38776
3810:end: 3810:end:
3811 3811
3812[ NOTE: The following is for versions of Emacs before 29. For Emacs 29 3812[ NOTE: The following is for versions of Emacs before 29. For Emacs 29
3813 or higher, users can rely on the built-in ~enable-theme-functions~ 3813 or higher, users can rely on the built-in ~enable-theme-functions~
3814 ([[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][Using a hook at the post-load-theme phase]]). ] 3814 ([[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][Using a hook at the post-load-theme phase]]). ]
3815 3815
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index a2ceedf7399..d6f6e5d841e 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -73,12 +73,12 @@ modify this GNU manual.''
73 73
74Newsticker provides a @b{Feed Reader} for Emacs. It retrieves 74Newsticker provides a @b{Feed Reader} for Emacs. It retrieves
75headlines from a list of news sites, processes them, and provides 75headlines from a list of news sites, processes them, and provides
76frontends for reading and managing them. (Standard headline formats 76frontends for reading and managing them. (Standard headline formats
77are RSS and Atom which makes Newsticker an ``RSS Reader'', ``Atom 77are RSS and Atom which makes Newsticker an ``RSS Reader'', ``Atom
78Reader'' or ``Feed Aggregator''.) 78Reader'' or ``Feed Aggregator''.)
79 79
80Headlines (or news items) consist of a title, (mostly) a description, 80Headlines (or news items) consist of a title, (mostly) a description,
81and a link to the full story. The description may be a brief summary 81and a link to the full story. The description may be a brief summary
82in plain text or a full HTML-formatted article. A headline may carry 82in plain text or a full HTML-formatted article. A headline may carry
83enclosed data such as images, audio or video files, typically in the 83enclosed data such as images, audio or video files, typically in the
84case of so ``podcast feeds''. 84case of so ``podcast feeds''.
@@ -95,7 +95,7 @@ customized to your liking.
95As Newsticker is part of GNU Emacs there is no need to perform any 95As Newsticker is part of GNU Emacs there is no need to perform any
96installation steps in order to use it. 96installation steps in order to use it.
97 97
98Newsticker is highly customizable. All options have reasonable default 98Newsticker is highly customizable. All options have reasonable default
99values, so that (in most cases) it is not necessary to customize 99values, so that (in most cases) it is not necessary to customize
100anything before you start Newsticker for the first time. 100anything before you start Newsticker for the first time.
101 101
@@ -186,7 +186,7 @@ it is retrieved a second time.
186@chapter Reading News 186@chapter Reading News
187 187
188@findex newsticker-show-news 188@findex newsticker-show-news
189Start Newsticker with the command @kbd{M-x newsticker-show-news}. This 189Start Newsticker with the command @kbd{M-x newsticker-show-news}. This
190will start the asynchronous news download and displays all available 190will start the asynchronous news download and displays all available
191headlines. 191headlines.
192 192
@@ -224,13 +224,13 @@ subtree. The following commands allow for managing groups.
224@item M-a 224@item M-a
225@kindex M-a 225@kindex M-a
226@findex newsticker-group-add-group 226@findex newsticker-group-add-group
227Add a new feed group. Name of the new group and of the parent group 227Add a new feed group. Name of the new group and of the parent group
228must be entered. If The name of the parent group is the new group 228must be entered. If The name of the parent group is the new group
229becomes a top-level group. (@code{newsticker-group-add-group}) 229becomes a top-level group. (@code{newsticker-group-add-group})
230@item M-m 230@item M-m
231@kindex M-m 231@kindex M-m
232@findex newsticker-group-move-feed 232@findex newsticker-group-move-feed
233Moves a feed into a group. The name of the group must be 233Moves a feed into a group. The name of the group must be
234entered. (@code{newsticker-group-move-feed}) 234entered. (@code{newsticker-group-move-feed})
235@end table 235@end table
236 236
@@ -269,18 +269,18 @@ The Treeview is updated automatically as soon as new headlines have
269arrived. 269arrived.
270 270
271The Treeview is used when the variable @code{newsticker-frontend} is 271The Treeview is used when the variable @code{newsticker-frontend} is
272set to the value @code{newsticker-treeview}. (Alternatively it can be 272set to the value @code{newsticker-treeview}. (Alternatively it can be
273started with the command @code{newsticker-treeview}.) 273started with the command @code{newsticker-treeview}.)
274 274
275@subheading Plainview 275@subheading Plainview
276@cindex Plainview 276@cindex Plainview
277 277
278In this view all headlines of all feeds are displayed in a single 278In this view all headlines of all feeds are displayed in a single
279buffer (@file{*newsticker*}). The modeline in the @file{*newsticker*} 279buffer (@file{*newsticker*}). The modeline in the @file{*newsticker*}
280buffer informs you whenever new headlines have arrived. 280buffer informs you whenever new headlines have arrived.
281 281
282You may want to use imenu with Plainview, which allows for navigating 282You may want to use imenu with Plainview, which allows for navigating
283with the help of a menu. In this case add the following to your Emacs 283with the help of a menu. In this case add the following to your Emacs
284startup file (@file{~/.emacs}). 284startup file (@file{~/.emacs}).
285 285
286@lisp 286@lisp
@@ -296,7 +296,7 @@ subscribed to a large amount of feeds you may want to give the
296Treeview a try.) 296Treeview a try.)
297 297
298The Plainview is used when the variable @code{newsticker-frontend} is 298The Plainview is used when the variable @code{newsticker-frontend} is
299set to the value @code{newsticker-plainview}. (Alternatively it can be 299set to the value @code{newsticker-plainview}. (Alternatively it can be
300started with the command @code{newsticker-plainview}.) 300started with the command @code{newsticker-plainview}.)
301 301
302@subheading Ticker 302@subheading Ticker
diff --git a/doc/misc/nxml-mode.texi b/doc/misc/nxml-mode.texi
index 90a8858fcbf..f01dc437d99 100644
--- a/doc/misc/nxml-mode.texi
+++ b/doc/misc/nxml-mode.texi
@@ -134,8 +134,8 @@ type @kbd{C-M-i} or @kbd{@key{ESC} @key{TAB}} for completion, or bind
134the following, I will assume that you type @kbd{C-M-i}. 134the following, I will assume that you type @kbd{C-M-i}.
135 135
136nXML mode completion works by examining the symbol preceding point. 136nXML mode completion works by examining the symbol preceding point.
137This is the symbol to be completed. The symbol to be completed may be 137This is the symbol to be completed. The symbol to be completed may be
138the empty. Completion considers what symbols starting with the symbol 138the empty. Completion considers what symbols starting with the symbol
139to be completed would be valid replacements for the symbol to be 139to be completed would be valid replacements for the symbol to be
140completed, given the schema and the contents of the buffer before 140completed, given the schema and the contents of the buffer before
141point. These symbols are the possible completions. An example may 141point. These symbols are the possible completions. An example may
@@ -182,7 +182,7 @@ happens.
182@item 182@item
183If there is one possible completion, then that completion is 183If there is one possible completion, then that completion is
184inserted, together with any following characters that are 184inserted, together with any following characters that are
185required. For example, in this case: 185required. For example, in this case:
186 186
187@example 187@example
188<html xmlns="http://www.w3.org/1999/xhtml"> 188<html xmlns="http://www.w3.org/1999/xhtml">
@@ -199,14 +199,14 @@ required. For example, in this case:
199@item 199@item
200If there is more than one possible completion, but all 200If there is more than one possible completion, but all
201possible completions share a common non-empty prefix, then that prefix 201possible completions share a common non-empty prefix, then that prefix
202is inserted. For example, suppose the buffer is: 202is inserted. For example, suppose the buffer is:
203 203
204@example 204@example
205<html x@point{} 205<html x@point{}
206@end example 206@end example
207 207
208@noindent 208@noindent
209The symbol to be completed is @samp{x}. The possible completions are 209The symbol to be completed is @samp{x}. The possible completions are
210@samp{xmlns} and @samp{xml:lang}. These share a common prefix of 210@samp{xmlns} and @samp{xml:lang}. These share a common prefix of
211@samp{xml}. Thus, @kbd{C-M-i} will yield: 211@samp{xml}. Thus, @kbd{C-M-i} will yield:
212 212
@@ -255,7 +255,7 @@ If you input @kbd{xmlns}, the result will be:
255 255
256@noindent 256@noindent
257(If you do @kbd{C-M-i} again, the namespace URI will be 257(If you do @kbd{C-M-i} again, the namespace URI will be
258inserted. Should that happen automatically?) 258inserted. Should that happen automatically?)
259@end itemize 259@end itemize
260 260
261@node Inserting end-tags 261@node Inserting end-tags
@@ -269,17 +269,17 @@ You can use @kbd{C-M-i} after @samp{</} to complete the rest of the
269end-tag. 269end-tag.
270 270
271@kbd{C-c C-f} inserts an end-tag for the element containing 271@kbd{C-c C-f} inserts an end-tag for the element containing
272point. This command is useful when you want to input the start-tag, 272point. This command is useful when you want to input the start-tag,
273then input the content and finally input the end-tag. The @samp{f} 273then input the content and finally input the end-tag. The @samp{f}
274is mnemonic for finish. 274is mnemonic for finish.
275 275
276If you want to keep tags balanced and input the end-tag at the 276If you want to keep tags balanced and input the end-tag at the
277same time as the start-tag, before inputting the content, then you can 277same time as the start-tag, before inputting the content, then you can
278use @kbd{C-c C-i}. This inserts a @samp{>}, then inserts 278use @kbd{C-c C-i}. This inserts a @samp{>}, then inserts
279the end-tag and leaves point before the end-tag. @kbd{C-c C-b} 279the end-tag and leaves point before the end-tag. @kbd{C-c C-b}
280is similar but more convenient for block-level elements: it puts the 280is similar but more convenient for block-level elements: it puts the
281start-tag, point and the end-tag on successive lines, appropriately 281start-tag, point and the end-tag on successive lines, appropriately
282indented. The @samp{i} is mnemonic for inline and the 282indented. The @samp{i} is mnemonic for inline and the
283@samp{b} is mnemonic for block. 283@samp{b} is mnemonic for block.
284 284
285Finally, you can customize nXML mode so that @kbd{/} automatically 285Finally, you can customize nXML mode so that @kbd{/} automatically
@@ -312,7 +312,7 @@ then those lines will not be included in any paragraph.
312 312
313A start-tag at the beginning of the line (possibly indented) may 313A start-tag at the beginning of the line (possibly indented) may
314be treated as starting a paragraph. Similarly, an end-tag at the end 314be treated as starting a paragraph. Similarly, an end-tag at the end
315of the line may be treated as ending a paragraph. The following rules 315of the line may be treated as ending a paragraph. The following rules
316are used to determine whether such a tag is in fact treated as a 316are used to determine whether such a tag is in fact treated as a
317paragraph boundary: 317paragraph boundary:
318 318
@@ -324,7 +324,7 @@ is a paragraph boundary.
324If the end-tag corresponding to the start-tag is not at 324If the end-tag corresponding to the start-tag is not at
325the end of its line, or the start-tag corresponding to the end-tag is 325the end of its line, or the start-tag corresponding to the end-tag is
326not at the beginning of its line, then it is not a paragraph 326not at the beginning of its line, then it is not a paragraph
327boundary. For example, in 327boundary. For example, in
328 328
329@example 329@example
330<p>This is a paragraph with an 330<p>This is a paragraph with an
@@ -374,9 +374,9 @@ in a future version.
374 374
375The variable @code{nxml-section-element-name-regexp} gives 375The variable @code{nxml-section-element-name-regexp} gives
376a regexp for the local names (i.e., the part of the name following any 376a regexp for the local names (i.e., the part of the name following any
377prefix) of section elements. The variable 377prefix) of section elements. The variable
378@code{nxml-heading-element-name-regexp} gives a regexp for the 378@code{nxml-heading-element-name-regexp} gives a regexp for the
379local names of heading elements. For an element to be recognized 379local names of heading elements. For an element to be recognized
380as a section 380as a section
381 381
382@itemize @bullet 382@itemize @bullet
@@ -415,7 +415,7 @@ that subsection.
415@end itemize 415@end itemize
416 416
417In the last two states, where the text content is hidden, the 417In the last two states, where the text content is hidden, the
418heading is displayed specially, in an abbreviated form. An element 418heading is displayed specially, in an abbreviated form. An element
419like this: 419like this:
420 420
421@example 421@example
@@ -515,7 +515,7 @@ displayed start-tag toggles the display of subheadings on and
515off. 515off.
516 516
517The outline state for each section is stored with the first 517The outline state for each section is stored with the first
518character of the section (as a text property). Every command that 518character of the section (as a text property). Every command that
519changes the outline state of any section updates the display of the 519changes the outline state of any section updates the display of the
520buffer so that each section is displayed correctly according to its 520buffer so that each section is displayed correctly according to its
521outline state. If the section structure is subsequently changed, then 521outline state. If the section structure is subsequently changed, then
@@ -536,10 +536,10 @@ should use. The order of the list is significant: when file
536@var{x} occurs in the list before file @var{y} then rules 536@var{x} occurs in the list before file @var{y} then rules
537from file @var{x} have precedence over rules from file 537from file @var{x} have precedence over rules from file
538@var{y}. A filename specified in 538@var{y}. A filename specified in
539@samp{rng-schema-locating-files} may be relative. If so, it will 539@samp{rng-schema-locating-files} may be relative. If so, it will
540be resolved relative to the document for which a schema is being 540be resolved relative to the document for which a schema is being
541located. It is not an error if relative file-names in 541located. It is not an error if relative file-names in
542@samp{rng-schema-locating-files} do not exist. You can use 542@samp{rng-schema-locating-files} do not exist. You can use
543@kbd{M-x customize-variable @key{RET} rng-schema-locating-files 543@kbd{M-x customize-variable @key{RET} rng-schema-locating-files
544@key{RET}} to customize the list of schema locating 544@key{RET}} to customize the list of schema locating
545files. 545files.
@@ -548,7 +548,7 @@ By default, @samp{rng-schema-locating-files} list has two
548members: @samp{schemas.xml}, and 548members: @samp{schemas.xml}, and
549@samp{@var{dist-dir}/schema/schemas.xml} where 549@samp{@var{dist-dir}/schema/schemas.xml} where
550@samp{@var{dist-dir}} is the directory containing the nXML 550@samp{@var{dist-dir}} is the directory containing the nXML
551distribution. The first member will cause nXML mode to use a file 551distribution. The first member will cause nXML mode to use a file
552@samp{schemas.xml} in the same directory as the document being 552@samp{schemas.xml} in the same directory as the document being
553edited if such a file exist. The second member contains rules for the 553edited if such a file exist. The second member contains rules for the
554schemas that are included with the nXML distribution. 554schemas that are included with the nXML distribution.
@@ -565,7 +565,7 @@ The command @kbd{C-c C-s C-w} will tell you what schema
565is currently being used. 565is currently being used.
566 566
567The rules for locating a schema are applied automatically when 567The rules for locating a schema are applied automatically when
568you visit a file in nXML mode. However, if you have just created a new 568you visit a file in nXML mode. However, if you have just created a new
569file and the schema cannot be inferred from the file-name, then this 569file and the schema cannot be inferred from the file-name, then this
570will not locate the right schema. In this case, you should insert the 570will not locate the right schema. In this case, you should insert the
571start-tag of the root element and then use the command @kbd{C-c C-s 571start-tag of the root element and then use the command @kbd{C-c C-s
@@ -578,12 +578,12 @@ If you want to use a schema that has not yet been added to the
578schema locating files, you can use the command @kbd{C-c C-s C-f} 578schema locating files, you can use the command @kbd{C-c C-s C-f}
579to manually select the file containing the schema for the document in 579to manually select the file containing the schema for the document in
580current buffer. Emacs will read the file-name of the schema from the 580current buffer. Emacs will read the file-name of the schema from the
581minibuffer. After reading the file-name, Emacs will ask whether you 581minibuffer. After reading the file-name, Emacs will ask whether you
582wish to add a rule to a schema locating file that persistently 582wish to add a rule to a schema locating file that persistently
583associates the document with the selected schema. The rule will be 583associates the document with the selected schema. The rule will be
584added to the first file in the list specified 584added to the first file in the list specified
585@samp{rng-schema-locating-files}; it will create the file if 585@samp{rng-schema-locating-files}; it will create the file if
586necessary, but will not create a directory. If the variable 586necessary, but will not create a directory. If the variable
587@samp{rng-schema-locating-files} has not been customized, this 587@samp{rng-schema-locating-files} has not been customized, this
588means that the rule will be added to the file @samp{schemas.xml} 588means that the rule will be added to the file @samp{schemas.xml}
589in the same directory as the document being edited. 589in the same directory as the document being edited.
@@ -591,14 +591,14 @@ in the same directory as the document being edited.
591The command @kbd{C-c C-s C-t} allows you to select a schema by 591The command @kbd{C-c C-s C-t} allows you to select a schema by
592specifying an identifier for the type of the document. The schema 592specifying an identifier for the type of the document. The schema
593locating files determine the available type identifiers and what 593locating files determine the available type identifiers and what
594schema is used for each type identifier. This is useful when it is 594schema is used for each type identifier. This is useful when it is
595impossible to infer the right schema from either the file-name or the 595impossible to infer the right schema from either the file-name or the
596content of the document, even though the schema is already in the 596content of the document, even though the schema is already in the
597schema locating file. A situation in which this can occur is when 597schema locating file. A situation in which this can occur is when
598there are multiple variants of a schema where all valid documents have 598there are multiple variants of a schema where all valid documents have
599the same document element. For example, XHTML has Strict and 599the same document element. For example, XHTML has Strict and
600Transitional variants. In a situation like this, a schema locating file 600Transitional variants. In a situation like this, a schema locating file
601can define a type identifier for each variant. As with @kbd{C-c 601can define a type identifier for each variant. As with @kbd{C-c
602C-s C-f}, Emacs will ask whether you wish to add a rule to a schema 602C-s C-f}, Emacs will ask whether you wish to add a rule to a schema
603locating file that persistently associates the document with the 603locating file that persistently associates the document with the
604specified type identifier. 604specified type identifier.
@@ -611,12 +611,12 @@ the schema that is currently being used.
611@section Schema locating files 611@section Schema locating files
612 612
613Each schema locating file specifies a list of rules. The rules 613Each schema locating file specifies a list of rules. The rules
614from each file are appended in order. To locate a schema each rule is 614from each file are appended in order. To locate a schema each rule is
615applied in turn until a rule matches. The first matching rule is then 615applied in turn until a rule matches. The first matching rule is then
616used to determine the schema. 616used to determine the schema.
617 617
618Schema locating files are designed to be useful for other 618Schema locating files are designed to be useful for other
619applications that need to locate a schema for a document. In fact, 619applications that need to locate a schema for a document. In fact,
620there is nothing specific to locating schemas in the design; it could 620there is nothing specific to locating schemas in the design; it could
621equally well be used for locating a stylesheet. 621equally well be used for locating a stylesheet.
622 622
@@ -638,7 +638,7 @@ files must be valid with respect to this schema.
638The document element of a schema locating file must be 638The document element of a schema locating file must be
639@samp{locatingRules} and the namespace URI must be 639@samp{locatingRules} and the namespace URI must be
640@samp{http://thaiopensource.com/ns/locating-rules/1.0}. The 640@samp{http://thaiopensource.com/ns/locating-rules/1.0}. The
641children of the document element specify rules. The order of the 641children of the document element specify rules. The order of the
642children is the same as the order of the rules. Here's a complete 642children is the same as the order of the rules. Here's a complete
643example of a schema locating file: 643example of a schema locating file:
644 644
@@ -665,7 +665,7 @@ As usual with XML-related technologies, resources are identified
665by URIs. The @samp{uri} attribute identifies the schema by 665by URIs. The @samp{uri} attribute identifies the schema by
666specifying the URI@. The URI may be relative. If so, it is resolved 666specifying the URI@. The URI may be relative. If so, it is resolved
667relative to the URI of the schema locating file that contains 667relative to the URI of the schema locating file that contains
668attribute. This means that if the value of @samp{uri} attribute 668attribute. This means that if the value of @samp{uri} attribute
669does not contain a @samp{/}, then it will refer to a filename in 669does not contain a @samp{/}, then it will refer to a filename in
670the same directory as the schema locating file. 670the same directory as the schema locating file.
671 671
@@ -696,7 +696,7 @@ relative URI in the @samp{resource} attribute is resolved into a
696particular absolute URI using the base URI of the schema locating 696particular absolute URI using the base URI of the schema locating
697file, a relative URI pattern matches if it matches some number of 697file, a relative URI pattern matches if it matches some number of
698complete path segments of the document's URI ending with the last path 698complete path segments of the document's URI ending with the last path
699segment of the document's URI@. For example, 699segment of the document's URI@. For example,
700 700
701@example 701@example
702<uri pattern="*.xsl" uri="xslt.rnc"/> 702<uri pattern="*.xsl" uri="xslt.rnc"/>
@@ -707,7 +707,7 @@ specifies that the schema for documents with a URI whose path ends
707with @samp{.xsl} is @samp{xslt.rnc}. 707with @samp{.xsl} is @samp{xslt.rnc}.
708 708
709A @samp{transformURI} rule locates a schema by 709A @samp{transformURI} rule locates a schema by
710transforming the URI of the document. The @samp{fromPattern} 710transforming the URI of the document. The @samp{fromPattern}
711attribute specifies a URI pattern with the same meaning as the 711attribute specifies a URI pattern with the same meaning as the
712@samp{pattern} attribute of the @samp{uri} element. The 712@samp{pattern} attribute of the @samp{uri} element. The
713@samp{toPattern} attribute is a URI pattern that is used to 713@samp{toPattern} attribute is a URI pattern that is used to
@@ -736,7 +736,7 @@ schema.
736@subsection Using the document element to locate a schema 736@subsection Using the document element to locate a schema
737 737
738A @samp{documentElement} rule locates a schema based on 738A @samp{documentElement} rule locates a schema based on
739the local name and prefix of the document element. For example, a rule 739the local name and prefix of the document element. For example, a rule
740 740
741@example 741@example
742<documentElement prefix="xsl" localName="stylesheet" uri="xslt.rnc"/> 742<documentElement prefix="xsl" localName="stylesheet" uri="xslt.rnc"/>
@@ -745,12 +745,12 @@ the local name and prefix of the document element. For example, a rule
745@noindent 745@noindent
746specifies that when the name of the document element is 746specifies that when the name of the document element is
747@samp{xsl:stylesheet}, then @samp{xslt.rnc} should be used 747@samp{xsl:stylesheet}, then @samp{xslt.rnc} should be used
748as the schema. Either the @samp{prefix} or 748as the schema. Either the @samp{prefix} or
749@samp{localName} attribute may be omitted to allow any prefix or 749@samp{localName} attribute may be omitted to allow any prefix or
750local name. 750local name.
751 751
752A @samp{namespace} rule locates a schema based on the 752A @samp{namespace} rule locates a schema based on the
753namespace URI of the document element. For example, a rule 753namespace URI of the document element. For example, a rule
754 754
755@example 755@example
756<namespace ns="http://www.w3.org/1999/XSL/Transform" uri="xslt.rnc"/> 756<namespace ns="http://www.w3.org/1999/XSL/Transform" uri="xslt.rnc"/>
@@ -780,7 +780,7 @@ Each of the rules described in previous sections that uses a
780@samp{uri} attribute to specify a schema, can instead use a 780@samp{uri} attribute to specify a schema, can instead use a
781@samp{typeId} attribute to specify a type identifier. The type 781@samp{typeId} attribute to specify a type identifier. The type
782identifier can be associated with a URI using a @samp{typeId} 782identifier can be associated with a URI using a @samp{typeId}
783element. For example, 783element. For example,
784 784
785@example 785@example
786<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0"> 786<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
@@ -805,7 +805,7 @@ more flexible than a schema locating file that simply specified
805 805
806@noindent 806@noindent
807A user can easily use @kbd{C-c C-s C-t} to select between XHTML 807A user can easily use @kbd{C-c C-s C-t} to select between XHTML
808Strict and XHTML Transitional. Also, a user can easily add a catalog 808Strict and XHTML Transitional. Also, a user can easily add a catalog
809 809
810@example 810@example
811<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0"> 811<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
@@ -823,7 +823,7 @@ The @samp{include} element includes rules from another
823schema locating file. The behavior is exactly as if the rules from 823schema locating file. The behavior is exactly as if the rules from
824that file were included in place of the @samp{include} element. 824that file were included in place of the @samp{include} element.
825Relative URIs are resolved into absolute URIs before the inclusion is 825Relative URIs are resolved into absolute URIs before the inclusion is
826performed. For example, 826performed. For example,
827 827
828@example 828@example
829<include rules="../rules.xml"/> 829<include rules="../rules.xml"/>
@@ -875,7 +875,7 @@ nXML mode is designed to support the creation of standalone XML
875documents that do not depend on a DTD@. Although it is common practice 875documents that do not depend on a DTD@. Although it is common practice
876to insert a DOCTYPE declaration referencing an external DTD, this has 876to insert a DOCTYPE declaration referencing an external DTD, this has
877undesirable side-effects. It means that the document is no longer 877undesirable side-effects. It means that the document is no longer
878self-contained. It also means that different XML parsers may interpret 878self-contained. It also means that different XML parsers may interpret
879the document in different ways, since the XML Recommendation does not 879the document in different ways, since the XML Recommendation does not
880require XML parsers to read the DTD@. With DTDs, it was impractical to 880require XML parsers to read the DTD@. With DTDs, it was impractical to
881get validation without using an external DTD or reference to an 881get validation without using an external DTD or reference to an
@@ -884,9 +884,9 @@ simultaneously get the benefits of validation and standalone XML
884documents. Therefore, I recommend that you do not reference an 884documents. Therefore, I recommend that you do not reference an
885external DOCTYPE in your XML documents. 885external DOCTYPE in your XML documents.
886 886
887One problem is entities for characters. Typically, as well as 887One problem is entities for characters. Typically, as well as
888providing validation, DTDs also provide a set of character entities 888providing validation, DTDs also provide a set of character entities
889for documents to use. Schemas cannot provide this functionality, 889for documents to use. Schemas cannot provide this functionality,
890because schema validation happens after XML parsing. The recommended 890because schema validation happens after XML parsing. The recommended
891solution is to either use the Unicode characters directly, or, if this 891solution is to either use the Unicode characters directly, or, if this
892is impractical, use character references. nXML mode supports this by 892is impractical, use character references. nXML mode supports this by
@@ -903,7 +903,7 @@ nXML mode has some limitations:
903@item 903@item
904DTD support is limited. Internal parsed general entities declared 904DTD support is limited. Internal parsed general entities declared
905in the internal subset are supported provided they do not contain 905in the internal subset are supported provided they do not contain
906elements. Other usage of DTDs is ignored. 906elements. Other usage of DTDs is ignored.
907@item 907@item
908The restrictions on RELAX NG schemas in section 7 of the RELAX NG 908The restrictions on RELAX NG schemas in section 7 of the RELAX NG
909specification are not enforced. 909specification are not enforced.
diff --git a/doc/misc/org.org b/doc/misc/org.org
index 83a723ea94f..dc7d8ef166f 100644
--- a/doc/misc/org.org
+++ b/doc/misc/org.org
@@ -27,7 +27,7 @@ Authoring Org files is best supported by Emacs, but you can view,
27understand, and change them with any text editor. 27understand, and change them with any text editor.
28 28
29As an authoring tool, Org helps you write structured documents and 29As an authoring tool, Org helps you write structured documents and
30provides exporting facilities. Org files can also be used for literate 30provides exporting facilities. Org files can also be used for literate
31programming and reproducible research. As a TODO lists manager, Org 31programming and reproducible research. As a TODO lists manager, Org
32helps you organize your tasks in a flexible way, from daily needs to 32helps you organize your tasks in a flexible way, from daily needs to
33detailed project-planning, allowing logging, multiple views on your 33detailed project-planning, allowing logging, multiple views on your
@@ -16552,7 +16552,7 @@ BACKEND is the export backend being used, as a symbol."
16552 (lambda () 16552 (lambda ()
16553 (delete-region (point) (line-beginning-position 2)) 16553 (delete-region (point) (line-beginning-position 2))
16554 ;; We need to tell `org-map-entries' to not skip over heading at 16554 ;; We need to tell `org-map-entries' to not skip over heading at
16555 ;; point. Otherwise, it would continue from _next_ heading. See 16555 ;; point. Otherwise, it would continue from _next_ heading. See
16556 ;; the docstring of `org-map-entries' for details. 16556 ;; the docstring of `org-map-entries' for details.
16557 (setq org-map-continue-from (point))))) 16557 (setq org-map-continue-from (point)))))
16558 16558
@@ -17661,7 +17661,7 @@ Org currently includes the following export processors:
17661 - bibtex :: this export processor uses BibTeX, the historical 17661 - bibtex :: this export processor uses BibTeX, the historical
17662 bibliographic processor used with LaTeX, thus allowing the use of 17662 bibliographic processor used with LaTeX, thus allowing the use of
17663 data and style files compatible with this processor (including a 17663 data and style files compatible with this processor (including a
17664 large number of publishers' styles). It only supports LaTeX's 17664 large number of publishers' styles). It only supports LaTeX's
17665 =\cite= and =\nocite= commands. 17665 =\cite= and =\nocite= commands.
17666 17666
17667 - natbib :: as with the bibtex processor, but using the LaTeX 17667 - natbib :: as with the bibtex processor, but using the LaTeX
@@ -17706,15 +17706,15 @@ your LaTeX installation, it won't export to anything but PDF.
17706#+vindex: org-cite-biblatex-options 17706#+vindex: org-cite-biblatex-options
17707#+texinfo: @noindent 17707#+texinfo: @noindent
17708specifies the =biblatex= export processor with the default =numeric= 17708specifies the =biblatex= export processor with the default =numeric=
17709style and the =bibtex= backend. Always define the style first and then 17709style and the =bibtex= backend. Always define the style first and then
17710the rest of load-time options for the =biblatex= 17710the rest of load-time options for the =biblatex=
17711package. Alternatively, you can use the ~key=val,key=val~ format for 17711package. Alternatively, you can use the ~key=val,key=val~ format for
17712the options as documented in the =biblatex= package documentation: 17712the options as documented in the =biblatex= package documentation:
17713 17713
17714: #+cite_export: biblatex backend=bibtex,style=numeric 17714: #+cite_export: biblatex backend=bibtex,style=numeric
17715 17715
17716The ~org-cite-biblatex-options~ variable in your Emacs configuration 17716The ~org-cite-biblatex-options~ variable in your Emacs configuration
17717uses this format. It will only export to PDF, since it relies on the 17717uses this format. It will only export to PDF, since it relies on the
17718~biblatex~ processor of your LaTeX installation. 17718~biblatex~ processor of your LaTeX installation.
17719 17719
17720** Bibliography printing 17720** Bibliography printing
@@ -19425,10 +19425,10 @@ the tangled file's executable permission.
19425The =tangle-mode= header argument specifies what permissions to set 19425The =tangle-mode= header argument specifies what permissions to set
19426for tangled files by ~set-file-modes~. Permissions are given by an 19426for tangled files by ~set-file-modes~. Permissions are given by an
19427octal value, which can be provided calling the ~identity~ function on 19427octal value, which can be provided calling the ~identity~ function on
19428an elisp octal value. For instance, to create a read-only file one may 19428an elisp octal value. For instance, to create a read-only file one may
19429use =:tangle-mode (identity #o444)=. To reduce the verbosity required, 19429use =:tangle-mode (identity #o444)=. To reduce the verbosity required,
19430a octal shorthand is defined, =oXXX= (=o= for octal). Using this, our 19430a octal shorthand is defined, =oXXX= (=o= for octal). Using this, our
19431read-only example is =:tangle-mode o444=. Omitting the =o= prefix will 19431read-only example is =:tangle-mode o444=. Omitting the =o= prefix will
19432cause the argument to be interpreted as an integer, which can lead to 19432cause the argument to be interpreted as an integer, which can lead to
19433unexpected results (=444= is the same as =o674=). 19433unexpected results (=444= is the same as =o674=).
19434Two other shorthands are recognized, ls-style strings like 19434Two other shorthands are recognized, ls-style strings like
@@ -19437,7 +19437,7 @@ Note that chmod-style permissions are based on
19437~org-babel-tangle-default-file-mode~, which is =#o544= by default. 19437~org-babel-tangle-default-file-mode~, which is =#o544= by default.
19438 19438
19439When =:tangle-mode= and =:shebang= are both specified, the give 19439When =:tangle-mode= and =:shebang= are both specified, the give
19440=:tangle-mode= will override the permissions from =:shebang=. When 19440=:tangle-mode= will override the permissions from =:shebang=. When
19441multiple source code blocks tangle to a single file with conflicting 19441multiple source code blocks tangle to a single file with conflicting
19442=:tangle-mode= header arguments, Org's behavior is undefined. 19442=:tangle-mode= header arguments, Org's behavior is undefined.
19443 19443
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index e1504b08a3a..6043685b2c8 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -730,7 +730,7 @@ positioned on a directory all files in that directory are marked
730(@code{cvs-mode-mark}). 730(@code{cvs-mode-mark}).
731 731
732@item u 732@item u
733Unmark the file that the cursor is positioned on. If the cursor is on a 733Unmark the file that the cursor is positioned on. If the cursor is on a
734directory, all files in that directory are unmarked 734directory, all files in that directory are unmarked
735(@code{cvs-mode-unmark}). 735(@code{cvs-mode-unmark}).
736 736
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi
index 9ae4bb4a17c..98f60dcc60e 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -835,7 +835,7 @@ window @code{rcirc} considers is controlled by the
835 835
836@vindex rcirc-omit-unless-requested 836@vindex rcirc-omit-unless-requested
837Certain messages can be omitted by default, unless the user manual 837Certain messages can be omitted by default, unless the user manual
838requests them. For example, if you don't want to display @code{TOPIC} 838requests them. For example, if you don't want to display @code{TOPIC}
839and @code{NAMES} messages, after reconnecting, you can configure 839and @code{NAMES} messages, after reconnecting, you can configure
840@code{rcirc-omit-unless-requested} to hide: 840@code{rcirc-omit-unless-requested} to hide:
841 841
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index 08ef084ae12..f542685b9f9 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -1371,7 +1371,7 @@ the context.
1371@end lisp 1371@end lisp
1372 1372
1373The empty pairs of brackets indicate the different arguments of the 1373The empty pairs of brackets indicate the different arguments of the
1374@code{\myfig} macro. The @samp{*} marks the label argument. @code{?f} 1374@code{\myfig} macro. The @samp{*} marks the label argument. @code{?f}
1375indicates that this is a figure label which will be listed together with 1375indicates that this is a figure label which will be listed together with
1376labels from normal figure environments. The @code{nil} entries for 1376labels from normal figure environments. The @code{nil} entries for
1377prefix and reference format mean to use the defaults for figure labels. 1377prefix and reference format mean to use the defaults for figure labels.
@@ -1748,7 +1748,7 @@ selection process similar to that for selecting labels
1748(@pxref{Referencing Labels}). 1748(@pxref{Referencing Labels}).
1749 1749
1750The regular expression uses an extended syntax: @samp{&&} defines a 1750The regular expression uses an extended syntax: @samp{&&} defines a
1751logic @code{and} for regular expressions. For example 1751logic @code{and} for regular expressions. For example
1752@samp{Einstein&&Bose} will match all articles which mention 1752@samp{Einstein&&Bose} will match all articles which mention
1753Bose-Einstein condensation, or which are co-authored by Bose and 1753Bose-Einstein condensation, or which are co-authored by Bose and
1754Einstein. When entering the regular expression, you can complete on 1754Einstein. When entering the regular expression, you can complete on
@@ -2708,7 +2708,7 @@ display.
2708 2708
2709@item @code{\bibitem} 2709@item @code{\bibitem}
2710@cindex @code{\bibitem} 2710@cindex @code{\bibitem}
2711Display a document location which cites this article. Pressing 2711Display a document location which cites this article. Pressing
2712@kbd{C-c &} several times moves through the entire document and finds 2712@kbd{C-c &} several times moves through the entire document and finds
2713all locations. 2713all locations.
2714 2714
@@ -2955,7 +2955,7 @@ path specified in the variables @code{BIBINPUTS} and @code{TEXBIB} for
2955When searching, @RefTeX{} will also expand recursive path 2955When searching, @RefTeX{} will also expand recursive path
2956definitions (directories ending in @samp{//} or @samp{!!}). But it will 2956definitions (directories ending in @samp{//} or @samp{!!}). But it will
2957only search and expand directories @emph{explicitly} given in these 2957only search and expand directories @emph{explicitly} given in these
2958variables. This may cause problems under the following circumstances: 2958variables. This may cause problems under the following circumstances:
2959 2959
2960@itemize @bullet 2960@itemize @bullet
2961@item 2961@item
@@ -3288,7 +3288,7 @@ Labels}).
3288@findex TeX-add-style-hook@r{, AUCTeX} 3288@findex TeX-add-style-hook@r{, AUCTeX}
3289Style files are Emacs Lisp files which are evaluated by @AUCTeX{} in 3289Style files are Emacs Lisp files which are evaluated by @AUCTeX{} in
3290association with the @code{\documentclass} and @code{\usepackage} 3290association with the @code{\documentclass} and @code{\usepackage}
3291commands of a document (@pxref{Style Files,,,auctex}). Support for 3291commands of a document (@pxref{Style Files,,,auctex}). Support for
3292@RefTeX{} in such a style file is useful when the @LaTeX{} style 3292@RefTeX{} in such a style file is useful when the @LaTeX{} style
3293defines macros or environments connected with labels, citations, or the 3293defines macros or environments connected with labels, citations, or the
3294index. Many style files (e.g., @file{amsmath.el} or @file{natbib.el}) 3294index. Many style files (e.g., @file{amsmath.el} or @file{natbib.el})
@@ -4132,7 +4132,7 @@ Prefixes for section labels. When the label prefix given in an entry in
4132@code{reftex-label-alist} contains @samp{%S}, this list is used to 4132@code{reftex-label-alist} contains @samp{%S}, this list is used to
4133determine the correct prefix string depending on the current section 4133determine the correct prefix string depending on the current section
4134level. The list is an alist, with each entry of the form 4134level. The list is an alist, with each entry of the form
4135@w{@code{(@var{key} . @var{prefix})}}. Possible keys are sectioning macro 4135@w{@code{(@var{key} . @var{prefix})}}. Possible keys are sectioning macro
4136names like @samp{chapter}, integer section levels (as given in 4136names like @samp{chapter}, integer section levels (as given in
4137@code{reftex-section-levels}), and @code{t} for the default. 4137@code{reftex-section-levels}), and @code{t} for the default.
4138@end defopt 4138@end defopt
@@ -4298,7 +4298,7 @@ Character class after abbrev point in word.
4298@cindex Referencing labels, options 4298@cindex Referencing labels, options
4299 4299
4300@defopt reftex-label-menu-flags 4300@defopt reftex-label-menu-flags
4301List of flags governing the label menu makeup. The flags are: 4301List of flags governing the label menu makeup. The flags are:
4302@table @asis 4302@table @asis
4303@item @var{table-of-contents} 4303@item @var{table-of-contents}
4304Show the labels embedded in a table of context. 4304Show the labels embedded in a table of context.
@@ -4764,7 +4764,7 @@ phrase and its index command will always end up on a single line.
4764 4764
4765@defopt reftex-index-phrases-sort-prefers-entry 4765@defopt reftex-index-phrases-sort-prefers-entry
4766Non-@code{nil} means when sorting phrase lines, the explicit index entry 4766Non-@code{nil} means when sorting phrase lines, the explicit index entry
4767is used. Phrase lines in the phrases buffer contain a search phrase, and 4767is used. Phrase lines in the phrases buffer contain a search phrase, and
4768sorting is normally based on these. Some phrase lines also have 4768sorting is normally based on these. Some phrase lines also have
4769an explicit index argument specified. When this variable is 4769an explicit index argument specified. When this variable is
4770non-@code{nil}, the index argument will be used for sorting. 4770non-@code{nil}, the index argument will be used for sorting.
@@ -4993,7 +4993,7 @@ lookup.
4993@end table 4993@end table
4994 4994
4995If a buffer is to be kept, the file is visited normally (which is 4995If a buffer is to be kept, the file is visited normally (which is
4996potentially slow but will happen only once). If a buffer is to be thrown 4996potentially slow but will happen only once). If a buffer is to be thrown
4997away, the initialization of the buffer depends upon the variable 4997away, the initialization of the buffer depends upon the variable
4998@code{reftex-initialize-temporary-buffers}. 4998@code{reftex-initialize-temporary-buffers}.
4999@end defopt 4999@end defopt
@@ -5001,7 +5001,7 @@ away, the initialization of the buffer depends upon the variable
5001@defopt reftex-initialize-temporary-buffers 5001@defopt reftex-initialize-temporary-buffers
5002Non-@code{nil} means do initializations even when visiting file 5002Non-@code{nil} means do initializations even when visiting file
5003temporarily. When @code{nil}, @RefTeX{} may turn off find-file hooks and 5003temporarily. When @code{nil}, @RefTeX{} may turn off find-file hooks and
5004other stuff to briefly visit a file. When @code{t}, the full default 5004other stuff to briefly visit a file. When @code{t}, the full default
5005initializations are done (@code{find-file-hook} etc.). Instead of 5005initializations are done (@code{find-file-hook} etc.). Instead of
5006@code{t} or @code{nil}, this variable may also be a list of hook 5006@code{t} or @code{nil}, this variable may also be a list of hook
5007functions to do a minimal initialization. 5007functions to do a minimal initialization.
@@ -5107,7 +5107,7 @@ Non-@code{nil} means, highlight selected text in selection and
5107@emph{selected} text, and it is highlighted. This is the entry most 5107@emph{selected} text, and it is highlighted. This is the entry most
5108keys in the selection and @file{*toc*} buffers act on. However, if you 5108keys in the selection and @file{*toc*} buffers act on. However, if you
5109mainly use the mouse to select an item, you may find it nice to have 5109mainly use the mouse to select an item, you may find it nice to have
5110mouse-triggered highlighting @emph{instead} or @emph{as well}. The 5110mouse-triggered highlighting @emph{instead} or @emph{as well}. The
5111variable may have one of these values: 5111variable may have one of these values:
5112 5112
5113@example 5113@example
@@ -5719,7 +5719,7 @@ Fixed bug with empty context strings.
5719@noindent @b{Version 3.21} 5719@noindent @b{Version 3.21}
5720@itemize @bullet 5720@itemize @bullet
5721@item 5721@item
5722New options for all faces used by @RefTeX{}. They're in the 5722New options for all faces used by @RefTeX{}. They're in the
5723customization group @code{reftex-fontification-configurations}. 5723customization group @code{reftex-fontification-configurations}.
5724@end itemize 5724@end itemize
5725 5725
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index 5176797cde8..ac256cb6eaf 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -620,7 +620,7 @@ time, it just goes ahead and inserts the reference header indexed by
620different reference headers based on the type of reply or forwarding 620different reference headers based on the type of reply or forwarding
621you are doing. You may also want to preview the reference header 621you are doing. You may also want to preview the reference header
622before deciding whether to insert it into the reply buffer or 622before deciding whether to insert it into the reply buffer or
623not. Supercite provides an optional @dfn{electric reference} mode 623not. Supercite provides an optional @dfn{electric reference} mode
624which you can drop into to give you this functionality. 624which you can drop into to give you this functionality.
625 625
626@vindex sc-electric-references-p 626@vindex sc-electric-references-p
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index 80c7b93aa28..bb9516a3b2a 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -162,7 +162,7 @@ A B
162By default, the cell value print-out is right aligned, that is the 162By default, the cell value print-out is right aligned, that is the
163reason for such an alignment for the notes in column @samp{B}. To 163reason for such an alignment for the notes in column @samp{B}. To
164change that, you can enter a printer function for the whole column, 164change that, you can enter a printer function for the whole column,
165using e.g., @kbd{M-p ("%s")}. Enclosing @code{"%s"} into a list tells 165using e.g., @kbd{M-p ("%s")}. Enclosing @code{"%s"} into a list tells
166@acronym{SES} to align left. You can override a column's printer 166@acronym{SES} to align left. You can override a column's printer
167function in any individual cell using @kbd{p}. 167function in any individual cell using @kbd{p}.
168 168
@@ -203,7 +203,7 @@ remove blank cells from the returned list, which enables using
203 203
204Actually, both options are not exactly equivalent as the former makes 204Actually, both options are not exactly equivalent as the former makes
205the summing in reversed order of argument, and the latter in the same 205the summing in reversed order of argument, and the latter in the same
206order. You can also reverse the order of arguments returned by 206order. You can also reverse the order of arguments returned by
207@code{ses-range} with the @code{<} modifier. 207@code{ses-range} with the @code{<} modifier.
208 208
209@c =================================================================== 209@c ===================================================================
@@ -226,16 +226,16 @@ with @file{.ses}. For example, @kbd{C-x C-f test.ses @key{RET}}.
226A @dfn{cell identifier} is a symbol with a column letter and a row 226A @dfn{cell identifier} is a symbol with a column letter and a row
227number. Cell B7 is the 2nd column of the 7th row. For very wide 227number. Cell B7 is the 2nd column of the 7th row. For very wide
228spreadsheets, there are two column letters: cell AB7 is the 28th 228spreadsheets, there are two column letters: cell AB7 is the 28th
229column of the 7th row. Super wide spreadsheets get AAA1, etc. 229column of the 7th row. Super wide spreadsheets get AAA1, etc.
230You move around with the regular Emacs movement commands. 230You move around with the regular Emacs movement commands.
231 231
232@table @kbd 232@table @kbd
233@item j 233@item j
234Moves point to cell, specified by identifier (@code{ses-jump}). Unless 234Moves point to cell, specified by identifier (@code{ses-jump}). Unless
235the cell is a renamed cell, the identifier is case-insensitive. A 235the cell is a renamed cell, the identifier is case-insensitive. A
236prefix argument @math{n} move to cell with coordinates @math{(n\div R, 236prefix argument @math{n} move to cell with coordinates @math{(n\div R,
237n \% C)} for a spreadsheet of @math{R} rows and @math{C} columns, and 237n \% C)} for a spreadsheet of @math{R} rows and @math{C} columns, and
238@samp{A1} being of coordinates @math{(0,0)}. The way the identifier or 238@samp{A1} being of coordinates @math{(0,0)}. The way the identifier or
239the command prefix argument are interpreted can be customized through 239the command prefix argument are interpreted can be customized through
240variables @code{ses-jump-cell-name-function} and 240variables @code{ses-jump-cell-name-function} and
241@code{ses-jump-prefix-function}. 241@code{ses-jump-prefix-function}.
@@ -434,7 +434,7 @@ use parentheses: @samp{("$%.2f")}.
434@item 434@item
435A printer can also be a one-argument function, the result of which is 435A printer can also be a one-argument function, the result of which is
436a string (to get right alignment) or list of one string (to get left 436a string (to get right alignment) or list of one string (to get left
437alignment). Such a function can be in turn configured as: 437alignment). Such a function can be in turn configured as:
438@itemize 438@itemize
439@item 439@item
440A lambda expression, for instance: 440A lambda expression, for instance:
@@ -543,11 +543,11 @@ printer function. Then, if you call again
543reprinted accordingly. 543reprinted accordingly.
544 544
545Sometimes there are local printers that you want to define or 545Sometimes there are local printers that you want to define or
546re-define automatically every time you open a sheet. For instance 546re-define automatically every time you open a sheet. For instance
547imagine that you want to define/re-define automatically a local 547imagine that you want to define/re-define automatically a local
548printer @code{euro} to display a number like an amount of euros, that 548printer @code{euro} to display a number like an amount of euros, that
549is to say number @code{3.1} would be displayed as 549is to say number @code{3.1} would be displayed as
550@code{3.10@dmn{}@euro{}}. To do so in any non read-only SES buffer, 550@code{3.10@dmn{}@euro{}}. To do so in any non read-only SES buffer,
551you can add some code like this to your @file{.emacs} init file: 551you can add some code like this to your @file{.emacs} init file:
552 552
553@lisp 553@lisp
@@ -586,7 +586,7 @@ when you define a local printer function with command
586 586
587When doing so, please take care that the returned value is a string, 587When doing so, please take care that the returned value is a string,
588or a list containing a string, even when the input argument has an 588or a list containing a string, even when the input argument has an
589unexpected value. Here is an example: 589unexpected value. Here is an example:
590 590
591@example 591@example
592(lambda (val) 592(lambda (val)
@@ -769,24 +769,24 @@ list.
769 769
770@vindex ses-jump-cell-name-function 770@vindex ses-jump-cell-name-function
771@code{ses-jump-cell-name-function} is a customizable variable by 771@code{ses-jump-cell-name-function} is a customizable variable by
772default set to the @code{upcase} function. This function is called 772default set to the @code{upcase} function. This function is called
773when you pass a cell name to the @command{ses-jump} command (@kbd{j}), 773when you pass a cell name to the @command{ses-jump} command (@kbd{j}),
774@c TODO : propagate extra explanation from the French version. 774@c TODO : propagate extra explanation from the French version.
775it changes the entered cell name to that where to jump. The default 775it changes the entered cell name to that where to jump. The default
776setting @code{upcase} allows you to enter the cell name in low 776setting @code{upcase} allows you to enter the cell name in low
777case. Another use of @code{ses-jump-cell-name-function} could be some 777case. Another use of @code{ses-jump-cell-name-function} could be some
778internationalization to convert non latin characters into latin 778internationalization to convert non latin characters into latin
779equivalents to name the cell. Instead of a cell name, the function may 779equivalents to name the cell. Instead of a cell name, the function may
780return cell coordinates in the form of a cons, for instance @code{(0 780return cell coordinates in the form of a cons, for instance @code{(0
781. 0)} for cell @code{A1}, @code{(1 . 0)} for cell @code{A2}, etc. 781. 0)} for cell @code{A1}, @code{(1 . 0)} for cell @code{A2}, etc.
782 782
783@vindex ses-jump-prefix-function 783@vindex ses-jump-prefix-function
784@code{ses-jump-prefix-function} is a customizable variable by default 784@code{ses-jump-prefix-function} is a customizable variable by default
785set to the @code{ses-jump-prefix} function. This function is called 785set to the @code{ses-jump-prefix} function. This function is called
786when you give a prefix argument to the @command{ses-jump} command 786when you give a prefix argument to the @command{ses-jump} command
787(@kbd{j}). It returns a cell name or cell coordinates corresponding to 787(@kbd{j}). It returns a cell name or cell coordinates corresponding to
788the prefix argument. Cell coordinates are in the form of a cons, for 788the prefix argument. Cell coordinates are in the form of a cons, for
789instance @code{(1 . 0)} for cell @code{A2}. The default setting 789instance @code{(1 . 0)} for cell @code{A2}. The default setting
790@code{ses-jump-prefix} will number cells left to right and then top 790@code{ses-jump-prefix} will number cells left to right and then top
791down, so assuming a 4x3 spreadsheet prefix argument @samp{0} jumps to 791down, so assuming a 4x3 spreadsheet prefix argument @samp{0} jumps to
792cell @samp{A1}, prefix argument @samp{2} jumps to @samp{C1}, prefix 792cell @samp{A1}, prefix argument @samp{2} jumps to @samp{C1}, prefix
@@ -841,7 +841,7 @@ valid local variable name (See also @ref{Nonrelocatable references}).
841@findex ses-repair-cell-reference-all 841@findex ses-repair-cell-reference-all
842When you interrupt a cell formula update by typing @kbd{C-g}, then 842When you interrupt a cell formula update by typing @kbd{C-g}, then
843the cell reference link may be broken, which will jeopardize automatic 843the cell reference link may be broken, which will jeopardize automatic
844cell update when any other cell on which it depends is changed. To 844cell update when any other cell on which it depends is changed. To
845repair that use function @code{ses-repair-cell-reference-all} 845repair that use function @code{ses-repair-cell-reference-all}
846@end table 846@end table
847 847
@@ -946,21 +946,21 @@ Flags can be added to @code{ses-range} immediately after the @var{to}
946cell. 946cell.
947@table @code 947@table @code
948@item ! 948@item !
949Empty cells in range can be removed by adding the @code{!} flag. An 949Empty cells in range can be removed by adding the @code{!} flag. An
950empty cell is a cell the value of which is one of symbols @code{nil} 950empty cell is a cell the value of which is one of symbols @code{nil}
951or @code{*skip*}. For instance @code{(ses-range A1 A4 !)} will do the 951or @code{*skip*}. For instance @code{(ses-range A1 A4 !)} will do the
952same as @code{(list A1 A3)} when cells @code{A2} and @code{A4} are 952same as @code{(list A1 A3)} when cells @code{A2} and @code{A4} are
953empty. 953empty.
954@item _ 954@item _
955Empty cell values are replaced by the argument following flag 955Empty cell values are replaced by the argument following flag
956@code{_}, or @code{0} when flag @code{_} is last in argument list. For 956@code{_}, or @code{0} when flag @code{_} is last in argument list. For
957instance @code{(ses-range A1 A4 _ "empty")} will do the same as 957instance @code{(ses-range A1 A4 _ "empty")} will do the same as
958@code{(list A1 "empty" A3 "empty")} when cells @code{A2} and @code{A4} 958@code{(list A1 "empty" A3 "empty")} when cells @code{A2} and @code{A4}
959are empty. Similarly, @code{(ses-range A1 A4 _ )} will do the same as 959are empty. Similarly, @code{(ses-range A1 A4 _ )} will do the same as
960@code{(list A1 0 A3 0)}. 960@code{(list A1 0 A3 0)}.
961@item >v 961@item >v
962When order matters, list cells by reading cells row-wise from top left 962When order matters, list cells by reading cells row-wise from top left
963to bottom right. This flag is provided for completeness only as it is 963to bottom right. This flag is provided for completeness only as it is
964the default reading order. 964the default reading order.
965@item <v 965@item <v
966List cells by reading cells row-wise from top right to bottom left. 966List cells by reading cells row-wise from top right to bottom left.
@@ -978,7 +978,7 @@ A short hand for @code{>v}.
978A short hand for @code{>^}. 978A short hand for @code{>^}.
979@item * 979@item *
980Instead of listing cells, it makes a Calc vector or matrix of it 980Instead of listing cells, it makes a Calc vector or matrix of it
981(@pxref{Top,,,calc,GNU Emacs Calc Manual}). If the range contains only 981(@pxref{Top,,,calc,GNU Emacs Calc Manual}). If the range contains only
982one row or one column a vector is made, otherwise a matrix is made. 982one row or one column a vector is made, otherwise a matrix is made.
983@item *2 983@item *2
984Same as @code{*} except that a matrix is always made even when there 984Same as @code{*} except that a matrix is always made even when there
@@ -1033,7 +1033,7 @@ are some useful functions to call from your formulas:
1033@table @code 1033@table @code
1034@item (ses-delete-blanks &rest @var{args}) 1034@item (ses-delete-blanks &rest @var{args})
1035Returns a list from which all blank cells (value is either @code{nil} 1035Returns a list from which all blank cells (value is either @code{nil}
1036or '*skip*) have been deleted. Order of args is reverted. Please note 1036or '*skip*) have been deleted. Order of args is reverted. Please note
1037that @code{ses-range} has a @code{!} modifier that enables removing 1037that @code{ses-range} has a @code{!} modifier that enables removing
1038blanks, so it is possible to write: 1038blanks, so it is possible to write:
1039@lisp 1039@lisp
@@ -1250,8 +1250,8 @@ The best way is to rename cells that you do @emph{not} want to be
1250relocatable by using @code{ses-rename-cell}. 1250relocatable by using @code{ses-rename-cell}.
1251@findex ses-rename-cell 1251@findex ses-rename-cell
1252Cells that do not have an A1-like name style are not relocated on 1252Cells that do not have an A1-like name style are not relocated on
1253yank. Using this method, the concerned cells won't be relocated 1253yank. Using this method, the concerned cells won't be relocated
1254whatever formula they appear in. Please note however that when a 1254whatever formula they appear in. Please note however that when a
1255formula contains some range @code{(ses-range @var{cell1} @var{cell2})} 1255formula contains some range @code{(ses-range @var{cell1} @var{cell2})}
1256then in the yanked formula each range bound @var{cell1} and 1256then in the yanked formula each range bound @var{cell1} and
1257@var{cell2} are relocated, or not, independently, depending on whether 1257@var{cell2} are relocated, or not, independently, depending on whether
diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi
index f4b9ee702a7..428873e59e7 100644
--- a/doc/misc/speedbar.texi
+++ b/doc/misc/speedbar.texi
@@ -48,7 +48,7 @@ packages, and web browsers.
48 48
49Speedbar displays a narrow frame in which a tree view is shown. This 49Speedbar displays a narrow frame in which a tree view is shown. This
50tree view defaults to containing a list of files and directories. Files 50tree view defaults to containing a list of files and directories. Files
51can be ``expanded'' to list tags inside. Directories can be expanded to 51can be ``expanded'' to list tags inside. Directories can be expanded to
52list the files within them. Each file or tag can be jumped to 52list the files within them. Each file or tag can be jumped to
53immediately. 53immediately.
54 54
diff --git a/doc/misc/todo-mode.texi b/doc/misc/todo-mode.texi
index 9f259b0e65b..e4826e6c5f4 100644
--- a/doc/misc/todo-mode.texi
+++ b/doc/misc/todo-mode.texi
@@ -812,7 +812,7 @@ or by removing it if present.
812 812
813@samp{nonmarking} (@kbd{k}): Change the current item's calendar 813@samp{nonmarking} (@kbd{k}): Change the current item's calendar
814marking status by adding @code{diary-nonmarking-symbol} if the item 814marking status by adding @code{diary-nonmarking-symbol} if the item
815lacks this, or by removing it if present. Since this symbol only 815lacks this, or by removing it if present. Since this symbol only
816applies to diary items, the item is automatically marked as such, 816applies to diary items, the item is automatically marked as such,
817i.e., if @code{todo-nondiary-marker} is present, it is removed. 817i.e., if @code{todo-nondiary-marker} is present, it is removed.
818 818
@@ -1799,7 +1799,7 @@ current file:
1799Hide the item headers if visible, or show them if they are hidden. 1799Hide the item headers if visible, or show them if they are hidden.
1800With done items, only the done header (i.e., the done tag and date-time 1800With done items, only the done header (i.e., the done tag and date-time
1801string inserted when the item was marked done) is hidden, the original 1801string inserted when the item was marked done) is hidden, the original
1802date-time string is not. With filtered items, the category (or 1802date-time string is not. With filtered items, the category (or
1803category-file) tag is not hidden. 1803category-file) tag is not hidden.
1804 1804
1805@item F H 1805@item F H
diff --git a/doc/misc/transient.texi b/doc/misc/transient.texi
index 9245a76e66b..7419ce39206 100644
--- a/doc/misc/transient.texi
+++ b/doc/misc/transient.texi
@@ -165,9 +165,9 @@ commands even have so many options that they introduce @emph{subcommands}
165@anchor{Using Transient for composing interactive commands} 165@anchor{Using Transient for composing interactive commands}
166@heading Using Transient for composing interactive commands 166@heading Using Transient for composing interactive commands
167 167
168What about Emacs commands used interactively? How do these handle 168What about Emacs commands used interactively? How do these handle
169options? One solution is to make many versions of the same command, 169options? One solution is to make many versions of the same command,
170so you don't need to! Consider: @samp{delete-other-windows} vs. 170so you don't need to! Consider: @samp{delete-other-windows} vs.
171@samp{delete-other-windows-vertically} (among many similar examples). 171@samp{delete-other-windows-vertically} (among many similar examples).
172 172
173Some Emacs commands will simply prompt you for the next "argument" 173Some Emacs commands will simply prompt you for the next "argument"
@@ -1019,7 +1019,7 @@ independently. See @ref{Using History}.
1019After a transient prefix command is invoked, @kbd{C-h @var{KEY}} can be used to 1019After a transient prefix command is invoked, @kbd{C-h @var{KEY}} can be used to
1020show the documentation for the infix or suffix command that @kbd{@var{KEY}} is 1020show the documentation for the infix or suffix command that @kbd{@var{KEY}} is
1021bound to (see @ref{Getting Help for Suffix Commands}), and infixes and 1021bound to (see @ref{Getting Help for Suffix Commands}), and infixes and
1022suffixes can be removed from the transient using @kbd{C-x l @var{KEY}}. Infixes 1022suffixes can be removed from the transient using @kbd{C-x l @var{KEY}}. Infixes
1023and suffixes that are disabled by default can be enabled the same way. 1023and suffixes that are disabled by default can be enabled the same way.
1024See @ref{Enabling and Disabling Suffixes}. 1024See @ref{Enabling and Disabling Suffixes}.
1025 1025
@@ -1287,7 +1287,7 @@ individual suffix command.
1287The same form is also used when later binding additional commands 1287The same form is also used when later binding additional commands
1288using functions such as @code{transient-insert-suffix}, see @ref{Modifying Existing Transients}. 1288using functions such as @code{transient-insert-suffix}, see @ref{Modifying Existing Transients}.
1289 1289
1290Note that an infix is a special kind of suffix. Depending on context 1290Note that an infix is a special kind of suffix. Depending on context
1291``suffixes'' means ``suffixes (including infixes)'' or ``non-infix 1291``suffixes'' means ``suffixes (including infixes)'' or ``non-infix
1292suffixes''. Here it means the former. 1292suffixes''. Here it means the former.
1293 1293
@@ -1382,7 +1382,7 @@ argument supported by the constructor of that class. See @ref{Suffix Slots}.
1382@cindex defining suffix commands 1382@cindex defining suffix commands
1383@cindex defining infix commands 1383@cindex defining infix commands
1384 1384
1385Note that an infix is a special kind of suffix. Depending on context 1385Note that an infix is a special kind of suffix. Depending on context
1386``suffixes'' means ``suffixes (including infixes)'' or ``non-infix 1386``suffixes'' means ``suffixes (including infixes)'' or ``non-infix
1387suffixes''. 1387suffixes''.
1388 1388
diff --git a/doc/misc/use-package.texi b/doc/misc/use-package.texi
index c2b6404b68b..99348398550 100644
--- a/doc/misc/use-package.texi
+++ b/doc/misc/use-package.texi
@@ -1612,8 +1612,8 @@ You can override the above setting for a single package by adding
1612 1612
1613@findex :vc 1613@findex :vc
1614The @code{:vc} keyword can be used to control how packages are 1614The @code{:vc} keyword can be used to control how packages are
1615downloaded and/or installed. More specifically, it allows one to fetch 1615downloaded and/or installed. More specifically, it allows one to fetch
1616and update packages directly from a version control system. This is 1616and update packages directly from a version control system. This is
1617especially convenient when wanting to install a package that is not on 1617especially convenient when wanting to install a package that is not on
1618any package archive. 1618any package archive.
1619 1619
diff --git a/doc/misc/vhdl-mode.texi b/doc/misc/vhdl-mode.texi
index 86df723aa5a..e7eb1025ea4 100644
--- a/doc/misc/vhdl-mode.texi
+++ b/doc/misc/vhdl-mode.texi
@@ -79,7 +79,7 @@ modify this GNU manual.''
79@chapter Introduction 79@chapter Introduction
80@cindex Introduction 80@cindex Introduction
81 81
82Welcome to VHDL Mode. This is a GNU Emacs mode for editing files 82Welcome to VHDL Mode. This is a GNU Emacs mode for editing files
83containing VHDL code. 83containing VHDL code.
84 84
85This manual will describe the following: 85This manual will describe the following:
@@ -99,18 +99,18 @@ How to customize the indentation engine.
99@findex vhdl-version 99@findex vhdl-version
100The major version number was incremented to 3 with the addition of 100The major version number was incremented to 3 with the addition of
101many new features for editing VHDL code to the new indentation engine, 101many new features for editing VHDL code to the new indentation engine,
102which was introduced in major version 2. To find the minor revision 102which was introduced in major version 2. To find the minor revision
103number of this release, use @kbd{M-x vhdl-version @key{RET}}. 103number of this release, use @kbd{M-x vhdl-version @key{RET}}.
104 104
105A special word of thanks goes to Rod Whitby, who wrote the 105A special word of thanks goes to Rod Whitby, who wrote the
106VHDL Mode indentation engine, and to Barry Warsaw, who wrote 106VHDL Mode indentation engine, and to Barry Warsaw, who wrote
107the CC Mode indentation engine that formed the basis 107the CC Mode indentation engine that formed the basis
108thereof. Their manuals were also the basis for this manual. 108thereof. Their manuals were also the basis for this manual.
109 109
110This manual is not very up-to-date. It basically contains the 110This manual is not very up-to-date. It basically contains the
111indentation machine documentation by Rod Whitby with only minor 111indentation machine documentation by Rod Whitby with only minor
112adaptions. A short documentation of the entire VHDL Mode is available 112adaptions. A short documentation of the entire VHDL Mode is available
113within the mode itself by typing @kbd{C-c C-h}. Also, all commands and 113within the mode itself by typing @kbd{C-c C-h}. Also, all commands and
114customization of most variables are available through the menu, which 114customization of most variables are available through the menu, which
115makes everything highly self-explaining. 115makes everything highly self-explaining.
116 116
@@ -126,14 +126,14 @@ To get started, simply visit a @file{.vhd} file in Emacs; or type
126@cindex New Indentation Engine 126@cindex New Indentation Engine
127 127
128VHDL Mode has a new indentation engine, providing a simplified, yet 128VHDL Mode has a new indentation engine, providing a simplified, yet
129flexible and general mechanism for customizing indentation. It breaks 129flexible and general mechanism for customizing indentation. It breaks
130indentation calculation into two steps. First for the line of code being 130indentation calculation into two steps. First for the line of code being
131indented, VHDL Mode analyzes what kind of language construct it's 131indented, VHDL Mode analyzes what kind of language construct it's
132looking at, then it applies user defined offsets to the current line 132looking at, then it applies user defined offsets to the current line
133based on this analysis. 133based on this analysis.
134 134
135This section will briefly cover how indentation is calculated in 135This section will briefly cover how indentation is calculated in
136VHDL Mode. It is important to understand the indentation model 136VHDL Mode. It is important to understand the indentation model
137being used so that you will know how to customize VHDL Mode for 137being used so that you will know how to customize VHDL Mode for
138your personal coding style. 138your personal coding style.
139 139
@@ -169,7 +169,7 @@ Conceptually, a line of VHDL code is always indented relative to the
169indentation of some line higher up in the buffer. This is represented 169indentation of some line higher up in the buffer. This is represented
170by the relative buffer position in the syntactic component. 170by the relative buffer position in the syntactic component.
171 171
172It might help to see an example. Suppose we had the following code as 172It might help to see an example. Suppose we had the following code as
173the only thing in a VHDL Mode buffer @footnote{The line numbers 173the only thing in a VHDL Mode buffer @footnote{The line numbers
174in this and future examples don't actually appear in the buffer.}: 174in this and future examples don't actually appear in the buffer.}:
175@example 175@example
@@ -652,7 +652,7 @@ one of the syntactic symbol offsets will need to be tweaked slightly, or
652perhaps @code{vhdl-basic-offset} will need to be changed. However, some 652perhaps @code{vhdl-basic-offset} will need to be changed. However, some
653styles require a more advanced ability for customization, and one of the 653styles require a more advanced ability for customization, and one of the
654real strengths of VHDL Mode is that the syntactic analysis model 654real strengths of VHDL Mode is that the syntactic analysis model
655provides a very flexible framework for customizing indentation. This 655provides a very flexible framework for customizing indentation. This
656allows you to perform special indentation calculations for situations 656allows you to perform special indentation calculations for situations
657not handled by the mode directly. 657not handled by the mode directly.
658 658
@@ -833,13 +833,13 @@ symbol currently recognized}
833@strong{Q.} @emph{How do I re-indent the whole file?} 833@strong{Q.} @emph{How do I re-indent the whole file?}
834 834
835@strong{A.} Visit the file and hit @kbd{C-x h} to mark the whole 835@strong{A.} Visit the file and hit @kbd{C-x h} to mark the whole
836buffer. Then hit @kbd{@key{ESC} C-\} to re-indent the entire region 836buffer. Then hit @kbd{@key{ESC} C-\} to re-indent the entire region
837which you've just marked. Or just enter @kbd{M-x vhdl-indent-buffer}. 837which you've just marked. Or just enter @kbd{M-x vhdl-indent-buffer}.
838@sp 2 838@sp 2
839 839
840@strong{Q.} @emph{How do I re-indent the entire function?} 840@strong{Q.} @emph{How do I re-indent the entire function?}
841 841
842@strong{A.} Hit @kbd{@key{ESC} C-h} to mark the entire function. Then 842@strong{A.} Hit @kbd{@key{ESC} C-h} to mark the entire function. Then
843hit @kbd{@key{ESC} C-\} to re-indent the entire region which you've just 843hit @kbd{@key{ESC} C-\} to re-indent the entire region which you've just
844marked. 844marked.
845@sp 2 845@sp 2
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index 0248edb328f..6907966f861 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -190,7 +190,7 @@ M-x vip-mode
190@kindex 0301 C-x C-z @r{(}@code{suspend-emacs}@r{)} 190@kindex 0301 C-x C-z @r{(}@code{suspend-emacs}@r{)}
191 191
192Loading VIP has the effect of globally binding @kbd{C-z} (@kbd{Control-z}) 192Loading VIP has the effect of globally binding @kbd{C-z} (@kbd{Control-z})
193to the function @code{vip-change-mode-to-vi}. The default binding of @kbd{C-z} 193to the function @code{vip-change-mode-to-vi}. The default binding of @kbd{C-z}
194in GNU Emacs is @code{suspend-emacs}, but, you can also call 194in GNU Emacs is @code{suspend-emacs}, but, you can also call
195@code{suspend-emacs} by typing @kbd{C-x C-z}. Other than this, all the 195@code{suspend-emacs} by typing @kbd{C-x C-z}. Other than this, all the
196key bindings of Emacs remain the same after loading VIP. 196key bindings of Emacs remain the same after loading VIP.
@@ -400,7 +400,7 @@ Given counts, text will be yanked (in Vi's sense) that many times. Thus
400@itemx O 400@itemx O
401@kindex 157 o @r{(}@code{vip-open-line}@r{)} 401@kindex 157 o @r{(}@code{vip-open-line}@r{)}
402@kindex 117 O @r{(}@code{vip-Open-line}@r{)} 402@kindex 117 O @r{(}@code{vip-Open-line}@r{)}
403Given counts, that many copies of text will be inserted. Thus 403Given counts, that many copies of text will be inserted. Thus
404@kbd{o a b c @key{ESC}} will insert 3 lines of @samp{abc} below the current 404@kbd{o a b c @key{ESC}} will insert 3 lines of @samp{abc} below the current
405line. 405line.
406@item / 406@item /
@@ -474,7 +474,7 @@ Forward incremental search.
474@kindex 033 ESC @r{(}@code{vip-ESC}@r{)} 474@kindex 033 ESC @r{(}@code{vip-ESC}@r{)}
475These keys will exit from vi mode and return to emacs mode temporarily. If 475These keys will exit from vi mode and return to emacs mode temporarily. If
476you hit one of these keys, Emacs will be in emacs mode and will believe 476you hit one of these keys, Emacs will be in emacs mode and will believe
477that you hit that key in emacs mode. For example, if you hit @kbd{C-x} 477that you hit that key in emacs mode. For example, if you hit @kbd{C-x}
478followed by @kbd{2}, then the current window will be split into 2 and you 478followed by @kbd{2}, then the current window will be split into 2 and you
479will be in vi mode again. 479will be in vi mode again.
480@item \ 480@item \
@@ -517,7 +517,7 @@ Change upper-case characters in the region to lower case
517(@code{downcase-region}). 517(@code{downcase-region}).
518@item # C 518@item # C
519@kindex 0431 # C @r{(}@code{upcase-region}@r{)} 519@kindex 0431 # C @r{(}@code{upcase-region}@r{)}
520Change lower-case characters in the region to upper case. For instance, 520Change lower-case characters in the region to upper case. For instance,
521@kbd{# C 3 w} will capitalize 3 words from the current point 521@kbd{# C 3 w} will capitalize 3 words from the current point
522(@code{upcase-region}). 522(@code{upcase-region}).
523@item # g 523@item # g
@@ -574,14 +574,14 @@ in the current window, while @kbd{S} selects buffer in another window.
574@kindex 1300 X @r{(}@code{vip-ctl-x-equivalent}@r{)} 574@kindex 1300 X @r{(}@code{vip-ctl-x-equivalent}@r{)}
575These keys will exit from vi mode and return to emacs mode temporarily. 575These keys will exit from vi mode and return to emacs mode temporarily.
576If you type @kbd{C} (@kbd{X}), Emacs will be in emacs mode and will believe 576If you type @kbd{C} (@kbd{X}), Emacs will be in emacs mode and will believe
577that you have typed @kbd{C-c} (@kbd{C-x}) in emacs mode. Moreover, 577that you have typed @kbd{C-c} (@kbd{C-x}) in emacs mode. Moreover,
578if the following character you type is an upper-case letter, then Emacs 578if the following character you type is an upper-case letter, then Emacs
579will believe that you have typed the corresponding control character. 579will believe that you have typed the corresponding control character.
580You will be in vi mode again after the command is executed. For example, 580You will be in vi mode again after the command is executed. For example,
581typing @kbd{X S} in vi mode is the same as typing @kbd{C-x C-s} in emacs 581typing @kbd{X S} in vi mode is the same as typing @kbd{C-x C-s} in emacs
582mode. You get the same effect by typing @kbd{C-x C-s} in vi mode, but 582mode. You get the same effect by typing @kbd{C-x C-s} in vi mode, but
583the idea here is that you can execute useful Emacs commands without typing 583the idea here is that you can execute useful Emacs commands without typing
584control characters. For example, if you hit @kbd{X} (or @kbd{C-x}) followed 584control characters. For example, if you hit @kbd{X} (or @kbd{C-x}) followed
585by @kbd{2}, then the current window will be split into 2 and you will be in 585by @kbd{2}, then the current window will be split into 2 and you will be in
586vi mode again. 586vi mode again.
587@end table 587@end table
@@ -1307,7 +1307,7 @@ The line commands are as follows:
1307@cindex expanding (region) 1307@cindex expanding (region)
1308If a point command is given as an argument to a modifying command, the 1308If a point command is given as an argument to a modifying command, the
1309region determined by the point command will be affected by the modifying 1309region determined by the point command will be affected by the modifying
1310command. On the other hand, if a line command is given as an argument to a 1310command. On the other hand, if a line command is given as an argument to a
1311modifying command, the region determined by the line command will be 1311modifying command, the region determined by the line command will be
1312enlarged so that it will become the smallest region properly containing the 1312enlarged so that it will become the smallest region properly containing the
1313region and consisting of whole lines (we call this process @dfn{expanding 1313region and consisting of whole lines (we call this process @dfn{expanding
@@ -1418,9 +1418,9 @@ below.
1418@item p 1418@item p
1419@kindex 160 p @r{(}@code{vip-put-back}@r{)} 1419@kindex 160 p @r{(}@code{vip-put-back}@r{)}
1420Insert, after the character point is looking at, most recently 1420Insert, after the character point is looking at, most recently
1421deleted/yanked text from anonymous register. Given a register name 1421deleted/yanked text from anonymous register. Given a register name
1422argument, the content of the named register will be put back. Given a 1422argument, the content of the named register will be put back. Given a
1423count, the command will be repeated that many times. This command also 1423count, the command will be repeated that many times. This command also
1424checks if the text to put back ends with a new line character, and if so 1424checks if the text to put back ends with a new line character, and if so
1425the text will be put below the current line (@code{vip-put-back}). 1425the text will be put below the current line (@code{vip-put-back}).
1426@item P 1426@item P
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 01e94de4e48..20ca1a58ae9 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -163,10 +163,10 @@ some incompatibilities.
163 163
164This manual is written with the assumption that you are an experienced Vi 164This manual is written with the assumption that you are an experienced Vi
165user who wants to switch to Emacs while retaining the ability to edit files 165user who wants to switch to Emacs while retaining the ability to edit files
166Vi style. Incredible as it might seem, there are experienced Emacs users 166Vi style. Incredible as it might seem, there are experienced Emacs users
167who use Viper as a backdoor into the superior (as every Vi user already knows) 167who use Viper as a backdoor into the superior (as every Vi user already knows)
168world of Vi! These users are well familiar with Emacs bindings and prefer them 168world of Vi! These users are well familiar with Emacs bindings and prefer them
169in some cases, especially in the Vi Insert state. John Hawkins 169in some cases, especially in the Vi Insert state. John Hawkins
170<jshawkin@@eecs.umich.edu> has provided a set of customizations, which 170<jshawkin@@eecs.umich.edu> has provided a set of customizations, which
171enables additional Emacs bindings under Viper. These customizations can be 171enables additional Emacs bindings under Viper. These customizations can be
172included in your @file{~/.emacs.d/viper} file and are found at the 172included in your @file{~/.emacs.d/viper} file and are found at the
@@ -335,7 +335,7 @@ Viper.
335 335
336The latest versions of Emacs have an interactive customization facility, 336The latest versions of Emacs have an interactive customization facility,
337which allows you to (mostly) bypass the use of the @file{.emacs} and 337which allows you to (mostly) bypass the use of the @file{.emacs} and
338@code{viper-custom-file-name} files. You can reach this customization 338@code{viper-custom-file-name} files. You can reach this customization
339facility from within Viper's VI state by executing the Ex command 339facility from within Viper's VI state by executing the Ex command
340@kbd{:customize}. 340@kbd{:customize}.
341 341
@@ -1589,10 +1589,10 @@ you are doing. Only two variables, @code{viper-mode} and
1589prior to loading Viper (i.e., prior to @code{(require 'viper)} command. 1589prior to loading Viper (i.e., prior to @code{(require 'viper)} command.
1590@item 1590@item
1591@cindex Ex customize 1591@cindex Ex customize
1592By executing the @kbd{:customize} Ex command. This takes you to the Emacs 1592By executing the @kbd{:customize} Ex command. This takes you to the Emacs
1593customization widget, which lets you change the values of Viper 1593customization widget, which lets you change the values of Viper
1594customizable variables easily. This method is good for novice and 1594customizable variables easily. This method is good for novice and
1595experts alike. The customization code in the form of Lisp commands will be 1595experts alike. The customization code in the form of Lisp commands will be
1596placed in @file{~/.emacs} or some other customization file depending on the 1596placed in @file{~/.emacs} or some other customization file depending on the
1597version of Emacs that you use. Still, it is recommended to separate 1597version of Emacs that you use. Still, it is recommended to separate
1598Viper-related customization produced by the Emacs customization widget 1598Viper-related customization produced by the Emacs customization widget
@@ -1766,7 +1766,7 @@ have to set it as a string inside double quotes.
1766Function used by the command @kbd{#c<move>} to spell. 1766Function used by the command @kbd{#c<move>} to spell.
1767@item viper-glob-function 1767@item viper-glob-function
1768The value of this variable is the function symbol used to expand wildcard 1768The value of this variable is the function symbol used to expand wildcard
1769symbols. This is platform-dependent. The default tries to set this variable 1769symbols. This is platform-dependent. The default tries to set this variable
1770to work with most shells, MS Windows, etc. However, if it 1770to work with most shells, MS Windows, etc. However, if it
1771doesn't work the way you expect, you should write your own. 1771doesn't work the way you expect, you should write your own.
1772Use @code{viper-glob-unix-files} and @code{viper-glob-mswindows-files} in 1772Use @code{viper-glob-unix-files} and @code{viper-glob-mswindows-files} in
@@ -2298,7 +2298,7 @@ suspicion is wrong, no harm is done if you harness a minor mode that
2298doesn't need to be harnessed. 2298doesn't need to be harnessed.
2299 2299
2300It is recommended to harness even those minor modes that don't override 2300It is recommended to harness even those minor modes that don't override
2301Viper keys, but still have their own keymaps. A general way to 2301Viper keys, but still have their own keymaps. A general way to
2302make a minor mode, @code{my-mode}, 2302make a minor mode, @code{my-mode},
2303compatible with Viper is to have the file @file{my-mode.el} include the following code: 2303compatible with Viper is to have the file @file{my-mode.el} include the following code:
2304 2304
@@ -3099,7 +3099,7 @@ lines.
3099@cindex % (Current file) 3099@cindex % (Current file)
3100Note that @samp{%} is used in Ex commands @kbd{:e} and @kbd{:r <shell-cmd>} 3100Note that @samp{%} is used in Ex commands @kbd{:e} and @kbd{:r <shell-cmd>}
3101to mean current file. If you want a @samp{%} in your command, it must be 3101to mean current file. If you want a @samp{%} in your command, it must be
3102escaped as @samp{\%}. Note that @kbd{:w} and the regular @kbd{:r <file>} 3102escaped as @samp{\%}. Note that @kbd{:w} and the regular @kbd{:r <file>}
3103command doesn't support the meta symbols @samp{%} and @samp{#}, because 3103command doesn't support the meta symbols @samp{%} and @samp{#}, because
3104file history is a better mechanism. 3104file history is a better mechanism.
3105@cindex # (Previous file) 3105@cindex # (Previous file)
@@ -3452,7 +3452,7 @@ Mark the current file and position with the specified letter.
3452Set the Emacs mark (@pxref{Emacs Preliminaries}) at point. 3452Set the Emacs mark (@pxref{Emacs Preliminaries}) at point.
3453@item m ^ 3453@item m ^
3454Set the Emacs mark (@pxref{Emacs Preliminaries}) back to where it was last 3454Set the Emacs mark (@pxref{Emacs Preliminaries}) back to where it was last
3455set with the @kbd{m.} command. This is useful when you set the mark with 3455set with the @kbd{m.} command. This is useful when you set the mark with
3456@kbd{m.}, but then some other command (such as @kbd{L} or @kbd{G}) changes 3456@kbd{m.}, but then some other command (such as @kbd{L} or @kbd{G}) changes
3457it in a way that you didn't like. 3457it in a way that you didn't like.
3458@item m < 3458@item m <
@@ -3701,9 +3701,9 @@ Repeat latest Ex substitute command, e.g.,
3701@itemx :g/Pat/p 3701@itemx :g/Pat/p
3702@itemx :v/Pat/p 3702@itemx :v/Pat/p
3703The above commands display certain buffer lines in a 3703The above commands display certain buffer lines in a
3704temporary buffer. The first form above displays the buffer lines between 3704temporary buffer. The first form above displays the buffer lines between
3705@kbd{x} and @kbd{y}. The second displays the lines of the buffer, which 3705@kbd{x} and @kbd{y}. The second displays the lines of the buffer, which
3706match a given pattern. The third form displays the lines that do @emph{not} 3706match a given pattern. The third form displays the lines that do @emph{not}
3707match the given pattern. 3707match the given pattern.
3708@item #c<move> 3708@item #c<move>
3709Change upper-case characters in the region to lower-case. 3709Change upper-case characters in the region to lower-case.
@@ -3765,7 +3765,7 @@ found there (e.g., @samp{~} is not expanded to the result of the previous
3765substitution). 3765substitution).
3766 3766
3767After typing @kbd{/} or @kbd{?} all the usual Emacs minibuffer commands, such as 3767After typing @kbd{/} or @kbd{?} all the usual Emacs minibuffer commands, such as
3768@kbd{M-p} and @kbd{M-n} are available. In addition, typing @kbd{C-s} will 3768@kbd{M-p} and @kbd{M-n} are available. In addition, typing @kbd{C-s} will
3769insert the last search string used by the Emacs incremental search command 3769insert the last search string used by the Emacs incremental search command
3770(which is bound to @kbd{C-s} everywhere except in this case). 3770(which is bound to @kbd{C-s} everywhere except in this case).
3771 3771
@@ -3970,8 +3970,8 @@ In all file handling commands, space should be typed before entering the file
3970name. If you need to type a modifier, such as @kbd{>>} or @kbd{!}, don't 3970name. If you need to type a modifier, such as @kbd{>>} or @kbd{!}, don't
3971put any space between the command and the modifier. 3971put any space between the command and the modifier.
3972 3972
3973Note that many Ex commands, e.g., @kbd{:w}, accept command arguments. The 3973Note that many Ex commands, e.g., @kbd{:w}, accept command arguments. The
3974effect is that the command would start acting on the current region. For 3974effect is that the command would start acting on the current region. For
3975instance, if the current region spans the lines 11 through 22, then if you 3975instance, if the current region spans the lines 11 through 22, then if you
3976type @kbd{1:w} you would see @samp{:11,22w} in the minibuffer. 3976type @kbd{1:w} you would see @samp{:11,22w} in the minibuffer.
3977 3977
@@ -4028,7 +4028,7 @@ Preserve the file---autosave buffers.
4028Recover file from autosave. 4028Recover file from autosave.
4029@item :f [<file>] 4029@item :f [<file>]
4030without the argument, prints file name and character/line information afout 4030without the argument, prints file name and character/line information afout
4031the currently visited file. With an argument, sets the currently visited 4031the currently visited file. With an argument, sets the currently visited
4032filename to @file{file}. 4032filename to @file{file}.
4033@item :cd [<dir>] 4033@item :cd [<dir>]
4034Set the working directory to <dir> (default home directory). 4034Set the working directory to <dir> (default home directory).
@@ -4062,7 +4062,7 @@ Like @kbd{:n}, but the meaning of the variable
4062Switch to another buffer. If @code{ex-cycle-other-window} is @code{t}, 4062Switch to another buffer. If @code{ex-cycle-other-window} is @code{t},
4063switch in another window. Buffer completion is supported. 4063switch in another window. Buffer completion is supported.
4064The variable @code{viper-read-buffer-function} controls which function is 4064The variable @code{viper-read-buffer-function} controls which function is
4065actually used to read the buffer name. The default is @code{read-buffer}, 4065actually used to read the buffer name. The default is @code{read-buffer},
4066but better alternatives are also available in Emacs (e.g., 4066but better alternatives are also available in Emacs (e.g.,
4067@code{ido-read-buffer}). 4067@code{ido-read-buffer}).
4068@vindex viper-read-buffer-function 4068@vindex viper-read-buffer-function
@@ -4459,7 +4459,7 @@ VIP 4.4, by Aamod Sane. This manual is an adaptation of the manual for VIP
44594.4, which, in turn, was based on Sato's manual for VIP 3.5. 44594.4, which, in turn, was based on Sato's manual for VIP 3.5.
4460 4460
4461Many contributors on the Net pointed out bugs and suggested a number of 4461Many contributors on the Net pointed out bugs and suggested a number of
4462useful features. Scott Bronson and Samuel Padgett contributed patches that 4462useful features. Scott Bronson and Samuel Padgett contributed patches that
4463were incorporated in this code. Here is a hopefully complete list of 4463were incorporated in this code. Here is a hopefully complete list of
4464contributors: 4464contributors:
4465 4465
diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
index 744b84ac80d..b6559b5b712 100644
--- a/doc/misc/widget.texi
+++ b/doc/misc/widget.texi
@@ -150,7 +150,7 @@ Widget library will also use the new graphic features automatically.
150A form consists of read only text for documentation and some fields, 150A form consists of read only text for documentation and some fields,
151where each field contains two parts, a tag and a value. The tags are 151where each field contains two parts, a tag and a value. The tags are
152used to identify the fields, so the documentation can refer to the 152used to identify the fields, so the documentation can refer to the
153@samp{foo field}, meaning the field tagged with @samp{Foo}. Here is an 153@samp{foo field}, meaning the field tagged with @samp{Foo}. Here is an
154example form: 154example form:
155 155
156@example 156@example
@@ -865,7 +865,7 @@ the @code{:mouse-down-action} property.
865All widgets can be created from a type specification. The general 865All widgets can be created from a type specification. The general
866syntax of a type specification is: 866syntax of a type specification is:
867 867
868@c FIXME: Add BNF reference here? If yes, what reference? 868@c FIXME: Add BNF reference here? If yes, what reference?
869@example 869@example
870@var{name} ::= (@var{name} [@var{keyword} @var{argument}]... @var{args}) 870@var{name} ::= (@var{name} [@var{keyword} @var{argument}]... @var{args})
871 | @var{name} 871 | @var{name}
diff --git a/doc/misc/wisent.texi b/doc/misc/wisent.texi
index 9738d790259..d42fe09240a 100644
--- a/doc/misc/wisent.texi
+++ b/doc/misc/wisent.texi
@@ -109,7 +109,7 @@ described in the @ref{Top, Semantic Manual, Semantic Manual, semantic}.
109@chapter Wisent Overview 109@chapter Wisent Overview
110 110
111@dfn{Wisent} (the European Bison) is an implementation in Emacs Lisp 111@dfn{Wisent} (the European Bison) is an implementation in Emacs Lisp
112of the GNU Compiler Compiler Bison. Its code is a port of the C code 112of the GNU Compiler Compiler Bison. Its code is a port of the C code
113of GNU Bison 1.28 & 1.31. 113of GNU Bison 1.28 & 1.31.
114 114
115For more details on the basic concepts for understanding Wisent, it is 115For more details on the basic concepts for understanding Wisent, it is
@@ -1795,7 +1795,7 @@ environment.
1795@samp{grammar} rule. The semantic action uses the @code{TAG} macro to 1795@samp{grammar} rule. The semantic action uses the @code{TAG} macro to
1796produce a raw tag, automagically expanded by @semantic{}. 1796produce a raw tag, automagically expanded by @semantic{}.
1797 1797
1798But @samp{rules} part is parsed in Bison style! Why? 1798But @samp{rules} part is parsed in Bison style! Why?
1799 1799
1800Rule delimiters are the colon (@code{:}), that follows the nonterminal 1800Rule delimiters are the colon (@code{:}), that follows the nonterminal
1801name, and a final semicolon (@code{;}). Unfortunately these 1801name, and a final semicolon (@code{;}). Unfortunately these
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 801783bd766..f4d746c5589 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -2151,6 +2151,8 @@ GOTO-PAGE-FN other than `doc-view-goto-page'."
2151 (pcase-let ((`(,conv-function ,type ,extension) 2151 (pcase-let ((`(,conv-function ,type ,extension)
2152 (pcase doc-view-doc-type 2152 (pcase doc-view-doc-type
2153 ('djvu (list #'doc-view-djvu->tiff-converter-ddjvu 'tiff "tif")) 2153 ('djvu (list #'doc-view-djvu->tiff-converter-ddjvu 'tiff "tif"))
2154 ((or 'ps 'postscript 'eps)
2155 (list #'doc-view-ps->png-converter-ghostscript 'png "png"))
2154 (_ (if (and (eq doc-view-pdf->png-converter-function 2156 (_ (if (and (eq doc-view-pdf->png-converter-function
2155 #'doc-view-pdf->png-converter-mupdf) 2157 #'doc-view-pdf->png-converter-mupdf)
2156 doc-view-mupdf-use-svg) 2158 doc-view-mupdf-use-svg)
diff --git a/src/treesit.c b/src/treesit.c
index c95a9fb9b01..baa1b8dfd11 100644
--- a/src/treesit.c
+++ b/src/treesit.c
@@ -404,7 +404,7 @@ init_treesit_functions (void)
404 buffer's parser list. The discussion can be found in bug#59693. */ 404 buffer's parser list. The discussion can be found in bug#59693. */
405 405
406 406
407/*** Initialization */ 407/*** Initialization */
408 408
409static Lisp_Object Vtreesit_str_libtree_sitter; 409static Lisp_Object Vtreesit_str_libtree_sitter;
410static Lisp_Object Vtreesit_str_tree_sitter; 410static Lisp_Object Vtreesit_str_tree_sitter;
@@ -431,7 +431,7 @@ static Lisp_Object Vtreesit_str_pred;
431 functions. Remember to update docstrings when changing this value. 431 functions. Remember to update docstrings when changing this value.
432 432
433 If we think of programs and AST, it is very rare for any program to 433 If we think of programs and AST, it is very rare for any program to
434 have a very deep AST. For example, you would need 1000+ levels of 434 have a very deep AST. For example, you would need 1000+ levels of
435 nested if-statements, or a struct somehow nested for 1000+ levels. 435 nested if-statements, or a struct somehow nested for 1000+ levels.
436 It's hard for me to imagine any hand-written or machine generated 436 It's hard for me to imagine any hand-written or machine generated
437 program to be like that. So I think 1000 is already generous. If 437 program to be like that. So I think 1000 is already generous. If
@@ -485,10 +485,9 @@ treesit_initialize (void)
485} 485}
486 486
487 487
488/*** Loading language library */ 488/*** Loading language library */
489 489
490/* Translates a symbol treesit-<lang> to a C name 490/* Translate a symbol treesit-<lang> to a C name treesit_<lang>. */
491 treesit_<lang>. */
492static void 491static void
493treesit_symbol_to_c_name (char *symbol_name) 492treesit_symbol_to_c_name (char *symbol_name)
494{ 493{
@@ -758,7 +757,7 @@ Return nil if a grammar library for LANGUAGE is not available. */)
758} 757}
759 758
760 759
761/*** Parsing functions */ 760/*** Parsing functions */
762 761
763static void 762static void
764treesit_check_parser (Lisp_Object obj) 763treesit_check_parser (Lisp_Object obj)
@@ -873,7 +872,7 @@ treesit_record_change (ptrdiff_t start_byte, ptrdiff_t old_end_byte,
873 } 872 }
874} 873}
875 874
876/* Comment (ref:visible-beg-null) The purpose of visible_beg/end is to 875/* Comment (ref:visible-beg-null) The purpose of visible_beg/end is to
877 keep track of "which part of the buffer does the tree-sitter tree 876 keep track of "which part of the buffer does the tree-sitter tree
878 see", in order to update the tree correctly. Visible_beg/end have 877 see", in order to update the tree correctly. Visible_beg/end have
879 two purposes: they "clip" buffer changes within them, and they 878 two purposes: they "clip" buffer changes within them, and they
@@ -1150,7 +1149,7 @@ treesit_read_buffer (void *parser, uint32_t byte_index,
1150} 1149}
1151 1150
1152 1151
1153/*** Functions for parser and node object */ 1152/*** Functions for parser and node object */
1154 1153
1155/* Wrap the parser in a Lisp_Object to be used in the Lisp 1154/* Wrap the parser in a Lisp_Object to be used in the Lisp
1156 machine. */ 1155 machine. */
@@ -1575,7 +1574,7 @@ treesit_parser_live_p (Lisp_Object parser)
1575} 1574}
1576 1575
1577 1576
1578/*** Parser API */ 1577/*** Parser API */
1579 1578
1580DEFUN ("treesit-parser-root-node", 1579DEFUN ("treesit-parser-root-node",
1581 Ftreesit_parser_root_node, Streesit_parser_root_node, 1580 Ftreesit_parser_root_node, Streesit_parser_root_node,
@@ -1748,7 +1747,7 @@ See also `treesit-parser-set-included-ranges'. */)
1748 1747
1749 /* When the parser doesn't have a range set and we call 1748 /* When the parser doesn't have a range set and we call
1750 ts_parser_included_ranges on it, it doesn't return an empty list, 1749 ts_parser_included_ranges on it, it doesn't return an empty list,
1751 but rather return DEFAULT_RANGE. (A single range where start_byte 1750 but rather return DEFAULT_RANGE. (A single range where start_byte
1752 = 0, end_byte = UINT32_MAX). So we need to track whether the 1751 = 0, end_byte = UINT32_MAX). So we need to track whether the
1753 parser is ranged ourselves. */ 1752 parser is ranged ourselves. */
1754 if (NILP (XTS_PARSER (parser)->last_set_ranges)) 1753 if (NILP (XTS_PARSER (parser)->last_set_ranges))
@@ -1851,8 +1850,8 @@ treesit_check_node (Lisp_Object obj)
1851 xsignal1 (Qtreesit_node_buffer_killed, obj); 1850 xsignal1 (Qtreesit_node_buffer_killed, obj);
1852} 1851}
1853 1852
1854/* Checks that OBJ is a positive integer and it is within the visible 1853/* Check that OBJ is a positive integer and it is within the visible
1855 portion of BUF. */ 1854 portion of BUF. */
1856static void 1855static void
1857treesit_check_position (Lisp_Object obj, struct buffer *buf) 1856treesit_check_position (Lisp_Object obj, struct buffer *buf)
1858{ 1857{
@@ -2147,7 +2146,7 @@ nil. If NODE is nil, return nil. */)
2147DEFUN ("treesit-node-child-by-field-name", 2146DEFUN ("treesit-node-child-by-field-name",
2148 Ftreesit_node_child_by_field_name, 2147 Ftreesit_node_child_by_field_name,
2149 Streesit_node_child_by_field_name, 2, 2, 0, 2148 Streesit_node_child_by_field_name, 2, 2, 0,
2150 doc: /* Return the child of NODE with FIELD-NAME. 2149 doc: /* Return the child of NODE with FIELD-NAME (a string).
2151Return nil if there is no such child. If NODE is nil, return nil. */) 2150Return nil if there is no such child. If NODE is nil, return nil. */)
2152 (Lisp_Object node, Lisp_Object field_name) 2151 (Lisp_Object node, Lisp_Object field_name)
2153{ 2152{
@@ -2368,7 +2367,7 @@ produced by tree-sitter. */)
2368} 2367}
2369 2368
2370 2369
2371/*** Query functions */ 2370/*** Query functions */
2372 2371
2373/* Convert a Lisp string to its printed representation in the tree-sitter 2372/* Convert a Lisp string to its printed representation in the tree-sitter
2374 query syntax. */ 2373 query syntax. */
@@ -3005,7 +3004,7 @@ the query. */)
3005 test for predicates. If predicates pass, then all good, if 3004 test for predicates. If predicates pass, then all good, if
3006 predicates don't pass, revert the result back to the result 3005 predicates don't pass, revert the result back to the result
3007 before this loop (PREV_RESULT). (Predicates control the entire 3006 before this loop (PREV_RESULT). (Predicates control the entire
3008 match.) This way we don't need to create a list of captures in 3007 match.) This way we don't need to create a list of captures in
3009 every for loop and nconc it to RESULT every time. That is indeed 3008 every for loop and nconc it to RESULT every time. That is indeed
3010 the initial implementation in which Yoav found nconc being the 3009 the initial implementation in which Yoav found nconc being the
3011 bottleneck (98.4% of the running time spent on nconc). */ 3010 bottleneck (98.4% of the running time spent on nconc). */
@@ -3083,7 +3082,7 @@ the query. */)
3083} 3082}
3084 3083
3085 3084
3086/*** Navigation */ 3085/*** Navigation */
3087 3086
3088static inline void 3087static inline void
3089treesit_assume_true (bool val) 3088treesit_assume_true (bool val)
@@ -3200,7 +3199,7 @@ treesit_traverse_sibling_helper (TSTreeCursor *cursor,
3200 if (ts_node_eq (first_child, start)) 3199 if (ts_node_eq (first_child, start))
3201 return false; 3200 return false;
3202 3201
3203 /* PROBE is always DELTA siblings ahead of CURSOR. */ 3202 /* PROBE is always DELTA siblings ahead of CURSOR. */
3204 TSTreeCursor probe = ts_tree_cursor_copy (cursor); 3203 TSTreeCursor probe = ts_tree_cursor_copy (cursor);
3205 /* This is position of PROBE minus position of CURSOR. */ 3204 /* This is position of PROBE minus position of CURSOR. */
3206 ptrdiff_t delta = 0; 3205 ptrdiff_t delta = 0;
@@ -3484,7 +3483,7 @@ treesit_traverse_match_predicate (TSTreeCursor *cursor, Lisp_Object pred,
3484 return true; 3483 return true;
3485 } 3484 }
3486 } 3485 }
3487 /* Returning false is better than UB. */ 3486 /* Returning false is better than UB. */
3488 return false; 3487 return false;
3489} 3488}
3490 3489
@@ -3997,7 +3996,7 @@ DEFUN ("treesit-available-p", Ftreesit_available_p,
3997} 3996}
3998 3997
3999 3998
4000/*** Initialization */ 3999/*** Initialization */
4001 4000
4002/* Initialize the tree-sitter routines. */ 4001/* Initialize the tree-sitter routines. */
4003void 4002void