aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2018-02-09 11:12:48 -0800
committerGlenn Morris2018-02-09 11:12:48 -0800
commit875cb835f00260d58c536b3a3f7c0343fd5f28dc (patch)
tree4f59af87328e8d4d69667b3b35c42f795e7d3d29
parent05e8b4392be7fb368dcf4e4a19f75f94b323028d (diff)
parent0276743672672ce0caec7861741293a4ae11cb52 (diff)
downloademacs-875cb835f00260d58c536b3a3f7c0343fd5f28dc.tar.gz
emacs-875cb835f00260d58c536b3a3f7c0343fd5f28dc.zip
Merge from origin/emacs-26
0276743 (origin/emacs-26) Doc string fix in latin-alt.el c9269af Minor improvements in package.texi 898a3e4 Minor improvement in Emacs user manual 8f7d718 * doc/lispref/anti.texi (Antinews): Replace 25.2 with 25.3. 989d0af Improve documentation of mini-window resizing 923e415 More changes in the Emacs manual 565adf2 Clarify that text-quoting-style doesn't affect *Info* (Bug#24... 2dd273b Mention that shell quoting of % on w32 may fail (Bug#19350) 19fa6d5 Fix --no-build-details for w32 and macOS 979944c * doc/lispref/anti.texi (Antinews): Add some more antinews. c2727e3 Fix crashes when run with --no-build-details dc08490 More changes for the manual 04c5bd5 Doc fixes for process functions (Bug#30349) e209034 Fix shr and CSS 4 color maps 5fe8192 Yet another round of improvements in the manual Conflicts: doc/emacs/files.texi test/lisp/subr-tests.el
-rw-r--r--doc/emacs/anti.texi20
-rw-r--r--doc/emacs/arevert-xtra.texi110
-rw-r--r--doc/emacs/basic.texi13
-rw-r--r--doc/emacs/building.texi31
-rw-r--r--doc/emacs/calendar.texi11
-rw-r--r--doc/emacs/cmdargs.texi35
-rw-r--r--doc/emacs/custom.texi2
-rw-r--r--doc/emacs/display.texi23
-rw-r--r--doc/emacs/emacs.texi1
-rw-r--r--doc/emacs/files.texi83
-rw-r--r--doc/emacs/fixit.texi9
-rw-r--r--doc/emacs/indent.texi12
-rw-r--r--doc/emacs/m-x.texi5
-rw-r--r--doc/emacs/macos.texi4
-rw-r--r--doc/emacs/maintaining.texi14
-rw-r--r--doc/emacs/mini.texi4
-rw-r--r--doc/emacs/misc.texi22
-rw-r--r--doc/emacs/modes.texi8
-rw-r--r--doc/emacs/package.texi6
-rw-r--r--doc/emacs/rmail.texi1
-rw-r--r--doc/emacs/screen.texi14
-rw-r--r--doc/emacs/text.texi44
-rw-r--r--doc/lispref/anti.texi121
-rw-r--r--doc/lispref/backups.texi80
-rw-r--r--doc/lispref/display.texi2
-rw-r--r--doc/lispref/minibuf.texi12
-rw-r--r--doc/lispref/os.texi4
-rw-r--r--doc/lispref/processes.texi7
-rw-r--r--lisp/leim/quail/latin-alt.el2
-rw-r--r--lisp/net/gnutls.el2
-rw-r--r--lisp/net/shr-color.el5
-rw-r--r--lisp/net/starttls.el2
-rw-r--r--lisp/net/tls.el2
-rw-r--r--lisp/subr.el8
-rw-r--r--lisp/term/ns-win.el2
-rw-r--r--lisp/textmodes/css-mode.el2
-rw-r--r--src/doc.c4
-rw-r--r--src/process.c18
-rw-r--r--src/w32term.c13
-rw-r--r--src/xrdb.c19
-rw-r--r--src/xterm.c16
-rw-r--r--test/lisp/subr-tests.el17
-rw-r--r--test/lisp/textmodes/css-mode-tests.el2
43 files changed, 484 insertions, 328 deletions
diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi
index d4b68a2fac4..b91516315ad 100644
--- a/doc/emacs/anti.texi
+++ b/doc/emacs/anti.texi
@@ -8,7 +8,7 @@
8@c Update the emacs.texi Antinews menu entry with the above version number. 8@c Update the emacs.texi Antinews menu entry with the above version number.
9 9
10 For those users who live backwards in time, here is information 10 For those users who live backwards in time, here is information
11about downgrading to Emacs version 25.2. We hope you will enjoy the 11about downgrading to Emacs version 25.3. We hope you will enjoy the
12greater simplicity that results from the absence of many @w{Emacs 12greater simplicity that results from the absence of many @w{Emacs
13@value{EMACSVER}} features. 13@value{EMACSVER}} features.
14 14
@@ -47,7 +47,7 @@ development will make that unnecessary.
47 47
48@item 48@item
49The @option{--fg-daemon} is gone, leaving only @option{--daemon}. No 49The @option{--fg-daemon} is gone, leaving only @option{--daemon}. No
50need to procrastinate on the dilemma whether you do or don't want the 50need to procrastinate on the dilemma whether you do or do not want the
51new shiny ``headless Emacs'' thingy. Hail, simplicity! 51new shiny ``headless Emacs'' thingy. Hail, simplicity!
52 52
53@item 53@item
@@ -59,7 +59,7 @@ should be monochrome, but you will have to keep downgrading to older
59Emacs versions to have that feature back.) 59Emacs versions to have that feature back.)
60 60
61@item 61@item
62Emacs 25.2 no longer supports magic signatures of the form 62Emacs 25.3 no longer supports magic signatures of the form
63@samp{#!/usr/bin/env @var{interpreter}} in scripts. Moving back in 63@samp{#!/usr/bin/env @var{interpreter}} in scripts. Moving back in
64time means you are getting closer to the ideal of the original Unix 64time means you are getting closer to the ideal of the original Unix
65design where all the interpreters lived in a single directory 65design where all the interpreters lived in a single directory
@@ -70,11 +70,11 @@ ballast.
70The double-buffering feature of Emacs display on X has been removed. 70The double-buffering feature of Emacs display on X has been removed.
71We decided that its complexity and a few random surprising 71We decided that its complexity and a few random surprising
72side-effects aren't justified by the gains, even though those gains 72side-effects aren't justified by the gains, even though those gains
73were hailed in some quarters. Yes, Emacs 25.2 will flicker in some 73were hailed in some quarters. Yes, Emacs 25.3 will flicker in some
74use cases, but we are sure Emacs users will be able to suck it, a they 74use cases, but we are sure Emacs users will be able to suck it, as
75have been doing for years. Since this feature is gone, we've also 75they have been doing for years. Since this feature is gone, we've
76removed the @code{inhibit-double-buffering} frame parameter, which is 76also removed the @code{inhibit-double-buffering} frame parameter,
77now unnecessary. 77which is now unnecessary.
78 78
79@item 79@item
80Non-breaking hyphens and ASCII characters displayed instead of 80Non-breaking hyphens and ASCII characters displayed instead of
@@ -137,7 +137,7 @@ all those fancy options!
137 137
138@item 138@item
139The complication known as ``single-line horizontal scrolling'' is no 139The complication known as ``single-line horizontal scrolling'' is no
140longer with you in Emacs 25.2. This feature was a bow to ``other 140longer with you in Emacs 25.3. This feature was a bow to ``other
141editors''; instead, let those other editors bow to Emacs by hscrolling 141editors''; instead, let those other editors bow to Emacs by hscrolling
142the entire window at all times. Repeat after me: ``The Emacs way is 142the entire window at all times. Repeat after me: ``The Emacs way is
143the Only Way!'' 143the Only Way!''
@@ -166,5 +166,5 @@ removed. Examples include @code{replace-buffer-contents} and
166 166
167@item 167@item
168To keep up with decreasing computer memory capacity and disk space, many 168To keep up with decreasing computer memory capacity and disk space, many
169other functions and files have been eliminated in Emacs 25.2. 169other functions and files have been eliminated in Emacs 25.3.
170@end itemize 170@end itemize
diff --git a/doc/emacs/arevert-xtra.texi b/doc/emacs/arevert-xtra.texi
index a619fed4b8f..45fca1f508d 100644
--- a/doc/emacs/arevert-xtra.texi
+++ b/doc/emacs/arevert-xtra.texi
@@ -40,7 +40,6 @@ explained in the corresponding sections.
40@menu 40@menu
41* Auto Reverting the Buffer Menu:: Auto Revert of the Buffer Menu. 41* Auto Reverting the Buffer Menu:: Auto Revert of the Buffer Menu.
42* Auto Reverting Dired:: Auto Revert of Dired buffers. 42* Auto Reverting Dired:: Auto Revert of Dired buffers.
43* Supporting additional buffers:: How to add more Auto Revert support.
44@end menu 43@end menu
45 44
46@node Auto Reverting the Buffer Menu 45@node Auto Reverting the Buffer Menu
@@ -68,13 +67,9 @@ automatically erasing the marks.
68@node Auto Reverting Dired 67@node Auto Reverting Dired
69@subsection Auto Reverting Dired buffers 68@subsection Auto Reverting Dired buffers
70 69
71Auto-reverting Dired buffers currently works on GNU or Unix style
72operating systems. It may not work satisfactorily on some other
73systems.
74
75Dired buffers only auto-revert when the file list of the buffer's main 70Dired buffers only auto-revert when the file list of the buffer's main
76directory changes (e.g., when a new file is added). They do not 71directory changes (e.g., when a new file is added or deleted). They
77auto-revert when information about a particular file changes 72do not auto-revert when information about a particular file changes
78(e.g., when the size changes) or when inserted subdirectories change. 73(e.g., when the size changes) or when inserted subdirectories change.
79To be sure that @emph{all} listed information is up to date, you have 74To be sure that @emph{all} listed information is up to date, you have
80to manually revert using @kbd{g}, @emph{even} if auto-reverting is 75to manually revert using @kbd{g}, @emph{even} if auto-reverting is
@@ -98,99 +93,10 @@ If you want auto-reverting to resume in the presence of marks and
98flags, mark the buffer non-modified using @kbd{M-~}. However, adding, 93flags, mark the buffer non-modified using @kbd{M-~}. However, adding,
99deleting or changing marks or flags will mark it modified again. 94deleting or changing marks or flags will mark it modified again.
100 95
101Remote Dired buffers are not auto-reverted (because it may be slow). 96Remote Dired buffers are currently not auto-reverted. Neither are
102Neither are Dired buffers for which you used shell wildcards or file 97Dired buffers for which you used shell wildcards or file arguments to
103arguments to list only some of the files. @file{*Find*} and 98list only some of the files. @file{*Find*} and @file{*Locate*}
104@file{*Locate*} buffers do not auto-revert either. 99buffers do not auto-revert either.
105
106@c FIXME? This should be in the elisp manual?
107@node Supporting additional buffers
108@subsection Adding Support for Auto-Reverting additional Buffers.
109
110This section is intended for Elisp programmers who would like to add
111support for auto-reverting new types of buffers.
112
113To support auto-reverting the buffer must first of all have a suitable
114@code{revert-buffer-function}. @xref{Definition of
115revert-buffer-function,, Reverting, elisp, the Emacs Lisp Reference Manual}.
116
117In addition, it must have a suitable @code{buffer-stale-function}.
118
119@c FIXME only defvar in all of doc/emacs!
120@defvar buffer-stale-function
121The value of this variable is a function to check whether a
122buffer needs reverting. This should be a function with one optional
123argument @var{noconfirm}. The function should return non-@code{nil}
124if the buffer should be reverted. The buffer is current when this
125function is called.
126
127While this function is mainly intended for use in auto-reverting, it
128could be used for other purposes as well. For instance, if
129auto-reverting is not enabled, it could be used to warn the user that
130the buffer needs reverting. The idea behind the @var{noconfirm}
131argument is that it should be @code{t} if the buffer is going to be
132reverted without asking the user and @code{nil} if the function is
133just going to be used to warn the user that the buffer is out of date.
134In particular, for use in auto-reverting, @var{noconfirm} is @code{t}.
135If the function is only going to be used for auto-reverting, you can
136ignore the @var{noconfirm} argument.
137
138If you just want to automatically auto-revert every
139@code{auto-revert-interval} seconds (like the Buffer Menu), use:
140
141@example
142(setq-local buffer-stale-function
143 #'(lambda (&optional noconfirm) 'fast))
144@end example
145
146@noindent
147in the buffer's mode function.
148
149The special return value @samp{fast} tells the caller that the need
150for reverting was not checked, but that reverting the buffer is fast.
151It also tells Auto Revert not to print any revert messages, even if
152@code{auto-revert-verbose} is non-@code{nil}. This is important, as
153getting revert messages every @code{auto-revert-interval} seconds can
154be very annoying. The information provided by this return value could
155also be useful if the function is consulted for purposes other than
156auto-reverting.
157@end defvar
158
159Once the buffer has a suitable @code{revert-buffer-function} and
160@code{buffer-stale-function}, several problems usually remain.
161
162The buffer will only auto-revert if it is marked unmodified. Hence,
163you will have to make sure that various functions mark the buffer
164modified if and only if either the buffer contains information that
165might be lost by reverting, or there is reason to believe that the user
166might be inconvenienced by auto-reverting, because he is actively
167working on the buffer. The user can always override this by manually
168adjusting the modified status of the buffer. To support this, calling
169the @code{revert-buffer-function} on a buffer that is marked
170unmodified should always keep the buffer marked unmodified.
171
172It is important to assure that point does not continuously jump around
173as a consequence of auto-reverting. Of course, moving point might be
174inevitable if the buffer radically changes.
175
176You should make sure that the @code{revert-buffer-function} does not
177print messages that unnecessarily duplicate Auto Revert's own messages,
178displayed if @code{auto-revert-verbose} is @code{t}, and effectively
179override a @code{nil} value for @code{auto-revert-verbose}. Hence,
180adapting a mode for auto-reverting often involves getting rid of such
181messages. This is especially important for buffers that automatically
182revert every @code{auto-revert-interval} seconds.
183
184If the new auto-reverting is part of Emacs, you should mention it
185in the documentation string of @code{global-auto-revert-non-file-buffers}.
186 100
187@ifinfo 101Note that auto-reverting Dired buffers may not work satisfactorily on
188Similarly, you should add a node to this chapter's menu. This node 102some systems.
189@end ifinfo
190@ifnotinfo
191Similarly, you should add a section to this chapter. This section
192@end ifnotinfo
193should at the very least make clear whether enabling auto-reverting
194for the buffer reliably assures that all information in the buffer is
195completely up to date (or will be after @code{auto-revert-interval}
196seconds).
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index 11be78de68b..8a8298bc2c4 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -189,8 +189,9 @@ Move forward one character (@code{forward-char}).
189This command (@code{right-char}) behaves like @kbd{C-f}, with one 189This command (@code{right-char}) behaves like @kbd{C-f}, with one
190exception: when editing right-to-left scripts such as Arabic, it 190exception: when editing right-to-left scripts such as Arabic, it
191instead moves @emph{backward} if the current paragraph is a 191instead moves @emph{backward} if the current paragraph is a
192right-to-left paragraph. @xref{Bidirectional Editing}. If 192right-to-left paragraph. @xref{Bidirectional Editing}.
193@code{visual-order-cursor-movement} is non-@code{nil}, this command 193
194If @code{visual-order-cursor-movement} is non-@code{nil}, this command
194moves to the character that is to the right of the current screen 195moves to the character that is to the right of the current screen
195position, moving to the next or previous screen line as appropriate. 196position, moving to the next or previous screen line as appropriate.
196Note that this might potentially move point many buffer positions 197Note that this might potentially move point many buffer positions
@@ -206,10 +207,10 @@ Move backward one character (@code{backward-char}).
206@findex left-char 207@findex left-char
207This command (@code{left-char}) behaves like @kbd{C-b}, except it 208This command (@code{left-char}) behaves like @kbd{C-b}, except it
208moves @emph{forward} if the current paragraph is right-to-left. 209moves @emph{forward} if the current paragraph is right-to-left.
209@xref{Bidirectional Editing}. If @code{visual-order-cursor-movement} 210@xref{Bidirectional Editing}.
210is non-@code{nil}, this command moves to the character that is to the 211
211left of the current screen position, moving to the previous or next 212The variable @code{visual-order-cursor-movement} affects this like
212screen line as appropriate. 213@key{RIGHT}, but moving left instead of right on the screen.
213 214
214@item C-n 215@item C-n
215@itemx @key{DOWN} 216@itemx @key{DOWN}
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 3b645d5e65c..f61e3335770 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -384,6 +384,10 @@ grep -nH -e foo *.el | grep bar | grep toto
384can find the corresponding lines in the original files using @w{@kbd{C-x 384can find the corresponding lines in the original files using @w{@kbd{C-x
385`}}, @key{RET}, and so forth, just like compilation errors. 385`}}, @key{RET}, and so forth, just like compilation errors.
386 386
387 As with compilation commands (@pxref{Compilation}), while the grep
388command runs, the mode line is updated to show the number of matches
389that have been seen so far.
390
387 Some grep programs accept a @samp{--color} option to output special 391 Some grep programs accept a @samp{--color} option to output special
388markers around matches for the purpose of highlighting. You can make 392markers around matches for the purpose of highlighting. You can make
389use of this feature by setting @code{grep-highlight-matches} to 393use of this feature by setting @code{grep-highlight-matches} to
@@ -607,15 +611,16 @@ to recompile and restart the program.
607@vindex gud-tooltip-echo-area 611@vindex gud-tooltip-echo-area
608 GUD Tooltip mode is a global minor mode that adds tooltip support to 612 GUD Tooltip mode is a global minor mode that adds tooltip support to
609GUD@. To toggle this mode, type @kbd{M-x gud-tooltip-mode}. It is 613GUD@. To toggle this mode, type @kbd{M-x gud-tooltip-mode}. It is
610disabled by default. If enabled, you can move the mouse cursor over a 614disabled by default. If enabled, you can move the mouse pointer over a
611variable, a function, or a macro (collectively called 615variable, a function, or a macro (collectively called
612@dfn{identifiers}) to show their values in tooltips 616@dfn{identifiers}) to show their values in tooltips
613(@pxref{Tooltips}). Alternatively, mark an identifier or an 617(@pxref{Tooltips}). If just placing the mouse pointer over an
614expression by dragging the mouse over it, then leave the mouse in the 618expression doesn't show the value of the expression you had in mind,
615marked area to have the value of the expression displayed in a 619you can tell Emacs more explicitly what expression to evaluate by
616tooltip. The GUD Tooltip mode takes effect in the GUD interaction 620dragging the mouse over the expression, then leaving the mouse inside
617buffer, and in all source buffers with major modes listed in the 621the marked area. The GUD Tooltip mode takes effect in the GUD
618variable @code{gud-tooltip-modes}. If the variable 622interaction buffer, and in all source buffers with major modes listed
623in the variable @code{gud-tooltip-modes}. If the variable
619@code{gud-tooltip-echo-area} is non-@code{nil}, or if you turned off 624@code{gud-tooltip-echo-area} is non-@code{nil}, or if you turned off
620the tooltip mode, values are shown in the echo area instead of a 625the tooltip mode, values are shown in the echo area instead of a
621tooltip. 626tooltip.
@@ -1217,9 +1222,9 @@ edit its value.
1217@vindex gdb-delete-out-of-scope 1222@vindex gdb-delete-out-of-scope
1218 If the variable @code{gdb-delete-out-of-scope} is non-@code{nil} 1223 If the variable @code{gdb-delete-out-of-scope} is non-@code{nil}
1219(the default value), Emacs automatically deletes watch expressions 1224(the default value), Emacs automatically deletes watch expressions
1220which go out of scope. Sometimes, when re-entering the same function, 1225which go out of scope. Sometimes, when your program re-enters the
1221it may be useful to set this value to @code{nil} so that you don't 1226same function many times, it may be useful to set this value to
1222need to recreate the watch expression. 1227@code{nil} so that you don't need to recreate the watch expression.
1223 1228
1224@vindex gdb-use-colon-colon-notation 1229@vindex gdb-use-colon-colon-notation
1225 If the variable @code{gdb-use-colon-colon-notation} is 1230 If the variable @code{gdb-use-colon-colon-notation} is
@@ -1284,7 +1289,7 @@ execution control commands.
1284value), interruption and continuation commands apply to all threads, 1289value), interruption and continuation commands apply to all threads,
1285so you can halt or continue all your threads with one command using 1290so you can halt or continue all your threads with one command using
1286@code{gud-stop-subjob} and @code{gud-cont}, respectively. The 1291@code{gud-stop-subjob} and @code{gud-cont}, respectively. The
1287@samp{Go} button is shown on the toolbar when at least one thread is 1292@samp{Go} button is shown on the tool bar when at least one thread is
1288stopped, whereas @samp{Stop} button is shown when at least one thread 1293stopped, whereas @samp{Stop} button is shown when at least one thread
1289is running. 1294is running.
1290 1295
@@ -1292,8 +1297,8 @@ is running.
1292 1297
1293When @code{gdb-gud-control-all-threads} is @code{nil}, only the 1298When @code{gdb-gud-control-all-threads} is @code{nil}, only the
1294current thread is stopped/continued. @samp{Go} and @samp{Stop} 1299current thread is stopped/continued. @samp{Go} and @samp{Stop}
1295buttons on the GUD toolbar are shown depending on the state of current 1300buttons on the GUD tool bar are shown depending on the state of
1296thread. 1301current thread.
1297@end table 1302@end table
1298 1303
1299You can change the current value of @code{gdb-gud-control-all-threads} 1304You can change the current value of @code{gdb-gud-control-all-threads}
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index ed1f53fa70b..be5af998e7e 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -12,7 +12,7 @@ planned or past events. It also has facilities for managing your
12appointments, and keeping track of how much time you spend working on 12appointments, and keeping track of how much time you spend working on
13certain projects. 13certain projects.
14 14
15 To enter the calendar, type @kbd{M-x calendar}; this displays a 15 To enter the calendar, type @kbd{M-x calendar}. This displays a
16three-month calendar centered on the current month, with point on the 16three-month calendar centered on the current month, with point on the
17current date. With a numeric argument, as in @kbd{C-u M-x calendar}, it 17current date. With a numeric argument, as in @kbd{C-u M-x calendar}, it
18prompts you for the month and year to be the center of the three-month 18prompts you for the month and year to be the center of the three-month
@@ -126,10 +126,11 @@ whole year.
126 126
127 The easiest way to remember these commands is to consider months and 127 The easiest way to remember these commands is to consider months and
128years analogous to paragraphs and pages of text, respectively. But 128years analogous to paragraphs and pages of text, respectively. But
129the commands themselves are not quite analogous. The ordinary Emacs 129the calendar movement commands themselves do not quite parallel those
130paragraph commands move to the beginning or end of a paragraph, 130for movement through text: the ordinary Emacs paragraph commands move
131whereas these month and year commands move by an entire month or an 131to the beginning or end of a paragraph, whereas these month and year
132entire year, keeping the same date within the month or year. 132commands move by an entire month or an entire year, keeping the same
133date within the month or year.
133 134
134 All these commands accept a numeric argument as a repeat count. 135 All these commands accept a numeric argument as a repeat count.
135For convenience, the digit keys and the minus sign specify numeric 136For convenience, the digit keys and the minus sign specify numeric
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 63db2ac765b..e463e7c8194 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -41,10 +41,11 @@ corresponding long form.
41type. However, you don't have to spell out the whole option name; any 41type. However, you don't have to spell out the whole option name; any
42unambiguous abbreviation is enough. When a long option takes an 42unambiguous abbreviation is enough. When a long option takes an
43argument, you can use either a space or an equal sign to separate the 43argument, you can use either a space or an equal sign to separate the
44option name and the argument. Thus, you can write either 44option name and the argument. Thus, for the option @samp{--display},
45@samp{--display sugar-bombs:0.0} or @samp{--display=sugar-bombs:0.0}. 45you can write either @samp{--display sugar-bombs:0.0} or
46We recommend an equal sign because it makes the relationship clearer, 46@samp{--display=sugar-bombs:0.0}. We recommend an equal sign because
47and the tables below always show an equal sign. 47it makes the relationship clearer, and the tables below always show an
48equal sign.
48 49
49@cindex initial options (command line) 50@cindex initial options (command line)
50@cindex action options (command line) 51@cindex action options (command line)
@@ -104,7 +105,7 @@ If the startup buffer is disabled (@pxref{Entering Emacs}), then
104starting Emacs with one file argument displays the buffer visiting 105starting Emacs with one file argument displays the buffer visiting
105@var{file} in a single window. With two file arguments, Emacs 106@var{file} in a single window. With two file arguments, Emacs
106displays the files in two different windows. With more than two file 107displays the files in two different windows. With more than two file
107argument, Emacs displays the last file specified in one window, plus 108arguments, Emacs displays the last file specified in one window, plus
108another window with a Buffer Menu showing all the other files 109another window with a Buffer Menu showing all the other files
109(@pxref{Several Buffers}). To inhibit using the Buffer Menu for this, 110(@pxref{Several Buffers}). To inhibit using the Buffer Menu for this,
110change the variable @code{inhibit-startup-buffer-menu} to @code{t}. 111change the variable @code{inhibit-startup-buffer-menu} to @code{t}.
@@ -326,7 +327,7 @@ in your initialization file (@pxref{Entering Emacs}).
326@opindex -Q 327@opindex -Q
327@itemx --quick 328@itemx --quick
328@opindex --quick 329@opindex --quick
329Start emacs with minimum customizations. This is similar to using @samp{-q}, 330Start Emacs with minimum customizations. This is similar to using @samp{-q},
330@samp{--no-site-file}, @samp{--no-site-lisp}, and @samp{--no-splash} 331@samp{--no-site-file}, @samp{--no-site-lisp}, and @samp{--no-splash}
331together. This also stops Emacs from processing X resources by 332together. This also stops Emacs from processing X resources by
332setting @code{inhibit-x-resources} to @code{t} (@pxref{Resources}). 333setting @code{inhibit-x-resources} to @code{t} (@pxref{Resources}).
@@ -337,7 +338,7 @@ setting @code{inhibit-x-resources} to @code{t} (@pxref{Resources}).
337@opindex --daemon 338@opindex --daemon
338@itemx --bg-daemon[=@var{name}] 339@itemx --bg-daemon[=@var{name}]
339@itemx --fg-daemon[=@var{name}] 340@itemx --fg-daemon[=@var{name}]
340Start Emacs as a daemon---after Emacs starts up, it starts the Emacs 341Start Emacs as a daemon: after Emacs starts up, it starts the Emacs
341server without opening any frames. 342server without opening any frames.
342(Optionally, you can specify an explicit @var{name} for the server.) 343(Optionally, you can specify an explicit @var{name} for the server.)
343You can then use the @command{emacsclient} command to connect to Emacs 344You can then use the @command{emacsclient} command to connect to Emacs
@@ -753,9 +754,10 @@ name under @file{/Software/GNU/Emacs}; first in the
753there, in the @file{HKEY_LOCAL_MACHINE} section. Finally, if Emacs 754there, in the @file{HKEY_LOCAL_MACHINE} section. Finally, if Emacs
754still cannot determine the values, compiled-in defaults are used. 755still cannot determine the values, compiled-in defaults are used.
755 756
756In addition to the environment variables above, you can also add many 757In addition to the environment variables above, you can also add
757of the settings which on X belong in the @file{.Xdefaults} file 758settings to the @file{/Software/GNU/Emacs} registry key to specify X
758(@pxref{X Resources}) to the @file{/Software/GNU/Emacs} registry key. 759resources (@pxref{X Resources}). Most of the settings you can specify
760in your @file{.Xdefaults} file can be set from that registry key.
759 761
760@node Display X 762@node Display X
761@appendixsec Specifying the Display Name 763@appendixsec Specifying the Display Name
@@ -886,7 +888,7 @@ Specify the color for the mouse cursor when the mouse is in the Emacs window.
886@itemx --reverse-video 888@itemx --reverse-video
887@opindex --reverse-video 889@opindex --reverse-video
888@cindex reverse video, command-line argument 890@cindex reverse video, command-line argument
889Reverse video---swap the foreground and background colors. 891Reverse video: swap the foreground and background colors.
890@item --color=@var{mode} 892@item --color=@var{mode}
891@opindex --color 893@opindex --color
892@cindex standard colors on a character terminal 894@cindex standard colors on a character terminal
@@ -1023,11 +1025,12 @@ width. If you start with an @samp{x} followed by an integer, Emacs
1023interprets it as the height. Thus, @samp{81} specifies just the 1025interprets it as the height. Thus, @samp{81} specifies just the
1024width; @samp{x45} specifies just the height. 1026width; @samp{x45} specifies just the height.
1025 1027
1026 If you start with @samp{+} or @samp{-}, that introduces an offset, 1028 If you start the geometry with @samp{+} or @samp{-}, that introduces
1027which means both sizes are omitted. Thus, @samp{-3} specifies the 1029an offset, which means both sizes are omitted. Thus, @samp{-3}
1028@var{xoffset} only. (If you give just one offset, it is always 1030specifies the @var{xoffset} only. (If you give just one offset, it is
1029@var{xoffset}.) @samp{+3-3} specifies both the @var{xoffset} and the 1031always @var{xoffset}.) @samp{+3-3} specifies both the @var{xoffset}
1030@var{yoffset}, placing the frame near the bottom left of the screen. 1032and the @var{yoffset}, placing the frame near the bottom left of the
1033screen.
1031 1034
1032 You can specify a default for any or all of the fields in your X 1035 You can specify a default for any or all of the fields in your X
1033resource file (@pxref{Resources}), and then override selected fields 1036resource file (@pxref{Resources}), and then override selected fields
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 5b2ab8280d1..e27760b3796 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1859,7 +1859,7 @@ key.
1859 Many keyboards have a numeric keypad on the right hand side. 1859 Many keyboards have a numeric keypad on the right hand side.
1860The numeric keys in the keypad double up as cursor motion keys, 1860The numeric keys in the keypad double up as cursor motion keys,
1861toggled by a key labeled @samp{Num Lock}. By default, Emacs 1861toggled by a key labeled @samp{Num Lock}. By default, Emacs
1862translates these keys to the corresponding keys in the main keyboard. 1862translates these keys to the corresponding keys on the main keyboard.
1863For example, when @samp{Num Lock} is on, the key labeled @samp{8} on 1863For example, when @samp{Num Lock} is on, the key labeled @samp{8} on
1864the numeric keypad produces @code{kp-8}, which is translated to 1864the numeric keypad produces @code{kp-8}, which is translated to
1865@kbd{8}; when @samp{Num Lock} is off, the same key produces 1865@kbd{8}; when @samp{Num Lock} is off, the same key produces
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index e22d7f30afb..205ca54728f 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -991,16 +991,15 @@ expressions to highlight in different ways.
991@kindex M-s h u 991@kindex M-s h u
992@kindex C-x w r 992@kindex C-x w r
993@findex unhighlight-regexp 993@findex unhighlight-regexp
994Unhighlight @var{regexp} (@code{unhighlight-regexp}). 994Unhighlight @var{regexp} (@code{unhighlight-regexp}). If you invoke
995 995this from the menu, you select the expression to unhighlight from a
996If you invoke this from the menu, you select the expression to 996list. If you invoke this from the keyboard, you use the minibuffer.
997unhighlight from a list. If you invoke this from the keyboard, you 997It will show the most recently added regular expression; use @kbd{M-n}
998use the minibuffer. It will show the most recently added regular 998to show the next older expression and @kbd{M-p} to select the next
999expression; use @kbd{M-n} to show the next older expression and 999newer expression. (You can also type the expression by hand, with
1000@kbd{M-p} to select the next newer expression. (You can also type the 1000completion.) When the expression you want to unhighlight appears in
1001expression by hand, with completion.) When the expression you want to 1001the minibuffer, press @kbd{@key{RET}} to exit the minibuffer and
1002unhighlight appears in the minibuffer, press @kbd{@key{RET}} to exit 1002unhighlight it.
1003the minibuffer and unhighlight it.
1004 1003
1005@item M-s h l @var{regexp} @key{RET} @var{face} @key{RET} 1004@item M-s h l @var{regexp} @key{RET} @var{face} @key{RET}
1006@itemx C-x w l @var{regexp} @key{RET} @var{face} @key{RET} 1005@itemx C-x w l @var{regexp} @key{RET} @var{face} @key{RET}
@@ -1393,13 +1392,13 @@ the option @code{display-time-mode}. The information added to the mode
1393line looks like this: 1392line looks like this:
1394 1393
1395@example 1394@example
1396@var{hh}:@var{mm}pm @var{l.ll} 1395@var{hh}:@var{mm}PM @var{l.ll}
1397@end example 1396@end example
1398 1397
1399@noindent 1398@noindent
1400@vindex display-time-24hr-format 1399@vindex display-time-24hr-format
1401Here @var{hh} and @var{mm} are the hour and minute, followed always by 1400Here @var{hh} and @var{mm} are the hour and minute, followed always by
1402@samp{am} or @samp{pm}. @var{l.ll} is the average number, collected 1401@samp{AM} or @samp{PM}. @var{l.ll} is the average number, collected
1403for the last few minutes, of processes in the whole system that were 1402for the last few minutes, of processes in the whole system that were
1404either running or ready to run (i.e., were waiting for an available 1403either running or ready to run (i.e., were waiting for an available
1405processor). (Some fields may be missing if your operating system 1404processor). (Some fields may be missing if your operating system
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 474c4e96e22..163b6f23d84 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -482,7 +482,6 @@ Auto Reverting Non-File Buffers
482 482
483* Auto Reverting the Buffer Menu:: Auto Revert of the Buffer Menu. 483* Auto Reverting the Buffer Menu:: Auto Revert of the Buffer Menu.
484* Auto Reverting Dired:: Auto Revert of Dired buffers. 484* Auto Reverting Dired:: Auto Revert of Dired buffers.
485* Supporting additional buffers:: How to add more Auto Revert support.
486@end ifnottex 485@end ifnottex
487 486
488Auto-Saving: Protection Against Disasters 487Auto-Saving: Protection Against Disasters
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 083f64704ae..37d905690cd 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -116,8 +116,8 @@ the @samp{$}; alternatively, it can be enclosed in braces after the
116@file{/u/$@{FOO@}/test.c} are abbreviations for 116@file{/u/$@{FOO@}/test.c} are abbreviations for
117@file{/u/rms/hacks/test.c}. If the environment variable is not 117@file{/u/rms/hacks/test.c}. If the environment variable is not
118defined, no substitution occurs, so that the character @samp{$} stands 118defined, no substitution occurs, so that the character @samp{$} stands
119for itself. Note that environment variables affect Emacs only if they 119for itself. Note that environment variables set outside Emacs affect
120are applied before Emacs is started. 120Emacs only if they are applied before Emacs is started.
121 121
122 To access a file with @samp{$} in its name, if the @samp{$} causes 122 To access a file with @samp{$} in its name, if the @samp{$} causes
123expansion, type @samp{$$}. This pair is converted to a single 123expansion, type @samp{$$}. This pair is converted to a single
@@ -167,7 +167,9 @@ minibuffer, you can abort the command by typing @kbd{C-g}. @xref{File
167Names}, for details about entering file names into minibuffers. 167Names}, for details about entering file names into minibuffers.
168 168
169 If the specified file exists but the system does not allow you to 169 If the specified file exists but the system does not allow you to
170read it, an error message is displayed in the echo area. Otherwise, 170read it, an error message is displayed in the echo area (on GNU and
171Unix systems you might be able to visit such a file using the
172@samp{su} or @samp{sudo} methods; @pxref{Remote Files}). Otherwise,
171you can tell that @kbd{C-x C-f} has completed successfully by the 173you can tell that @kbd{C-x C-f} has completed successfully by the
172appearance of new text on the screen, and by the buffer name shown in 174appearance of new text on the screen, and by the buffer name shown in
173the mode line (@pxref{Mode Line}). Emacs normally constructs the 175the mode line (@pxref{Mode Line}). Emacs normally constructs the
@@ -291,7 +293,8 @@ see @ref{Drag and Drop}, and @ref{Misc Dired Features}.
291 293
292 On text-mode terminals and on graphical displays when Emacs was 294 On text-mode terminals and on graphical displays when Emacs was
293built without a GUI toolkit, you can visit files via the menu-bar 295built without a GUI toolkit, you can visit files via the menu-bar
294@samp{File} menu, which has a @samp{Visit New File} item. 296@samp{File} menu, which has the @samp{Visit New File} and the
297@samp{Open File} items.
295 298
296 Each time you visit a file, Emacs automatically scans its contents 299 Each time you visit a file, Emacs automatically scans its contents
297to detect what character encoding and end-of-line convention it uses, 300to detect what character encoding and end-of-line convention it uses,
@@ -638,7 +641,7 @@ you whether it should delete the excess backup versions. If it has
638any other value, then Emacs never automatically deletes backups. 641any other value, then Emacs never automatically deletes backups.
639 642
640 Dired's @kbd{.} (Period) command can also be used to delete old versions. 643 Dired's @kbd{.} (Period) command can also be used to delete old versions.
641@xref{Dired Deletion}. 644@xref{Flagging Many Files}.
642 645
643@node Backup Copying 646@node Backup Copying
644@subsubsection Copying vs.@: Renaming 647@subsubsection Copying vs.@: Renaming
@@ -738,7 +741,7 @@ survive a crash even if @code{fsync} works properly.
738 The @code{write-region-inhibit-fsync} variable controls whether 741 The @code{write-region-inhibit-fsync} variable controls whether
739Emacs invokes @code{fsync} after saving a file. The variable's 742Emacs invokes @code{fsync} after saving a file. The variable's
740default value is @code{nil} when Emacs is interactive, and @code{t} 743default value is @code{nil} when Emacs is interactive, and @code{t}
741when Emacs runs in batch mode (@pxref{Initial Options, batch mode}). 744when Emacs runs in batch mode (@pxref{Initial Options, Batch Mode}).
742 745
743 Emacs never uses @code{fsync} when writing auto-save files, as these 746 Emacs never uses @code{fsync} when writing auto-save files, as these
744files might lose data anyway. 747files might lose data anyway.
@@ -751,7 +754,7 @@ files might lose data anyway.
751 Simultaneous editing occurs when two users visit the same file, both 754 Simultaneous editing occurs when two users visit the same file, both
752make changes, and then both save them. If nobody is informed that 755make changes, and then both save them. If nobody is informed that
753this is happening, whichever user saves first would later find that 756this is happening, whichever user saves first would later find that
754his changes were lost. 757their changes were lost.
755 758
756 On some systems, Emacs notices immediately when the second user starts 759 On some systems, Emacs notices immediately when the second user starts
757to change the file, and issues an immediate warning. On all systems, 760to change the file, and issues an immediate warning. On all systems,
@@ -952,12 +955,25 @@ discard your changes.)
952 You can also tell Emacs to revert buffers periodically. To do this 955 You can also tell Emacs to revert buffers periodically. To do this
953for a specific buffer, enable the minor mode Auto-Revert mode by 956for a specific buffer, enable the minor mode Auto-Revert mode by
954typing @kbd{M-x auto-revert-mode}. This automatically reverts the 957typing @kbd{M-x auto-revert-mode}. This automatically reverts the
955current buffer every five seconds; you can change the interval through 958current buffer when its visited file changes on disk. To do the same
956the variable @code{auto-revert-interval}. To do the same for all file 959for all file buffers, type @kbd{M-x global-auto-revert-mode} to enable
957buffers, type @kbd{M-x global-auto-revert-mode} to enable Global 960Global Auto-Revert mode. These minor modes do not check or revert
958Auto-Revert mode. These minor modes do not check or revert remote 961remote files, because that is usually too slow. This behavior can be
959files, because that is usually too slow. This behavior can be changed 962changed by setting the variable @code{auto-revert-remote-files} to
960by setting the variable @code{auto-revert-remote-files} to non-@code{nil}. 963non-@code{nil}.
964
965@cindex file notifications
966@vindex auto-revert-use-notify
967 By default, Auto-Revert mode works using @dfn{file notifications},
968whereby changes in the filesystem are reported to Emacs by the OS.
969You can disable use of file notifications by customizing the variable
970@code{auto-revert-use-notify} to a @code{nil} value, then Emacs will
971check for file changes by polling every five seconds. You can change
972the polling interval through the variable @code{auto-revert-interval}.
973
974 Not all systems support file notifications; where they are not
975supported, @code{auto-revert-use-notify} will be @code{nil} by
976default.
961 977
962 One use of Auto-Revert mode is to ``tail'' a file such as a system 978 One use of Auto-Revert mode is to ``tail'' a file such as a system
963log, so that changes made to that file by other programs are 979log, so that changes made to that file by other programs are
@@ -1159,7 +1175,7 @@ this---saving them---updates the files themselves.
1159 1175
1160@vindex auto-save-list-file-prefix 1176@vindex auto-save-list-file-prefix
1161 Emacs records information about interrupted sessions in files named 1177 Emacs records information about interrupted sessions in files named
1162@file{.saves-@var{pid}-@var{hostname}} in the directory 1178@file{.saves-@var{pid}-@var{hostname}~} in the directory
1163@file{~/.emacs.d/auto-save-list/}. This directory is determined by 1179@file{~/.emacs.d/auto-save-list/}. This directory is determined by
1164the variable @code{auto-save-list-file-prefix}. If you set 1180the variable @code{auto-save-list-file-prefix}. If you set
1165@code{auto-save-list-file-prefix} to @code{nil}, sessions are not 1181@code{auto-save-list-file-prefix} to @code{nil}, sessions are not
@@ -1233,8 +1249,9 @@ named @file{/fsf}:
1233listing} is a list of all the files in a directory. Emacs provides 1249listing} is a list of all the files in a directory. Emacs provides
1234commands to create and delete directories, and to make directory 1250commands to create and delete directories, and to make directory
1235listings in brief format (file names only) and verbose format (sizes, 1251listings in brief format (file names only) and verbose format (sizes,
1236dates, and authors included). Emacs also includes a directory browser 1252dates, and other attributes included). Emacs also includes a
1237feature called Dired; see @ref{Dired}. 1253directory browser feature called Dired, which you can invoke with
1254@kbd{C-x d}; see @ref{Dired}.
1238 1255
1239@table @kbd 1256@table @kbd
1240@item C-x C-d @var{dir-or-pattern} @key{RET} 1257@item C-x C-d @var{dir-or-pattern} @key{RET}
@@ -1315,6 +1332,9 @@ information about the @command{diff} program.
1315 The output of the @code{diff} command is shown using a major mode 1332 The output of the @code{diff} command is shown using a major mode
1316called Diff mode. @xref{Diff Mode}. 1333called Diff mode. @xref{Diff Mode}.
1317 1334
1335 A (much more sophisticated) alternative is @kbd{M-x ediff}
1336(@pxref{Top, Ediff, Ediff, ediff, The Ediff Manual}).
1337
1318@findex diff-backup 1338@findex diff-backup
1319 The command @kbd{M-x diff-backup} compares a specified file with its 1339 The command @kbd{M-x diff-backup} compares a specified file with its
1320most recent backup. If you specify the name of a backup file, 1340most recent backup. If you specify the name of a backup file,
@@ -1331,10 +1351,10 @@ would make to the file if you save the buffer.
1331current window with that in the window that was the selected window 1351current window with that in the window that was the selected window
1332before you selected the current one. (For more information about 1352before you selected the current one. (For more information about
1333windows in Emacs, @ref{Windows}.) Comparison starts at point in each 1353windows in Emacs, @ref{Windows}.) Comparison starts at point in each
1334window, after pushing each initial point value on the mark ring in its 1354window, after pushing each initial point value on the mark ring
1335respective buffer. Then it moves point forward in each window, one 1355(@pxref{Mark Ring}) in its respective buffer. Then it moves point
1336character at a time, until it reaches characters that don't match. 1356forward in each window, one character at a time, until it reaches
1337Then the command exits. 1357characters that don't match. Then the command exits.
1338 1358
1339 If point in the two windows is followed by non-matching text when 1359 If point in the two windows is followed by non-matching text when
1340the command starts, @kbd{M-x compare-windows} tries heuristically to 1360the command starts, @kbd{M-x compare-windows} tries heuristically to
@@ -1348,8 +1368,9 @@ skips one matching range or finds the start of another.
1348whitespace. If the variable @code{compare-ignore-case} is 1368whitespace. If the variable @code{compare-ignore-case} is
1349non-@code{nil}, the comparison ignores differences in case as well. 1369non-@code{nil}, the comparison ignores differences in case as well.
1350If the variable @code{compare-ignore-whitespace} is non-@code{nil}, 1370If the variable @code{compare-ignore-whitespace} is non-@code{nil},
1351@code{compare-windows} normally ignores changes in whitespace, and a 1371@code{compare-windows} by default ignores changes in whitespace, but a
1352prefix argument turns that off. 1372prefix argument turns that off for that single invocation of the
1373command.
1353 1374
1354@cindex Smerge mode 1375@cindex Smerge mode
1355@findex smerge-mode 1376@findex smerge-mode
@@ -1419,7 +1440,7 @@ Move to the next hunk-start (@code{diff-hunk-next}).
1419This command has a side effect: it @dfn{refines} the hunk you move to, 1440This command has a side effect: it @dfn{refines} the hunk you move to,
1420highlighting its changes with better granularity. To disable this 1441highlighting its changes with better granularity. To disable this
1421feature, type @kbd{M-x diff-auto-refine-mode} to toggle off the minor 1442feature, type @kbd{M-x diff-auto-refine-mode} to toggle off the minor
1422mode Diff Auto-Refine mode. To disable Diff Auto Refine mode by 1443mode Diff Auto-Refine mode. To disable Diff Auto-Refine mode by
1423default, add this to your init file (@pxref{Hooks}): 1444default, add this to your init file (@pxref{Hooks}):
1424 1445
1425@example 1446@example
@@ -1548,17 +1569,17 @@ modify the original source files rather than the patched source files.
1548@section Copying, Naming and Renaming Files 1569@section Copying, Naming and Renaming Files
1549 1570
1550 Emacs has several commands for copying, naming, and renaming files. 1571 Emacs has several commands for copying, naming, and renaming files.
1551All of them read two file names @var{old} and @var{new} using the 1572All of them read two file names, @var{old} (or @var{target}) and
1552minibuffer, and then copy or adjust a file's name accordingly; they do 1573@var{new}, using the minibuffer, and then copy or adjust a file's name
1553not accept wildcard file names. 1574accordingly; they do not accept wildcard file names.
1554 1575
1555In all these commands, if the argument @var{new} is just a directory 1576In all these commands, if the argument @var{new} is just a directory
1556name, the real new name is in that directory, with the same 1577name (@pxref{Directory Names,,, elisp, the Emacs Lisp Reference
1578Manual}), the real new name is in that directory, with the same
1557non-directory component as @var{old}. For example, the command 1579non-directory component as @var{old}. For example, the command
1558@w{@kbd{M-x rename-file @key{RET} ~/foo @key{RET} /tmp/ @key{RET}}} 1580@w{@kbd{M-x rename-file @key{RET} ~/foo @key{RET} /tmp/ @key{RET}}}
1559renames @file{~/foo} to @file{/tmp/foo}. On GNU and other POSIX-like 1581renames @file{~/foo} to @file{/tmp/foo}. On GNU and other POSIX-like
1560systems, directory names end in @samp{/}. @xref{Directory Names,,, 1582systems, directory names end in @samp{/}.
1561elisp, the Emacs Lisp Reference Manual}.
1562 1583
1563All these commands ask for confirmation when the new file name already 1584All these commands ask for confirmation when the new file name already
1564exists. 1585exists.
@@ -1811,8 +1832,8 @@ To carry out this request, Emacs uses a remote-login program such as
1811@command{ssh}. 1832@command{ssh}.
1812You must always specify in the file name which method to use---for 1833You must always specify in the file name which method to use---for
1813example, @file{/ssh:@var{user}@@@var{host}:@var{filename}} uses 1834example, @file{/ssh:@var{user}@@@var{host}:@var{filename}} uses
1814@command{ssh}. When you specify the pseudo method @var{-} in the file 1835@command{ssh}. When you specify the pseudo method @samp{-} in the
1815name, Emacs chooses the method as follows: 1836file name, Emacs chooses the method as follows:
1816 1837
1817@enumerate 1838@enumerate
1818@item 1839@item
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index aca85f3de07..c872e9bb3ac 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -78,7 +78,6 @@ the undo command.
78previous undo commands, use @kbd{M-x undo-only}. This is like 78previous undo commands, use @kbd{M-x undo-only}. This is like
79@code{undo}, but will not redo changes you have just undone. 79@code{undo}, but will not redo changes you have just undone.
80 80
81@c What about @kbd{M-x revert-buffer}? --xfq
82 If you notice that a buffer has been modified accidentally, the 81 If you notice that a buffer has been modified accidentally, the
83easiest way to recover is to type @kbd{C-/} repeatedly until the stars 82easiest way to recover is to type @kbd{C-/} repeatedly until the stars
84disappear from the front of the mode line (@pxref{Mode Line}). 83disappear from the front of the mode line (@pxref{Mode Line}).
@@ -90,6 +89,10 @@ the last change you made undone, you will see whether it was an
90intentional change. If it was an accident, leave it undone. If it 89intentional change. If it was an accident, leave it undone. If it
91was deliberate, redo the change as described above. 90was deliberate, redo the change as described above.
92 91
92Alternatively, you can discard all the changes since the buffer was
93last visited or saved with @kbd{M-x revert-buffer}
94(@pxref{Reverting}).
95
93@cindex selective undo 96@cindex selective undo
94@kindex C-u C-/ 97@kindex C-u C-/
95 When there is an active region, any use of @code{undo} performs 98 When there is an active region, any use of @code{undo} performs
@@ -216,7 +219,7 @@ Convert last word to lower case with capital initial.
216@kindex M-@t{-} M-u 219@kindex M-@t{-} M-u
217@kindex M-@t{-} M-c 220@kindex M-@t{-} M-c
218 A very common error is to type words in the wrong case. Because of this, 221 A very common error is to type words in the wrong case. Because of this,
219the word case-conversion commands @kbd{M-l}, @kbd{M-u} and @kbd{M-c} have a 222the word case-conversion commands @kbd{M-l}, @kbd{M-u}, and @kbd{M-c} have a
220special feature when used with a negative argument: they do not move the 223special feature when used with a negative argument: they do not move the
221cursor. As soon as you see you have mistyped the last word, you can simply 224cursor. As soon as you see you have mistyped the last word, you can simply
222case-convert it and go on typing. @xref{Case}. 225case-convert it and go on typing. @xref{Case}.
@@ -231,7 +234,7 @@ case-convert it and go on typing. @xref{Case}.
231single word or of a portion of a buffer. These commands only work if 234single word or of a portion of a buffer. These commands only work if
232a spelling checker program, one of Hunspell, Aspell, Ispell or 235a spelling checker program, one of Hunspell, Aspell, Ispell or
233Enchant, is installed. These programs are not part of Emacs, but one 236Enchant, is installed. These programs are not part of Emacs, but one
234of them is usually installed in GNU/Linux and other free operating 237of them is usually installed on GNU/Linux and other free operating
235systems. 238systems.
236@ifnottex 239@ifnottex
237@xref{Top, Aspell,, aspell, The Aspell Manual}. 240@xref{Top, Aspell,, aspell, The Aspell Manual}.
diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi
index 19e1be729ff..b38e85819ce 100644
--- a/doc/emacs/indent.texi
+++ b/doc/emacs/indent.texi
@@ -201,12 +201,12 @@ are always displayed as empty spaces extending to the next
201@node Just Spaces 201@node Just Spaces
202@section Tabs vs.@: Spaces 202@section Tabs vs.@: Spaces
203 203
204 Normally, indentation commands insert (or remove) an optimal mix of 204 Normally, indentation commands insert (or remove) the shortest
205space characters and tab characters to align to the desired column. 205possible series of tab and space characters so as to align to the
206Tab characters are displayed as a stretch of empty space extending to 206desired column. Tab characters are displayed as a stretch of empty
207the next @dfn{display tab stop}. By default, there is one display tab 207space extending to the next @dfn{display tab stop}. By default, there
208stop every @code{tab-width} columns (the default is 8). @xref{Text 208is one display tab stop every @code{tab-width} columns (the default is
209Display}. 2098). @xref{Text Display}.
210 210
211@vindex indent-tabs-mode 211@vindex indent-tabs-mode
212 If you prefer, all indentation can be made from spaces only. To 212 If you prefer, all indentation can be made from spaces only. To
diff --git a/doc/emacs/m-x.texi b/doc/emacs/m-x.texi
index a283ca8fd03..a9b80d1addb 100644
--- a/doc/emacs/m-x.texi
+++ b/doc/emacs/m-x.texi
@@ -56,7 +56,10 @@ of entering the command name. This takes you back to command level.
56 To pass a numeric argument to the command you are invoking with 56 To pass a numeric argument to the command you are invoking with
57@kbd{M-x}, specify the numeric argument before @kbd{M-x}. The 57@kbd{M-x}, specify the numeric argument before @kbd{M-x}. The
58argument value appears in the prompt while the command name is being 58argument value appears in the prompt while the command name is being
59read, and finally @kbd{M-x} passes the argument to that command. 59read, and finally @kbd{M-x} passes the argument to that command. For
60example, to pass the numeric argument of 42 to the command
61@code{forward-char} you can type @kbd{C-u 42 M-x forward-char
62@key{RET}}.
60 63
61@vindex suggest-key-bindings 64@vindex suggest-key-bindings
62 When the command you run with @kbd{M-x} has a key binding, Emacs 65 When the command you run with @kbd{M-x} has a key binding, Emacs
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index dbde2c8f824..28a5f9041ab 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -18,8 +18,8 @@ does not support versions before macOS 10.6.
18@samp{Nextstep} internally, instead of ``Cocoa'' or ``macOS''; for 18@samp{Nextstep} internally, instead of ``Cocoa'' or ``macOS''; for
19instance, most of the commands and variables described in this section 19instance, most of the commands and variables described in this section
20begin with @samp{ns-}, which is short for @samp{Nextstep}. NeXTstep 20begin with @samp{ns-}, which is short for @samp{Nextstep}. NeXTstep
21was an application interface released by NeXT Inc during the 1980s, of 21was an application interface released by NeXT Inc.@: during the 1980s,
22which Cocoa is a direct descendant. Apart from Cocoa, there is 22of which Cocoa is a direct descendant. Apart from Cocoa, there is
23another NeXTstep-style system: GNUstep, which is free software. As of 23another NeXTstep-style system: GNUstep, which is free software. As of
24this writing, Emacs GNUstep support is alpha status (@pxref{GNUstep 24this writing, Emacs GNUstep support is alpha status (@pxref{GNUstep
25Support}), but we hope to improve it in the future. 25Support}), but we hope to improve it in the future.
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 8acbb5317ed..127c27c0378 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -542,13 +542,13 @@ been changed in the repository, offer to update it.
542 These rules also apply when you use RCS in its non-locking mode, 542 These rules also apply when you use RCS in its non-locking mode,
543except that changes are not automatically merged from the repository. 543except that changes are not automatically merged from the repository.
544Nothing informs you if another user has committed changes in the same 544Nothing informs you if another user has committed changes in the same
545file since you began editing it; when you commit your revision, his 545file since you began editing it; when you commit your revision, that
546changes are removed (however, they remain in the repository and are 546other user's changes are removed (however, they remain in the
547thus not irrevocably lost). Therefore, you must verify that the 547repository and are thus not irrevocably lost). Therefore, you must
548current revision is unchanged before committing your changes. In 548verify that the current revision is unchanged before committing your
549addition, locking is possible with RCS even in this mode: @kbd{C-x v 549changes. In addition, locking is possible with RCS even in this mode:
550v} with an unmodified file locks the file, just as it does with RCS in 550@kbd{C-x v v} with an unmodified file locks the file, just as it does
551its normal locking mode (@pxref{VC With A Locking VCS}). 551with RCS in its normal locking mode (@pxref{VC With A Locking VCS}).
552 552
553@node VC With A Locking VCS 553@node VC With A Locking VCS
554@subsubsection Basic Version Control with Locking 554@subsubsection Basic Version Control with Locking
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index de16c44720e..332602dcf2a 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -66,8 +66,8 @@ minibuffer-electric-default-mode}.
66other uses of the echo area. If an error message or an informative 66other uses of the echo area. If an error message or an informative
67message is emitted while the minibuffer is active, the message hides 67message is emitted while the minibuffer is active, the message hides
68the minibuffer for a few seconds, or until you type something; then 68the minibuffer for a few seconds, or until you type something; then
69the minibuffer comes back. While the minibuffer is in use, keystrokes 69the minibuffer comes back. While the minibuffer is in use, Emacs does
70do not echo. 70not echo keystrokes.
71 71
72@node Minibuffer File 72@node Minibuffer File
73@section Minibuffers for File Names 73@section Minibuffers for File Names
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 1fb47c3c68e..5babd5081a9 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -413,8 +413,8 @@ is needed. For OpenDocument and Microsoft Office documents, the
413 When you visit a document file that can be displayed with DocView 413 When you visit a document file that can be displayed with DocView
414mode, Emacs automatically uses DocView mode @footnote{The needed 414mode, Emacs automatically uses DocView mode @footnote{The needed
415external tools for the document type must be available, and Emacs must 415external tools for the document type must be available, and Emacs must
416be running in a graphical frame and have PNG image support. If any of 416be running in a graphical frame and have PNG image support. If these
417these requirements is not fulfilled, Emacs falls back to another major 417requirements is not fulfilled, Emacs falls back to another major
418mode.}. As an exception, when you visit a PostScript file, Emacs 418mode.}. As an exception, when you visit a PostScript file, Emacs
419switches to PS mode, a major mode for editing PostScript files as 419switches to PS mode, a major mode for editing PostScript files as
420text; however, it also enables DocView minor mode, so you can type 420text; however, it also enables DocView minor mode, so you can type
@@ -1212,7 +1212,7 @@ buffer after it has been sent.
1212@subsubsection Shell History References 1212@subsubsection Shell History References
1213@cindex history reference 1213@cindex history reference
1214 1214
1215 Various shells including csh and bash support @dfn{history 1215 Various shells, including csh and bash, support @dfn{history
1216references} that begin with @samp{!} and @samp{^}. Shell mode 1216references} that begin with @samp{!} and @samp{^}. Shell mode
1217recognizes these constructs, and can perform the history substitution 1217recognizes these constructs, and can perform the history substitution
1218for you. 1218for you.
@@ -1406,8 +1406,8 @@ by the faces @code{term-color-black}, @code{term-color-red},
1406@code{term-color-underline}, and @code{term-color-bold}. 1406@code{term-color-underline}, and @code{term-color-bold}.
1407@xref{Faces}. 1407@xref{Faces}.
1408 1408
1409 You can also Term mode to communicate with a device connected to a 1409 You can also use Term mode to communicate with a device connected to
1410serial port. @xref{Serial Terminal}. 1410a serial port. @xref{Serial Terminal}.
1411 1411
1412 The file name used to load the subshell is determined the same way 1412 The file name used to load the subshell is determined the same way
1413as for Shell mode. To make multiple terminal emulators, rename the 1413as for Shell mode. To make multiple terminal emulators, rename the
@@ -1427,12 +1427,8 @@ and later.
1427@cindex Term mode 1427@cindex Term mode
1428@cindex mode, Term 1428@cindex mode, Term
1429 1429
1430 The terminal emulator uses Term mode, which has two input modes. In 1430 To switch between line and char mode in Term mode, use these
1431line mode, Term basically acts like Shell mode (@pxref{Shell Mode}). 1431commands:
1432In char mode, each character is sent directly to the subshell, except
1433for the Term escape character, normally @kbd{C-c}.
1434
1435 To switch between line and char mode, use these commands:
1436 1432
1437@table @kbd 1433@table @kbd
1438@kindex C-c C-j @r{(Term mode)} 1434@kindex C-c C-j @r{(Term mode)}
@@ -1720,8 +1716,8 @@ Server})---then Emacs opens a frame on the terminal in which you
1720called @command{emacsclient}. 1716called @command{emacsclient}.
1721 1717
1722 You can also force @command{emacsclient} to open a new frame on a 1718 You can also force @command{emacsclient} to open a new frame on a
1723graphical display, or on a text terminal, using the @samp{-c} and 1719graphical display using the @samp{-c} option, or on a text terminal
1724@samp{-t} options. @xref{emacsclient Options}. 1720using the @samp{-t} option. @xref{emacsclient Options}.
1725 1721
1726 If you are running on a single text terminal, you can switch between 1722 If you are running on a single text terminal, you can switch between
1727@command{emacsclient}'s shell and the Emacs server using one of two 1723@command{emacsclient}'s shell and the Emacs server using one of two
diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi
index 1312a24d985..2bbc17b26db 100644
--- a/doc/emacs/modes.texi
+++ b/doc/emacs/modes.texi
@@ -57,10 +57,10 @@ for specific programming languages. These include Lisp mode (which
57has several variants), C mode, Fortran mode, and others. The third 57has several variants), C mode, Fortran mode, and others. The third
58group consists of major modes that are not associated directly with 58group consists of major modes that are not associated directly with
59files; they are used in buffers created for specific purposes by 59files; they are used in buffers created for specific purposes by
60Emacs, such as Dired mode for buffers made by Dired (@pxref{Dired}), 60Emacs. Examples include Dired mode for buffers made by Dired
61Message mode for buffers made by @kbd{C-x m} (@pxref{Sending Mail}), 61(@pxref{Dired}), Message mode for buffers made by @kbd{C-x m}
62and Shell mode for buffers used to communicate with an inferior shell 62(@pxref{Sending Mail}), and Shell mode for buffers used to communicate
63process (@pxref{Interactive Shell}). 63with an inferior shell process (@pxref{Interactive Shell}).
64 64
65 Usually, the major mode is automatically set by Emacs, when you 65 Usually, the major mode is automatically set by Emacs, when you
66first visit a file or create a buffer (@pxref{Choosing Modes}). You 66first visit a file or create a buffer (@pxref{Choosing Modes}). You
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
index 5f05bc0f9ee..bc6afb7966a 100644
--- a/doc/emacs/package.texi
+++ b/doc/emacs/package.texi
@@ -77,7 +77,7 @@ A short description of the package.
77 77
78@noindent 78@noindent
79The @code{list-packages} command accesses the network, to retrieve the 79The @code{list-packages} command accesses the network, to retrieve the
80list of available packages from the package archive server. If the 80list of available packages from package archive servers. If the
81network is unavailable, it falls back on the most recently retrieved 81network is unavailable, it falls back on the most recently retrieved
82list. 82list.
83 83
@@ -199,7 +199,7 @@ A valid signature is not a cast-iron
199guarantee that a package is not malicious, so you should still 199guarantee that a package is not malicious, so you should still
200exercise caution. Package archives should provide instructions 200exercise caution. Package archives should provide instructions
201on how you can obtain their public key. One way is to download the 201on how you can obtain their public key. One way is to download the
202key from a server such as @url{http://pgp.mit.edu/}. 202key from a server such as @url{https://pgp.mit.edu/}.
203Use @kbd{M-x package-import-keyring} to import the key into Emacs. 203Use @kbd{M-x package-import-keyring} to import the key into Emacs.
204Emacs stores package keys in the directory specified by the variable 204Emacs stores package keys in the directory specified by the variable
205@code{package-gnupghome-dir}, by default in the @file{gnupg} 205@code{package-gnupghome-dir}, by default in the @file{gnupg}
@@ -219,7 +219,7 @@ package that is not signed. If you use some archives that do not sign
219their packages, you can add them to the list @code{package-unsigned-archives}. 219their packages, you can add them to the list @code{package-unsigned-archives}.
220 220
221 For more information on cryptographic keys and signing, 221 For more information on cryptographic keys and signing,
222@pxref{Top,, Top, gnupg, The GNU Privacy Guard Manual}. 222@pxref{Top,, GnuPG, gnupg, The GNU Privacy Guard Manual}.
223Emacs comes with an interface to GNU Privacy Guard, 223Emacs comes with an interface to GNU Privacy Guard,
224@pxref{Top,, EasyPG, epa, Emacs EasyPG Assistant Manual}. 224@pxref{Top,, EasyPG, epa, Emacs EasyPG Assistant Manual}.
225 225
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index ebfa57c09a7..09cb034e372 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -175,6 +175,7 @@ Move to the next message containing a match for @var{regexp}
175 175
176@item - M-s @var{regexp} @key{RET} 176@item - M-s @var{regexp} @key{RET}
177Move to the previous message containing a match for @var{regexp}. 177Move to the previous message containing a match for @var{regexp}.
178(This is @kbd{M-s} with a negative argument.)
178@end table 179@end table
179 180
180@kindex n @r{(Rmail)} 181@kindex n @r{(Rmail)}
diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi
index 37c082e7caf..19a4a9e4b6c 100644
--- a/doc/emacs/screen.texi
+++ b/doc/emacs/screen.texi
@@ -30,13 +30,13 @@ display systems commonly use the word ``window'' with a different
30meaning; but, as stated above, we refer to those graphical windows 30meaning; but, as stated above, we refer to those graphical windows
31as ``frames''. 31as ``frames''.
32 32
33 An Emacs window is where the @dfn{buffer}---the text you are 33 An Emacs window is where the @dfn{buffer}---the text or other
34editing---is displayed. On a graphical display, the window possesses 34graphics you are editing or viewing---is displayed. On a graphical
35a @dfn{scroll bar} on one side, which can be used to scroll through 35display, the window possesses a @dfn{scroll bar} on one side, which
36the buffer. The last line of the window is a @dfn{mode line}. This 36can be used to scroll through the buffer. The last line of the window
37displays various information about what is going on in the buffer, 37is a @dfn{mode line}. This displays various information about what is
38such as whether there are unsaved changes, the editing modes that are 38going on in the buffer, such as whether there are unsaved changes, the
39in use, the current line number, and so forth. 39editing modes that are in use, the current line number, and so forth.
40 40
41 When you start Emacs, there is normally only one window in the 41 When you start Emacs, there is normally only one window in the
42frame. However, you can subdivide this window horizontally or 42frame. However, you can subdivide this window horizontally or
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index df3a42a3cd2..58c592081a0 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1508,29 +1508,27 @@ This is an example.
1508@findex doctex-mode 1508@findex doctex-mode
1509@findex bibtex-mode 1509@findex bibtex-mode
1510 1510
1511 Emacs provides special major modes for editing files written in 1511 @TeX{} is a powerful text formatter written by Donald Knuth; like
1512@TeX{} and its related formats. @TeX{} is a powerful text formatter 1512GNU Emacs, it is free software. The @TeX{} format has several
1513written by Donald Knuth; like GNU Emacs, it is free software. 1513variants, including @LaTeX{}, a simplified input format for @TeX{};
1514@LaTeX{} is a simplified input format for @TeX{}, implemented using 1514Doc@TeX{}, a special file format in which the @LaTeX{} sources are
1515@TeX{} macros. Doc@TeX{} is a special file format in which the 1515written, combining sources with documentation; and Sli@TeX{}, an
1516@LaTeX{} sources are written, combining sources with documentation. 1516obsolete special form of @LaTeX{}@footnote{
1517Sli@TeX{} is an obsolete special form of @LaTeX{}.@footnote{It has 1517It has been replaced by the @samp{slides} document class, which comes
1518been replaced by the @samp{slides} document class, which comes with 1518with @LaTeX{}.}.
1519@LaTeX{}.}
1520 1519
1521@vindex tex-default-mode 1520@vindex tex-default-mode
1522 @TeX{} mode has four variants: Plain @TeX{} mode, @LaTeX{} mode, 1521 Emacs provides a @TeX{} major mode for each of these variants: Plain
1523Doc@TeX{} mode, and Sli@TeX{} mode. These distinct major modes differ 1522@TeX{} mode, @LaTeX{} mode, Doc@TeX{} mode, and Sli@TeX{} mode. Emacs
1524only slightly, and are designed for editing the four different 1523selects the appropriate mode by looking at the contents of the buffer.
1525formats. Emacs selects the appropriate mode by looking at the 1524(This is done by the @code{tex-mode} command, which is normally called
1526contents of the buffer. (This is done by the @code{tex-mode} command, 1525automatically when you visit a @TeX{}-like file. @xref{Choosing
1527which is normally called automatically when you visit a @TeX{}-like 1526Modes}.) If the contents are insufficient to determine this, Emacs
1528file. @xref{Choosing Modes}.) If the contents are insufficient to 1527chooses the mode specified by the variable @code{tex-default-mode};
1529determine this, Emacs chooses the mode specified by the variable 1528its default value is @code{latex-mode}. If Emacs does not guess
1530@code{tex-default-mode}; its default value is @code{latex-mode}. If 1529right, you can select the correct variant of @TeX{} mode using the
1531Emacs does not guess right, you can select the correct variant of 1530command @kbd{M-x plain-tex-mode}, @kbd{M-x latex-mode}, @kbd{M-x
1532@TeX{} mode using the command @kbd{M-x plain-tex-mode}, @kbd{M-x 1531slitex-mode}, or @kbd{doctex-mode}.
1533latex-mode}, @kbd{M-x slitex-mode}, or @kbd{doctex-mode}.
1534 1532
1535 The following sections document the features of @TeX{} mode and its 1533 The following sections document the features of @TeX{} mode and its
1536variants. There are several other @TeX{}-related Emacs packages, 1534variants. There are several other @TeX{}-related Emacs packages,
@@ -1628,7 +1626,9 @@ to keep braces balanced at all times, rather than inserting them
1628singly. Use @kbd{C-c @{} (@code{tex-insert-braces}) to insert a pair of 1626singly. Use @kbd{C-c @{} (@code{tex-insert-braces}) to insert a pair of
1629braces. It leaves point between the two braces so you can insert the 1627braces. It leaves point between the two braces so you can insert the
1630text that belongs inside. Afterward, use the command @kbd{C-c @}} 1628text that belongs inside. Afterward, use the command @kbd{C-c @}}
1631(@code{up-list}) to move forward past the close brace. 1629(@code{up-list}) to move forward past the close brace. You can also
1630invoke @kbd{C-c @{} after marking some text: then the command encloses
1631the marked text in braces.
1632 1632
1633@findex tex-validate-region 1633@findex tex-validate-region
1634@findex tex-terminate-paragraph 1634@findex tex-terminate-paragraph
diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi
index b6df9fe2e39..ef28415d591 100644
--- a/doc/lispref/anti.texi
+++ b/doc/lispref/anti.texi
@@ -10,7 +10,7 @@
10@c Update the elisp.texi Antinews menu entry with the above version number. 10@c Update the elisp.texi Antinews menu entry with the above version number.
11 11
12For those users who live backwards in time, here is information about 12For those users who live backwards in time, here is information about
13downgrading to Emacs version 25.2. We hope you will enjoy the greater 13downgrading to Emacs version 25.3. We hope you will enjoy the greater
14simplicity that results from the absence of many @w{Emacs 14simplicity that results from the absence of many @w{Emacs
15@value{EMACSVER}} features. 15@value{EMACSVER}} features.
16 16
@@ -48,6 +48,15 @@ specialized library for their support was deemed an unnecessary
48maintenance burden. 48maintenance burden.
49 49
50@item 50@item
51The time conversion functions @code{current-time-string},
52@code{current-time-zone}, @code{decode-time},
53@code{format-time-string}, and @code{set-time-zone-rule} no longer
54accept integer offsets as time zone rules, to make it more of a
55challenge to convert foreign timestamps. Also,
56@code{format-time-string} no longer converts @samp{%q} to the calendar
57quarter, as that is something you can easily do for yourself.
58
59@item
51Field numbers like @samp{%2$} in format specifiers are no longer 60Field numbers like @samp{%2$} in format specifiers are no longer
52available. We decided that their use makes code reading and 61available. We decided that their use makes code reading and
53comprehension much harder, and that having them is unjustified in the 62comprehension much harder, and that having them is unjustified in the
@@ -84,12 +93,38 @@ confusing differences between the operation of these functions in
84interactive and non-interactive invocations has been removed. 93interactive and non-interactive invocations has been removed.
85 94
86@item 95@item
96Several functions that create or rename their files now treat their
97destination specially if it happens to be a directory, even when its
98name does not appear to be that of a directory. For example,
99@code{(rename-file "A" "B")} no longer renames @file{A} to @file{B} if
100@file{B} happens to be a directory. This is so that dealing with
101files becomes more of an adventure.
102
103@item
104The @code{format} function now returns new strings in more cases, to
105place more stress on the Emacs memory manager and thereby test Emacs
106better.
107
108@item
87The function @file{assoc} has been simplified by removing its third 109The function @file{assoc} has been simplified by removing its third
88optional argument. It now always uses @code{equal} for comparison. 110optional argument. It now always uses @code{equal} for comparison.
89Likewise, @code{alist-get} always uses @code{assq}, and @code{map-get} 111Likewise, @code{alist-get} always uses @code{assq}, and @code{map-get}
90and @code{map-put} always use @code{eql} for their comparisons. 112and @code{map-put} always use @code{eql} for their comparisons.
91 113
92@item 114@item
115Numeric comparisons and the functions @code{format},
116@code{make-hash-table}, @code{min}, @code{max} and @code{logb} now
117occasionally round values internally to make their results less
118predictable.
119
120@item
121The functions @code{ffloor}, @code{fceiling}l, @code{ftruncate} and
122@code{fround} now accept integer arguments. Conversely, functions
123like @code{decode-char} that accept floating-point integers now accept
124arguments that are not integers. In both cases the results are
125amusingly nonsensical sometimes.
126
127@item
93GnuTLS cryptographic functions are no longer available in Emacs. We 128GnuTLS cryptographic functions are no longer available in Emacs. We
94have decided that the needs for such functionality are deteriorating, 129have decided that the needs for such functionality are deteriorating,
95and their cumbersome interfaces make them hard to use. 130and their cumbersome interfaces make them hard to use.
@@ -104,16 +139,25 @@ broken by records.
104You can again use @code{string-as-unibyte}, 139You can again use @code{string-as-unibyte},
105@code{string-make-multibyte}, and other similar functions, without 140@code{string-make-multibyte}, and other similar functions, without
106being annoyed by messages about their deprecation. This is in 141being annoyed by messages about their deprecation. This is in
107preparation for removal of multibyte text from Emacs in the distance 142preparation for removal of multibyte text from Emacs in the distant
108past. 143past.
109 144
110@item 145@item
146The @code{string-version-lessp} function has been removed, to
147encourage programmers to use their own idiosyncratic methods to
148determine whether one version string precedes another.
149
150@item
111The function @code{read-color} no longer displays color names using 151The function @code{read-color} no longer displays color names using
112each color as the background. We have determined that this surprises 152each color as the background. We have determined that this surprises
113users and produces funny inconsistent results on color-challenged 153users and produces funny inconsistent results on color-challenged
114terminals. 154terminals.
115 155
116@item 156@item
157Support for 24-bit color on text terminals has been dropped, since
158it wasn't needed long ago.
159
160@item
117We removed the function @code{file-name-case-insensitive-p}, as 161We removed the function @code{file-name-case-insensitive-p}, as
118testing for the OS symbol should be enough for the observable past to 162testing for the OS symbol should be enough for the observable past to
119come, and learning to use yet another API is a burden. 163come, and learning to use yet another API is a burden.
@@ -136,12 +180,57 @@ The function @code{mapcan} is gone; use @code{mapcar} instead, and
136process the resulting list as you see fit. 180process the resulting list as you see fit.
137 181
138@item 182@item
183Low-level list functions like @code{length} and @code{member} can now
184loop indefinitely when given cyclic lists, causing Emacs to freeze.
185This can help these functions run a tiny bit faster in the usual case
186where the input is not cyclic.
187
188@item
189The @code{write-region} function no longer propagates its
190@var{lockname} argument to file name handlers.
191
192@item
139You can once again write a Lisp program that returns funny random 193You can once again write a Lisp program that returns funny random
140values from @code{file-attributes} by having another process alter the 194values from @code{file-attributes} by having another process alter the
141filesystem while Emacs is accessing the file. This can give rise to 195filesystem while Emacs is accessing the file. This can give rise to
142some interesting applications in the near past. 196some interesting applications in the near past.
143 197
144@item 198@item
199The functions @code{file-attributes}, @code{file-symlink-p}, and
200@code{make-symbolic-link} now quietly mutate the target of a local
201symbolic link in some cases, to make it more of a challenge to deal
202with arbitrary symlinks in Emacs code.
203
204@item
205The error @code{file-missing} has been removed; operations now lump
206such errors into the @code{file-error} category instead.
207
208@item
209The function @code{delete-directory} now signals an error if operating
210recursively and some other process deletes the directory before this
211function gets to it.
212
213@item
214The @code{dutch} input method now attempts to support Turkish too,
215albeit incorrectly. Also, it converts @samp{IJ} and @samp{ij} to
216special characters instead of leaving them alone.
217
218@item
219Non-breaking hyphens and approximations to quotes are now displayed
220just with the @code{escape-glyph} face instead of having faces of
221their own. This is simpler and gives the user amusing puzzles to
222solve when viewing text containing these characters.
223
224@item
225The user option @code{electric-quote-context-sensitive} and the
226variable @code{electric-quote-inhibit-functions}, so that electric
227quoting is simpler and more likely to do the wrong thing.
228
229@item
230The user option @code{text-quoting-style} has been removed, and is now
231just a variable.
232
233@item
145We have removed the functions @code{file-name-quote}, 234We have removed the functions @code{file-name-quote},
146@code{file-name-unquote}, and @code{file-name-quoted-p}. Writing code 235@code{file-name-unquote}, and @code{file-name-quoted-p}. Writing code
147that checks whether a file name is already quoted is easy, and doubly 236that checks whether a file name is already quoted is easy, and doubly
@@ -160,6 +249,34 @@ customizable only based on buffers; the @code{mode-line-format} and
160@code{header-line-format} window parameters have been removed. 249@code{header-line-format} window parameters have been removed.
161 250
162@item 251@item
252Emacs now normally builds a limited @command{movemail} substitute that
253retrieves POP3 email only via insecure channels, and the
254configure-time option @option{--with-mailutils} has been removed.
255This simplifies Emacs setup when security is not important.
256
257@item
258The configure-time option @option{--enable-gcc-warnings=warn-only}
259has been removed, so that build-time warnings are always fatal now.
260
261@item
262The configure-time option @option{--disable-build-details} has been
263removed. This way, Emacs builds are unique and irreproducible.
264
265@item
266The variable @code{emacs-version} now includes the build number
267instead of storing it separately in @code{emacs-build-number}.
268
269@item
270Emacs has been ported to IRIX.
271
272@item
273Several options and variables have been removed to simplify Emacs and
274potentially make it less reliable. These include the
275@option{--module-assertions} option, the
276@code{attempt-stack-overflow-recovery} variable, and the
277@code{attempt-orderly-shutdown-on-fatal-signal} variable.
278
279@item
163As part of the ongoing quest for simplicity, many other functions and 280As part of the ongoing quest for simplicity, many other functions and
164variables have been eliminated. 281variables have been eliminated.
165@end itemize 282@end itemize
diff --git a/doc/lispref/backups.texi b/doc/lispref/backups.texi
index 8ca10d7905c..8ce8f6180d1 100644
--- a/doc/lispref/backups.texi
+++ b/doc/lispref/backups.texi
@@ -775,16 +775,80 @@ after inserting the modified contents. A custom @code{revert-buffer-function}
775may or may not run this hook. 775may or may not run this hook.
776@end defvar 776@end defvar
777 777
778@c FIXME? Move this section from arevert-xtra to here? 778Emacs can revert buffers automatically. It does that by default for
779buffers visiting files. The following describes how to add support
780for auto-reverting new types of buffers.
781
782First, such buffers must have a suitable @code{revert-buffer-function}
783and @code{buffer-stale-function} defined.
784
779@defvar buffer-stale-function 785@defvar buffer-stale-function
780The value of this variable specifies a function to call to check 786The value of this variable specifies a function to call to check
781whether a buffer needs reverting. The default value only handles 787whether a buffer needs reverting. The default value only handles
782buffers that are visiting files, by checking their modification time. 788buffers that are visiting files, by checking their modification time.
783Buffers that are not visiting files require a custom function 789Buffers that are not visiting files require a custom function of one
784@iftex 790optional argument @var{noconfirm}. The function should return
785(@pxref{Supporting additional buffers,,, emacs-xtra, Specialized Emacs Features}). 791non-@code{nil} if the buffer should be reverted. The buffer is
786@end iftex 792current when this function is called.
787@ifnottex 793
788(@pxref{Supporting additional buffers,,, emacs}). 794While this function is mainly intended for use in auto-reverting, it
789@end ifnottex 795could be used for other purposes as well. For instance, if
796auto-reverting is not enabled, it could be used to warn the user that
797the buffer needs reverting. The idea behind the @var{noconfirm}
798argument is that it should be @code{t} if the buffer is going to be
799reverted without asking the user and @code{nil} if the function is
800just going to be used to warn the user that the buffer is out of date.
801In particular, for use in auto-reverting, @var{noconfirm} is @code{t}.
802If the function is only going to be used for auto-reverting, you can
803ignore the @var{noconfirm} argument.
804
805If you just want to automatically auto-revert every
806@code{auto-revert-interval} seconds (like the Buffer Menu), use:
807
808@example
809(setq-local buffer-stale-function
810 #'(lambda (&optional noconfirm) 'fast))
811@end example
812
813@noindent
814in the buffer's mode function.
815
816The special return value @samp{fast} tells the caller that the need
817for reverting was not checked, but that reverting the buffer is fast.
818It also tells Auto Revert not to print any revert messages, even if
819@code{auto-revert-verbose} is non-@code{nil}. This is important, as
820getting revert messages every @code{auto-revert-interval} seconds can
821be very annoying. The information provided by this return value could
822also be useful if the function is consulted for purposes other than
823auto-reverting.
790@end defvar 824@end defvar
825
826Once the buffer has a suitable @code{revert-buffer-function} and
827@code{buffer-stale-function}, several problems usually remain.
828
829The buffer will only auto-revert if it is marked unmodified. Hence,
830you will have to make sure that various functions mark the buffer
831modified if and only if either the buffer contains information that
832might be lost by reverting, or there is reason to believe that the user
833might be inconvenienced by auto-reverting, because he is actively
834working on the buffer. The user can always override this by manually
835adjusting the modified status of the buffer. To support this, calling
836the @code{revert-buffer-function} on a buffer that is marked
837unmodified should always keep the buffer marked unmodified.
838
839It is important to assure that point does not continuously jump around
840as a consequence of auto-reverting. Of course, moving point might be
841inevitable if the buffer radically changes.
842
843You should make sure that the @code{revert-buffer-function} does not
844print messages that unnecessarily duplicate Auto Revert's own messages,
845displayed if @code{auto-revert-verbose} is @code{t}, and effectively
846override a @code{nil} value for @code{auto-revert-verbose}. Hence,
847adapting a mode for auto-reverting often involves getting rid of such
848messages. This is especially important for buffers that automatically
849revert every @code{auto-revert-interval} seconds.
850
851If the new auto-reverting is part of Emacs, you should mention it
852in the documentation string of @code{global-auto-revert-non-file-buffers}.
853
854Similarly, you should document the additions in the Emacs manual.
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index fbf943a08c7..7bf03b8558e 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -581,7 +581,7 @@ truncated to fit it.
581 The variable @code{max-mini-window-height}, which specifies the 581 The variable @code{max-mini-window-height}, which specifies the
582maximum height for resizing minibuffer windows, also applies to the 582maximum height for resizing minibuffer windows, also applies to the
583echo area (which is really a special use of the minibuffer window; 583echo area (which is really a special use of the minibuffer window;
584@pxref{Minibuffer Misc}). 584@pxref{Minibuffer Windows}).
585 585
586@node Warnings 586@node Warnings
587@section Reporting Warnings 587@section Reporting Warnings
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 332e72f6402..c7f8ba96e2f 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -2323,6 +2323,12 @@ frame's height; an integer specifies the maximum number of lines. The
2323default value is 0.25. 2323default value is 0.25.
2324@end defopt 2324@end defopt
2325 2325
2326Note that the values of the above two variables take effect at display
2327time, so let-binding them around code which produces echo-area messages
2328will not work. If you want to prevent resizing of minibuffer windows
2329when displaying long messages, bind the @code{message-truncate-lines}
2330variable instead (@pxref{Echo Area Customization}).
2331
2326 2332
2327@node Minibuffer Contents 2333@node Minibuffer Contents
2328@section Minibuffer Contents 2334@section Minibuffer Contents
@@ -2450,12 +2456,6 @@ minibuffer window was selected. If the selected window is not a
2450minibuffer window, it returns @code{nil}. 2456minibuffer window, it returns @code{nil}.
2451@end defun 2457@end defun
2452 2458
2453@defopt max-mini-window-height
2454This variable specifies the maximum height for resizing minibuffer
2455windows. If a float, it specifies a fraction of the height of the
2456frame. If an integer, it specifies a number of lines.
2457@end defopt
2458
2459@vindex minibuffer-message-timeout 2459@vindex minibuffer-message-timeout
2460@defun minibuffer-message string &rest args 2460@defun minibuffer-message string &rest args
2461This function displays @var{string} temporarily at the end of the 2461This function displays @var{string} temporarily at the end of the
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 9352a929a7a..42be60449de 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -3042,7 +3042,9 @@ with @samp{-}, or might contain shell metacharacters like @samp{;}.
3042Although functions like @code{shell-quote-argument} can help avoid 3042Although functions like @code{shell-quote-argument} can help avoid
3043this sort of problem, they are not panaceas; for example, on a POSIX 3043this sort of problem, they are not panaceas; for example, on a POSIX
3044platform @code{shell-quote-argument} quotes shell metacharacters but 3044platform @code{shell-quote-argument} quotes shell metacharacters but
3045not leading @samp{-}. @xref{Shell Arguments}. Typically it is safer 3045not leading @samp{-}. On MS-Windows, quoting for @samp{%} assumes
3046none of the environment variables have @samp{^} in their name.
3047@xref{Shell Arguments}. Typically it is safer
3046to use @code{call-process} than a subshell. @xref{Synchronous 3048to use @code{call-process} than a subshell. @xref{Synchronous
3047Processes}. And it is safer yet to use builtin Emacs functions; for 3049Processes}. And it is safer yet to use builtin Emacs functions; for
3048example, use @code{(rename-file "@var{a}" "@var{b}" t)} instead of 3050example, use @code{(rename-file "@var{a}" "@var{b}" t)} instead of
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 0a3a4617a2e..af177e053cc 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -728,8 +728,11 @@ Initialize the process query flag to @var{query-flag}.
728@xref{Query Before Exit}. 728@xref{Query Before Exit}.
729 729
730@item :stop @var{stopped} 730@item :stop @var{stopped}
731If @var{stopped} is non-@code{nil}, start the process in the 731If @var{stopped} is non-@code{nil}, start the process in the stopped
732stopped state. 732state. In the stopped state, a pipe process does not accept incoming
733data, but you can send outgoing data. The stopped state is set by
734@code{stop-process} and cleared by @code{continue-process}
735(@pxref{Signals to Processes}).
733 736
734@item :filter @var{filter} 737@item :filter @var{filter}
735Initialize the process filter to @var{filter}. If not specified, a 738Initialize the process filter to @var{filter}. If not specified, a
diff --git a/lisp/leim/quail/latin-alt.el b/lisp/leim/quail/latin-alt.el
index a7d39ec839e..5044fb2d29b 100644
--- a/lisp/leim/quail/latin-alt.el
+++ b/lisp/leim/quail/latin-alt.el
@@ -1156,7 +1156,7 @@ Caters for French and Dutch.
1156 1156
1157 | | examples 1157 | | examples
1158 ------------+---------+---------- 1158 ------------+---------+----------
1159 others | | fl. -> ƒ eur. -> € ij -> ij IJ -> IJ 1159 others | | fl. -> ƒ eur. -> €
1160 ------------+---------+---------- 1160 ------------+---------+----------
1161 | postfix | 1161 | postfix |
1162 ------------+---------+---------- 1162 ------------+---------+----------
diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el
index 5afd5c5804b..ea17fb518e2 100644
--- a/lisp/net/gnutls.el
+++ b/lisp/net/gnutls.el
@@ -124,7 +124,7 @@ Args are NAME BUFFER HOST SERVICE.
124NAME is name for process. It is modified if necessary to make it unique. 124NAME is name for process. It is modified if necessary to make it unique.
125BUFFER is the buffer (or `buffer-name') to associate with the process. 125BUFFER is the buffer (or `buffer-name') to associate with the process.
126 Process output goes at end of that buffer, unless you specify 126 Process output goes at end of that buffer, unless you specify
127 an output stream or filter function to handle the output. 127 a filter function to handle the output.
128 BUFFER may be also nil, meaning that this process is not associated 128 BUFFER may be also nil, meaning that this process is not associated
129 with any buffer 129 with any buffer
130Third arg is name of the host to connect to, or its IP address. 130Third arg is name of the host to connect to, or its IP address.
diff --git a/lisp/net/shr-color.el b/lisp/net/shr-color.el
index 31f3d46ed66..6303141c898 100644
--- a/lisp/net/shr-color.el
+++ b/lisp/net/shr-color.el
@@ -137,7 +137,7 @@ absolute value without any unit."
137 ("MediumAquaMarine" . "#66CDAA") 137 ("MediumAquaMarine" . "#66CDAA")
138 ("MediumBlue" . "#0000CD") 138 ("MediumBlue" . "#0000CD")
139 ("MediumOrchid" . "#BA55D3") 139 ("MediumOrchid" . "#BA55D3")
140 ("MediumPurple" . "#9370D8") 140 ("MediumPurple" . "#9370DB")
141 ("MediumSeaGreen" . "#3CB371") 141 ("MediumSeaGreen" . "#3CB371")
142 ("MediumSlateBlue" . "#7B68EE") 142 ("MediumSlateBlue" . "#7B68EE")
143 ("MediumSpringGreen" . "#00FA9A") 143 ("MediumSpringGreen" . "#00FA9A")
@@ -158,7 +158,7 @@ absolute value without any unit."
158 ("PaleGoldenRod" . "#EEE8AA") 158 ("PaleGoldenRod" . "#EEE8AA")
159 ("PaleGreen" . "#98FB98") 159 ("PaleGreen" . "#98FB98")
160 ("PaleTurquoise" . "#AFEEEE") 160 ("PaleTurquoise" . "#AFEEEE")
161 ("PaleVioletRed" . "#D87093") 161 ("PaleVioletRed" . "#DB7093")
162 ("PapayaWhip" . "#FFEFD5") 162 ("PapayaWhip" . "#FFEFD5")
163 ("PeachPuff" . "#FFDAB9") 163 ("PeachPuff" . "#FFDAB9")
164 ("Peru" . "#CD853F") 164 ("Peru" . "#CD853F")
@@ -166,6 +166,7 @@ absolute value without any unit."
166 ("Plum" . "#DDA0DD") 166 ("Plum" . "#DDA0DD")
167 ("PowderBlue" . "#B0E0E6") 167 ("PowderBlue" . "#B0E0E6")
168 ("Purple" . "#800080") 168 ("Purple" . "#800080")
169 ("RebeccaPurple" . "#663399")
169 ("Red" . "#FF0000") 170 ("Red" . "#FF0000")
170 ("RosyBrown" . "#BC8F8F") 171 ("RosyBrown" . "#BC8F8F")
171 ("RoyalBlue" . "#4169E1") 172 ("RoyalBlue" . "#4169E1")
diff --git a/lisp/net/starttls.el b/lisp/net/starttls.el
index 2069843e3bb..e2dff2d53d6 100644
--- a/lisp/net/starttls.el
+++ b/lisp/net/starttls.el
@@ -270,7 +270,7 @@ Args are NAME BUFFER HOST PORT.
270NAME is name for process. It is modified if necessary to make it unique. 270NAME is name for process. It is modified if necessary to make it unique.
271BUFFER is the buffer (or `buffer-name') to associate with the process. 271BUFFER is the buffer (or `buffer-name') to associate with the process.
272 Process output goes at end of that buffer, unless you specify 272 Process output goes at end of that buffer, unless you specify
273 an output stream or filter function to handle the output. 273 a filter function to handle the output.
274 BUFFER may be also nil, meaning that this process is not associated 274 BUFFER may be also nil, meaning that this process is not associated
275 with any buffer 275 with any buffer
276Third arg is name of the host to connect to, or its IP address. 276Third arg is name of the host to connect to, or its IP address.
diff --git a/lisp/net/tls.el b/lisp/net/tls.el
index ae49edcb1d5..b02a2654d41 100644
--- a/lisp/net/tls.el
+++ b/lisp/net/tls.el
@@ -204,7 +204,7 @@ Args are NAME BUFFER HOST PORT.
204NAME is name for process. It is modified if necessary to make it unique. 204NAME is name for process. It is modified if necessary to make it unique.
205BUFFER is the buffer (or buffer name) to associate with the process. 205BUFFER is the buffer (or buffer name) to associate with the process.
206 Process output goes at end of that buffer, unless you specify 206 Process output goes at end of that buffer, unless you specify
207 an output stream or filter function to handle the output. 207 a filter function to handle the output.
208 BUFFER may be also nil, meaning that this process is not associated 208 BUFFER may be also nil, meaning that this process is not associated
209 with any buffer 209 with any buffer
210Third arg is name of the host to connect to, or its IP address. 210Third arg is name of the host to connect to, or its IP address.
diff --git a/lisp/subr.el b/lisp/subr.el
index 00bab70e8a3..056392a9266 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2123,10 +2123,10 @@ and the file name is displayed in the echo area."
2123NAME is name for process. It is modified if necessary to make it unique. 2123NAME is name for process. It is modified if necessary to make it unique.
2124BUFFER is the buffer (or buffer name) to associate with the process. 2124BUFFER is the buffer (or buffer name) to associate with the process.
2125 2125
2126Process output (both standard output and standard error streams) goes 2126Process output (both standard output and standard error streams)
2127at end of BUFFER, unless you specify an output stream or filter 2127goes at end of BUFFER, unless you specify a filter function to
2128function to handle the output. BUFFER may also be nil, meaning that 2128handle the output. BUFFER may also be nil, meaning that this
2129this process is not associated with any buffer. 2129process is not associated with any buffer.
2130 2130
2131PROGRAM is the program file name. It is searched for in `exec-path' 2131PROGRAM is the program file name. It is searched for in `exec-path'
2132\(which see). If nil, just associate a pty with the buffer. Remaining 2132\(which see). If nil, just associate a pty with the buffer. Remaining
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el
index aa3113bd340..f8da1b21965 100644
--- a/lisp/term/ns-win.el
+++ b/lisp/term/ns-win.el
@@ -842,7 +842,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
842 (format "Creation of the standard fontset failed: %s" err) 842 (format "Creation of the standard fontset failed: %s" err)
843 :error))) 843 :error)))
844 844
845 (x-open-connection (system-name) x-command-line-resources t) 845 (x-open-connection (or (system-name) "") x-command-line-resources t)
846 846
847 ;; Add GNUstep menu items Services, Hide and Quit. Rename Help to Info 847 ;; Add GNUstep menu items Services, Hide and Quit. Rename Help to Info
848 ;; and put it first (i.e. omit from menu-bar-final-items. 848 ;; and put it first (i.e. omit from menu-bar-final-items.
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 55c21f8acb0..727bc18ebb8 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -499,6 +499,7 @@ further value candidates, since that list would be infinite.")
499 ("red" . "#ff0000") 499 ("red" . "#ff0000")
500 ("purple" . "#800080") 500 ("purple" . "#800080")
501 ("fuchsia" . "#ff00ff") 501 ("fuchsia" . "#ff00ff")
502 ("magenta" . "#ff00ff")
502 ("green" . "#008000") 503 ("green" . "#008000")
503 ("lime" . "#00ff00") 504 ("lime" . "#00ff00")
504 ("olive" . "#808000") 505 ("olive" . "#808000")
@@ -507,6 +508,7 @@ further value candidates, since that list would be infinite.")
507 ("blue" . "#0000ff") 508 ("blue" . "#0000ff")
508 ("teal" . "#008080") 509 ("teal" . "#008080")
509 ("aqua" . "#00ffff") 510 ("aqua" . "#00ffff")
511 ("cyan" . "#00ffff")
510 ("orange" . "#ffa500") 512 ("orange" . "#ffa500")
511 ("aliceblue" . "#f0f8ff") 513 ("aliceblue" . "#f0f8ff")
512 ("antiquewhite" . "#faebd7") 514 ("antiquewhite" . "#faebd7")
diff --git a/src/doc.c b/src/doc.c
index 2b36c786a66..3424bffdf9a 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -1023,8 +1023,8 @@ syms_of_doc (void)
1023 doc: /* Style to use for single quotes in help and messages. 1023 doc: /* Style to use for single quotes in help and messages.
1024Its value should be a symbol. It works by substituting certain single 1024Its value should be a symbol. It works by substituting certain single
1025quotes for grave accent and apostrophe. This is done in help output 1025quotes for grave accent and apostrophe. This is done in help output
1026and in functions like `message' and `format-message'. It is not done 1026\(but not for display of Info manuals) and in functions like `message'
1027in `format'. 1027and `format-message'. It is not done in `format'.
1028 1028
1029`curve' means quote with curved single quotes ‘like this’. 1029`curve' means quote with curved single quotes ‘like this’.
1030`straight' means quote with straight apostrophes \\='like this\\='. 1030`straight' means quote with straight apostrophes \\='like this\\='.
diff --git a/src/process.c b/src/process.c
index ff3edbb11a0..2cc2c86df39 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1615,9 +1615,8 @@ to make it unique.
1615 1615
1616:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate 1616:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate
1617with the process. Process output goes at end of that buffer, unless 1617with the process. Process output goes at end of that buffer, unless
1618you specify an output stream or filter function to handle the output. 1618you specify a filter function to handle the output. BUFFER may be
1619BUFFER may be also nil, meaning that this process is not associated 1619also nil, meaning that this process is not associated with any buffer.
1620with any buffer.
1621 1620
1622:command COMMAND -- COMMAND is a list starting with the program file 1621:command COMMAND -- COMMAND is a list starting with the program file
1623name, followed by strings to give to the program as arguments. 1622name, followed by strings to give to the program as arguments.
@@ -2307,8 +2306,8 @@ arguments are defined:
2307 2306
2308:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate 2307:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate
2309with the process. Process output goes at the end of that buffer, 2308with the process. Process output goes at the end of that buffer,
2310unless you specify an output stream or filter function to handle the 2309unless you specify a filter function to handle the output. If BUFFER
2311output. If BUFFER is not given, the value of NAME is used. 2310is not given, the value of NAME is used.
2312 2311
2313:coding CODING -- If CODING is a symbol, it specifies the coding 2312:coding CODING -- If CODING is a symbol, it specifies the coding
2314system used for both reading and writing for this process. If CODING 2313system used for both reading and writing for this process. If CODING
@@ -3022,8 +3021,8 @@ the value of PORT is used.
3022 3021
3023:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate 3022:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate
3024with the process. Process output goes at the end of that buffer, 3023with the process. Process output goes at the end of that buffer,
3025unless you specify an output stream or filter function to handle the 3024unless you specify a filter function to handle the output. If BUFFER
3026output. If BUFFER is not given, the value of NAME is used. 3025is not given, the value of NAME is used.
3027 3026
3028:coding CODING -- If CODING is a symbol, it specifies the coding 3027:coding CODING -- If CODING is a symbol, it specifies the coding
3029system used for both reading and writing for this process. If CODING 3028system used for both reading and writing for this process. If CODING
@@ -3685,9 +3684,8 @@ to make it unique.
3685 3684
3686:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate 3685:buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate
3687with the process. Process output goes at end of that buffer, unless 3686with the process. Process output goes at end of that buffer, unless
3688you specify an output stream or filter function to handle the output. 3687you specify a filter function to handle the output. BUFFER may be
3689BUFFER may be also nil, meaning that this process is not associated 3688also nil, meaning that this process is not associated with any buffer.
3690with any buffer.
3691 3689
3692:host HOST -- HOST is name of the host to connect to, or its IP 3690:host HOST -- HOST is name of the host to connect to, or its IP
3693address. The symbol `local' specifies the local host. If specified 3691address. The symbol `local' specifies the local host. If specified
diff --git a/src/w32term.c b/src/w32term.c
index 137c798c463..c1d039c1375 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -6922,10 +6922,15 @@ w32_initialize_display_info (Lisp_Object display_name)
6922 memset (dpyinfo, 0, sizeof (*dpyinfo)); 6922 memset (dpyinfo, 0, sizeof (*dpyinfo));
6923 6923
6924 dpyinfo->name_list_element = Fcons (display_name, Qnil); 6924 dpyinfo->name_list_element = Fcons (display_name, Qnil);
6925 dpyinfo->w32_id_name = xmalloc (SCHARS (Vinvocation_name) 6925 if (STRINGP (Vsystem_name))
6926 + SCHARS (Vsystem_name) + 2); 6926 {
6927 sprintf (dpyinfo->w32_id_name, "%s@%s", 6927 dpyinfo->w32_id_name = xmalloc (SCHARS (Vinvocation_name)
6928 SDATA (Vinvocation_name), SDATA (Vsystem_name)); 6928 + SCHARS (Vsystem_name) + 2);
6929 sprintf (dpyinfo->w32_id_name, "%s@%s",
6930 SDATA (Vinvocation_name), SDATA (Vsystem_name));
6931 }
6932 else
6933 dpyinfo->w32_id_name = xlispstrdup (Vinvocation_name);
6929 6934
6930 /* Default Console mode values - overridden when running in GUI mode 6935 /* Default Console mode values - overridden when running in GUI mode
6931 with values obtained from system metrics. */ 6936 with values obtained from system metrics. */
diff --git a/src/xrdb.c b/src/xrdb.c
index b55c0f9011e..836c147947a 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -376,15 +376,18 @@ get_environ_db (void)
376 376
377 if (!p) 377 if (!p)
378 { 378 {
379 /* Use ~/.Xdefaults-HOSTNAME. */
380 char *home = gethomedir ();
381 ptrdiff_t homelen = strlen (home);
382 Lisp_Object system_name = Fsystem_name (); 379 Lisp_Object system_name = Fsystem_name ();
383 ptrdiff_t filenamesize = (homelen + sizeof xdefaults 380 if (STRINGP (system_name))
384 + 1 + SBYTES (system_name)); 381 {
385 p = filename = xrealloc (home, filenamesize); 382 /* Use ~/.Xdefaults-HOSTNAME. */
386 lispstpcpy (stpcpy (stpcpy (filename + homelen, xdefaults), "-"), 383 char *home = gethomedir ();
387 system_name); 384 ptrdiff_t homelen = strlen (home);
385 ptrdiff_t filenamesize = (homelen + sizeof xdefaults
386 + 1 + SBYTES (system_name));
387 p = filename = xrealloc (home, filenamesize);
388 lispstpcpy (stpcpy (stpcpy (filename + homelen, xdefaults), "-"),
389 system_name);
390 }
388 } 391 }
389 392
390 db = XrmGetFileDatabase (p); 393 db = XrmGetFileDatabase (p);
diff --git a/src/xterm.c b/src/xterm.c
index 7603e4f3991..deae65d1d8a 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -12141,6 +12141,8 @@ same_x_server (const char *name1, const char *name2)
12141{ 12141{
12142 bool seen_colon = false; 12142 bool seen_colon = false;
12143 Lisp_Object sysname = Fsystem_name (); 12143 Lisp_Object sysname = Fsystem_name ();
12144 if (! STRINGP (sysname))
12145 sysname = empty_unibyte_string;
12144 const char *system_name = SSDATA (sysname); 12146 const char *system_name = SSDATA (sysname);
12145 ptrdiff_t system_name_length = SBYTES (sysname); 12147 ptrdiff_t system_name_length = SBYTES (sysname);
12146 ptrdiff_t length_until_period = 0; 12148 ptrdiff_t length_until_period = 0;
@@ -12563,15 +12565,19 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
12563#endif 12565#endif
12564 12566
12565 Lisp_Object system_name = Fsystem_name (); 12567 Lisp_Object system_name = Fsystem_name ();
12566 ptrdiff_t nbytes; 12568
12567 if (INT_ADD_WRAPV (SBYTES (Vinvocation_name), SBYTES (system_name) + 2, 12569 ptrdiff_t nbytes = SBYTES (Vinvocation_name) + 1;
12568 &nbytes)) 12570 if (STRINGP (system_name)
12571 && INT_ADD_WRAPV (nbytes, SBYTES (system_name) + 1, &nbytes))
12569 memory_full (SIZE_MAX); 12572 memory_full (SIZE_MAX);
12570 dpyinfo->x_id = ++x_display_id; 12573 dpyinfo->x_id = ++x_display_id;
12571 dpyinfo->x_id_name = xmalloc (nbytes); 12574 dpyinfo->x_id_name = xmalloc (nbytes);
12572 char *nametail = lispstpcpy (dpyinfo->x_id_name, Vinvocation_name); 12575 char *nametail = lispstpcpy (dpyinfo->x_id_name, Vinvocation_name);
12573 *nametail++ = '@'; 12576 if (STRINGP (system_name))
12574 lispstpcpy (nametail, system_name); 12577 {
12578 *nametail++ = '@';
12579 lispstpcpy (nametail, system_name);
12580 }
12575 12581
12576 /* Figure out which modifier bits mean what. */ 12582 /* Figure out which modifier bits mean what. */
12577 x_find_modifier_meanings (dpyinfo); 12583 x_find_modifier_meanings (dpyinfo);
diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el
index d0b3127f71b..52b61d9fb97 100644
--- a/test/lisp/subr-tests.el
+++ b/test/lisp/subr-tests.el
@@ -325,5 +325,22 @@ cf. Bug#25477."
325 (should (equal (butlast (new-list-fn)) 325 (should (equal (butlast (new-list-fn))
326 (assoc-delete-all "foo" (new-list-fn)))))) 326 (assoc-delete-all "foo" (new-list-fn))))))
327 327
328(ert-deftest shell-quote-argument-%-on-w32 ()
329 "Quoting of `%' in w32 shells isn't perfect.
330See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19350."
331 :expected-result :failed
332 (skip-unless (and (fboundp 'w32-shell-dos-semantics)
333 (w32-shell-dos-semantics)))
334 (let ((process-environment (append '("ca^=with-caret"
335 "ca=without-caret")
336 process-environment)))
337 ;; It actually results in
338 ;; without-caret with-caret
339 (should (equal (shell-command-to-string
340 (format "echo %s %s"
341 "%ca%"
342 (shell-quote-argument "%ca%")))
343 "without-caret %ca%"))))
344
328(provide 'subr-tests) 345(provide 'subr-tests)
329;;; subr-tests.el ends here 346;;; subr-tests.el ends here
diff --git a/test/lisp/textmodes/css-mode-tests.el b/test/lisp/textmodes/css-mode-tests.el
index a8ce9944169..b0283bfa455 100644
--- a/test/lisp/textmodes/css-mode-tests.el
+++ b/test/lisp/textmodes/css-mode-tests.el
@@ -58,7 +58,7 @@
58 58
59 ;; Check that the `color' property doesn't cause infinite recursion 59 ;; Check that the `color' property doesn't cause infinite recursion
60 ;; because it refers to the value class of the same name. 60 ;; because it refers to the value class of the same name.
61 (should (= (length (css--property-values "color")) 152))) 61 (should (= (length (css--property-values "color")) 154)))
62 62
63(ert-deftest css-test-property-value-cache () 63(ert-deftest css-test-property-value-cache ()
64 "Test that `css--property-value-cache' is in use." 64 "Test that `css--property-value-cache' is in use."