aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorStephen Leake2019-09-10 03:37:51 -0700
committerStephen Leake2019-09-10 03:37:51 -0700
commit3d442312889ef2d14c07282d0aff6199d00cc165 (patch)
tree74034ca2dded6ed233d0701b4cb5c10a0b5e9034 /doc
parentac1a2e260e8ece34500b5879f766b4e54ee57b94 (diff)
parent74e9799bd89484b8d15bdd6597c68fc00d07e7f7 (diff)
downloademacs-3d442312889ef2d14c07282d0aff6199d00cc165.tar.gz
emacs-3d442312889ef2d14c07282d0aff6199d00cc165.zip
Merge commit '74e9799bd89484b8d15bdd6597c68fc00d07e7f7'
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/building.texi11
-rw-r--r--doc/emacs/custom.texi78
-rw-r--r--doc/emacs/maintaining.texi10
-rw-r--r--doc/emacs/misc.texi12
-rw-r--r--doc/lispref/customize.texi2
-rw-r--r--doc/lispref/errors.texi6
-rw-r--r--doc/lispref/files.texi6
-rw-r--r--doc/lispref/hooks.texi3
-rw-r--r--doc/lispref/modes.texi8
-rw-r--r--doc/lispref/os.texi41
-rw-r--r--doc/lispref/processes.texi15
-rw-r--r--doc/lispref/windows.texi8
-rw-r--r--doc/misc/efaq.texi22
-rw-r--r--doc/misc/emacs-mime.texi2
-rw-r--r--doc/misc/ido.texi56
-rw-r--r--doc/misc/info.texi11
-rw-r--r--doc/misc/texinfo.tex220
-rw-r--r--doc/misc/tramp.texi110
-rw-r--r--doc/misc/url.texi3
19 files changed, 350 insertions, 274 deletions
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 990b82d10ed..f7809d4aa99 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -266,11 +266,12 @@ fringe (@pxref{Fringes}), the locus-visiting commands put an arrow in
266the fringe, pointing to the current error message. If the window has 266the fringe, pointing to the current error message. If the window has
267no left fringe, such as on a text terminal, these commands scroll the 267no left fringe, such as on a text terminal, these commands scroll the
268window so that the current message is at the top of the window. If 268window so that the current message is at the top of the window. If
269you change the variable @code{compilation-context-lines} to an integer 269you change the variable @code{compilation-context-lines} to @code{t},
270value @var{n}, these commands scroll the window so that the current 270a visible arrow is inserted before column zero instead. If you change
271error message is @var{n} lines from the top, whether or not there is a 271the variable to an integer value @var{n}, these commands scroll the
272fringe; the default value, @code{nil}, gives the behavior described 272window so that the current error message is @var{n} lines from the
273above. 273top, whether or not there is a fringe; the default value, @code{nil},
274gives the behavior described above.
274 275
275@vindex compilation-error-regexp-alist 276@vindex compilation-error-regexp-alist
276@vindex grep-regexp-alist 277@vindex grep-regexp-alist
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 8fbc6c1ca08..0c2509e1cd6 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -2220,28 +2220,18 @@ as a function from Lisp programs.
2220@cindex init file 2220@cindex init file
2221@cindex .emacs file 2221@cindex .emacs file
2222@cindex ~/.emacs file 2222@cindex ~/.emacs file
2223@cindex ~/.config/emacs file 2223@cindex ~/.config/emacs/init.el file
2224@cindex Emacs initialization file 2224@cindex Emacs initialization file
2225@cindex startup (init file) 2225@cindex startup (init file)
2226@cindex XDG_CONFIG_HOME
2226 2227
2227 When Emacs is started, it normally tries to load a Lisp program from 2228 When Emacs is started, it normally tries to load a Lisp program from
2228an @dfn{initialization file}, or @dfn{init file} for short. This 2229an @dfn{initialization file}, or @dfn{init file} for short. This
2229file, if it exists, specifies how to initialize Emacs for you. Emacs 2230file, if it exists, specifies how to initialize Emacs for you.
2230looks for your init file using the filenames 2231If the file @file{~/.config/emacs/init.el} exists, it is used as the
2231@file{~/.config/emacs},. @file{~/.emacs}, @file{~/.config/emacs.el}, 2232init file; otherwise Emacs may look at @file{~/.emacs.el},
2232@file{~/.emacs.el}, @file{~/.config/emacs.d/init.el} or 2233@file{~/.emacs}, @file{~/.emacs.d/init.el}, or other locations.
2233@file{~/.emacs.d/init.el}; you can choose to use any one of these 2234@xref{Find Init}.
2234names (@pxref{Find Init}). Here, @file{~/} stands for your home
2235directory.
2236
2237 While the @file{~/.emacs} and @file{~/.emacs.d/init.el} locations
2238are backward-compatible to older Emacs versions, and the rest of this
2239chapter will use them to name your initialization file, it is better practice
2240to group all of your dotfiles under @file{.config} so that if you have
2241to troubleshoot a problem that might be due to a bad init file, or
2242archive a collection of them, it can be done by renaming or
2243copying that directory. Note that the @file{.config} versions
2244don't have a leading dot on the basename part of the file.
2245 2235
2246 You can use the command line switch @samp{-q} to prevent loading 2236 You can use the command line switch @samp{-q} to prevent loading
2247your init file, and @samp{-u} (or @samp{--user}) to specify a 2237your init file, and @samp{-u} (or @samp{--user}) to specify a
@@ -2313,17 +2303,17 @@ function @code{setq} to set the variable @code{fill-column}
2313 2303
2314 You can set any Lisp variable with @code{setq}, but with certain 2304 You can set any Lisp variable with @code{setq}, but with certain
2315variables @code{setq} won't do what you probably want in the 2305variables @code{setq} won't do what you probably want in the
2316@file{.emacs} file. Some variables automatically become buffer-local 2306init file. Some variables automatically become buffer-local
2317when set with @code{setq}; what you want in @file{.emacs} is to set 2307when set with @code{setq}; what you want in the init file is to set
2318the default value, using @code{setq-default}. Some customizable minor 2308the default value, using @code{setq-default}. Some customizable minor
2319mode variables do special things to enable the mode when you set them 2309mode variables do special things to enable the mode when you set them
2320with Customize, but ordinary @code{setq} won't do that; to enable the 2310with Customize, but ordinary @code{setq} won't do that; to enable the
2321mode in your @file{.emacs} file, call the minor mode command. The 2311mode in your init file, call the minor mode command. The
2322following section has examples of both of these methods. 2312following section has examples of both of these methods.
2323 2313
2324 The second argument to @code{setq} is an expression for the new 2314 The second argument to @code{setq} is an expression for the new
2325value of the variable. This can be a constant, a variable, or a 2315value of the variable. This can be a constant, a variable, or a
2326function call expression. In @file{.emacs}, constants are used most 2316function call expression. In the init file, constants are used most
2327of the time. They can be: 2317of the time. They can be:
2328 2318
2329@table @asis 2319@table @asis
@@ -2646,25 +2636,49 @@ library. @xref{Hooks}.
2646@node Find Init 2636@node Find Init
2647@subsection How Emacs Finds Your Init File 2637@subsection How Emacs Finds Your Init File
2648 2638
2649 Normally Emacs uses your home directory to find 2639 Emacs normally finds your init file in a location under your home
2650@file{~/.config/emacs} or @file{~/.emacs}; that's what @samp{~} means 2640directory. @xref{Init File}. By default this location is
2651in a file name. @xref{General Variables, HOME}. If none of 2641@file{~/.config/emacs/init.el} where @file{~/} stands for your home directory.
2652@file{~/.config/emacs}, @file{~/.emacs}, @file{~/.config/emacs.el} nor 2642This default can be overridden as described below.
2653@file{~/.emacs.el} is found, Emacs looks for 2643
2654@file{~/.config/emacs.d/init.el} or @file{~/.emacs.d/init.el} (these, 2644 If @env{XDG_CONFIG_HOME} is set in your environment, its
2655like @file{~/.emacs.el}, can be byte-compiled). 2645value replaces @file{~/.config} in the name of the default
2646init file.
2647
2648 If the default init file's parent directory does not exist but the
2649directory @file{~/.emacs.d} does exist, Emacs looks for your init file
2650using the filenames @file{~/.emacs.el}, @file{~/.emacs}, or
2651@file{~/.emacs.d/init.el}; you can choose to use any one of these
2652names. (Note that only the locations directly in your home directory
2653have a leading dot in the location's basename.) Although this is
2654backward-compatible with older Emacs versions, modern POSIX platforms
2655prefer putting your initialization files under @file{~/.config} so
2656that troubleshooting a problem that might be due to a bad init file,
2657or archiving a collection of init files, can be done by renaming that
2658directory. To help older Emacs versions find configuration files in
2659their current default locations, you can execute the following
2660Emacs Lisp code:
2661
2662@example
2663(make-symbolic-link ".config/emacs" "~/.emacs.d")
2664@end example
2656 2665
2657 However, if you run Emacs from a shell started by @code{su}, Emacs 2666 However, if you run Emacs from a shell started by @code{su} and
2667@env{XDG_CONFIG_HOME} is not set in your environment, Emacs
2658tries to find your own initialization files, not that of the user you are 2668tries to find your own initialization files, not that of the user you are
2659currently pretending to be. The idea is that you should get your own 2669currently pretending to be. The idea is that you should get your own
2660editor customizations even if you are running as the super user. 2670editor customizations even if you are running as the super user.
2661 2671
2662 More precisely, Emacs first determines which user's init file to use. 2672 More precisely, Emacs first determines which user's init file to use.
2663It gets your user name from the environment variables @env{LOGNAME} and 2673It gets your user name from the environment variables @env{LOGNAME} and
2664@env{USER}; if neither of those exists, it uses effective user-ID@. 2674@env{USER}; if neither of those exists, it uses the effective user-ID@.
2665If that user name matches the real user-ID, then Emacs uses @env{HOME}; 2675If that user name matches the real user-ID, then Emacs uses @env{HOME};
2666otherwise, it looks up the home directory corresponding to that user 2676otherwise, it looks up the home directory corresponding to that user
2667name in the system's data base of users. 2677name in the system's data base of users.
2678
2679 For brevity the rest of the Emacs documentation generally uses just
2680the current default location @file{~/.config/emacs/init.el} for the
2681init file.
2668@c LocalWords: backtab 2682@c LocalWords: backtab
2669 2683
2670@node Init Non-ASCII 2684@node Init Non-ASCII
@@ -2705,8 +2719,8 @@ Type @kbd{C-q}, followed by the key you want to bind, to insert @var{char}.
2705@subsection The Early Init File 2719@subsection The Early Init File
2706@cindex early init file 2720@cindex early init file
2707 2721
2708 Most customizations for Emacs should be put in the normal init file, 2722 Most customizations for Emacs should be put in the normal init file.
2709@file{.config/emacs} or @file{~/.config/emacs.d/init.el}. However, it is sometimes desirable 2723@xref{Init File}. However, it is sometimes desirable
2710to have customizations that take effect during Emacs startup earlier than the 2724to have customizations that take effect during Emacs startup earlier than the
2711normal init file is processed. Such customizations can be put in the early 2725normal init file is processed. Such customizations can be put in the early
2712init file, @file{~/.config/emacs.d/early-init.el} or @file{~/.emacs.d/early-init.el}. This file is loaded before the 2726init file, @file{~/.config/emacs.d/early-init.el} or @file{~/.emacs.d/early-init.el}. This file is loaded before the
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index c6fe29ed277..e92a959d99c 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -679,12 +679,12 @@ started editing (@pxref{Old Revisions}), type @kbd{C-c C-d}
679(@code{log-edit-show-diff}). 679(@code{log-edit-show-diff}).
680 680
681@kindex C-c C-w @r{(Log Edit mode)} 681@kindex C-c C-w @r{(Log Edit mode)}
682@findex log-edit-generate-changelog 682@findex log-edit-generate-changelog-from-diff
683 To help generate ChangeLog entries, type @kbd{C-c C-w} 683 To help generate ChangeLog entries, type @kbd{C-c C-w}
684(@code{log-edit-generate-changelog}), to generate skeleton ChangeLog 684(@code{log-edit-generate-changelog-from-diff}), to generate skeleton
685entries, listing all changed file and function names based on the diff 685ChangeLog entries, listing all changed file and function names based
686of the VC fileset. Consecutive entries left empty will be combined by 686on the diff of the VC fileset. Consecutive entries left empty will be
687@kbd{C-q} (@code{fill-paragraph}). 687combined by @kbd{C-q} (@code{fill-paragraph}).
688 688
689@kindex C-c C-a @r{(Log Edit mode)} 689@kindex C-c C-a @r{(Log Edit mode)}
690@findex log-edit-insert-changelog 690@findex log-edit-insert-changelog
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 5877c4b0de1..83fb8acf7c2 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -302,7 +302,10 @@ the Transport Layer Security (@acronym{TLS}) features.
302@vindex network-security-level 302@vindex network-security-level
303The @code{network-security-level} variable determines the security 303The @code{network-security-level} variable determines the security
304level that @acronym{NSM} enforces. If its value is @code{low}, no 304level that @acronym{NSM} enforces. If its value is @code{low}, no
305security checks are performed. 305security checks are performed. This is not recommended, and will
306basically mean that your network connections can't be trusted.
307However, the setting can be useful in limited circumstances, as when
308testing network issues.
306 309
307If this variable is @code{medium} (which is the default), a number of 310If this variable is @code{medium} (which is the default), a number of
308checks will be performed. If as result @acronym{NSM} determines that 311checks will be performed. If as result @acronym{NSM} determines that
@@ -325,13 +328,12 @@ The protocol network checks is controlled via the
325@code{network-security-protocol-checks} variable. 328@code{network-security-protocol-checks} variable.
326 329
327It's an alist where the first element of each association is the name 330It's an alist where the first element of each association is the name
328of the check, the second element is the security level where the check 331of the check, and the second element is the security level where the
329should be used, and the optional third element is a parameter supplied 332check should be used.
330to the check.
331 333
332An element like @code{(rc4 medium)} will result in the function 334An element like @code{(rc4 medium)} will result in the function
333@code{nsm-protocol-check--rc4} being called like thus: 335@code{nsm-protocol-check--rc4} being called like thus:
334@w{@code{(nsm-protocol-check--rc4 host port status optional-parameter)}}. 336@w{@code{(nsm-protocol-check--rc4 host port status settings)}}.
335The function should return non-@code{nil} if the connection should 337The function should return non-@code{nil} if the connection should
336proceed and @code{nil} otherwise. 338proceed and @code{nil} otherwise.
337 339
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi
index e4a500b069d..822066f3c54 100644
--- a/doc/lispref/customize.texi
+++ b/doc/lispref/customize.texi
@@ -418,7 +418,7 @@ already set or has been customized; otherwise, just use
418@code{set-default}. 418@code{set-default}.
419 419
420@item custom-initialize-delay 420@item custom-initialize-delay
421This functions behaves like @code{custom-initialize-set}, but it 421This function behaves like @code{custom-initialize-set}, but it
422delays the actual initialization to the next Emacs start. This should 422delays the actual initialization to the next Emacs start. This should
423be used in files that are preloaded (or for autoloaded variables), so 423be used in files that are preloaded (or for autoloaded variables), so
424that the initialization is done in the run-time context rather than 424that the initialization is done in the run-time context rather than
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi
index aa99b2b1a98..b25fb993990 100644
--- a/doc/lispref/errors.texi
+++ b/doc/lispref/errors.texi
@@ -140,8 +140,10 @@ emacs, The GNU Emacs Manual}.
140The message is @samp{Invalid function}. @xref{Function Indirection}. 140The message is @samp{Invalid function}. @xref{Function Indirection}.
141 141
142@item invalid-read-syntax 142@item invalid-read-syntax
143The message is @samp{Invalid read syntax}. @xref{Printed 143The message is usually @samp{Invalid read syntax}. @xref{Printed
144Representation}. 144Representation}. This error can also be raised by commands like
145@code{eval-expression} when there's text following an expression. In
146that case, the message is @samp{Trailing garbage following expression}.
145 147
146@item invalid-regexp 148@item invalid-regexp
147The message is @samp{Invalid regexp}. @xref{Regular Expressions}. 149The message is @samp{Invalid regexp}. @xref{Regular Expressions}.
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 6be5a528372..18a1f4908d6 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -2822,8 +2822,10 @@ filter out a directory named @file{foo.elc}.
2822name for a particular use---typically, to hold configuration data 2822name for a particular use---typically, to hold configuration data
2823specified by the current user. Usually, such files should be located 2823specified by the current user. Usually, such files should be located
2824in the directory specified by @code{user-emacs-directory}, which is 2824in the directory specified by @code{user-emacs-directory}, which is
2825@file{~/.emacs.d} by default (@pxref{Init File}). For example, abbrev 2825typically @file{~/.config/emacs/} or @file{~/.emacs.d/} by default (@pxref{Find
2826definitions are stored by default in @file{~/.emacs.d/abbrev_defs}. 2826Init,,How Emacs Finds Your Init File, emacs, The GNU Emacs Manual}).
2827For example, abbrev definitions are stored by default in
2828@file{~/.config/emacs/abbrev_defs} or @file{~/.emacs.d/abbrev_defs}.
2827The easiest way to specify such a file name is to use the function 2829The easiest way to specify such a file name is to use the function
2828@code{locate-user-emacs-file}. 2830@code{locate-user-emacs-file}.
2829 2831
diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi
index f775aa4d4b0..4542db97306 100644
--- a/doc/lispref/hooks.texi
+++ b/doc/lispref/hooks.texi
@@ -160,6 +160,9 @@ The command loop runs this soon after @code{post-command-hook} (q.v.).
160@item frame-auto-hide-function 160@item frame-auto-hide-function
161@xref{Quitting Windows}. 161@xref{Quitting Windows}.
162 162
163@item quit-window-hook
164@xref{Quitting Windows}.
165
163@item kill-buffer-hook 166@item kill-buffer-hook
164@itemx kill-buffer-query-functions 167@itemx kill-buffer-query-functions
165@xref{Killing Buffers}. 168@xref{Killing Buffers}.
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 764a67e3627..7185c243e24 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1783,12 +1783,12 @@ don't need any.
1783 (hungry-electric-delete t))))) 1783 (hungry-electric-delete t)))))
1784@end smallexample 1784@end smallexample
1785 1785
1786@defmac define-globalized-minor-mode global-mode mode turn-on keyword-args@dots{} 1786@defmac define-globalized-minor-mode global-mode mode turn-on keyword-args@dots{} body@dots{}
1787This defines a global toggle named @var{global-mode} whose meaning is 1787This defines a global toggle named @var{global-mode} whose meaning is
1788to enable or disable the buffer-local minor mode @var{mode} in all 1788to enable or disable the buffer-local minor mode @var{mode} in all
1789buffers. To turn on the minor mode in a buffer, it uses the function 1789buffers. It also executes the @var{body} forms. To turn on the minor
1790@var{turn-on}; to turn off the minor mode, it calls @var{mode} with 1790mode in a buffer, it uses the function @var{turn-on}; to turn off the
1791@minus{}1 as argument. 1791minor mode, it calls @var{mode} with @minus{}1 as argument.
1792 1792
1793Globally enabling the mode also affects buffers subsequently created 1793Globally enabling the mode also affects buffers subsequently created
1794by visiting files, and buffers that use a major mode other than 1794by visiting files, and buffers that use a major mode other than
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 49c07380c5f..c94e96bde82 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -473,8 +473,14 @@ the value refers to the corresponding source file.
473@end defvar 473@end defvar
474 474
475@defvar user-emacs-directory 475@defvar user-emacs-directory
476This variable holds the name of the @file{.emacs.d} directory. It is 476This variable holds the name of the Emacs default directory.
477@file{~/.emacs.d} on all platforms but MS-DOS. 477It defaults to @file{$@{XDG_CONFIG_HOME-'~/.config'@}/emacs/}
478if that directory exists and @file{~/.emacs.d/} does not exist,
479otherwise to @file{~/.emacs.d/} on all platforms but MS-DOS@.
480Here, @file{$@{XDG_CONFIG_HOME-'~/.config'@}}
481stands for the value of the environment variable @env{XDG_CONFIG_HOME}
482if that variable is set, and for @file{~/.config} otherwise.
483@xref{Find Init,,How Emacs Finds Your Init File, emacs, The GNU Emacs Manual}.
478@end defvar 484@end defvar
479 485
480@node Terminal-Specific 486@node Terminal-Specific
@@ -1346,6 +1352,8 @@ given, specifies a time to convert instead of the current time.
1346 1352
1347@emph{Warning}: Since the result is floating point, it may not be 1353@emph{Warning}: Since the result is floating point, it may not be
1348exact. Do not use this function if precise time stamps are required. 1354exact. Do not use this function if precise time stamps are required.
1355For example, on typical systems @code{(float-time '(1 . 10))} displays
1356as @samp{0.1} but is slightly greater than 1/10.
1349 1357
1350@code{time-to-seconds} is an alias for this function. 1358@code{time-to-seconds} is an alias for this function.
1351@end defun 1359@end defun
@@ -1432,8 +1440,6 @@ as traditional Gregorian years do; for example, the year number
1432 1440
1433@defun time-convert time &optional form 1441@defun time-convert time &optional form
1434This function converts a time value into a Lisp timestamp. 1442This function converts a time value into a Lisp timestamp.
1435If the time cannot be represented exactly, it is truncated
1436toward minus infinity.
1437 1443
1438The optional @var{form} argument specifies the timestamp form to be 1444The optional @var{form} argument specifies the timestamp form to be
1439returned. If @var{form} is the symbol @code{integer}, this function 1445returned. If @var{form} is the symbol @code{integer}, this function
@@ -1452,8 +1458,17 @@ Although an omitted or @code{nil} @var{form} currently acts like
1452@code{list}, this is planned to change in a future Emacs version, so 1458@code{list}, this is planned to change in a future Emacs version, so
1453callers requiring list timestamps should pass @code{list} explicitly. 1459callers requiring list timestamps should pass @code{list} explicitly.
1454 1460
1455If @var{time} already has the proper form, this function might yield 1461If @var{time} is infinite or a NaN, this function signals an error.
1456@var{time} rather than a copy. 1462Otherwise, if @var{time} cannot be represented exactly, conversion
1463truncates it toward minus infinity. When @var{form} is @code{t},
1464conversion is always exact so no truncation occurs, and the returned
1465clock resolution is no less than that of @var{time}. By way of
1466contrast, @code{float-time} can convert any Lisp time value without
1467signaling an error, although the result might not be exact.
1468@xref{Time of Day}.
1469
1470For efficiency this function might return a value that is @code{eq} to
1471@var{time}, or that otherwise shares structure with @var{time}.
1457 1472
1458Although @code{(time-convert nil nil)} is equivalent to 1473Although @code{(time-convert nil nil)} is equivalent to
1459@code{(current-time)}, the latter may be a bit faster. 1474@code{(current-time)}, the latter may be a bit faster.
@@ -1950,16 +1965,18 @@ The result is @code{nil} if either argument is a NaN.
1950 1965
1951@defun time-subtract t1 t2 1966@defun time-subtract t1 t2
1952This returns the time difference @var{t1} @minus{} @var{t2} between 1967This returns the time difference @var{t1} @minus{} @var{t2} between
1953two time values, as a time value. However, the result is a float 1968two time values, normally as a Lisp timestamp but as a float
1954if either argument is a float infinity or NaN@. 1969if either argument is infinite or a NaN@.
1970When the result is a timestamp, it is exact and its clock
1971resolution is no worse than the worse of its two arguments' resolutions.
1955If you need the difference in units 1972If you need the difference in units
1956of elapsed seconds, use @code{float-time} (@pxref{Time of Day, 1973of elapsed seconds, you can convert it with @code{time-convert} or
1957float-time}) to convert the result into seconds. 1974@code{float-time}. @xref{Time Conversion}.
1958@end defun 1975@end defun
1959 1976
1960@defun time-add t1 t2 1977@defun time-add t1 t2
1961This returns the sum of two time values, as a time value. 1978This returns the sum of two time values,
1962However, the result is a float if either argument is a float infinity or NaN@. 1979using the same conversion rules as @code{time-subtract}.
1963One argument should represent a time difference rather than a point in time, 1980One argument should represent a time difference rather than a point in time,
1964as a time value that is often just a single number of elapsed seconds. 1981as a time value that is often just a single number of elapsed seconds.
1965Here is how to add a number of seconds to a time value: 1982Here is how to add a number of seconds to a time value:
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 21bc32e88b6..61de77d0662 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -3005,6 +3005,21 @@ If the vector does not include the port number, @var{p}, or if
3005@code{:@var{p}} suffix. 3005@code{:@var{p}} suffix.
3006@end defun 3006@end defun
3007 3007
3008@defun network-lookup-address-info name &optional family
3009This function is used to perform hostname lookups on @var{name}, which
3010is expected to be an ASCII-only string, otherwise an error is
3011signaled. Call @code{puny-encode-domain} on @var{name}
3012first if you wish to lookup internationalized hostnames.
3013
3014If successful it returns a list of Lisp representations of network
3015addresses, otherwise it returns @code{nil}.
3016
3017By default both IPv4 and IPv6 lookups are attempted. The optional
3018argument @var{family} controls this behavior, specifying the symbol
3019@code{ipv4} or @code{ipv6} restricts lookups to IPv4 and IPv6
3020respectively.
3021@end defun
3022
3008@node Serial Ports 3023@node Serial Ports
3009@section Communicating with Serial Ports 3024@section Communicating with Serial Ports
3010@cindex @file{/dev/tty} 3025@cindex @file{/dev/tty}
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 157f004cf3f..39d3960c9a2 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -4034,6 +4034,10 @@ This command quits @var{window} and buries its buffer. The argument
4034With prefix argument @var{kill} non-@code{nil}, it kills the buffer 4034With prefix argument @var{kill} non-@code{nil}, it kills the buffer
4035instead of burying it. It calls the function @code{quit-restore-window} 4035instead of burying it. It calls the function @code{quit-restore-window}
4036described next to deal with the window and its buffer. 4036described next to deal with the window and its buffer.
4037
4038@vindex quit-window-hook
4039The functions in @code{quit-window-hook} are run before doing anything
4040else.
4037@end deffn 4041@end deffn
4038 4042
4039@defun quit-restore-window &optional window bury-or-kill 4043@defun quit-restore-window &optional window bury-or-kill
@@ -4043,10 +4047,6 @@ the selected one. The function's behavior is determined by the four
4043elements of the list specified by @var{window}'s @code{quit-restore} 4047elements of the list specified by @var{window}'s @code{quit-restore}
4044parameter (@pxref{Window Parameters}). 4048parameter (@pxref{Window Parameters}).
4045 4049
4046@vindex quit-window-hook
4047The functions in @code{quit-window-hook} are run before doing anything
4048else.
4049
4050The first element of the @code{quit-restore} parameter is one of the 4050The first element of the @code{quit-restore} parameter is one of the
4051symbols @code{window}, meaning that the window has been specially 4051symbols @code{window}, meaning that the window has been specially
4052created by @code{display-buffer}; @code{frame}, a separate frame has 4052created by @code{display-buffer}; @code{frame}, a separate frame has
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 8fd3bf3a45e..e5673daf3a9 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -34,7 +34,7 @@ the FAQ may not be embedded in a larger literary work unless that work
34itself allows free copying and redistribution. 34itself allows free copying and redistribution.
35 35
36[This version has been heavily edited since it was included in the Emacs 36[This version has been heavily edited since it was included in the Emacs
37distribution.] 37distribution in 1999.]
38@end quotation 38@end quotation
39@end copying 39@end copying
40 40
@@ -1687,11 +1687,21 @@ mode-line-format @key{RET}}) for more information on how to set and use
1687this variable. 1687this variable.
1688 1688
1689@cindex Set number capability in @code{vi} emulators 1689@cindex Set number capability in @code{vi} emulators
1690The @samp{linum} package (distributed with Emacs since version 23.1) 1690The @samp{display-line-numbers} package (added to Emacs in version
1691displays line numbers in the left margin, like the ``set number'' 169126.1) displays line numbers in the text area, before each line, like
1692capability of @code{vi}. The packages @samp{setnu} and 1692the ``set number'' capability of @samp{vi}. Customize the
1693@samp{wb-line-number} (not distributed with Emacs) also implement this 1693buffer-local variable @code{display-line-numbers} to activate this
1694feature. 1694optional display. Alternatively, you can use the
1695@code{display-line-numbers-mode} minor mode or the global
1696@code{global-display-line-numbers-mode}. When using these modes,
1697customize @code{display-line-numbers-type} with the same value as you
1698would use with @code{display-line-numbers}.
1699
1700There is also the @samp{linum} package (distributed with Emacs since
1701version 23.1) which will henceforth become obsolete. Users and
1702developers are encouraged to use @samp{display-line-numbers} instead.
1703The packages @samp{setnu} and @samp{wb-line-number} (not distributed
1704with Emacs) also implement this feature.
1695 1705
1696@node Displaying the current file name in the titlebar 1706@node Displaying the current file name in the titlebar
1697@section How can I modify the titlebar to contain the current file name? 1707@section How can I modify the titlebar to contain the current file name?
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index eb829b06124..131a358ba59 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -1568,7 +1568,7 @@ Here's a bunch of time/date/second/day examples:
1568 1568
1569(time-subtract '(905595714000000 . 1000000) 1569(time-subtract '(905595714000000 . 1000000)
1570 '(905595593000000000 . 1000000000)) 1570 '(905595593000000000 . 1000000000))
1571@result{} (121000000000 . 1000000000) 1571@result{} (121000000 . 1000000)
1572 1572
1573(days-between "Sat Sep 12 12:21:54 1998 +0200" 1573(days-between "Sat Sep 12 12:21:54 1998 +0200"
1574 "Sat Sep 07 12:21:54 1998 +0200") 1574 "Sat Sep 07 12:21:54 1998 +0200")
diff --git a/doc/misc/ido.texi b/doc/misc/ido.texi
index 29a204cf9e2..a787b743430 100644
--- a/doc/misc/ido.texi
+++ b/doc/misc/ido.texi
@@ -108,7 +108,7 @@ This document describes a set of features that can interactively do
108things with buffers and files. All the features are described here 108things with buffers and files. All the features are described here
109in detail. 109in detail.
110 110
111The @dfn{Ido} package can let you switch between buffers and visit 111The @dfn{Ido} package lets you switch between buffers and visit
112files and directories with a minimum of keystrokes. It is a superset 112files and directories with a minimum of keystrokes. It is a superset
113of Iswitchb, the interactive buffer switching package by Stephen 113of Iswitchb, the interactive buffer switching package by Stephen
114Eglen. 114Eglen.
@@ -211,7 +211,7 @@ do with various kinds of @emph{matching}: among buffers, files, and directories.
211 211
212@noindent 212@noindent
213As you type in a substring, the list of buffers or files currently 213As you type in a substring, the list of buffers or files currently
214matching the substring are displayed as you type. The list is 214matching the substring is displayed as you type. The list is
215ordered so that the most recent buffers or files visited come at 215ordered so that the most recent buffers or files visited come at
216the start of the list. 216the start of the list.
217 217
@@ -240,13 +240,13 @@ If you then press @kbd{2}:
240Buffer: 2[3]@{123456 | 123@} 240Buffer: 2[3]@{123456 | 123@}
241@end example 241@end example
242 242
243The list in @{...@} are the matching buffers, most recent first 243The items listed in @{...@} are the matching buffers, most recent
244(buffers visible in the current frame are put at the end of the list 244first (buffers visible in the current frame are put at the end of the
245by default). At any time you can select the item at the head of the 245list by default). At any time you can select the item at the head of
246list by pressing @key{RET}. You can also put the first element at the 246the list by pressing @key{RET}. You can also put the first element at
247end of the list by pressing @kbd{C-s} or @kbd{<right>}, or bring the 247the end of the list by pressing @kbd{C-s} or @key{RIGHT}, or bring
248last element to the head of the list by pressing @kbd{C-r} or 248the last element to the head of the list by pressing @kbd{C-r} or
249@kbd{<left>}. 249@key{LEFT}.
250 250
251@findex ido-complete 251@findex ido-complete
252The item in [...] indicates what can be added to your input by 252The item in [...] indicates what can be added to your input by
@@ -287,7 +287,7 @@ Buffer: 234a [No match]
287There are no matching buffers. If you press @key{RET} or @key{TAB}, 287There are no matching buffers. If you press @key{RET} or @key{TAB},
288you can be prompted to create a new buffer called @file{234a}. 288you can be prompted to create a new buffer called @file{234a}.
289 289
290Of course, where this function comes in really useful is when you can 290Of course, where this function really comes in handy is when you can
291specify the buffer using only a few keystrokes. In the above example, 291specify the buffer using only a few keystrokes. In the above example,
292the quickest way to get to the @file{123456} file would be just to 292the quickest way to get to the @file{123456} file would be just to
293type @kbd{4} and then @key{RET} (assuming there isn't any newer buffer 293type @kbd{4} and then @key{RET} (assuming there isn't any newer buffer
@@ -305,7 +305,7 @@ In addition to scrolling through the list using @kbd{<right>} and
305@kbd{<left>}, you can use @kbd{<up>} and @kbd{<down>} to quickly 305@kbd{<left>}, you can use @kbd{<up>} and @kbd{<down>} to quickly
306scroll the list to the next or previous subdirectory. 306scroll the list to the next or previous subdirectory.
307 307
308To go down into a subdirectory, and continue the file selection on 308To go down into a subdirectory and continue the file selection on
309the files in that directory, simply move the directory to the head 309the files in that directory, simply move the directory to the head
310of the list and hit @key{RET}. 310of the list and hit @key{RET}.
311 311
@@ -366,9 +366,9 @@ If for some reason you cannot specify the proper file using
366@noindent 366@noindent
367The standard way of completion with *nix shells and Emacs is to insert 367The standard way of completion with *nix shells and Emacs is to insert
368a @dfn{prefix} and then hitting @key{TAB} (or another completion key). 368a @dfn{prefix} and then hitting @key{TAB} (or another completion key).
369Cause of this behavior has become second nature to a lot of Emacs 369Because this behavior has become second nature to a lot of Emacs
370users Ido offers in addition to the default substring matching method 370users, Ido offers, in addition to the default substring matching method
371(look above) also the prefix matching method. The kind of matching is 371(see above), also the prefix matching method. The kind of matching is
372the only difference to the description of the substring matching 372the only difference to the description of the substring matching
373above. 373above.
374 374
@@ -425,7 +425,7 @@ matching. The value of this user option can be toggled within
425ido-mode using @code{ido-toggle-regexp}. 425ido-mode using @code{ido-toggle-regexp}.
426@end defopt 426@end defopt
427 427
428@strong{Please notice:} Ido-style completion is inhibited when you 428@strong{Please note:} Ido-style completion is inhibited when you
429enable regexp matching. 429enable regexp matching.
430 430
431@node Highlighting 431@node Highlighting
@@ -438,21 +438,21 @@ The highlighting of matching items is controlled via
438@code{ido-use-faces}. The faces used are @code{ido-first-match}, 438@code{ido-use-faces}. The faces used are @code{ido-first-match},
439@code{ido-only-match} and @code{ido-subdir}. 439@code{ido-only-match} and @code{ido-subdir}.
440 440
441Coloring of the matching item was suggested by Carsten Dominik. 441Coloring of the matching items was suggested by Carsten Dominik.
442 442
443@node Hidden Buffers and Files 443@node Hidden Buffers and Files
444@chapter Hidden Buffers and Files 444@chapter Hidden Buffers and Files
445@cindex hidden buffers and files 445@cindex hidden buffers and files
446 446
447Normally, Ido does not include hidden buffers (whose name starts with 447Normally, Ido does not include hidden buffers (whose names start with
448a space) and hidden files and directories (whose name starts with 448a space) and hidden files and directories (whose names start with
449@samp{.}) in the list of possible completions. However, if the 449@file{.}) in the list of possible completions. However, if the
450substring you enter does not match any of the visible buffers or 450substring you enter does not match any of the visible buffers or
451files, Ido will automatically look for completions among the hidden 451files, Ido will automatically look for completions among the hidden
452buffers or files. 452buffers or files.
453 453
454@findex ido-toggle-ignore 454@findex ido-toggle-ignore
455You can toggle display of the hidden buffers and files with @kbd{C-a} 455You can toggle the display of hidden buffers and files with @kbd{C-a}
456(@code{ido-toggle-ignore}). 456(@code{ido-toggle-ignore}).
457 457
458@c @deffn Command ido-toggle-ignore 458@c @deffn Command ido-toggle-ignore
@@ -525,7 +525,7 @@ deleting or rearranging elements.)
525 525
526@noindent 526@noindent
527Find File At Point, also known generally as ``ffap'', is an 527Find File At Point, also known generally as ``ffap'', is an
528intelligent system for opening files, and URLs. 528intelligent system for opening files and URLs.
529 529
530The following expression will make Ido guess the context: 530The following expression will make Ido guess the context:
531 531
@@ -552,7 +552,7 @@ a URL at point. If found, call @code{find-file-at-point} to visit it.
552 552
553@noindent 553@noindent
554Ido is capable of ignoring buffers, directories, files and extensions 554Ido is capable of ignoring buffers, directories, files and extensions
555using regular expression. 555using regular expressions.
556 556
557@defopt ido-ignore-buffers 557@defopt ido-ignore-buffers
558This variable takes a list of regular expressions for buffers to 558This variable takes a list of regular expressions for buffers to
@@ -590,7 +590,7 @@ Now you can customize @code{completion-ignored-extensions} as well.
590Go ahead and add all the useless object files, backup files, shared 590Go ahead and add all the useless object files, backup files, shared
591library files and other computing flotsam you don't want Ido to show. 591library files and other computing flotsam you don't want Ido to show.
592 592
593@strong{Please notice:} Ido will still complete the ignored elements 593@strong{Note:} Ido will still complete the ignored elements
594if it would otherwise not show any other matches. So if you type out 594if it would otherwise not show any other matches. So if you type out
595the name of an ignored file, Ido will still let you open it just fine. 595the name of an ignored file, Ido will still let you open it just fine.
596 596
@@ -718,7 +718,7 @@ packages.
718After @kbd{C-x b} (@code{ido-switch-buffer}), the buffer at the head 718After @kbd{C-x b} (@code{ido-switch-buffer}), the buffer at the head
719of the list can be killed by pressing @kbd{C-k}. If the buffer needs 719of the list can be killed by pressing @kbd{C-k}. If the buffer needs
720saving, you will be queried before the buffer is killed. @kbd{C-S-b} 720saving, you will be queried before the buffer is killed. @kbd{C-S-b}
721buries the buffer at the head of the list. 721buries the buffer at the end of the list.
722 722
723Likewise, after @kbd{C-x C-f}, you can delete (i.e., physically 723Likewise, after @kbd{C-x C-f}, you can delete (i.e., physically
724remove) the file at the head of the list with @kbd{C-k}. You will 724remove) the file at the head of the list with @kbd{C-k}. You will
@@ -726,8 +726,8 @@ always be asked for confirmation before deleting the file.
726 726
727If you enter @kbd{C-x b} to switch to a buffer visiting a given file, 727If you enter @kbd{C-x b} to switch to a buffer visiting a given file,
728and you find that the file you are after is not in any buffer, you can 728and you find that the file you are after is not in any buffer, you can
729press @kbd{C-f} to immediately drop into @code{ido-find-file}. And 729press @kbd{C-f} to immediately drop into @code{ido-find-file}. You
730you can switch back to buffer selection with @kbd{C-b}. 730can switch back to buffer selection with @kbd{C-b}.
731 731
732@c @deffn Command ido-magic-forward-char 732@c @deffn Command ido-magic-forward-char
733@c @deffn Command ido-magic-backward-char 733@c @deffn Command ido-magic-backward-char
@@ -759,7 +759,7 @@ want Ido to behave differently from the default minibuffer resizing
759behavior, set the variable @code{ido-max-window-height}. 759behavior, set the variable @code{ido-max-window-height}.
760 760
761Also, to improve the responsiveness of Ido, the maximum number of 761Also, to improve the responsiveness of Ido, the maximum number of
762matching items is limited to 12, but you can increase or removed this 762matching items is limited to 12, but you can increase or remove this
763limit via the @code{ido-max-prospects} user option. 763limit via the @code{ido-max-prospects} user option.
764 764
765@c @defopt ido-max-prospects 765@c @defopt ido-max-prospects
@@ -774,7 +774,7 @@ this separate buffer.
774 774
775@noindent 775@noindent
776@code{ido-read-buffer} and @code{ido-read-file-name} have been written 776@code{ido-read-buffer} and @code{ido-read-file-name} have been written
777to be drop in replacements for the normal buffer and file name reading 777to be drop-in replacements for the normal buffer and file name reading
778functions @code{read-buffer} and @code{read-file-name}. 778functions @code{read-buffer} and @code{read-file-name}.
779 779
780To use ido for all buffer and file selections in Emacs, customize the 780To use ido for all buffer and file selections in Emacs, customize the
diff --git a/doc/misc/info.texi b/doc/misc/info.texi
index e69779a03ca..077e83e3c90 100644
--- a/doc/misc/info.texi
+++ b/doc/misc/info.texi
@@ -886,6 +886,14 @@ which the header says is the @samp{Previous} node (from this node, the
886to revisit nodes in the history list in the forward direction, so that 886to revisit nodes in the history list in the forward direction, so that
887@kbd{r} will return you to the node you came from by typing @kbd{l}. 887@kbd{r} will return you to the node you came from by typing @kbd{l}.
888 888
889@cindex using tool-bar to navigate history
890 Clicking the mouse on the left arrow icon in the tool-bar while
891holding down the @key{CTRL} key in Emacs opens a menu of previously
892visited nodes: the same nodes that you can revisit by
893@code{Info-history-back}. Selecting a node after clicking on the
894right arrow icon revisits the same nodes as available by
895@code{Info-history-forward}.
896
889@kindex L @r{(Info mode)} 897@kindex L @r{(Info mode)}
890@findex Info-history 898@findex Info-history
891@cindex history list of visited nodes 899@cindex history list of visited nodes
@@ -929,10 +937,9 @@ is @code{Info-top-node}.
929@section Quitting Info 937@section Quitting Info
930 938
931@kindex q @r{(Info mode)} 939@kindex q @r{(Info mode)}
932@findex Info-exit
933@cindex quitting Info mode 940@cindex quitting Info mode
934 To get out of Info, back to what you were doing before, type @kbd{q} 941 To get out of Info, back to what you were doing before, type @kbd{q}
935for @dfn{Quit}. This runs @code{Info-exit} in Emacs. 942for @dfn{Quit}. This runs @code{quit-window} in Emacs.
936 943
937 This is the end of the basic course on using Info. You have learned 944 This is the end of the basic course on using Info. You have learned
938how to move in an Info document, and how to follow menus and cross 945how to move in an Info document, and how to follow menus and cross
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index ed3f0ee98f4..d2e895f3628 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -1,9 +1,9 @@
1% texinfo.tex -- TeX macros to handle Texinfo files. 1% texinfo.tex -- TeX macros to handle Texinfo files.
2% 2%
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2019-06-01.23} 6\def\texinfoversion{2019-08-18.20}
7% 7%
8% Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc. 8% Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
9% 9%
@@ -218,7 +218,7 @@
218% @errormsg{MSG}. Do the index-like expansions on MSG, but if things 218% @errormsg{MSG}. Do the index-like expansions on MSG, but if things
219% aren't perfect, it's not the end of the world, being an error message, 219% aren't perfect, it's not the end of the world, being an error message,
220% after all. 220% after all.
221% 221%
222\def\errormsg{\begingroup \indexnofonts \doerrormsg} 222\def\errormsg{\begingroup \indexnofonts \doerrormsg}
223\def\doerrormsg#1{\errmessage{#1}} 223\def\doerrormsg#1{\errmessage{#1}}
224 224
@@ -323,9 +323,9 @@
323% the output routine. The saved contents are valid until we actually 323% the output routine. The saved contents are valid until we actually
324% \shipout a page. 324% \shipout a page.
325% 325%
326% (We used to run a short output routine to actually set \topmark and 326% (We used to run a short output routine to actually set \topmark and
327% \firstmark to the right values, but if this was called with an empty page 327% \firstmark to the right values, but if this was called with an empty page
328% containing whatsits for writing index entries, the whatsits would be thrown 328% containing whatsits for writing index entries, the whatsits would be thrown
329% away and the index auxiliary file would remain empty.) 329% away and the index auxiliary file would remain empty.)
330% 330%
331\newtoks\savedtopmark 331\newtoks\savedtopmark
@@ -365,7 +365,7 @@
365 \let\thischapterheading\thischapter 365 \let\thischapterheading\thischapter
366 \else 366 \else
367 % \thischapterheading is the same as \thischapter except it is blank 367 % \thischapterheading is the same as \thischapter except it is blank
368 % for the first page of a chapter. This is to prevent the chapter name 368 % for the first page of a chapter. This is to prevent the chapter name
369 % being shown twice. 369 % being shown twice.
370 \def\thischapterheading{}% 370 \def\thischapterheading{}%
371 \fi 371 \fi
@@ -448,7 +448,7 @@
448 }% 448 }%
449} 449}
450 450
451% First remove any @comment, then any @c comment. Pass the result on to 451% First remove any @comment, then any @c comment. Pass the result on to
452% \argcheckspaces. 452% \argcheckspaces.
453\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} 453\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
454\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} 454\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
@@ -1137,7 +1137,7 @@ where each line of input produces a line of output.}
1137% for display in the outlines, and in other places. Thus, we have to 1137% for display in the outlines, and in other places. Thus, we have to
1138% double any backslashes. Otherwise, a name like "\node" will be 1138% double any backslashes. Otherwise, a name like "\node" will be
1139% interpreted as a newline (\n), followed by o, d, e. Not good. 1139% interpreted as a newline (\n), followed by o, d, e. Not good.
1140% 1140%
1141% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and 1141% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
1142% related messages. The final outcome is that it is up to the TeX user 1142% related messages. The final outcome is that it is up to the TeX user
1143% to double the backslashes and otherwise make the string valid, so 1143% to double the backslashes and otherwise make the string valid, so
@@ -1442,7 +1442,7 @@ output) for that.)}
1442 % their "best" equivalent, based on the @documentencoding. Too 1442 % their "best" equivalent, based on the @documentencoding. Too
1443 % much work for too little return. Just use the ASCII equivalents 1443 % much work for too little return. Just use the ASCII equivalents
1444 % we use for the index sort strings. 1444 % we use for the index sort strings.
1445 % 1445 %
1446 \indexnofonts 1446 \indexnofonts
1447 \setupdatafile 1447 \setupdatafile
1448 % We can have normal brace characters in the PDF outlines, unlike 1448 % We can have normal brace characters in the PDF outlines, unlike
@@ -2726,7 +2726,7 @@ end
2726} 2726}
2727 2727
2728% Commands to set the quote options. 2728% Commands to set the quote options.
2729% 2729%
2730\parseargdef\codequoteundirected{% 2730\parseargdef\codequoteundirected{%
2731 \def\temp{#1}% 2731 \def\temp{#1}%
2732 \ifx\temp\onword 2732 \ifx\temp\onword
@@ -2767,7 +2767,7 @@ end
2767% If we are in a monospaced environment, however, 1) always use \ttsl, 2767% If we are in a monospaced environment, however, 1) always use \ttsl,
2768% and 2) do not add an italic correction. 2768% and 2) do not add an italic correction.
2769\def\dosmartslant#1#2{% 2769\def\dosmartslant#1#2{%
2770 \ifusingtt 2770 \ifusingtt
2771 {{\ttsl #2}\let\next=\relax}% 2771 {{\ttsl #2}\let\next=\relax}%
2772 {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% 2772 {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
2773 \next 2773 \next
@@ -2914,14 +2914,14 @@ end
2914 \gdef\codedash{\futurelet\next\codedashfinish} 2914 \gdef\codedash{\futurelet\next\codedashfinish}
2915 \gdef\codedashfinish{% 2915 \gdef\codedashfinish{%
2916 \normaldash % always output the dash character itself. 2916 \normaldash % always output the dash character itself.
2917 % 2917 %
2918 % Now, output a discretionary to allow a line break, unless 2918 % Now, output a discretionary to allow a line break, unless
2919 % (a) the next character is a -, or 2919 % (a) the next character is a -, or
2920 % (b) the preceding character is a -. 2920 % (b) the preceding character is a -.
2921 % E.g., given --posix, we do not want to allow a break after either -. 2921 % E.g., given --posix, we do not want to allow a break after either -.
2922 % Given --foo-bar, we do want to allow a break between the - and the b. 2922 % Given --foo-bar, we do want to allow a break between the - and the b.
2923 \ifx\next\codedash \else 2923 \ifx\next\codedash \else
2924 \ifx\codedashprev\codedash 2924 \ifx\codedashprev\codedash
2925 \else \discretionary{}{}{}\fi 2925 \else \discretionary{}{}{}\fi
2926 \fi 2926 \fi
2927 % we need the space after the = for the case when \next itself is a 2927 % we need the space after the = for the case when \next itself is a
@@ -3003,7 +3003,7 @@ end
3003 % For pdfTeX and LuaTeX 3003 % For pdfTeX and LuaTeX
3004 \ifurefurlonlylink 3004 \ifurefurlonlylink
3005 % PDF plus option to not display url, show just arg 3005 % PDF plus option to not display url, show just arg
3006 \unhbox0 3006 \unhbox0
3007 \else 3007 \else
3008 % PDF, normally display both arg and url for consistency, 3008 % PDF, normally display both arg and url for consistency,
3009 % visibility, if the pdf is eventually used to print, etc. 3009 % visibility, if the pdf is eventually used to print, etc.
@@ -3016,7 +3016,7 @@ end
3016 % For XeTeX 3016 % For XeTeX
3017 \ifurefurlonlylink 3017 \ifurefurlonlylink
3018 % PDF plus option to not display url, show just arg 3018 % PDF plus option to not display url, show just arg
3019 \unhbox0 3019 \unhbox0
3020 \else 3020 \else
3021 % PDF, normally display both arg and url for consistency, 3021 % PDF, normally display both arg and url for consistency,
3022 % visibility, if the pdf is eventually used to print, etc. 3022 % visibility, if the pdf is eventually used to print, etc.
@@ -3074,10 +3074,10 @@ end
3074 } 3074 }
3075} 3075}
3076 3076
3077% By default we'll break after the special characters, but some people like to 3077% By default we'll break after the special characters, but some people like to
3078% break before the special chars, so allow that. Also allow no breaking at 3078% break before the special chars, so allow that. Also allow no breaking at
3079% all, for manual control. 3079% all, for manual control.
3080% 3080%
3081\parseargdef\urefbreakstyle{% 3081\parseargdef\urefbreakstyle{%
3082 \def\txiarg{#1}% 3082 \def\txiarg{#1}%
3083 \ifx\txiarg\wordnone 3083 \ifx\txiarg\wordnone
@@ -3095,7 +3095,7 @@ end
3095\def\wordbefore{before} 3095\def\wordbefore{before}
3096\def\wordnone{none} 3096\def\wordnone{none}
3097 3097
3098% Allow a ragged right output to aid breaking long URL's. Putting stretch in 3098% Allow a ragged right output to aid breaking long URL's. Putting stretch in
3099% between characters of the URL doesn't look good. 3099% between characters of the URL doesn't look good.
3100\def\urefallowbreak{% 3100\def\urefallowbreak{%
3101 \hskip 0pt plus 4 em\relax 3101 \hskip 0pt plus 4 em\relax
@@ -3299,7 +3299,7 @@ end
3299% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. 3299% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
3300% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, 3300% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
3301% except specified as a normal braced arg, so no newlines to worry about. 3301% except specified as a normal braced arg, so no newlines to worry about.
3302% 3302%
3303\def\outfmtnametex{tex} 3303\def\outfmtnametex{tex}
3304% 3304%
3305\long\def\inlinefmt#1{\doinlinefmt #1,\finish} 3305\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
@@ -3307,7 +3307,7 @@ end
3307 \def\inlinefmtname{#1}% 3307 \def\inlinefmtname{#1}%
3308 \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi 3308 \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
3309} 3309}
3310% 3310%
3311% @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if 3311% @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
3312% FMTNAME is tex, else ELSE-TEXT. 3312% FMTNAME is tex, else ELSE-TEXT.
3313\long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish} 3313\long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
@@ -3323,7 +3323,7 @@ end
3323% *right* brace they would have to use a command anyway, so they may as 3323% *right* brace they would have to use a command anyway, so they may as
3324% well use a command to get a left brace too. We could re-use the 3324% well use a command to get a left brace too. We could re-use the
3325% delimiter character idea from \verb, but it seems like overkill. 3325% delimiter character idea from \verb, but it seems like overkill.
3326% 3326%
3327\long\def\inlineraw{\tex \doinlineraw} 3327\long\def\inlineraw{\tex \doinlineraw}
3328\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} 3328\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
3329\def\doinlinerawtwo#1,#2,\finish{% 3329\def\doinlinerawtwo#1,#2,\finish{%
@@ -3600,7 +3600,7 @@ end
3600% for non-CM glyphs. That is ec* for regular text and tc* for the text 3600% for non-CM glyphs. That is ec* for regular text and tc* for the text
3601% companion symbols (LaTeX TS1 encoding). Both are part of the ec 3601% companion symbols (LaTeX TS1 encoding). Both are part of the ec
3602% package and follow the same conventions. 3602% package and follow the same conventions.
3603% 3603%
3604\def\ecfont{\etcfont{e}} 3604\def\ecfont{\etcfont{e}}
3605\def\tcfont{\etcfont{t}} 3605\def\tcfont{\etcfont{t}}
3606% 3606%
@@ -3672,7 +3672,7 @@ end
3672 after the title page.}}% 3672 after the title page.}}%
3673\def\setshortcontentsaftertitlepage{% 3673\def\setshortcontentsaftertitlepage{%
3674 \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo 3674 \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo
3675 command; move your @shortcontents and @contents commands if you 3675 command; move your @shortcontents and @contents commands if you
3676 want the contents after the title page.}}% 3676 want the contents after the title page.}}%
3677 3677
3678\parseargdef\shorttitlepage{% 3678\parseargdef\shorttitlepage{%
@@ -3727,7 +3727,7 @@ end
3727% don't worry much about spacing, ragged right. This should be used 3727% don't worry much about spacing, ragged right. This should be used
3728% inside a \vbox, and fonts need to be set appropriately first. \par should 3728% inside a \vbox, and fonts need to be set appropriately first. \par should
3729% be specified before the end of the \vbox, since a vbox is a group. 3729% be specified before the end of the \vbox, since a vbox is a group.
3730% 3730%
3731\def\raggedtitlesettings{% 3731\def\raggedtitlesettings{%
3732 \rm 3732 \rm
3733 \hyphenpenalty=10000 3733 \hyphenpenalty=10000
@@ -4350,7 +4350,7 @@ end
4350} 4350}
4351 4351
4352% multitable-only commands. 4352% multitable-only commands.
4353% 4353%
4354% @headitem starts a heading row, which we typeset in bold. Assignments 4354% @headitem starts a heading row, which we typeset in bold. Assignments
4355% have to be global since we are inside the implicit group of an 4355% have to be global since we are inside the implicit group of an
4356% alignment entry. \everycr below resets \everytab so we don't have to 4356% alignment entry. \everycr below resets \everytab so we don't have to
@@ -4669,13 +4669,13 @@ end
4669% Like \expandablevalue, but completely expandable (the \message in the 4669% Like \expandablevalue, but completely expandable (the \message in the
4670% definition above operates at the execution level of TeX). Used when 4670% definition above operates at the execution level of TeX). Used when
4671% writing to auxiliary files, due to the expansion that \write does. 4671% writing to auxiliary files, due to the expansion that \write does.
4672% If flag is undefined, pass through an unexpanded @value command: maybe it 4672% If flag is undefined, pass through an unexpanded @value command: maybe it
4673% will be set by the time it is read back in. 4673% will be set by the time it is read back in.
4674% 4674%
4675% NB flag names containing - or _ may not work here. 4675% NB flag names containing - or _ may not work here.
4676\def\dummyvalue#1{% 4676\def\dummyvalue#1{%
4677 \expandafter\ifx\csname SET#1\endcsname\relax 4677 \expandafter\ifx\csname SET#1\endcsname\relax
4678 \noexpand\value{#1}% 4678 \string\value{#1}%
4679 \else 4679 \else
4680 \csname SET#1\endcsname 4680 \csname SET#1\endcsname
4681 \fi 4681 \fi
@@ -4693,7 +4693,7 @@ end
4693 4693
4694% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined 4694% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
4695% with @set. 4695% with @set.
4696% 4696%
4697% To get the special treatment we need for `@end ifset,' we call 4697% To get the special treatment we need for `@end ifset,' we call
4698% \makecond and then redefine. 4698% \makecond and then redefine.
4699% 4699%
@@ -4726,7 +4726,7 @@ end
4726% without the @) is in fact defined. We can only feasibly check at the 4726% without the @) is in fact defined. We can only feasibly check at the
4727% TeX level, so something like `mathcode' is going to considered 4727% TeX level, so something like `mathcode' is going to considered
4728% defined even though it is not a Texinfo command. 4728% defined even though it is not a Texinfo command.
4729% 4729%
4730\makecond{ifcommanddefined} 4730\makecond{ifcommanddefined}
4731\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} 4731\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
4732% 4732%
@@ -4834,8 +4834,8 @@ end
4834\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} 4834\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
4835\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}} 4835\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
4836 4836
4837 4837
4838% Used for the aux, toc and index files to prevent expansion of Texinfo 4838% Used for the aux, toc and index files to prevent expansion of Texinfo
4839% commands. 4839% commands.
4840% 4840%
4841\def\atdummies{% 4841\def\atdummies{%
@@ -5180,7 +5180,7 @@ end
5180} 5180}
5181\def\defglyph#1#2{\def#1##1{#2}} % see above 5181\def\defglyph#1#2{\def#1##1{#2}} % see above
5182 5182
5183 5183
5184 5184
5185 5185
5186% #1 is the index name, #2 is the entry text. 5186% #1 is the index name, #2 is the entry text.
@@ -5207,7 +5207,7 @@ end
5207 \ifx\suffix\indexisfl\def\suffix{f1}\fi 5207 \ifx\suffix\indexisfl\def\suffix{f1}\fi
5208 % Open the file 5208 % Open the file
5209 \immediate\openout\csname#1indfile\endcsname \jobname.\suffix 5209 \immediate\openout\csname#1indfile\endcsname \jobname.\suffix
5210 % Using \immediate above here prevents an object entering into the current 5210 % Using \immediate above here prevents an object entering into the current
5211 % box, which could confound checks such as those in \safewhatsit for 5211 % box, which could confound checks such as those in \safewhatsit for
5212 % preceding skips. 5212 % preceding skips.
5213 \typeout{Writing index file \jobname.\suffix}% 5213 \typeout{Writing index file \jobname.\suffix}%
@@ -5259,7 +5259,7 @@ end
5259 \ifx\segment\isfinish 5259 \ifx\segment\isfinish
5260 \else 5260 \else
5261 % 5261 %
5262 % Fully expand the segment, throwing away any @sortas directives, and 5262 % Fully expand the segment, throwing away any @sortas directives, and
5263 % trim spaces. 5263 % trim spaces.
5264 \edef\trimmed{\segment}% 5264 \edef\trimmed{\segment}%
5265 \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}% 5265 \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
@@ -5317,12 +5317,12 @@ end
5317% the current value of \escapechar. 5317% the current value of \escapechar.
5318\def\escapeisbackslash{\escapechar=`\\} 5318\def\escapeisbackslash{\escapechar=`\\}
5319 5319
5320% Use \ in index files by default. texi2dvi didn't support @ as the escape 5320% Use \ in index files by default. texi2dvi didn't support @ as the escape
5321% character (as it checked for "\entry" in the files, and not "@entry"). When 5321% character (as it checked for "\entry" in the files, and not "@entry"). When
5322% the new version of texi2dvi has had a chance to become more prevalent, then 5322% the new version of texi2dvi has had a chance to become more prevalent, then
5323% the escape character can change back to @ again. This should be an easy 5323% the escape character can change back to @ again. This should be an easy
5324% change to make now because both @ and \ are only used as escape characters in 5324% change to make now because both @ and \ are only used as escape characters in
5325% index files, never standing for themselves. 5325% index files, never standing for themselves.
5326% 5326%
5327\set txiindexescapeisbackslash 5327\set txiindexescapeisbackslash
5328 5328
@@ -5342,7 +5342,7 @@ end
5342 \def\}{\rbracechar{}}% 5342 \def\}{\rbracechar{}}%
5343 \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}% 5343 \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}%
5344 % 5344 %
5345 % Split the entry into primary entry and any subentries, and get the index 5345 % Split the entry into primary entry and any subentries, and get the index
5346 % sort key. 5346 % sort key.
5347 \splitindexentry\indextext 5347 \splitindexentry\indextext
5348 % 5348 %
@@ -5523,18 +5523,18 @@ end
5523 \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1 5523 \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
5524 \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax 5524 \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax
5525\errmessage{% 5525\errmessage{%
5526ERROR: A sorted index file in an obsolete format was skipped. 5526ERROR: A sorted index file in an obsolete format was skipped.
5527To fix this problem, please upgrade your version of 'texi2dvi' 5527To fix this problem, please upgrade your version of 'texi2dvi'
5528or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>. 5528or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>.
5529If you are using an old version of 'texindex' (part of the Texinfo 5529If you are using an old version of 'texindex' (part of the Texinfo
5530distribution), you may also need to upgrade to a newer version (at least 6.0). 5530distribution), you may also need to upgrade to a newer version (at least 6.0).
5531You may be able to typeset the index if you run 5531You may be able to typeset the index if you run
5532'texindex \jobname.\indexname' yourself. 5532'texindex \jobname.\indexname' yourself.
5533You could also try setting the 'txiindexescapeisbackslash' flag by 5533You could also try setting the 'txiindexescapeisbackslash' flag by
5534running a command like 5534running a command like
5535'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do 5535'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do
5536this, Texinfo will try to use index files in the old format. 5536this, Texinfo will try to use index files in the old format.
5537If you continue to have problems, deleting the index files and starting again 5537If you continue to have problems, deleting the index files and starting again
5538might help (with 'rm \jobname.?? \jobname.??s')% 5538might help (with 'rm \jobname.?? \jobname.??s')%
5539}% 5539}%
5540 \else 5540 \else
@@ -5603,7 +5603,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
5603 % bottom of a column to reduce an increase in inter-line spacing. 5603 % bottom of a column to reduce an increase in inter-line spacing.
5604 \nobreak 5604 \nobreak
5605 \vskip 0pt plus 5\baselineskip 5605 \vskip 0pt plus 5\baselineskip
5606 \penalty -300 5606 \penalty -300
5607 \vskip 0pt plus -5\baselineskip 5607 \vskip 0pt plus -5\baselineskip
5608 % 5608 %
5609 % Typeset the initial. Making this add up to a whole number of 5609 % Typeset the initial. Making this add up to a whole number of
@@ -5719,7 +5719,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
5719 \advance\dimen@ii by 1\dimen@i 5719 \advance\dimen@ii by 1\dimen@i
5720 \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line 5720 \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line
5721 \ifdim\dimen@ > 0.8\dimen@ii % due to long index text 5721 \ifdim\dimen@ > 0.8\dimen@ii % due to long index text
5722 % Try to split the text roughly evenly. \dimen@ will be the length of 5722 % Try to split the text roughly evenly. \dimen@ will be the length of
5723 % the first line. 5723 % the first line.
5724 \dimen@ = 0.7\dimen@ 5724 \dimen@ = 0.7\dimen@
5725 \dimen@ii = \hsize 5725 \dimen@ii = \hsize
@@ -5927,7 +5927,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
5927\newbox\balancedcolumns 5927\newbox\balancedcolumns
5928\setbox\balancedcolumns=\vbox{shouldnt see this}% 5928\setbox\balancedcolumns=\vbox{shouldnt see this}%
5929% 5929%
5930% Only called for the last of the double column material. \doublecolumnout 5930% Only called for the last of the double column material. \doublecolumnout
5931% does the others. 5931% does the others.
5932\def\balancecolumns{% 5932\def\balancecolumns{%
5933 \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120. 5933 \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120.
@@ -5955,7 +5955,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
5955 }% 5955 }%
5956 % Now the left column is in box 1, and the right column in box 3. 5956 % Now the left column is in box 1, and the right column in box 3.
5957 % 5957 %
5958 % Check whether the left column has come out higher than the page itself. 5958 % Check whether the left column has come out higher than the page itself.
5959 % (Note that we have doubled \vsize for the double columns, so 5959 % (Note that we have doubled \vsize for the double columns, so
5960 % the actual height of the page is 0.5\vsize). 5960 % the actual height of the page is 0.5\vsize).
5961 \ifdim2\ht1>\vsize 5961 \ifdim2\ht1>\vsize
@@ -6252,7 +6252,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
6252\let\top\unnumbered 6252\let\top\unnumbered
6253 6253
6254% Sections. 6254% Sections.
6255% 6255%
6256\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz 6256\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
6257\def\seczzz#1{% 6257\def\seczzz#1{%
6258 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 6258 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
@@ -6275,7 +6275,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
6275} 6275}
6276 6276
6277% Subsections. 6277% Subsections.
6278% 6278%
6279% normally calls numberedsubseczzz: 6279% normally calls numberedsubseczzz:
6280\outer\parseargdef\numberedsubsec{\numhead2{#1}} 6280\outer\parseargdef\numberedsubsec{\numhead2{#1}}
6281\def\numberedsubseczzz#1{% 6281\def\numberedsubseczzz#1{%
@@ -6300,7 +6300,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
6300} 6300}
6301 6301
6302% Subsubsections. 6302% Subsubsections.
6303% 6303%
6304% normally numberedsubsubseczzz: 6304% normally numberedsubsubseczzz:
6305\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} 6305\outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
6306\def\numberedsubsubseczzz#1{% 6306\def\numberedsubsubseczzz#1{%
@@ -7358,7 +7358,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7358 7358
7359% @indentedblock is like @quotation, but indents only on the left and 7359% @indentedblock is like @quotation, but indents only on the left and
7360% has no optional argument. 7360% has no optional argument.
7361% 7361%
7362\makedispenvdef{indentedblock}{\indentedblockstart} 7362\makedispenvdef{indentedblock}{\indentedblockstart}
7363% 7363%
7364\def\indentedblockstart{% 7364\def\indentedblockstart{%
@@ -7658,7 +7658,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7658% @deftypefnnewline on|off says whether the return type of typed functions 7658% @deftypefnnewline on|off says whether the return type of typed functions
7659% are printed on their own line. This affects @deftypefn, @deftypefun, 7659% are printed on their own line. This affects @deftypefn, @deftypefun,
7660% @deftypeop, and @deftypemethod. 7660% @deftypeop, and @deftypemethod.
7661% 7661%
7662\parseargdef\deftypefnnewline{% 7662\parseargdef\deftypefnnewline{%
7663 \def\temp{#1}% 7663 \def\temp{#1}%
7664 \ifx\temp\onword 7664 \ifx\temp\onword
@@ -7677,8 +7677,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7677% \dosubind {index}{topic}{subtopic} 7677% \dosubind {index}{topic}{subtopic}
7678% 7678%
7679% If SUBTOPIC is present, precede it with a space, and call \doind. 7679% If SUBTOPIC is present, precede it with a space, and call \doind.
7680% (At some time during the 20th century, this made a two-level entry in an 7680% (At some time during the 20th century, this made a two-level entry in an
7681% index such as the operation index. Nobody seemed to notice the change in 7681% index such as the operation index. Nobody seemed to notice the change in
7682% behaviour though.) 7682% behaviour though.)
7683\def\dosubind#1#2#3{% 7683\def\dosubind#1#2#3{%
7684 \def\thirdarg{#3}% 7684 \def\thirdarg{#3}%
@@ -7853,7 +7853,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7853 \tclose{\temp}% typeset the return type 7853 \tclose{\temp}% typeset the return type
7854 \ifrettypeownline 7854 \ifrettypeownline
7855 % put return type on its own line; prohibit line break following: 7855 % put return type on its own line; prohibit line break following:
7856 \hfil\vadjust{\nobreak}\break 7856 \hfil\vadjust{\nobreak}\break
7857 \else 7857 \else
7858 \space % type on same line, so just followed by a space 7858 \space % type on same line, so just followed by a space
7859 \fi 7859 \fi
@@ -8000,7 +8000,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8000 \scantokens{#1@comment}% 8000 \scantokens{#1@comment}%
8001 % 8001 %
8002 % The \comment is to remove the \newlinechar added by \scantokens, and 8002 % The \comment is to remove the \newlinechar added by \scantokens, and
8003 % can be noticed by \parsearg. Note \c isn't used because this means cedilla 8003 % can be noticed by \parsearg. Note \c isn't used because this means cedilla
8004 % in math mode. 8004 % in math mode.
8005} 8005}
8006 8006
@@ -8201,7 +8201,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8201% list to some hook where the argument is to be expanded. If there are 8201% list to some hook where the argument is to be expanded. If there are
8202% less than 10 arguments that hook is to be replaced by ##N where N 8202% less than 10 arguments that hook is to be replaced by ##N where N
8203% is the position in that list, that is to say the macro arguments are to be 8203% is the position in that list, that is to say the macro arguments are to be
8204% defined `a la TeX in the macro body. 8204% defined `a la TeX in the macro body.
8205% 8205%
8206% That gets used by \mbodybackslash (above). 8206% That gets used by \mbodybackslash (above).
8207% 8207%
@@ -8232,8 +8232,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8232% 8232%
8233% Read recursive and nonrecursive macro bodies. (They're different since 8233% Read recursive and nonrecursive macro bodies. (They're different since
8234% rec and nonrec macros end differently.) 8234% rec and nonrec macros end differently.)
8235% 8235%
8236% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro 8236% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
8237% body to be transformed. 8237% body to be transformed.
8238% Set \macrobody to the body of the macro, and call \defmacro. 8238% Set \macrobody to the body of the macro, and call \defmacro.
8239% 8239%
@@ -8267,7 +8267,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8267% twice the \macarg.BLAH macros does not cost too much processing power. 8267% twice the \macarg.BLAH macros does not cost too much processing power.
8268\def\parsemmanyargdef@@#1,{% 8268\def\parsemmanyargdef@@#1,{%
8269 \if#1;\let\next=\relax 8269 \if#1;\let\next=\relax
8270 \else 8270 \else
8271 \let\next=\parsemmanyargdef@@ 8271 \let\next=\parsemmanyargdef@@
8272 \edef\tempb{\eatspaces{#1}}% 8272 \edef\tempb{\eatspaces{#1}}%
8273 \expandafter\def\expandafter\tempa 8273 \expandafter\def\expandafter\tempa
@@ -8352,7 +8352,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8352 8352
8353% Replace arguments by their values in the macro body, and place the result 8353% Replace arguments by their values in the macro body, and place the result
8354% in macro \@tempa. 8354% in macro \@tempa.
8355% 8355%
8356\def\macvalstoargs@{% 8356\def\macvalstoargs@{%
8357 % To do this we use the property that token registers that are \the'ed 8357 % To do this we use the property that token registers that are \the'ed
8358 % within an \edef expand only once. So we are going to place all argument 8358 % within an \edef expand only once. So we are going to place all argument
@@ -8376,9 +8376,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8376 \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% 8376 \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
8377 } 8377 }
8378 8378
8379% Define the named-macro outside of this group and then close this group. 8379% Define the named-macro outside of this group and then close this group.
8380% 8380%
8381\def\macargexpandinbody@{% 8381\def\macargexpandinbody@{%
8382 \expandafter 8382 \expandafter
8383 \endgroup 8383 \endgroup
8384 \macargdeflist@ 8384 \macargdeflist@
@@ -8416,7 +8416,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8416} 8416}
8417 8417
8418% Trailing missing arguments are set to empty. 8418% Trailing missing arguments are set to empty.
8419% 8419%
8420\def\setemptyargvalues@{% 8420\def\setemptyargvalues@{%
8421 \ifx\paramlist\nilm@ 8421 \ifx\paramlist\nilm@
8422 \let\next\macargexpandinbody@ 8422 \let\next\macargexpandinbody@
@@ -8493,7 +8493,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8493 \else % at most 9 8493 \else % at most 9
8494 \ifnum\paramno<10\relax 8494 \ifnum\paramno<10\relax
8495 % @MACNAME sets the context for reading the macro argument 8495 % @MACNAME sets the context for reading the macro argument
8496 % @MACNAME@@ gets the argument, processes backslashes and appends a 8496 % @MACNAME@@ gets the argument, processes backslashes and appends a
8497 % comma. 8497 % comma.
8498 % @MACNAME@@@ removes braces surrounding the argument list. 8498 % @MACNAME@@@ removes braces surrounding the argument list.
8499 % @MACNAME@@@@ scans the macro body with arguments substituted. 8499 % @MACNAME@@@@ scans the macro body with arguments substituted.
@@ -8537,11 +8537,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8537% Call #1 with a list of tokens #2, with any doubled backslashes in #2 8537% Call #1 with a list of tokens #2, with any doubled backslashes in #2
8538% compressed to one. 8538% compressed to one.
8539% 8539%
8540% This implementation works by expansion, and not execution (so we cannot use 8540% This implementation works by expansion, and not execution (so we cannot use
8541% \def or similar). This reduces the risk of this failing in contexts where 8541% \def or similar). This reduces the risk of this failing in contexts where
8542% complete expansion is done with no execution (for example, in writing out to 8542% complete expansion is done with no execution (for example, in writing out to
8543% an auxiliary file for an index entry). 8543% an auxiliary file for an index entry).
8544% 8544%
8545% State is kept in the input stream: the argument passed to 8545% State is kept in the input stream: the argument passed to
8546% @look_ahead, @gobble_and_check_finish and @add_segment is 8546% @look_ahead, @gobble_and_check_finish and @add_segment is
8547% 8547%
@@ -8563,11 +8563,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8563% #3 - NEXT_TOKEN 8563% #3 - NEXT_TOKEN
8564% #4 used to look ahead 8564% #4 used to look ahead
8565% 8565%
8566% If the next token is not a backslash, process the rest of the argument; 8566% If the next token is not a backslash, process the rest of the argument;
8567% otherwise, remove the next token. 8567% otherwise, remove the next token.
8568@gdef@look_ahead#1!#2#3#4{% 8568@gdef@look_ahead#1!#2#3#4{%
8569 @ifx#4\% 8569 @ifx#4\%
8570 @expandafter@gobble_and_check_finish 8570 @expandafter@gobble_and_check_finish
8571 @else 8571 @else
8572 @expandafter@add_segment 8572 @expandafter@add_segment
8573 @fi#1!{#2}#4#4% 8573 @fi#1!{#2}#4#4%
@@ -8591,9 +8591,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8591% #3 - NEXT_TOKEN 8591% #3 - NEXT_TOKEN
8592% #4 is input stream until next backslash 8592% #4 is input stream until next backslash
8593% 8593%
8594% Input stream is either at the start of the argument, or just after a 8594% Input stream is either at the start of the argument, or just after a
8595% backslash sequence, either a lone backslash, or a doubled backslash. 8595% backslash sequence, either a lone backslash, or a doubled backslash.
8596% NEXT_TOKEN contains the first token in the input stream: if it is \finish, 8596% NEXT_TOKEN contains the first token in the input stream: if it is \finish,
8597% finish; otherwise, append to ARG_RESULT the segment of the argument up until 8597% finish; otherwise, append to ARG_RESULT the segment of the argument up until
8598% the next backslash. PENDING_BACKSLASH contains a backslash to represent 8598% the next backslash. PENDING_BACKSLASH contains a backslash to represent
8599% a backslash just before the start of the input stream that has not been 8599% a backslash just before the start of the input stream that has not been
@@ -8605,13 +8605,13 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8605 % append the pending backslash to the result, followed by the next segment 8605 % append the pending backslash to the result, followed by the next segment
8606 @expandafter@is_fi@look_ahead#1#2#4!{\}@fi 8606 @expandafter@is_fi@look_ahead#1#2#4!{\}@fi
8607 % this @fi is discarded by @look_ahead. 8607 % this @fi is discarded by @look_ahead.
8608 % we can't get rid of it with \expandafter because we don't know how 8608 % we can't get rid of it with \expandafter because we don't know how
8609 % long #4 is. 8609 % long #4 is.
8610} 8610}
8611 8611
8612% #1 - THE_MACRO 8612% #1 - THE_MACRO
8613% #2 - ARG_RESULT 8613% #2 - ARG_RESULT
8614% #3 discards the res of the conditional in @add_segment, and @is_fi ends the 8614% #3 discards the res of the conditional in @add_segment, and @is_fi ends the
8615% conditional. 8615% conditional.
8616@gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}} 8616@gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}}
8617 8617
@@ -8623,7 +8623,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8623% for reading the argument (slightly different in the two cases). Then, 8623% for reading the argument (slightly different in the two cases). Then,
8624% to read the argument, in the whole-line case, it then calls the regular 8624% to read the argument, in the whole-line case, it then calls the regular
8625% \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC. 8625% \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC.
8626% 8626%
8627\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} 8627\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
8628\def\braceorlinexxx{% 8628\def\braceorlinexxx{%
8629 \ifx\nchar\bgroup 8629 \ifx\nchar\bgroup
@@ -8677,7 +8677,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8677 8677
8678% Used so that the @top node doesn't have to be wrapped in an @ifnottex 8678% Used so that the @top node doesn't have to be wrapped in an @ifnottex
8679% conditional. 8679% conditional.
8680% \doignore goes to more effort to skip nested conditionals but we don't need 8680% \doignore goes to more effort to skip nested conditionals but we don't need
8681% that here. 8681% that here.
8682\def\omittopnode{% 8682\def\omittopnode{%
8683 \ifx\lastnode\wordTop 8683 \ifx\lastnode\wordTop
@@ -8685,7 +8685,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8685} 8685}
8686\def\wordTop{Top} 8686\def\wordTop{Top}
8687 8687
8688% Until the next @node or @bye command, divert output to a box that is not 8688% Until the next @node or @bye command, divert output to a box that is not
8689% output. 8689% output.
8690\def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}% 8690\def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}%
8691\ignorenodebye 8691\ignorenodebye
@@ -8752,7 +8752,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8752% automatically in xrefs, if the third arg is not explicitly specified. 8752% automatically in xrefs, if the third arg is not explicitly specified.
8753% This was provided as a "secret" @set xref-automatic-section-title 8753% This was provided as a "secret" @set xref-automatic-section-title
8754% variable, now it's official. 8754% variable, now it's official.
8755% 8755%
8756\parseargdef\xrefautomaticsectiontitle{% 8756\parseargdef\xrefautomaticsectiontitle{%
8757 \def\temp{#1}% 8757 \def\temp{#1}%
8758 \ifx\temp\onword 8758 \ifx\temp\onword
@@ -8768,7 +8768,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8768 \fi\fi 8768 \fi\fi
8769} 8769}
8770 8770
8771% 8771%
8772% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is 8772% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
8773% the node name, #2 the name of the Info cross-reference, #3 the printed 8773% the node name, #2 the name of the Info cross-reference, #3 the printed
8774% node name, #4 the name of the Info file, #5 the name of the printed 8774% node name, #4 the name of the Info file, #5 the name of the printed
@@ -8921,24 +8921,24 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8921 \fi 8921 \fi
8922 \else 8922 \else
8923 % node/anchor (non-float) references. 8923 % node/anchor (non-float) references.
8924 % 8924 %
8925 % If we use \unhbox to print the node names, TeX does not insert 8925 % If we use \unhbox to print the node names, TeX does not insert
8926 % empty discretionaries after hyphens, which means that it will not 8926 % empty discretionaries after hyphens, which means that it will not
8927 % find a line break at a hyphen in a node names. Since some manuals 8927 % find a line break at a hyphen in a node names. Since some manuals
8928 % are best written with fairly long node names, containing hyphens, 8928 % are best written with fairly long node names, containing hyphens,
8929 % this is a loss. Therefore, we give the text of the node name 8929 % this is a loss. Therefore, we give the text of the node name
8930 % again, so it is as if TeX is seeing it for the first time. 8930 % again, so it is as if TeX is seeing it for the first time.
8931 % 8931 %
8932 \ifdim \wd\printedmanualbox > 0pt 8932 \ifdim \wd\printedmanualbox > 0pt
8933 % Cross-manual reference with a printed manual name. 8933 % Cross-manual reference with a printed manual name.
8934 % 8934 %
8935 \crossmanualxref{\cite{\printedmanual\unskip}}% 8935 \crossmanualxref{\cite{\printedmanual\unskip}}%
8936 % 8936 %
8937 \else\ifdim \wd\infofilenamebox > 0pt 8937 \else\ifdim \wd\infofilenamebox > 0pt
8938 % Cross-manual reference with only an info filename (arg 4), no 8938 % Cross-manual reference with only an info filename (arg 4), no
8939 % printed manual name (arg 5). This is essentially the same as 8939 % printed manual name (arg 5). This is essentially the same as
8940 % the case above; we output the filename, since we have nothing else. 8940 % the case above; we output the filename, since we have nothing else.
8941 % 8941 %
8942 \crossmanualxref{\code{\infofilename\unskip}}% 8942 \crossmanualxref{\code{\infofilename\unskip}}%
8943 % 8943 %
8944 \else 8944 \else
@@ -8978,20 +8978,20 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8978\endgroup} 8978\endgroup}
8979 8979
8980% Output a cross-manual xref to #1. Used just above (twice). 8980% Output a cross-manual xref to #1. Used just above (twice).
8981% 8981%
8982% Only include the text "Section ``foo'' in" if the foo is neither 8982% Only include the text "Section ``foo'' in" if the foo is neither
8983% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply 8983% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply
8984% "see The Foo Manual", the idea being to refer to the whole manual. 8984% "see The Foo Manual", the idea being to refer to the whole manual.
8985% 8985%
8986% But, this being TeX, we can't easily compare our node name against the 8986% But, this being TeX, we can't easily compare our node name against the
8987% string "Top" while ignoring the possible spaces before and after in 8987% string "Top" while ignoring the possible spaces before and after in
8988% the input. By adding the arbitrary 7sp below, we make it much less 8988% the input. By adding the arbitrary 7sp below, we make it much less
8989% likely that a real node name would have the same width as "Top" (e.g., 8989% likely that a real node name would have the same width as "Top" (e.g.,
8990% in a monospaced font). Hopefully it will never happen in practice. 8990% in a monospaced font). Hopefully it will never happen in practice.
8991% 8991%
8992% For the same basic reason, we retypeset the "Top" at every 8992% For the same basic reason, we retypeset the "Top" at every
8993% reference, since the current font is indeterminate. 8993% reference, since the current font is indeterminate.
8994% 8994%
8995\def\crossmanualxref#1{% 8995\def\crossmanualxref#1{%
8996 \setbox\toprefbox = \hbox{Top\kern7sp}% 8996 \setbox\toprefbox = \hbox{Top\kern7sp}%
8997 \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% 8997 \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
@@ -9038,7 +9038,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9038 \fi\fi\fi 9038 \fi\fi\fi
9039} 9039}
9040 9040
9041% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX 9041% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX
9042% is output afterwards if non-empty. 9042% is output afterwards if non-empty.
9043\def\refx#1#2{% 9043\def\refx#1#2{%
9044 \requireauxfile 9044 \requireauxfile
@@ -9070,9 +9070,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9070 #2% Output the suffix in any case. 9070 #2% Output the suffix in any case.
9071} 9071}
9072 9072
9073% This is the macro invoked by entries in the aux file. Define a control 9073% This is the macro invoked by entries in the aux file. Define a control
9074% sequence for a cross-reference target (we prepend XR to the control sequence 9074% sequence for a cross-reference target (we prepend XR to the control sequence
9075% name to avoid collisions). The value is the page number. If this is a float 9075% name to avoid collisions). The value is the page number. If this is a float
9076% type, we have more work to do. 9076% type, we have more work to do.
9077% 9077%
9078\def\xrdef#1#2{% 9078\def\xrdef#1#2{%
@@ -9088,10 +9088,10 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9088 \bgroup 9088 \bgroup
9089 \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% 9089 \expandafter\gdef\csname XR\safexrefname\endcsname{#2}%
9090 \egroup 9090 \egroup
9091 % We put the \gdef inside a group to avoid the definitions building up on 9091 % We put the \gdef inside a group to avoid the definitions building up on
9092 % TeX's save stack, which can cause it to run out of space for aux files with 9092 % TeX's save stack, which can cause it to run out of space for aux files with
9093 % thousands of lines. \gdef doesn't use the save stack, but \csname does 9093 % thousands of lines. \gdef doesn't use the save stack, but \csname does
9094 % when it defines an unknown control sequence as \relax. 9094 % when it defines an unknown control sequence as \relax.
9095 % 9095 %
9096 % Was that xref control sequence that we just defined for a float? 9096 % Was that xref control sequence that we just defined for a float?
9097 \expandafter\iffloat\csname XR\safexrefname\endcsname 9097 \expandafter\iffloat\csname XR\safexrefname\endcsname
@@ -9450,7 +9450,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9450 % 9450 %
9451 \ifimagevmode 9451 \ifimagevmode
9452 \medskip % space after a standalone image 9452 \medskip % space after a standalone image
9453 \fi 9453 \fi
9454 \ifx\centersub\centerV \egroup \fi 9454 \ifx\centersub\centerV \egroup \fi
9455\endgroup} 9455\endgroup}
9456 9456
@@ -10281,7 +10281,7 @@ directory should work if nowhere else does.}
10281 \uppercase{.} 10281 \uppercase{.}
10282 \endgroup 10282 \endgroup
10283 \else 10283 \else
10284 \errhelp = \EMsimple 10284 \errhelp = \EMsimple
10285 \errmessage{Unicode character U+#1 not supported, sorry}% 10285 \errmessage{Unicode character U+#1 not supported, sorry}%
10286 \fi 10286 \fi
10287 \else 10287 \else
@@ -10314,7 +10314,7 @@ directory should work if nowhere else does.}
10314 \countUTFz = "#1\relax 10314 \countUTFz = "#1\relax
10315 \begingroup 10315 \begingroup
10316 \parseXMLCharref 10316 \parseXMLCharref
10317 10317
10318 % Give \u8:... its definition. The sequence of seven \expandafter's 10318 % Give \u8:... its definition. The sequence of seven \expandafter's
10319 % expands after the \gdef three times, e.g. 10319 % expands after the \gdef three times, e.g.
10320 % 10320 %
@@ -10326,7 +10326,7 @@ directory should work if nowhere else does.}
10326 \expandafter\expandafter 10326 \expandafter\expandafter
10327 \expandafter\expandafter 10327 \expandafter\expandafter
10328 \expandafter\gdef \UTFviiiTmp{#2}% 10328 \expandafter\gdef \UTFviiiTmp{#2}%
10329 % 10329 %
10330 \expandafter\ifx\csname uni:#1\endcsname \relax \else 10330 \expandafter\ifx\csname uni:#1\endcsname \relax \else
10331 \message{Internal error, already defined: #1}% 10331 \message{Internal error, already defined: #1}%
10332 \fi 10332 \fi
@@ -10365,7 +10365,7 @@ directory should work if nowhere else does.}
10365 \divide\countUTFz by 64 10365 \divide\countUTFz by 64
10366 \countUTFy = \countUTFz % Save to be the future value of \countUTFz. 10366 \countUTFy = \countUTFz % Save to be the future value of \countUTFz.
10367 \multiply\countUTFz by 64 10367 \multiply\countUTFz by 64
10368 10368
10369 % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract 10369 % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract
10370 % in order to get the last five bits. 10370 % in order to get the last five bits.
10371 \advance\countUTFx by -\countUTFz 10371 \advance\countUTFx by -\countUTFz
@@ -10400,7 +10400,7 @@ directory should work if nowhere else does.}
10400% U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block) 10400% U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
10401% U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A 10401% U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
10402% U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B 10402% U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
10403% 10403%
10404% Many of our renditions are less than wonderful, and all the missing 10404% Many of our renditions are less than wonderful, and all the missing
10405% characters are available somewhere. Loading the necessary fonts 10405% characters are available somewhere. Loading the necessary fonts
10406% awaits user request. We can't truly support Unicode without 10406% awaits user request. We can't truly support Unicode without
@@ -11438,9 +11438,9 @@ directory should work if nowhere else does.}
11438\def\texinfochars{% 11438\def\texinfochars{%
11439 \let< = \activeless 11439 \let< = \activeless
11440 \let> = \activegtr 11440 \let> = \activegtr
11441 \let~ = \activetilde 11441 \let~ = \activetilde
11442 \let^ = \activehat 11442 \let^ = \activehat
11443 \markupsetuplqdefault \markupsetuprqdefault 11443 \markupsetuplqdefault \markupsetuprqdefault
11444 \let\b = \strong 11444 \let\b = \strong
11445 \let\i = \smartitalic 11445 \let\i = \smartitalic
11446 % in principle, all other definitions in \tex have to be undone too. 11446 % in principle, all other definitions in \tex have to be undone too.
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index d48fa319fb2..e6a454be4c8 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -125,7 +125,7 @@ Configuring @value{tramp} for use
125* Connection types:: Types of connections to remote hosts. 125* Connection types:: Types of connections to remote hosts.
126* Inline methods:: Inline methods. 126* Inline methods:: Inline methods.
127* External methods:: External methods. 127* External methods:: External methods.
128* GVFS based methods:: GVFS based external methods. 128* GVFS-based methods:: @acronym{GVFS}-based external methods.
129* Default Method:: Selecting a default method. 129* Default Method:: Selecting a default method.
130* Default User:: Selecting a default user. 130* Default User:: Selecting a default user.
131* Default Host:: Selecting a default host. 131* Default Host:: Selecting a default host.
@@ -545,9 +545,9 @@ of the local file name is the share exported by the remote host,
545 545
546 546
547@anchor{Quick Start Guide: GVFS-based methods} 547@anchor{Quick Start Guide: GVFS-based methods}
548@section Using GVFS-based methods 548@section Using @acronym{GVFS}-based methods
549@cindex methods, gvfs 549@cindex methods, gvfs
550@cindex gvfs based methods 550@cindex gvfs-based methods
551@cindex method @option{sftp} 551@cindex method @option{sftp}
552@cindex @option{sftp} method 552@cindex @option{sftp} method
553@cindex method @option{afp} 553@cindex method @option{afp}
@@ -557,10 +557,9 @@ of the local file name is the share exported by the remote host,
557@cindex @option{dav} method 557@cindex @option{dav} method
558@cindex @option{davs} method 558@cindex @option{davs} method
559 559
560On systems, which have installed the virtual file system for the 560On systems, which have installed @acronym{GVFS, the GNOME Virtual File
561@acronym{GNOME} Desktop (GVFS), its offered methods could be used by 561System}, its offered methods could be used by @value{tramp}. Examples
562@value{tramp}. Examples are 562are @file{@trampfn{sftp,user@@host,/path/to/file}},
563@file{@trampfn{sftp,user@@host,/path/to/file}},
564@file{@trampfn{afp,user@@host,/path/to/file}} (accessing Apple's AFP 563@file{@trampfn{afp,user@@host,/path/to/file}} (accessing Apple's AFP
565file system), @file{@trampfn{dav,user@@host,/path/to/file}} and 564file system), @file{@trampfn{dav,user@@host,/path/to/file}} and
566@file{@trampfn{davs,user@@host,/path/to/file}} (for WebDAV shares). 565@file{@trampfn{davs,user@@host,/path/to/file}} (for WebDAV shares).
@@ -576,10 +575,10 @@ file system), @file{@trampfn{dav,user@@host,/path/to/file}} and
576@cindex @option{nextcloud} method 575@cindex @option{nextcloud} method
577@cindex nextcloud 576@cindex nextcloud
578 577
579GVFS-based methods include also @acronym{GNOME} Online Accounts, which 578@acronym{GVFS}-based methods include also @acronym{GNOME} Online
580support the @option{Files} service. These are the Google Drive file 579Accounts, which support the @option{Files} service. These are the
581system, and the OwnCloud/NextCloud file system. The file name syntax 580Google Drive file system, and the OwnCloud/NextCloud file system. The
582is here always 581file name syntax is here always
583@file{@trampfn{gdrive,john.doe@@gmail.com,/path/to/file}} 582@file{@trampfn{gdrive,john.doe@@gmail.com,/path/to/file}}
584(@samp{john.doe@@gmail.com} stands here for your Google Drive 583(@samp{john.doe@@gmail.com} stands here for your Google Drive
585account), or @file{@trampfn{nextcloud,user@@host#8081,/path/to/file}} 584account), or @file{@trampfn{nextcloud,user@@host#8081,/path/to/file}}
@@ -645,7 +644,7 @@ might be used in your init file:
645* Connection types:: Types of connections to remote hosts. 644* Connection types:: Types of connections to remote hosts.
646* Inline methods:: Inline methods. 645* Inline methods:: Inline methods.
647* External methods:: External methods. 646* External methods:: External methods.
648* GVFS based methods:: GVFS based external methods. 647* GVFS-based methods:: @acronym{GVFS}-based external methods.
649* Default Method:: Selecting a default method. 648* Default Method:: Selecting a default method.
650 Here we also try to help those who 649 Here we also try to help those who
651 don't have the foggiest which method 650 don't have the foggiest which method
@@ -1170,8 +1169,8 @@ information}. Supported properties are @samp{mount-args},
1170@samp{copyto-args} and @samp{moveto-args}. 1169@samp{copyto-args} and @samp{moveto-args}.
1171 1170
1172Access via @option{rclone} is slow. If you have an alternative method 1171Access via @option{rclone} is slow. If you have an alternative method
1173for accessing the system storage, you shall prefer this. @ref{GVFS 1172for accessing the system storage, you shall prefer this.
1174based methods} for example, methods @option{gdrive} and 1173@ref{GVFS-based methods} for example, methods @option{gdrive} and
1175@option{nextcloud}. 1174@option{nextcloud}.
1176 1175
1177@strong{Note}: The @option{rclone} method is experimental, don't use 1176@strong{Note}: The @option{rclone} method is experimental, don't use
@@ -1180,20 +1179,20 @@ it in production systems!
1180@end table 1179@end table
1181 1180
1182 1181
1183@node GVFS based methods 1182@node GVFS-based methods
1184@section GVFS based external methods 1183@section @acronym{GVFS}-based external methods
1185@cindex methods, gvfs 1184@cindex methods, gvfs
1186@cindex gvfs based methods 1185@cindex gvfs-based methods
1187@cindex dbus 1186@cindex dbus
1188 1187
1189GVFS is the virtual file system for the @acronym{GNOME} Desktop, 1188@acronym{GVFS} is the virtual file system for the @acronym{GNOME}
1190@uref{https://en.wikipedia.org/wiki/GVFS}. Remote files on GVFS are 1189Desktop, @uref{https://en.wikipedia.org/wiki/GVFS}. Remote files on
1191mounted locally through FUSE and @value{tramp} uses this locally 1190@acronym{GVFS} are mounted locally through FUSE and @value{tramp} uses
1192mounted directory internally. 1191this locally mounted directory internally.
1193 1192
1194Emacs uses the D-Bus mechanism to communicate with GVFS@. Emacs must 1193Emacs uses the D-Bus mechanism to communicate with @acronym{GVFS}@.
1195have the message bus system, D-Bus integration active, @pxref{Top, , 1194Emacs must have the message bus system, D-Bus integration active,
1196D-Bus, dbus}. 1195@pxref{Top, , D-Bus, dbus}.
1197 1196
1198@table @asis 1197@table @asis
1199@item @option{afp} 1198@item @option{afp}
@@ -1216,9 +1215,10 @@ syntax requires a leading volume (share) name, for example:
1216based on standard protocols, such as HTTP@. @option{davs} does the same 1215based on standard protocols, such as HTTP@. @option{davs} does the same
1217but with SSL encryption. Both methods support the port numbers. 1216but with SSL encryption. Both methods support the port numbers.
1218 1217
1219Paths being part of the WebDAV volume to be mounted by GVFS, as it is 1218Paths being part of the WebDAV volume to be mounted by @acronym{GVFS},
1220common for OwnCloud or NextCloud file names, are not supported by 1219as it is common for OwnCloud or NextCloud file names, are not
1221these methods. See method @option{nextcloud} for handling them. 1220supported by these methods. See method @option{nextcloud} for
1221handling them.
1222 1222
1223@item @option{gdrive} 1223@item @option{gdrive}
1224@cindex method @option{gdrive} 1224@cindex method @option{gdrive}
@@ -1259,18 +1259,19 @@ that for security reasons refuse @command{ssh} connections.
1259@end table 1259@end table
1260 1260
1261@defopt tramp-gvfs-methods 1261@defopt tramp-gvfs-methods
1262This user option is a list of external methods for GVFS@. By default, 1262This user option is a list of external methods for @acronym{GVFS}@.
1263this list includes @option{afp}, @option{dav}, @option{davs}, 1263By default, this list includes @option{afp}, @option{dav},
1264@option{gdrive}, @option{nextcloud} and @option{sftp}. Other methods 1264@option{davs}, @option{gdrive}, @option{nextcloud} and @option{sftp}.
1265to include are @option{ftp}, @option{http}, @option{https} and 1265Other methods to include are @option{ftp}, @option{http},
1266@option{smb}. These methods are not intended to be used directly as 1266@option{https} and @option{smb}. These methods are not intended to be
1267GVFS based method. Instead, they are added here for the benefit of 1267used directly as @acronym{GVFS}-based method. Instead, they are added
1268@ref{Archive file names}. 1268here for the benefit of @ref{Archive file names}.
1269 1269
1270If you want to use GVFS-based @option{ftp} or @option{smb} methods, 1270If you want to use @acronym{GVFS}-based @option{ftp} or @option{smb}
1271you must add them to @code{tramp-gvfs-methods}, and you must disable 1271methods, you must add them to @code{tramp-gvfs-methods}, and you must
1272the corresponding Tramp package by setting @code{tramp-ftp-method} or 1272disable the corresponding Tramp package by setting
1273@code{tramp-smb-method} to @code{nil}, respectively: 1273@code{tramp-ftp-method} or @code{tramp-smb-method} to @code{nil},
1274respectively:
1274 1275
1275@lisp 1276@lisp
1276@group 1277@group
@@ -2937,9 +2938,10 @@ host when the variable @code{default-directory} is remote:
2937@end group 2938@end group
2938@end lisp 2939@end lisp
2939 2940
2940Remote processes do not apply to GVFS (see @ref{GVFS based methods}) 2941Remote processes do not apply to @acronym{GVFS} (see @ref{GVFS-based
2941because the remote file system is mounted on the local host and 2942methods}) because the remote file system is mounted on the local host
2942@value{tramp} just accesses by changing the @code{default-directory}. 2943and @value{tramp} just accesses by changing the
2944@code{default-directory}.
2943 2945
2944@value{tramp} starts a remote process when a command is executed in a 2946@value{tramp} starts a remote process when a command is executed in a
2945remote file or directory buffer. As of now, these packages have been 2947remote file or directory buffer. As of now, these packages have been
@@ -3323,10 +3325,10 @@ killing all buffers related to remote connections.
3323@cindex archive method 3325@cindex archive method
3324 3326
3325@value{tramp} offers also transparent access to files inside file 3327@value{tramp} offers also transparent access to files inside file
3326archives. This is possible only on machines which have installed the 3328archives. This is possible only on machines which have installed
3327virtual file system for the @acronym{GNOME} Desktop (GVFS), @ref{GVFS 3329@acronym{GVFS, the GNOME Virtual File System}, @ref{GVFS-based
3328based methods}. Internally, file archives are mounted via the GVFS 3330methods}. Internally, file archives are mounted via the
3329@option{archive} method. 3331@acronym{GVFS} @option{archive} method.
3330 3332
3331A file archive is a regular file of kind @file{/path/to/dir/file.EXT}. 3333A file archive is a regular file of kind @file{/path/to/dir/file.EXT}.
3332The extension @samp{.EXT} identifies the type of the file archive. A 3334The extension @samp{.EXT} identifies the type of the file archive. A
@@ -3349,9 +3351,9 @@ file names as well.
3349 3351
3350@vindex tramp-archive-suffixes 3352@vindex tramp-archive-suffixes
3351File archives are identified by the file name extension @samp{.EXT}. 3353File archives are identified by the file name extension @samp{.EXT}.
3352Since GVFS uses internally the library @code{libarchive(3)}, all 3354Since @acronym{GVFS} uses internally the library @code{libarchive(3)},
3353suffixes, which are accepted by this library, work also for archive 3355all suffixes, which are accepted by this library, work also for
3354file names. Accepted suffixes are listed in the constant 3356archive file names. Accepted suffixes are listed in the constant
3355@code{tramp-archive-suffixes}. They are 3357@code{tramp-archive-suffixes}. They are
3356 3358
3357@itemize 3359@itemize
@@ -3519,11 +3521,11 @@ row are possible, like @file{/path/to/dir/file.tar.gz.uu/dir/file}.
3519@vindex tramp-archive-all-gvfs-methods 3521@vindex tramp-archive-all-gvfs-methods
3520An archive file name could be a remote file name, as in 3522An archive file name could be a remote file name, as in
3521@file{/ftp:anonymous@@ftp.gnu.org:/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL}. 3523@file{/ftp:anonymous@@ftp.gnu.org:/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL}.
3522Since all file operations are mapped internally to GVFS operations, 3524Since all file operations are mapped internally to @acronym{GVFS}
3523remote file names supported by @code{tramp-gvfs} perform better, 3525operations, remote file names supported by @code{tramp-gvfs} perform
3524because no local copy of the file archive must be downloaded first. 3526better, because no local copy of the file archive must be downloaded
3525For example, @samp{/sftp:user@@host:...} performs better than the 3527first. For example, @samp{/sftp:user@@host:...} performs better than
3526similar @samp{/scp:user@@host:...}. See the constant 3528the similar @samp{/scp:user@@host:...}. See the constant
3527@code{tramp-archive-all-gvfs-methods} for a complete list of 3529@code{tramp-archive-all-gvfs-methods} for a complete list of
3528@code{tramp-gvfs} supported method names. 3530@code{tramp-gvfs} supported method names.
3529 3531
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index 0cdfcac24e8..bad7701daf1 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -1267,7 +1267,8 @@ files, etc.
1267 1267
1268The default value specifies a subdirectory named @file{url/} in the 1268The default value specifies a subdirectory named @file{url/} in the
1269standard Emacs user data directory specified by the variable 1269standard Emacs user data directory specified by the variable
1270@code{user-emacs-directory} (normally @file{~/.emacs.d}). However, 1270@code{user-emacs-directory} (normally @file{~/.config/emacs}
1271or @file{~/.emacs.d}). However,
1271the old default was @file{~/.url}, and this directory is used instead 1272the old default was @file{~/.url}, and this directory is used instead
1272if it exists. 1273if it exists.
1273@end defopt 1274@end defopt