aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2018-02-16 09:44:04 -0800
committerGlenn Morris2018-02-16 09:44:04 -0800
commit47106da23ac2b19ad994eed95cdcb0d33535281d (patch)
tree689994b90ebbf6d8567d3143aad15a8fec251179
parent4ba32858d61eee16f17b51aca01c15211a0912f8 (diff)
parenta06a8ed5b66883202ae7182471570dfcabcea973 (diff)
downloademacs-47106da23ac2b19ad994eed95cdcb0d33535281d.tar.gz
emacs-47106da23ac2b19ad994eed95cdcb0d33535281d.zip
Merge from origin/emacs-26
a06a8ed (origin/emacs-26) ; * lisp/vc/vc-git.el (vc-git--program-vers... edc06ad Make 'byte-compile-error-on-warn' a safe file variable 9f5d8da ; * lisp/textmodes/flyspell.el (flyspell-auto-correct-word): ... f73905a Fix the doc string of flyspell-auto-correct-word e9c7ddc Improve the MS-Windows appendix of the Emacs manual 6ddb4bd Fix 'vc-git--program-version' 63c93f7 Fix typos and wording in the Emacs manual 42f15b0 * doc/emacs/programs.texi (Semantic): Order programming langu... b46be29 More improvements for the Emacs manual 874c0ed Minor wording change in Emacs manual 53511f9 Another set of changes for the manual 78426b8 Improvements on tramp.texi 0dca618 Tramp minor doc fixes Conflicts: doc/misc/tramp.texi
-rw-r--r--doc/emacs/building.texi10
-rw-r--r--doc/emacs/custom.texi8
-rw-r--r--doc/emacs/dired.texi9
-rw-r--r--doc/emacs/files.texi11
-rw-r--r--doc/emacs/fortran-xtra.texi42
-rw-r--r--doc/emacs/help.texi2
-rw-r--r--doc/emacs/killing.texi2
-rw-r--r--doc/emacs/maintaining.texi2
-rw-r--r--doc/emacs/msdos.texi116
-rw-r--r--doc/emacs/programs.texi159
-rw-r--r--doc/emacs/regs.texi2
-rw-r--r--doc/emacs/search.texi4
-rw-r--r--doc/emacs/text.texi8
-rw-r--r--doc/emacs/windows.texi2
-rw-r--r--doc/lispref/display.texi21
-rw-r--r--doc/misc/tramp.texi122
-rw-r--r--lisp/emacs-lisp/bytecomp.el5
-rw-r--r--lisp/textmodes/flyspell.el5
-rw-r--r--lisp/vc/vc-git.el7
19 files changed, 322 insertions, 215 deletions
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 878d2f53d53..b6b664ddb39 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -649,7 +649,7 @@ Set a breakpoint on the source line that point is on.
649buffer, sets a debugger breakpoint on the current source line. This 649buffer, sets a debugger breakpoint on the current source line. This
650command is available only after starting GUD@. If you call it in a 650command is available only after starting GUD@. If you call it in a
651buffer that is not associated with any debugger subprocess, it signals 651buffer that is not associated with any debugger subprocess, it signals
652a error. 652an error.
653 653
654@kindex C-x C-a @r{(GUD)} 654@kindex C-x C-a @r{(GUD)}
655 The following commands are available both in the GUD interaction 655 The following commands are available both in the GUD interaction
@@ -1096,9 +1096,9 @@ display the corresponding buffer in a new frame.
1096 When you create a buffer showing information about some specific 1096 When you create a buffer showing information about some specific
1097thread, it becomes bound to that thread and keeps showing actual 1097thread, it becomes bound to that thread and keeps showing actual
1098information while you debug your program. The mode indicator for each 1098information while you debug your program. The mode indicator for each
1099GDB buffer shows the number of thread it is showing information about. 1099GDB buffer shows the number of the thread whose information that
1100The thread number is also included in the buffer name of bound 1100buffer displays. The thread number is also included in the name of
1101buffers. 1101each bound buffer.
1102 1102
1103 Further commands are available in the GDB Threads buffer which 1103 Further commands are available in the GDB Threads buffer which
1104depend on the mode of GDB that is used for controlling execution of 1104depend on the mode of GDB that is used for controlling execution of
@@ -1449,7 +1449,7 @@ buffer). To disable this feature, change the variable
1449@vindex load-dangerous-libraries 1449@vindex load-dangerous-libraries
1450@cindex Lisp files byte-compiled by XEmacs 1450@cindex Lisp files byte-compiled by XEmacs
1451 By default, Emacs refuses to load compiled Lisp files which were 1451 By default, Emacs refuses to load compiled Lisp files which were
1452compiled with XEmacs, a modified versions of Emacs---they can cause 1452compiled with XEmacs, a modified version of Emacs---they can cause
1453Emacs to crash. Set the variable @code{load-dangerous-libraries} to 1453Emacs to crash. Set the variable @code{load-dangerous-libraries} to
1454@code{t} if you want to try loading them. 1454@code{t} if you want to try loading them.
1455 1455
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index e27760b3796..2726690f09f 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -2567,11 +2567,3 @@ instance:
2567 2567
2568@noindent 2568@noindent
2569Type @kbd{C-q}, followed by the key you want to bind, to insert @var{char}. 2569Type @kbd{C-q}, followed by the key you want to bind, to insert @var{char}.
2570
2571 @strong{Warning:} if you change the keyboard encoding, or change
2572between multibyte and unibyte mode, or anything that would alter which
2573code @kbd{C-q} would insert for that character, this key binding may
2574stop working. It is therefore advisable to use one and only one
2575coding system, for your init file as well as the files you edit. For
2576example, don't mix the @samp{latin-1} and @samp{latin-9} coding
2577systems.
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 71aea90a46e..3fa35f14746 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -579,9 +579,10 @@ might be inconsistent with the file on disk if its contents have changed
579since it was last visited. If you don't want this, you may wish to 579since it was last visited. If you don't want this, you may wish to
580revert the files you have visited in your buffers, or to turn on 580revert the files you have visited in your buffers, or to turn on
581the @code{auto-revert} mode in those buffers, before invoking this 581the @code{auto-revert} mode in those buffers, before invoking this
582command. @xref{Reverting}. If you prefer that this command always revisit 582command. @xref{Reverting}. If you prefer that this command always
583the file, without having to revert the file or enable @code{auto-revert} 583revisits the file, without having to revert the file or enable
584mode, you might want to set @code{dired-always-read-filesystem} to non-@code{nil}. 584@code{auto-revert} mode, you might want to set
585@code{dired-always-read-filesystem} to non-@code{nil}.
585 586
586@item C-/ 587@item C-/
587@itemx C-x u 588@itemx C-x u
@@ -1184,7 +1185,7 @@ without having to remove the Dired marks on files in those
1184subdirectories. 1185subdirectories.
1185 1186
1186@xref{Subdirectories in Dired}, for how to insert a subdirectory 1187@xref{Subdirectories in Dired}, for how to insert a subdirectory
1187listing, and @pxref{Dired Updating} for how delete it. 1188listing, and see @ref{Dired Updating}, for how to delete it.
1188 1189
1189@node Dired Updating 1190@node Dired Updating
1190@section Updating the Dired Buffer 1191@section Updating the Dired Buffer
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 37d905690cd..bd772e9abc1 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -694,11 +694,12 @@ Otherwise, renaming is the default choice.
694 694
695 When a file is managed with a version control system (@pxref{Version 695 When a file is managed with a version control system (@pxref{Version
696Control}), Emacs does not normally make backups in the usual way for 696Control}), Emacs does not normally make backups in the usual way for
697that file. But check-in and check-out are similar in some ways to 697that file. But @dfn{committing} (a.k.a.@: @dfn{checking in},
698making backups. One unfortunate similarity is that these operations 698@pxref{VCS Concepts}) new versions of files is similar in some ways
699typically break hard links, disconnecting the file name you visited from 699to making backups. One unfortunate similarity is that these
700any alternate names for the same file. This has nothing to do with 700operations typically break hard links, disconnecting the file name you
701Emacs---the version control system does it. 701visited from any alternate names for the same file. This has nothing
702to do with Emacs---the version control system does it.
702 703
703@node Customize Save 704@node Customize Save
704@subsection Customizing Saving of Files 705@subsection Customizing Saving of Files
diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi
index 98ff8258dbe..859c6132436 100644
--- a/doc/emacs/fortran-xtra.texi
+++ b/doc/emacs/fortran-xtra.texi
@@ -158,11 +158,14 @@ the required columns.
158@item C-M-j 158@item C-M-j
159Break the current line at point and set up a continuation line 159Break the current line at point and set up a continuation line
160(@code{fortran-split-line}). 160(@code{fortran-split-line}).
161
161@item M-^ 162@item M-^
162Join this line to the previous line (@code{fortran-join-line}). 163Join this line to the previous line (@code{fortran-join-line}).
164
163@item C-M-q 165@item C-M-q
164Indent all the lines of the subprogram that point is in 166Indent all the lines of the subprogram that point is in
165(@code{fortran-indent-subprogram}). 167(@code{fortran-indent-subprogram}).
168
166@item M-q 169@item M-q
167Fill a comment block or statement (using @code{fortran-fill-paragraph} 170Fill a comment block or statement (using @code{fortran-fill-paragraph}
168or @code{fortran-fill-statement}). 171or @code{fortran-fill-statement}).
@@ -185,7 +188,7 @@ lines.
185@kindex M-^ @r{(Fortran mode)} 188@kindex M-^ @r{(Fortran mode)}
186@kindex C-c C-d @r{(Fortran mode)} 189@kindex C-c C-d @r{(Fortran mode)}
187@findex fortran-join-line 190@findex fortran-join-line
188 @kbd{M-^} or @kbd{C-c C-d} runs the command @code{fortran-join-line}, 191 @kbd{M-^} or @kbd{C-c C-d} run the command @code{fortran-join-line},
189which joins a continuation line back to the previous line, roughly as 192which joins a continuation line back to the previous line, roughly as
190the inverse of @code{fortran-split-line}. The point must be on a 193the inverse of @code{fortran-split-line}. The point must be on a
191continuation line when this command is invoked. 194continuation line when this command is invoked.
@@ -203,7 +206,9 @@ point is in. This removes any excess statement continuations.
203If the first non-space character on a line is in column 5, then that 206If the first non-space character on a line is in column 5, then that
204line is a continuation of the previous line. We call this @dfn{fixed 207line is a continuation of the previous line. We call this @dfn{fixed
205form}. (In GNU Emacs we always count columns from 0; but note that 208form}. (In GNU Emacs we always count columns from 0; but note that
206the Fortran standard counts from 1.) The variable 209the Fortran standard counts from 1. You can customize the variable
210@code{column-number-indicator-zero-based} to make the column display
211Fortran-like; @pxref{Optional Mode Line}.) The variable
207@code{fortran-continuation-string} specifies what character to put in 212@code{fortran-continuation-string} specifies what character to put in
208column 5. A line that starts with a tab character followed by any digit 213column 5. A line that starts with a tab character followed by any digit
209except @samp{0} is also a continuation line. We call this style of 214except @samp{0} is also a continuation line. We call this style of
@@ -229,10 +234,10 @@ accordingly.
229 If the text on a line starts with the Fortran continuation marker 234 If the text on a line starts with the Fortran continuation marker
230@samp{$}, or if it begins with any non-whitespace character in column 235@samp{$}, or if it begins with any non-whitespace character in column
2315, Fortran mode treats it as a continuation line. When you indent a 2365, Fortran mode treats it as a continuation line. When you indent a
232continuation line with @key{TAB}, it converts the line to the current 237continuation line with @kbd{@key{TAB}}, it converts the line to the
233continuation style. When you split a Fortran statement with 238current continuation style. When you split a Fortran statement with
234@kbd{C-M-j}, the continuation marker on the newline is created according 239@kbd{C-M-j}, the continuation marker on the newline is created
235to the continuation style. 240according to the continuation style.
236 241
237 The setting of continuation style affects several other aspects of 242 The setting of continuation style affects several other aspects of
238editing in Fortran mode. In fixed form mode, the minimum column 243editing in Fortran mode. In fixed form mode, the minimum column
@@ -247,7 +252,9 @@ column 8 must consist of one tab character.
247 252
248 If a number is the first non-whitespace in the line, Fortran 253 If a number is the first non-whitespace in the line, Fortran
249indentation assumes it is a line number and moves it to columns 0 254indentation assumes it is a line number and moves it to columns 0
250through 4. (Columns always count from 0 in Emacs.) 255through 4. (Columns always count from 0 in Emacs, but setting
256@code{column-number-indicator-zero-based} to @code{nil} can change
257that, @pxref{Optional Mode Line}.)
251 258
252@vindex fortran-line-number-indent 259@vindex fortran-line-number-indent
253 Line numbers of four digits or less are normally indented one space. 260 Line numbers of four digits or less are normally indented one space.
@@ -320,7 +327,7 @@ Extra indentation within each level of @samp{structure}, @samp{union},
320Extra indentation for bodies of continuation lines (default 5). 327Extra indentation for bodies of continuation lines (default 5).
321 328
322@item fortran-check-all-num-for-matching-do 329@item fortran-check-all-num-for-matching-do
323In Fortran 77, a numbered @samp{do} statement is ended by any statement 330In Fortran 77, a numbered @samp{do} statement is terminated by any statement
324with a matching line number. It is common (but not compulsory) to use a 331with a matching line number. It is common (but not compulsory) to use a
325@samp{continue} statement for this purpose. If this variable has a 332@samp{continue} statement for this purpose. If this variable has a
326non-@code{nil} value, indenting any numbered statement must check for a 333non-@code{nil} value, indenting any numbered statement must check for a
@@ -330,7 +337,7 @@ then you can speed up indentation by setting this variable to
330@code{nil} (the default). 337@code{nil} (the default).
331 338
332@item fortran-blink-matching-if 339@item fortran-blink-matching-if
333If this is @code{t}, indenting an @samp{endif} (or @samp{enddo} 340If this is @code{t}, indenting an @samp{endif} (or @samp{enddo})
334statement moves the cursor momentarily to the matching @samp{if} (or 341statement moves the cursor momentarily to the matching @samp{if} (or
335@samp{do}) statement to show where it is. The default is @code{nil}. 342@samp{do}) statement to show where it is. The default is @code{nil}.
336 343
@@ -386,7 +393,7 @@ Fortran mode as in other modes.
386 393
387 When a new comment must be inserted, if the current line is blank, a 394 When a new comment must be inserted, if the current line is blank, a
388full-line comment is inserted. On a non-blank line, a nonstandard @samp{!} 395full-line comment is inserted. On a non-blank line, a nonstandard @samp{!}
389comment is inserted if you have said you want to use them. Otherwise a 396comment is inserted if you have said you want to use them. Otherwise, a
390full-line comment is inserted on a new line before the current line. 397full-line comment is inserted on a new line before the current line.
391 398
392 Nonstandard @samp{!} comments are aligned like comments in other 399 Nonstandard @samp{!} comments are aligned like comments in other
@@ -434,7 +441,7 @@ distinctive font-locking.
434 441
435 The normal Emacs comment command @kbd{C-x ;} (@code{comment-set-column}) 442 The normal Emacs comment command @kbd{C-x ;} (@code{comment-set-column})
436has not been redefined. If you use @samp{!} comments, this command 443has not been redefined. If you use @samp{!} comments, this command
437can be used with them. Otherwise it is useless in Fortran mode. 444can be used with them. Otherwise, it is useless in Fortran mode.
438 445
439@kindex C-c ; @r{(Fortran mode)} 446@kindex C-c ; @r{(Fortran mode)}
440@findex fortran-comment-region 447@findex fortran-comment-region
@@ -457,9 +464,9 @@ minor mode that automatically splits statements as you insert them
457when they become too wide. Splitting a statement involves making 464when they become too wide. Splitting a statement involves making
458continuation lines using @code{fortran-continuation-string} 465continuation lines using @code{fortran-continuation-string}
459(@pxref{ForIndent Cont}). This splitting happens when you type 466(@pxref{ForIndent Cont}). This splitting happens when you type
460@key{SPC}, @key{RET}, or @key{TAB}, and also in the Fortran 467@kbd{@key{SPC}}, @kbd{@key{RET}}, or @kbd{@key{TAB}}, and also in the
461indentation commands. You activate Auto Fill in Fortran mode in the 468Fortran indentation commands. You activate Auto Fill in Fortran mode
462normal way. 469in the normal way.
463@iftex 470@iftex
464@xref{Auto Fill,,, emacs, the Emacs Manual}. 471@xref{Auto Fill,,, emacs, the Emacs Manual}.
465@end iftex 472@end iftex
@@ -501,15 +508,18 @@ will confuse font-lock.)
501@item C-c C-r 508@item C-c C-r
502Display a column ruler momentarily above the current line 509Display a column ruler momentarily above the current line
503(@code{fortran-column-ruler}). 510(@code{fortran-column-ruler}).
511
504@item C-c C-w 512@item C-c C-w
505Split the current window horizontally temporarily so that it is 513Split the current window horizontally temporarily so that it is
506@code{fortran-line-length} columns wide 514@code{fortran-line-length} columns wide
507(@code{fortran-window-create-momentarily}). This may help you avoid 515(@code{fortran-window-create-momentarily}). This may help you avoid
508making lines longer than the limit imposed by your Fortran compiler. 516making lines longer than the limit imposed by your Fortran compiler.
517
509@item C-u C-c C-w 518@item C-u C-c C-w
510Split the current window horizontally so that it is 519Split the current window horizontally so that it is
511@code{fortran-line-length} columns wide (@code{fortran-window-create}). 520@code{fortran-line-length} columns wide (@code{fortran-window-create}).
512You can then continue editing. 521You can then continue editing.
522
513@item M-x fortran-strip-sequence-nos 523@item M-x fortran-strip-sequence-nos
514Delete all text in column @code{fortran-line-length} and beyond. 524Delete all text in column @code{fortran-line-length} and beyond.
515@end table 525@end table
@@ -523,7 +533,9 @@ Fortran programs. Square brackets show the limits of the columns for line
523numbers, and curly brackets show the limits of the columns for the 533numbers, and curly brackets show the limits of the columns for the
524statement body. Column numbers appear above them. 534statement body. Column numbers appear above them.
525 535
526 Note that the column numbers count from zero, as always in GNU Emacs. 536 Note that the column numbers count from zero, as always in GNU Emacs
537(but customizing @code{column-number-indicator-zero-based} can change
538column display to match that of Fortran; @pxref{Optional Mode Line}).
527As a result, the numbers may be one less than those you are familiar 539As a result, the numbers may be one less than those you are familiar
528with; but the positions they indicate in the line are standard for 540with; but the positions they indicate in the line are standard for
529Fortran. 541Fortran.
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 2ed264258eb..6c093f13d05 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -642,7 +642,7 @@ Display information about where to get external packages
642@item C-h C-f 642@item C-h C-f
643Display the Emacs frequently-answered-questions list (@code{view-emacs-FAQ}). 643Display the Emacs frequently-answered-questions list (@code{view-emacs-FAQ}).
644@item C-h g 644@item C-h g
645Visit a @uref{https://www.gnu.org} page with information about the GNU 645Visit the @uref{https://www.gnu.org, page} with information about the GNU
646Project (@code{describe-gnu-project}). 646Project (@code{describe-gnu-project}).
647@item C-h C-m 647@item C-h C-m
648Display information about ordering printed copies of Emacs manuals 648Display information about ordering printed copies of Emacs manuals
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 3416db53f4e..19aa9077d70 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -675,7 +675,7 @@ use to alter a buffer, then point is always at the end.
675 675
676 @kbd{M-x prepend-to-buffer} is just like @code{append-to-buffer} 676 @kbd{M-x prepend-to-buffer} is just like @code{append-to-buffer}
677except that point in the other buffer is left before the copied text, so 677except that point in the other buffer is left before the copied text, so
678successive prependings add text in reverse order. @kbd{M-x 678successive uses of this command add text in reverse order. @kbd{M-x
679copy-to-buffer} is similar, except that any existing text in the other 679copy-to-buffer} is similar, except that any existing text in the other
680buffer is deleted, so the buffer is left containing just the text newly 680buffer is deleted, so the buffer is left containing just the text newly
681copied into it. 681copied into it.
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 127c27c0378..1234db84b2f 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -2203,7 +2203,7 @@ In Ada, the same name can be used for different kinds of entity
2203(e.g., for a procedure and for a function). Also, for things like 2203(e.g., for a procedure and for a function). Also, for things like
2204packages, procedures and functions, there is the spec (i.e., the 2204packages, procedures and functions, there is the spec (i.e., the
2205interface) and the body (i.e., the implementation). To make it 2205interface) and the body (i.e., the implementation). To make it
2206easier to pick the definition you want, Ada tag name have suffixes 2206easier to pick the definition you want, Ada tag names have suffixes
2207indicating the type of entity: 2207indicating the type of entity:
2208 2208
2209@table @samp 2209@table @samp
diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi
index dd368adb54a..2790d56e01c 100644
--- a/doc/emacs/msdos.texi
+++ b/doc/emacs/msdos.texi
@@ -69,6 +69,20 @@ right-click on the shortcut, select ``Properties'', and in the
69``Shortcut'' tab modify the ``Start in'' field to your liking. 69``Shortcut'' tab modify the ``Start in'' field to your liking.
70 70
71@item 71@item
72@cindex pinning Emacs to Windows task bar
73From a task-bar shortcut icon, by clicking once the left mouse button.
74Windows versions since Vista allow you to create such shortcuts by
75@dfn{pinning} the icon of a running program that appears in the task
76bar. You can do that with Emacs, but afterwards you will have to
77change the properties of the pinned shortcut to run
78@file{runemacs.exe}, @emph{not} of @file{emacs.exe}. You can also pin
79Emacs to the task bar by clicking the right mouse button on its icon
80in the Start menu, then selecting @samp{Pin to taskbar}. Once again,
81be sure to specify @file{runemacs.exe} as the program to run. You can
82control where Emacs starts by setting the ``Start in'' field of the
83shortcut's Properties.
84
85@item
72From the Command Prompt window, by typing @kbd{emacs @key{RET}} at the 86From the Command Prompt window, by typing @kbd{emacs @key{RET}} at the
73prompt. The Command Prompt window where you did that will not be 87prompt. The Command Prompt window where you did that will not be
74available for invoking other commands until Emacs exits. In this 88available for invoking other commands until Emacs exits. In this
@@ -81,6 +95,12 @@ immediately available for invoking other commands. In this case,
81Emacs will start in the current directory of the Windows shell. 95Emacs will start in the current directory of the Windows shell.
82 96
83@item 97@item
98From the Windows @code{Run} dialog (normally reached by clicking the
99@code{Start} button). Typing @kbd{runemacs @key{RET}} into the dialog
100will start Emacs in the parent directory of the Windows equivalent of
101your user's @code{HOME} directory, see @ref{Windows HOME}.
102
103@item
84@cindex invoking Emacs from Windows Explorer 104@cindex invoking Emacs from Windows Explorer
85@pindex emacsclient.exe 105@pindex emacsclient.exe
86@pindex emacsclientw.exe 106@pindex emacsclientw.exe
@@ -204,8 +224,8 @@ designates directory @file{\foo} on drive Z as an untranslated file
204system. 224system.
205 225
206 Most often you would use @code{add-untranslated-filesystem} in your 226 Most often you would use @code{add-untranslated-filesystem} in your
207@file{.emacs} file, or in @file{site-start.el} so that all the users at 227@file{.emacs} or @file{init.el} init file, or in @file{site-start.el}
208your site get the benefit of it. 228so that all the users at your site get the benefit of it.
209 229
210@findex remove-untranslated-filesystem 230@findex remove-untranslated-filesystem
211 To countermand the effect of @code{add-untranslated-filesystem}, use 231 To countermand the effect of @code{add-untranslated-filesystem}, use
@@ -215,8 +235,8 @@ previously with @code{add-untranslated-filesystem}.
215 235
216 Designating a file system as untranslated does not affect character 236 Designating a file system as untranslated does not affect character
217set conversion, only end-of-line conversion. Essentially, it directs 237set conversion, only end-of-line conversion. Essentially, it directs
218Emacs to create new files with the Unix-style convention of using 238Emacs to default to creating new files with the Unix-style convention
219newline at the end of a line. @xref{Coding Systems}. 239of using newline at the end of a line. @xref{Coding Systems}.
220 240
221@node Windows Files 241@node Windows Files
222@section File Names on MS-Windows 242@section File Names on MS-Windows
@@ -229,7 +249,9 @@ backslash, and also knows about drive letters in file names.
229 249
230@cindex file-name completion, on MS-Windows 250@cindex file-name completion, on MS-Windows
231 On MS-DOS/MS-Windows, file names are case-insensitive, so Emacs by 251 On MS-DOS/MS-Windows, file names are case-insensitive, so Emacs by
232default ignores letter-case in file names during completion. 252default ignores letter-case in file names during completion. To this
253end, the default value of @code{read-file-name-completion-ignore-case}
254is non-@code{nil} on MS-DOS/MS-Windows. @xref{Completion Options}.
233 255
234@vindex w32-get-true-file-attributes 256@vindex w32-get-true-file-attributes
235 The variable @code{w32-get-true-file-attributes} controls whether 257 The variable @code{w32-get-true-file-attributes} controls whether
@@ -311,9 +333,9 @@ it doesn't support all of them. Here's the list of the switches it
311does support: @option{-A}, @option{-a}, @option{-B}, @option{-C}, 333does support: @option{-A}, @option{-a}, @option{-B}, @option{-C},
312@option{-c}, @option{-G}, @option{-g}, @option{-h}, @option{-i}, @option{-n}, 334@option{-c}, @option{-G}, @option{-g}, @option{-h}, @option{-i}, @option{-n},
313@option{-R}, @option{-r}, @option{-S}, @option{-s}, @option{-t}, @option{-U}, 335@option{-R}, @option{-r}, @option{-S}, @option{-s}, @option{-t}, @option{-U},
314@option{-u}, and @option{-X}. The @option{-F} switch is partially 336@option{-u}, @option{v}, and @option{-X}. The @option{-F} switch is
315supported (it appends the character that classifies the file, but does 337partially supported (it appends the character that classifies the
316not prevent symlink following). 338file, but does not prevent symlink following).
317 339
318@vindex ls-lisp-use-insert-directory-program 340@vindex ls-lisp-use-insert-directory-program
319 On MS-Windows and MS-DOS, @file{ls-lisp.el} is preloaded when Emacs 341 On MS-Windows and MS-DOS, @file{ls-lisp.el} is preloaded when Emacs
@@ -323,6 +345,26 @@ platforms. If you have a ported @code{ls}, setting
323will revert to using an external program named by the variable 345will revert to using an external program named by the variable
324@code{insert-directory-program}. 346@code{insert-directory-program}.
325 347
348@cindex Dired sorting order, on MS-Windows/MS-DOS
349 The order in which @file{ls-lisp.el} sorts files depends on several
350customizable options described below.
351
352@vindex ls-lisp-use-string-collate
353 The default sorting order follows locale-specific rules derived from
354your system locale. You can make the order locale-independent by
355customizing @code{ls-lisp-use-string-collate} to a @code{nil} value.
356
357@cindex Unicode Collation Algorithm (UCA), and @file{ls-lisp.el}
358@vindex ls-lisp-UCA-like-collation
359 On GNU and Unix systems, when the locale's encoding is UTF-8, the
360collation order follows the Unicode Collation Algorithm
361(@acronym{UCA}). To have a similar effect on MS-Windows, the variable
362@code{ls-lisp-UCA-like-collation} should have a non-@code{nil} value
363(this is the default). The resulting sorting order ignores
364punctuation, symbol characters, and whitespace characters, so
365@file{.foobar}, @file{foobar} and @w{@file{foo bar}} will appear
366together rather than far apart.
367
326@vindex ls-lisp-ignore-case 368@vindex ls-lisp-ignore-case
327 By default, @file{ls-lisp.el} uses a case-sensitive sort order for 369 By default, @file{ls-lisp.el} uses a case-sensitive sort order for
328the directory listing it produces; this is so the listing looks the 370the directory listing it produces; this is so the listing looks the
@@ -371,10 +413,10 @@ Emulate macOS@. Sets @code{ls-lisp-ignore-case} to @code{t}, and
371@item MS-Windows 413@item MS-Windows
372Emulate MS-Windows. Sets @code{ls-lisp-ignore-case} and 414Emulate MS-Windows. Sets @code{ls-lisp-ignore-case} and
373@code{ls-lisp-dirs-first} to @code{t}, and @code{ls-lisp-verbosity} to 415@code{ls-lisp-dirs-first} to @code{t}, and @code{ls-lisp-verbosity} to
374@code{(links)} on Windows NT/2K/XP/2K3 and to @code{nil} on Windows 9X@. 416@code{nil} on Windows 9X and to @code{t} on modern versions of
375Note that the default emulation is @emph{not} @code{MS-Windows}, even 417Windows. Note that the default emulation is @emph{not}
376on Windows, since many users of Emacs on those platforms prefer the 418@code{MS-Windows}, even on Windows, since many users of Emacs on those
377@sc{gnu} defaults. 419platforms prefer the @sc{gnu} defaults.
378@end table 420@end table
379 421
380@noindent 422@noindent
@@ -421,6 +463,8 @@ formats file time stamps according to what
421@code{ls-lisp-format-time-list} specifies. The @samp{%}-sequences in 463@code{ls-lisp-format-time-list} specifies. The @samp{%}-sequences in
422@code{ls-lisp-format-time-list} produce locale-dependent month and day 464@code{ls-lisp-format-time-list} produce locale-dependent month and day
423names, which might cause misalignment of columns in Dired display. 465names, which might cause misalignment of columns in Dired display.
466The default value of @code{ls-lisp-use-localized-time-format} is
467@code{nil}.
424@end ifnottex 468@end ifnottex
425 469
426@node Windows HOME 470@node Windows HOME
@@ -453,7 +497,8 @@ default @code{HOME} location, and will not look in the application
453data directory, even if it exists. Note that only @file{.emacs} is 497data directory, even if it exists. Note that only @file{.emacs} is
454looked for in @file{C:\}; the older name @file{_emacs} (see below) is 498looked for in @file{C:\}; the older name @file{_emacs} (see below) is
455not. This use of @file{C:\.emacs} to define @code{HOME} is 499not. This use of @file{C:\.emacs} to define @code{HOME} is
456deprecated. 500deprecated; Emacs will display a warning about its use during
501startup.
457 502
458 Whatever the final place is, Emacs sets the internal value of the 503 Whatever the final place is, Emacs sets the internal value of the
459@env{HOME} environment variable to point to it, and it will use that 504@env{HOME} environment variable to point to it, and it will use that
@@ -467,15 +512,15 @@ first line. Likewise, to visit your init file, type @kbd{C-x C-f
467~/.emacs @key{RET}} (assuming the file's name is @file{.emacs}). 512~/.emacs @key{RET}} (assuming the file's name is @file{.emacs}).
468 513
469@cindex init file @file{.emacs} on MS-Windows 514@cindex init file @file{.emacs} on MS-Windows
470 The home directory is where your init file is stored. It can have 515 Your init file can have any name mentioned in @ref{Init File}.
471any name mentioned in @ref{Init File}.
472 516
473@cindex @file{_emacs} init file, MS-Windows 517@cindex @file{_emacs} init file, MS-Windows
474 Because MS-DOS does not allow file names with leading dots, and 518 Because MS-DOS does not allow file names with leading dots, and
475older Windows systems made it hard to create files with such names, 519older Windows systems made it hard to create files with such names,
476the Windows port of Emacs supports an init file name @file{_emacs}, if 520the Windows port of Emacs supports an init file name @file{_emacs}, if
477such a file exists in the home directory and @file{.emacs} does not. 521such a file exists in the home directory and @file{.emacs} does not.
478This name is considered obsolete. 522This name is considered obsolete, so Emacs will display a warning if
523it is used.
479 524
480@node Windows Keyboard 525@node Windows Keyboard
481@section Keyboard Usage on MS-Windows 526@section Keyboard Usage on MS-Windows
@@ -491,7 +536,9 @@ Emacs key bindings. (These Emacs key bindings were established years
491before Microsoft was founded.) Examples of conflicts include 536before Microsoft was founded.) Examples of conflicts include
492@kbd{C-c}, @kbd{C-x}, @kbd{C-z}, @kbd{C-a}, and @kbd{W-@key{SPC}}. 537@kbd{C-c}, @kbd{C-x}, @kbd{C-z}, @kbd{C-a}, and @kbd{W-@key{SPC}}.
493You can redefine some of them with meanings more like the MS-Windows 538You can redefine some of them with meanings more like the MS-Windows
494meanings by enabling CUA Mode (@pxref{CUA Bindings}). 539meanings by enabling CUA Mode (@pxref{CUA Bindings}). Another
540optional feature which will make Emacs behave like other Windows
541applications is Delete Selection mode (@pxref{Using Region}).
495 542
496@iftex 543@iftex
497@inforef{Windows Keyboard, , emacs}, for information about additional 544@inforef{Windows Keyboard, , emacs}, for information about additional
@@ -690,16 +737,14 @@ is non-@code{nil}, the roles of these two buttons are reversed.
690@cindex subprocesses on MS-Windows 737@cindex subprocesses on MS-Windows
691 738
692@cindex DOS applications, running from Emacs 739@cindex DOS applications, running from Emacs
693 Emacs compiled as a native Windows application (as opposed to the DOS 740 Emacs compiled as a native Windows application (as opposed to the
694version) includes full support for asynchronous subprocesses. 741DOS version) includes full support for asynchronous subprocesses. In
695In the Windows version, synchronous and asynchronous subprocesses work 742the Windows version, synchronous and asynchronous subprocesses work
696fine on both 743fine on all versions of MS-Windows, as long as you run only 32-bit or
697Windows 9X/ME and Windows NT/2K/XP/Vista/7/8/10 as long as you run 74464-bit Windows applications. However, when you run a DOS application
698only 32-bit or 64-bit Windows 745in a subprocess, you may encounter problems or be unable to run the
699applications. However, when you run a DOS application in a subprocess, 746application at all; and if you run two DOS applications at the same
700you may encounter problems or be unable to run the application at all; 747time in two subprocesses, you may have to reboot your system.
701and if you run two DOS applications at the same time in two
702subprocesses, you may have to reboot your system.
703 748
704Since the standard command interpreter (and most command line utilities) 749Since the standard command interpreter (and most command line utilities)
705on Windows 9X are DOS applications, these problems are significant when 750on Windows 9X are DOS applications, these problems are significant when
@@ -724,13 +769,13 @@ first one finishes, even if either or both of them are asynchronous.
724 769
725@cindex kill DOS application 770@cindex kill DOS application
726If you can go to the first subprocess, and tell it to exit, the second 771If you can go to the first subprocess, and tell it to exit, the second
727subprocess should continue normally. However, if the second subprocess 772subprocess should continue normally. However, if the second
728is synchronous, Emacs itself will be hung until the first subprocess 773subprocess is synchronous, Emacs itself will be hung until the first
729finishes. If it will not finish without user input, then you have no 774subprocess finishes. If it will not finish without user input, then
730choice but to reboot if you are running on Windows 9X@. If you are 775you have no choice but to reboot if you are running on Windows 9X@.
731running on Windows NT/2K/XP, you can use a process viewer application to kill 776If you are running on Windows NT and later, you can use a process
732the appropriate instance of NTVDM instead (this will terminate both DOS 777viewer application to kill the appropriate instance of NTVDM instead
733subprocesses). 778(this will terminate both DOS subprocesses).
734 779
735If you have to reboot Windows 9X in this situation, do not use the 780If you have to reboot Windows 9X in this situation, do not use the
736@code{Shutdown} command on the @code{Start} menu; that usually hangs the 781@code{Shutdown} command on the @code{Start} menu; that usually hangs the
@@ -1033,7 +1078,8 @@ the system default antialiasing.
1033@node Windows Misc 1078@node Windows Misc
1034@section Miscellaneous Windows-specific features 1079@section Miscellaneous Windows-specific features
1035 1080
1036 This section describes miscellaneous Windows-specific features. 1081 This section describes Windows-specific features that don't fit
1082anywhere else.
1037 1083
1038@vindex w32-use-visible-system-caret 1084@vindex w32-use-visible-system-caret
1039@cindex screen reader software, MS-Windows 1085@cindex screen reader software, MS-Windows
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index d7041a0beb4..d0aa6a03b51 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -73,23 +73,27 @@ mode for the C programming language is @code{c-mode}.
73@cindex Python mode 73@cindex Python mode
74@cindex Ruby mode 74@cindex Ruby mode
75@cindex Simula mode 75@cindex Simula mode
76@cindex Verilog mode
76@cindex VHDL mode 77@cindex VHDL mode
77@cindex M4 mode 78@cindex M4 mode
78@cindex Shell-script mode 79@cindex Shell-script mode
80@cindex Scheme mode
79@cindex OPascal mode 81@cindex OPascal mode
80@cindex PostScript mode 82@cindex PostScript mode
81@cindex Conf mode 83@cindex Conf mode
82@cindex DNS mode 84@cindex DNS mode
83@cindex Javascript mode 85@cindex Javascript mode
86@cindex Awk mode
84 Emacs has programming language modes for Lisp, Scheme, the 87 Emacs has programming language modes for Lisp, Scheme, the
85Scheme-based DSSSL expression language, Ada, ASM, AWK, C, C++, 88Scheme-based DSSSL expression language, Ada, ASM, AWK, C, C++,
86Fortran, Icon, IDL (CORBA), IDLWAVE, Java, Javascript, Metafont 89Fortran, Icon, IDL (CORBA), IDLWAVE, Java, Javascript, M4, Makefiles,
87(@TeX{}'s companion for font creation), Modula2, Object Pascal, Objective-C, 90Metafont (@TeX{}'s companion for font creation), Modula2, Object
88Octave, Pascal, Perl, Pike, PostScript, Prolog, Python, Ruby, Simula, Tcl, 91Pascal, Objective-C, Octave, Pascal, Perl, Pike, PostScript, Prolog,
89and VHDL@. An alternative mode for Perl is called CPerl mode. Modes are 92Python, Ruby, Simula, SQL, Tcl, Verilog, and VHDL@. An alternative
90also available for the scripting languages of the common GNU and Unix 93mode for Perl is called CPerl mode. Modes are also available for the
91shells, and MS-DOS/MS-Windows @samp{BAT} files, and for makefiles, 94scripting languages of the common GNU and Unix shells, and
92DNS master files, and various sorts of configuration files. 95MS-DOS/MS-Windows @samp{BAT} files, and for makefiles, DNS master
96files, and various sorts of configuration files.
93 97
94 Ideally, Emacs should have a major mode for each programming 98 Ideally, Emacs should have a major mode for each programming
95language that you might want to edit. If it doesn't have a mode for 99language that you might want to edit. If it doesn't have a mode for
@@ -100,12 +104,13 @@ distributed with Emacs (@pxref{Packages}); or you can contribute one.
100@findex backward-delete-char-untabify 104@findex backward-delete-char-untabify
101 In most programming languages, indentation should vary from line to 105 In most programming languages, indentation should vary from line to
102line to illustrate the structure of the program. Therefore, in most 106line to illustrate the structure of the program. Therefore, in most
103programming language modes, typing @key{TAB} updates the indentation 107programming language modes, typing @kbd{@key{TAB}} updates the
104of the current line (@pxref{Program Indent}). Furthermore, @key{DEL} 108indentation of the current line (@pxref{Program Indent}).
105is usually bound to @code{backward-delete-char-untabify}, which 109Furthermore, @kbd{@key{DEL}} is usually bound to
106deletes backward treating each tab as if it were the equivalent number 110@code{backward-delete-char-untabify}, which deletes backward treating
107of spaces, so that you can delete one column of indentation without 111each tab as if it were the equivalent number of spaces, so that you
108worrying whether the whitespace consists of spaces or tabs. 112can delete one column of indentation without worrying whether the
113whitespace consists of spaces or tabs.
109 114
110@cindex mode hook, and major modes 115@cindex mode hook, and major modes
111@vindex c-mode-hook 116@vindex c-mode-hook
@@ -122,13 +127,14 @@ For instance, entering C mode runs the hooks @code{prog-mode-hook} and
122@ifnottex 127@ifnottex
123 Separate manuals are available for the modes for Ada (@pxref{Top,, 128 Separate manuals are available for the modes for Ada (@pxref{Top,,
124Ada Mode, ada-mode, Ada Mode}), C/C++/Objective C/Java/Corba 129Ada Mode, ada-mode, Ada Mode}), C/C++/Objective C/Java/Corba
125IDL/Pike/AWK (@pxref{Top, , CC Mode, ccmode, CC Mode}), and IDLWAVE 130IDL/Pike/AWK (@pxref{Top, , CC Mode, ccmode, CC Mode}), Octave, VHDL,
126(@pxref{Top,, IDLWAVE, idlwave, IDLWAVE User Manual}). 131and IDLWAVE (@pxref{Top,, IDLWAVE, idlwave, IDLWAVE User Manual}).
127@end ifnottex 132@end ifnottex
128@iftex 133@iftex
129 The Emacs distribution contains Info manuals for the major modes for 134 The Emacs distribution contains Info manuals for the major modes for
130Ada, C/C++/Objective C/Java/Corba IDL/Pike/AWK, and IDLWAVE@. For 135Ada, C/C++/Objective C/Java/Corba IDL/Pike/AWK, Octave, VHDL, and
131Fortran mode, @pxref{Fortran,,, emacs-xtra, Specialized Emacs Features}. 136IDLWAVE@. For Fortran mode, @pxref{Fortran,,, emacs-xtra, Specialized
137Emacs Features}.
132@end iftex 138@end iftex
133 139
134@node Defuns 140@node Defuns
@@ -328,6 +334,7 @@ language modes.
328@cindex pretty-printer 334@cindex pretty-printer
329 Emacs also provides a Lisp pretty-printer in the @code{pp} package, 335 Emacs also provides a Lisp pretty-printer in the @code{pp} package,
330which reformats Lisp objects with nice-looking indentation. 336which reformats Lisp objects with nice-looking indentation.
337@xref{Output Functions, pp,, elisp, The Emacs Lisp Reference Manual}.
331 338
332@node Basic Indent 339@node Basic Indent
333@subsection Basic Program Indentation Commands 340@subsection Basic Program Indentation Commands
@@ -342,16 +349,18 @@ Insert a newline, then adjust indentation of following line
342 349
343@kindex TAB @r{(programming modes)} 350@kindex TAB @r{(programming modes)}
344@findex indent-line-function 351@findex indent-line-function
345 The basic indentation command is @key{TAB} 352 The basic indentation command is @kbd{@key{TAB}}
346(@code{indent-for-tab-command}), which was documented in 353(@code{indent-for-tab-command}), which was documented in
347@ref{Indentation}. In programming language modes, @key{TAB} indents 354@ref{Indentation}. In programming language modes, @kbd{@key{TAB}}
348the current line, based on the indentation and syntactic content of 355indents the current line, based on the indentation and syntactic
349the preceding lines; if the region is active, @key{TAB} indents each 356content of the preceding lines; if the region is active,
350line within the region, not just the current line. 357@kbd{@key{TAB}} indents each line within the region, not just the
358current line.
351 359
352 The command @key{RET} (@code{newline}), which was documented in 360 The command @kbd{@key{RET}} (@code{newline}), which was documented
353@ref{Inserting Text}, does the same as @kbd{C-j} followed by 361in @ref{Inserting Text}, does the same as @kbd{C-j} followed by
354@key{TAB}: it inserts a new line, then adjusts the line's indentation. 362@kbd{@key{TAB}}: it inserts a new line, then adjusts the line's
363indentation.
355 364
356 When indenting a line that starts within a parenthetical grouping, 365 When indenting a line that starts within a parenthetical grouping,
357Emacs usually places the start of the line under the preceding line 366Emacs usually places the start of the line under the preceding line
@@ -360,7 +369,7 @@ manually give one of these lines a nonstandard indentation (e.g., for
360aesthetic purposes), the lines below will follow it. 369aesthetic purposes), the lines below will follow it.
361 370
362 The indentation commands for most programming language modes assume 371 The indentation commands for most programming language modes assume
363that a open-parenthesis, open-brace or other opening delimiter at the 372that an open-parenthesis, open-brace or other opening delimiter at the
364left margin is the start of a function. If the code you are editing 373left margin is the start of a function. If the code you are editing
365violates this assumption---even if the delimiters occur in strings or 374violates this assumption---even if the delimiters occur in strings or
366comments---you must set @code{open-paren-in-column-0-is-defun-start} 375comments---you must set @code{open-paren-in-column-0-is-defun-start}
@@ -372,7 +381,7 @@ Paren}.
372 381
373 Sometimes, you may want to reindent several lines of code at a time. 382 Sometimes, you may want to reindent several lines of code at a time.
374One way to do this is to use the mark; when the mark is active and the 383One way to do this is to use the mark; when the mark is active and the
375region is non-empty, @key{TAB} indents every line in the region. 384region is non-empty, @kbd{@key{TAB}} indents every line in the region.
376Alternatively, the command @kbd{C-M-\} (@code{indent-region}) indents 385Alternatively, the command @kbd{C-M-\} (@code{indent-region}) indents
377every line in the region, whether or not the mark is active 386every line in the region, whether or not the mark is active
378(@pxref{Indentation Commands}). 387(@pxref{Indentation Commands}).
@@ -400,19 +409,19 @@ grouping, without affecting its overall indentation (i.e., the
400indentation of the line where the grouping starts). The function that 409indentation of the line where the grouping starts). The function that
401@kbd{C-M-q} runs depends on the major mode; it is 410@kbd{C-M-q} runs depends on the major mode; it is
402@code{indent-pp-sexp} in Lisp mode, @code{c-indent-exp} in C mode, 411@code{indent-pp-sexp} in Lisp mode, @code{c-indent-exp} in C mode,
403etc. To correct the overall indentation as well, type @key{TAB} 412etc. To correct the overall indentation as well, type @kbd{@key{TAB}}
404first. 413first.
405 414
406@kindex C-u TAB 415@kindex C-u TAB
407 If you like the relative indentation within a grouping but not the 416 If you like the relative indentation within a grouping but not the
408indentation of its first line, move point to that first line and type 417indentation of its first line, move point to that first line and type
409@kbd{C-u @key{TAB}}. In Lisp, C, and some other major modes, 418@kbd{C-u @key{TAB}}. In Lisp, C, and some other major modes,
410@key{TAB} with a numeric argument reindents the current line as usual, 419@kbd{@key{TAB}} with a numeric argument reindents the current line as
411then reindents by the same amount all the lines in the parenthetical 420usual, then reindents by the same amount all the lines in the
412grouping starting on the current line. It is clever, though, and does 421parenthetical grouping starting on the current line. It is clever,
413not alter lines that start inside strings. Neither does it alter C 422though, and does not alter lines that start inside strings. Neither
414preprocessor lines when in C mode, but it does reindent any 423does it alter C preprocessor lines when in C mode, but it does
415continuation lines that may be attached to them. 424reindent any continuation lines that may be attached to them.
416 425
417@findex indent-code-rigidly 426@findex indent-code-rigidly
418 The command @kbd{M-x indent-code-rigidly} rigidly shifts all the 427 The command @kbd{M-x indent-code-rigidly} rigidly shifts all the
@@ -454,7 +463,7 @@ expression.
454 You can override the standard pattern in various ways for individual 463 You can override the standard pattern in various ways for individual
455functions, according to the @code{lisp-indent-function} property of 464functions, according to the @code{lisp-indent-function} property of
456the function name. This is normally done for macro definitions, using 465the function name. This is normally done for macro definitions, using
457the @code{declare} construct. @xref{Defining Macros,,, elisp, the 466the @code{declare} construct. @xref{Defining Macros,,, elisp, The
458Emacs Lisp Reference Manual}. 467Emacs Lisp Reference Manual}.
459 468
460@node C Indent 469@node C Indent
@@ -462,7 +471,7 @@ Emacs Lisp Reference Manual}.
462 471
463 Here are special features for indentation in C mode and related modes: 472 Here are special features for indentation in C mode and related modes:
464 473
465@table @code 474@table @kbd
466@item C-c C-q 475@item C-c C-q
467@kindex C-c C-q @r{(C mode)} 476@kindex C-c C-q @r{(C mode)}
468@findex c-indent-defun 477@findex c-indent-defun
@@ -884,9 +893,9 @@ also do spell checking on comments with Flyspell Prog mode
884comments. For example, in Lisp code, comments starting with two 893comments. For example, in Lisp code, comments starting with two
885semicolons are indented as if they were lines of code, while those 894semicolons are indented as if they were lines of code, while those
886starting with three semicolons are supposed to be aligned to the left 895starting with three semicolons are supposed to be aligned to the left
887margin and are often used for sectioning purposes. Emacs understand 896margin and are often used for sectioning purposes. Emacs understands
888these conventions; for instance, typing @key{TAB} on a comment line 897these conventions; for instance, typing @kbd{@key{TAB}} on a comment
889will indent the comment to the appropriate position. 898line will indent the comment to the appropriate position.
890 899
891@example 900@example
892;; This function is just an example. 901;; This function is just an example.
@@ -915,14 +924,16 @@ will indent the comment to the appropriate position.
915Insert or realign comment on current line; if the region is active, 924Insert or realign comment on current line; if the region is active,
916comment or uncomment the region instead (@code{comment-dwim}). 925comment or uncomment the region instead (@code{comment-dwim}).
917@item @kbd{C-x C-;} 926@item @kbd{C-x C-;}
918Comment or uncomment the current line (@code{comment-line}). 927Comment or uncomment the current line (@code{comment-line}). If the
928region is active, comment or uncomment the lines in the region
929instead.
919@item @kbd{C-u M-;} 930@item @kbd{C-u M-;}
920Kill comment on current line (@code{comment-kill}). 931Kill comment on current line (@code{comment-kill}).
921@item @kbd{C-x ;} 932@item @kbd{C-x ;}
922Set comment column (@code{comment-set-column}). 933Set comment column (@code{comment-set-column}).
923@item @kbd{C-M-j} 934@item @kbd{C-M-j}
924@itemx @kbd{M-j} 935@itemx @kbd{M-j}
925Like @key{RET} followed by inserting and aligning a comment 936Like @kbd{@key{RET}} followed by inserting and aligning a comment
926(@code{comment-indent-new-line}). @xref{Multi-Line Comments}. 937(@code{comment-indent-new-line}). @xref{Multi-Line Comments}.
927@item @kbd{M-x comment-region} 938@item @kbd{M-x comment-region}
928@itemx @kbd{C-c C-c} (in C-like modes) 939@itemx @kbd{C-c C-c} (in C-like modes)
@@ -952,8 +963,8 @@ negative argument @var{-n} removes @var{n} delimiters.
952current line, @kbd{M-;} adds a new comment to the current line. If 963current line, @kbd{M-;} adds a new comment to the current line. If
953the line is blank (i.e., empty or containing only whitespace 964the line is blank (i.e., empty or containing only whitespace
954characters), the comment is indented to the same position where 965characters), the comment is indented to the same position where
955@key{TAB} would indent to (@pxref{Basic Indent}). If the line is 966@kbd{@key{TAB}} would indent to (@pxref{Basic Indent}). If the line
956non-blank, the comment is placed after the last non-whitespace 967is non-blank, the comment is placed after the last non-whitespace
957character on the line; normally, Emacs tries putting it at the column 968character on the line; normally, Emacs tries putting it at the column
958specified by the variable @code{comment-column} (@pxref{Options for 969specified by the variable @code{comment-column} (@pxref{Options for
959Comments}), but if the line already extends past that column, it puts 970Comments}), but if the line already extends past that column, it puts
@@ -1002,8 +1013,7 @@ region, even if the mark is inactive. In C mode and related modes,
1002this command is bound to @kbd{C-c C-c}. The command @kbd{M-x 1013this command is bound to @kbd{C-c C-c}. The command @kbd{M-x
1003uncomment-region} uncomments each line in the region; a numeric prefix 1014uncomment-region} uncomments each line in the region; a numeric prefix
1004argument specifies the number of comment delimiters to remove 1015argument specifies the number of comment delimiters to remove
1005(negative arguments specify the number of comment to delimiters to 1016(negative arguments specify the number of comment delimiters to add).
1006add).
1007 1017
1008 For C-like modes, you can configure the exact effect of @kbd{M-;} by 1018 For C-like modes, you can configure the exact effect of @kbd{M-;} by
1009setting the variables @code{c-indent-comment-alist} and 1019setting the variables @code{c-indent-comment-alist} and
@@ -1108,8 +1118,8 @@ comment or for aligning an existing comment. It is set differently by
1108various major modes. The function is called with no arguments, but with 1118various major modes. The function is called with no arguments, but with
1109point at the beginning of the comment, or at the end of a line if a new 1119point at the beginning of the comment, or at the end of a line if a new
1110comment is to be inserted. It should return the column in which the 1120comment is to be inserted. It should return the column in which the
1111comment ought to start. For example, the default hook function bases 1121comment ought to start. For example, the default function bases its
1112its decision on how many comment characters begin an existing comment. 1122decision on how many comment characters begin an existing comment.
1113 1123
1114Emacs also tries to align comments on adjacent lines. To override 1124Emacs also tries to align comments on adjacent lines. To override
1115this, the function may return a cons of two (possibly equal) integers 1125this, the function may return a cons of two (possibly equal) integers
@@ -1140,10 +1150,10 @@ buffer at point. For example, in C mode this looks for the symbol in
1140the C Library Manual. The command only works if the appropriate 1150the C Library Manual. The command only works if the appropriate
1141manual's Info files are installed. 1151manual's Info files are installed.
1142 1152
1143 The major mode determines where to look for documentation for the 1153 Emacs determines where to look for documentation for the
1144symbol---which Info files to look in, and which indices to search. 1154symbol---which Info files to look in, and which indices to
1145You can also use @kbd{M-x info-lookup-file} to look for documentation 1155search---based on the major mode. You can also use @kbd{M-x
1146for a file name. 1156info-lookup-file} to look for documentation for a file name.
1147 1157
1148 If you use @kbd{C-h S} in a major mode that does not support it, 1158 If you use @kbd{C-h S} in a major mode that does not support it,
1149it asks you to specify the symbol help mode. You should enter 1159it asks you to specify the symbol help mode. You should enter
@@ -1213,6 +1223,10 @@ several manual pages by the same name exist in different sections, it
1213pops up a window with possible candidates asking you to choose one of 1223pops up a window with possible candidates asking you to choose one of
1214them. 1224them.
1215 1225
1226 Note that @kbd{M-x woman} doesn't yet support the latest features of
1227modern man pages, so we recommend using @kbd{M-x man} if that is
1228available on your system.
1229
1216 For more information about setting up and using @kbd{M-x woman}, see 1230 For more information about setting up and using @kbd{M-x woman}, see
1217@ifinfo 1231@ifinfo
1218@ref{Top, WoMan, Browse UN*X Manual Pages WithOut Man, woman, The 1232@ref{Top, WoMan, Browse UN*X Manual Pages WithOut Man, woman, The
@@ -1293,7 +1307,7 @@ Hide all top-level blocks (@code{hs-hide-all}).
1293@item C-c @@ C-M-s 1307@item C-c @@ C-M-s
1294@itemx C-c @@ C-a 1308@itemx C-c @@ C-a
1295Show all blocks in the buffer (@code{hs-show-all}). 1309Show all blocks in the buffer (@code{hs-show-all}).
1296@item C-c @@ C-l 1310@item C-u @var{n} C-c @@ C-l
1297Hide all blocks @var{n} levels below this block 1311Hide all blocks @var{n} levels below this block
1298(@code{hs-hide-level}). 1312(@code{hs-hide-level}).
1299@end table 1313@end table
@@ -1415,8 +1429,8 @@ the menu item named @samp{Source Code Parsers (Semantic)} in the
1415 1429
1416 When Semantic mode is enabled, Emacs automatically attempts to 1430 When Semantic mode is enabled, Emacs automatically attempts to
1417parse each file you visit. Currently, Semantic understands C, C++, 1431parse each file you visit. Currently, Semantic understands C, C++,
1418Scheme, Javascript, Java, HTML, and Make. Within each parsed buffer, 1432HTML, Java, Javascript, Make, Python, Scheme, SRecode, and Texinfo.
1419the following commands are available: 1433Within each parsed buffer, the following commands are available:
1420 1434
1421@table @kbd 1435@table @kbd
1422@item C-c , j 1436@item C-c , j
@@ -1433,10 +1447,10 @@ parsed, and move point there (@code{semantic-complete-jump}).
1433@kindex C-c , SPC 1447@kindex C-c , SPC
1434Display a list of possible completions for the symbol at point 1448Display a list of possible completions for the symbol at point
1435(@code{semantic-complete-analyze-inline}). This also activates a set 1449(@code{semantic-complete-analyze-inline}). This also activates a set
1436of special key bindings for choosing a completion: @key{RET} accepts 1450of special key bindings for choosing a completion: @kbd{@key{RET}}
1437the current completion, @kbd{M-n} and @kbd{M-p} cycle through possible 1451accepts the current completion, @kbd{M-n} and @kbd{M-p} cycle through
1438completions, @key{TAB} completes as far as possible and then cycles, 1452possible completions, @kbd{@key{TAB}} completes as far as possible and
1439and @kbd{C-g} or any other key aborts completion. 1453then cycles, and @kbd{C-g} or any other key aborts completion.
1440 1454
1441@item C-c , l 1455@item C-c , l
1442@kindex C-c , l 1456@kindex C-c , l
@@ -1460,7 +1474,7 @@ is idle.
1460programs are useful for that nonetheless. 1474programs are useful for that nonetheless.
1461 1475
1462 The Emacs commands that operate on words, sentences and paragraphs 1476 The Emacs commands that operate on words, sentences and paragraphs
1463are useful for editing code. Most symbols names contain words 1477are useful for editing code. Most symbol names contain words
1464(@pxref{Words}), while sentences can be found in strings and comments 1478(@pxref{Words}), while sentences can be found in strings and comments
1465(@pxref{Sentences}). As for paragraphs, they are defined in most 1479(@pxref{Sentences}). As for paragraphs, they are defined in most
1466programming language modes to begin and end at blank lines 1480programming language modes to begin and end at blank lines
@@ -1635,8 +1649,9 @@ electric characters are @kbd{@{}, @kbd{@}}, @kbd{:}, @kbd{#},
1635 You might find electric indentation inconvenient if you are editing 1649 You might find electric indentation inconvenient if you are editing
1636chaotically indented code. If you are new to CC Mode, you might find 1650chaotically indented code. If you are new to CC Mode, you might find
1637it disconcerting. You can toggle electric action with the command 1651it disconcerting. You can toggle electric action with the command
1638@kbd{C-c C-l}; when it is enabled, @samp{/l} appears in the mode line 1652@kbd{C-c C-l}; when it is enabled, @samp{/@var{c}l} appears in the
1639after the mode name: 1653mode line after the mode name (where @var{c}, if present, is @samp{*}
1654or @samp{/}):
1640 1655
1641@table @kbd 1656@table @kbd
1642@item C-c C-l 1657@item C-c C-l
@@ -1649,8 +1664,8 @@ negative one it disables it.
1649 1664
1650 Electric characters insert newlines only when, in addition to the 1665 Electric characters insert newlines only when, in addition to the
1651electric state, the @dfn{auto-newline} feature is enabled (indicated 1666electric state, the @dfn{auto-newline} feature is enabled (indicated
1652by @samp{/la} in the mode line after the mode name). You can turn 1667by @samp{/@var{c}la} in the mode line after the mode name). You can
1653this feature on or off with the command @kbd{C-c C-a}: 1668turn this feature on or off with the command @kbd{C-c C-a}:
1654 1669
1655@table @kbd 1670@table @kbd
1656@item C-c C-a 1671@item C-c C-a
@@ -1694,10 +1709,11 @@ Delete the entire block of whitespace after point (@code{c-hungry-delete-forward
1694@end table 1709@end table
1695 1710
1696 As an alternative to the above commands, you can enable @dfn{hungry 1711 As an alternative to the above commands, you can enable @dfn{hungry
1697delete mode}. When this feature is enabled (indicated by @samp{/h} in 1712delete mode}. When this feature is enabled (indicated by @samp{h}
1698the mode line after the mode name), a single @key{DEL} deletes all 1713after a @samp{/} in the mode line after the mode name), a single
1699preceding whitespace, not just one space, and a single @kbd{C-d} 1714@kbd{@key{DEL}} deletes all preceding whitespace, not just one space,
1700(but @emph{not} plain @key{Delete}) deletes all following whitespace. 1715and a single @kbd{C-d} (but @emph{not} plain @kbd{@key{Delete}})
1716deletes all following whitespace.
1701 1717
1702@table @kbd 1718@table @kbd
1703@item M-x c-toggle-hungry-state 1719@item M-x c-toggle-hungry-state
@@ -1720,14 +1736,14 @@ hungry-delete feature is enabled.
1720@findex c-context-line-break 1736@findex c-context-line-break
1721This command inserts a line break and indents the new line in a manner 1737This command inserts a line break and indents the new line in a manner
1722appropriate to the context. In normal code, it does the work of 1738appropriate to the context. In normal code, it does the work of
1723@key{RET} (@code{newline}), in a C preprocessor line it additionally 1739@kbd{@key{RET}} (@code{newline}), in a C preprocessor line it additionally
1724inserts a @samp{\} at the line break, and within comments it's like 1740inserts a @samp{\} at the line break, and within comments it's like
1725@kbd{M-j} (@code{c-indent-new-comment-line}). 1741@kbd{M-j} (@code{c-indent-new-comment-line}).
1726 1742
1727@code{c-context-line-break} isn't bound to a key by default, but it 1743@code{c-context-line-break} isn't bound to a key by default, but it
1728needs a binding to be useful. The following code will bind it to 1744needs a binding to be useful. The following code will bind it to
1729@key{RET}. We use @code{c-initialization-hook} here to make sure 1745@kbd{@key{RET}}. We use @code{c-initialization-hook} here to make
1730the keymap is loaded before we try to change it. 1746sure the keymap is loaded before we try to change it.
1731 1747
1732@example 1748@example
1733(defun my-bind-clb () 1749(defun my-bind-clb ()
@@ -1852,11 +1868,14 @@ defines these commands:
1852@item @key{TAB} 1868@item @key{TAB}
1853@code{tab-to-tab-stop}. 1869@code{tab-to-tab-stop}.
1854@c FIXME: Maybe this should be consistent with other programming modes. 1870@c FIXME: Maybe this should be consistent with other programming modes.
1871
1855@item C-j 1872@item C-j
1856Insert a newline and then indent using @code{tab-to-tab-stop}. 1873Insert a newline and then indent using @code{tab-to-tab-stop}.
1874
1857@item : 1875@item :
1858Insert a colon and then remove the indentation from before the label 1876Insert a colon and then remove the indentation from before the label
1859preceding colon. Then do @code{tab-to-tab-stop}. 1877preceding colon. Then do @code{tab-to-tab-stop}.
1878
1860@item ; 1879@item ;
1861Insert or align a comment. 1880Insert or align a comment.
1862@end table 1881@end table
diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi
index dd9e4d7cc7c..8ff36ca554d 100644
--- a/doc/emacs/regs.texi
+++ b/doc/emacs/regs.texi
@@ -18,7 +18,7 @@ or a number (such as @samp{1}); case matters, so register @samp{a} is
18not the same as register @samp{A}. You can also set a register in 18not the same as register @samp{A}. You can also set a register in
19non-alphanumeric characters, for instance @samp{*} or @samp{C-d}. 19non-alphanumeric characters, for instance @samp{*} or @samp{C-d}.
20Note, it's not possible to set a register in @samp{C-g} or @samp{ESC}, 20Note, it's not possible to set a register in @samp{C-g} or @samp{ESC},
21because these keys are reserved to terminate interactive commands. 21because these keys are reserved for quitting (@pxref{Quitting}).
22 22
23@findex view-register 23@findex view-register
24 A register can store a position, a piece of text, a rectangle, a 24 A register can store a position, a piece of text, a rectangle, a
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 51a06851977..319f64fbae1 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1,3 +1,4 @@
1@c -*- coding: utf-8 -*-
1@c This is part of the Emacs manual. 2@c This is part of the Emacs manual.
2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2018 Free Software 3@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2018 Free Software
3@c Foundation, Inc. 4@c Foundation, Inc.
@@ -902,7 +903,8 @@ starting and ending characters with a @samp{-} between them. Thus,
902@samp{[a-z]} matches any lower-case @acronym{ASCII} letter. Ranges may be 903@samp{[a-z]} matches any lower-case @acronym{ASCII} letter. Ranges may be
903intermixed freely with individual characters, as in @samp{[a-z$%.]}, 904intermixed freely with individual characters, as in @samp{[a-z$%.]},
904which matches any lower-case @acronym{ASCII} letter or @samp{$}, @samp{%} or 905which matches any lower-case @acronym{ASCII} letter or @samp{$}, @samp{%} or
905period. 906period. As another example, @samp{[α-ωί]} matches all lower-case
907Greek letters.
906 908
907You can also include certain special @dfn{character classes} in a 909You can also include certain special @dfn{character classes} in a
908character set. A @samp{[:} and balancing @samp{:]} enclose a 910character set. A @samp{[:} and balancing @samp{:]} enclose a
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index 58c592081a0..d32bb3c7689 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1694,7 +1694,7 @@ when you type the corresponding one.
1694@node TeX Print 1694@node TeX Print
1695@subsection @TeX{} Printing Commands 1695@subsection @TeX{} Printing Commands
1696 1696
1697 You can invoke @TeX{} as an subprocess of Emacs, supplying either 1697 You can invoke @TeX{} as a subprocess of Emacs, supplying either
1698the entire contents of the buffer or just part of it (e.g., one 1698the entire contents of the buffer or just part of it (e.g., one
1699chapter of a larger document). 1699chapter of a larger document).
1700 1700
@@ -1746,7 +1746,7 @@ C-p} (@code{tex-print}) to print a hardcopy of the output file.
1746output of @TeX{} also goes in this directory. To run @TeX{} in a 1746output of @TeX{} also goes in this directory. To run @TeX{} in a
1747different directory, change the variable @code{tex-directory} to 1747different directory, change the variable @code{tex-directory} to
1748the desired directory. If your environment variable @env{TEXINPUTS} 1748the desired directory. If your environment variable @env{TEXINPUTS}
1749contains relative names, or if your files contains 1749contains relative names, or if your files contain
1750@samp{\input} commands with relative file names, then 1750@samp{\input} commands with relative file names, then
1751@code{tex-directory} @emph{must} be @code{"."} or you will get the 1751@code{tex-directory} @emph{must} be @code{"."} or you will get the
1752wrong results. Otherwise, it is safe to specify some other directory, 1752wrong results. Otherwise, it is safe to specify some other directory,
@@ -2017,7 +2017,7 @@ used as a cheap preview (@code{sgml-tags-invisible}).
2017@findex nxml-mode 2017@findex nxml-mode
2018@cindex XML schema 2018@cindex XML schema
2019 The major mode for editing XML documents is called nXML mode. This 2019 The major mode for editing XML documents is called nXML mode. This
2020is a powerful major mode that can recognize many existing XML schema 2020is a powerful major mode that can recognize many existing XML schemas
2021and use them to provide completion of XML elements via 2021and use them to provide completion of XML elements via
2022@kbd{M-@key{TAB}}, as well as on-the-fly XML 2022@kbd{M-@key{TAB}}, as well as on-the-fly XML
2023validation with error highlighting. To enable nXML mode in an 2023validation with error highlighting. To enable nXML mode in an
@@ -2290,7 +2290,7 @@ Prompt for a color, and apply it as a background color.
2290@end table 2290@end table
2291 2291
2292@noindent 2292@noindent
2293These command are also available via the Text Properties menu. 2293These commands are also available via the Text Properties menu.
2294 2294
2295 A self-inserting character normally inherits the face properties 2295 A self-inserting character normally inherits the face properties
2296(and most other text properties) from the preceding character in the 2296(and most other text properties) from the preceding character in the
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 945b7cb941e..9f3b1b6a079 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -465,7 +465,7 @@ bottom of the selected frame, regardless of the number of windows
465already shown on that frame. 465already shown on that frame.
466 466
467 If you prefer Emacs to display a temporary buffer in a different 467 If you prefer Emacs to display a temporary buffer in a different
468fashion, we recommend to customize the variable 468fashion, we recommend customizing the variable
469@code{display-buffer-alist} (@pxref{Choosing Window,,Choosing a Window 469@code{display-buffer-alist} (@pxref{Choosing Window,,Choosing a Window
470for Display, elisp, The Emacs Lisp Reference Manual}). For example, 470for Display, elisp, The Emacs Lisp Reference Manual}). For example,
471to display @file{*Completions*} by splitting a window as described in 471to display @file{*Completions*} by splitting a window as described in
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 7bf03b8558e..64b8c0a22fa 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -6966,14 +6966,16 @@ means to use the default for that slot, as stated below.
6966@table @asis 6966@table @asis
6967@item 0 6967@item 0
6968The glyph for the end of a truncated screen line (the default for this 6968The glyph for the end of a truncated screen line (the default for this
6969is @samp{$}). @xref{Glyphs}. On graphical terminals, Emacs uses 6969is @samp{$}). @xref{Glyphs}. On graphical terminals, Emacs by
6970arrows in the fringes to indicate truncation, so the display table has 6970default uses arrows in the fringes to indicate truncation, so the
6971no effect. 6971display table has no effect, unless you disable the fringes
6972(@pxref{Fringes,, Window Fringes, emacs, the Gnu Emacs Manual}).
6972 6973
6973@item 1 6974@item 1
6974The glyph for the end of a continued line (the default is @samp{\}). 6975The glyph for the end of a continued line (the default is @samp{\}).
6975On graphical terminals, Emacs uses curved arrows in the fringes to 6976On graphical terminals, Emacs by default uses curved arrows in the
6976indicate continuation, so the display table has no effect. 6977fringes to indicate continuation, so the display table has no effect,
6978unless you disable the fringes.
6977 6979
6978@item 2 6980@item 2
6979The glyph for indicating a character displayed as an octal character 6981The glyph for indicating a character displayed as an octal character
@@ -6988,9 +6990,12 @@ default is @samp{...}). @xref{Selective Display}.
6988 6990
6989@item 5 6991@item 5
6990The glyph used to draw the border between side-by-side windows (the 6992The glyph used to draw the border between side-by-side windows (the
6991default is @samp{|}). @xref{Splitting Windows}. This takes effect only 6993default is @samp{|}). @xref{Splitting Windows}. This currently has
6992when there are no scroll bars; if scroll bars are supported and in use, 6994effect only on text terminals; on graphical terminals, if vertical
6993a scroll bar separates the two windows. 6995scroll bars are supported and in use, a scroll bar separates the two
6996windows, and if there are no vertical scroll bars and no dividers
6997(@pxref{Window Dividers}), Emacs uses a thin line to indicate the
6998border.
6994@end table 6999@end table
6995 7000
6996 For example, here is how to construct a display table that mimics 7001 For example, here is how to construct a display table that mimics
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index e21df5ac39b..0dd82c582c2 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -1,18 +1,16 @@
1\input texinfo @c -*- mode: texinfo; coding: utf-8 -*- 1\input texinfo @c -*- mode: texinfo; coding: utf-8 -*-
2@setfilename ../../info/tramp.info 2@setfilename ../../info/tramp.info
3@c %**start of header 3@c %**start of header
4@settitle TRAMP User Manual
5@include docstyle.texi 4@include docstyle.texi
6@c %**end of header
7
8@c This is *so* much nicer :)
9@footnotestyle end
10
11@c In the Tramp repository, the version number is auto-frobbed from 5@c In the Tramp repository, the version number is auto-frobbed from
12@c configure.ac, so you should edit that file and run 6@c configure.ac, so you should edit that file and run
13@c "autoconf && ./configure" to change the version number. 7@c "autoconf && ./configure" to change the version number.
14
15@include trampver.texi 8@include trampver.texi
9@settitle @value{tramp} @value{trampver} User Manual
10@c %**end of header
11
12@c This is *so* much nicer :)
13@footnotestyle end
16 14
17@c Macro for formatting a file name according to the respective 15@c Macro for formatting a file name according to the respective
18@c syntax. Macro arguments should not have any leading or trailing 16@c syntax. Macro arguments should not have any leading or trailing
@@ -48,7 +46,7 @@ copy and modify this GNU manual.''
48@end direntry 46@end direntry
49 47
50@titlepage 48@titlepage
51@title @value{tramp} version @value{trampver} User Manual 49@title @value{tramp} @value{trampver} User Manual
52@author by Daniel Pittman 50@author by Daniel Pittman
53@author based on documentation by Kai Großjohann 51@author based on documentation by Kai Großjohann
54@end titlepage 52@end titlepage
@@ -57,9 +55,9 @@ copy and modify this GNU manual.''
57 55
58 56
59@node Top, Overview, (dir), (dir) 57@node Top, Overview, (dir), (dir)
60@top @value{tramp} version @value{trampver} User Manual 58@top @value{tramp} @value{trampver} User Manual
61 59
62This file documents @value{tramp} version @value{trampver}, a remote file 60This file documents @value{tramp} @value{trampver}, a remote file
63editing package for Emacs. 61editing package for Emacs.
64 62
65@value{tramp} stands for ``Transparent Remote (file) Access, Multiple 63@value{tramp} stands for ``Transparent Remote (file) Access, Multiple
@@ -320,7 +318,7 @@ behind the scenes when you open a file with @value{tramp}.
320@chapter Obtaining @value{tramp} 318@chapter Obtaining @value{tramp}
321@cindex obtaining @value{tramp} 319@cindex obtaining @value{tramp}
322 320
323@value{tramp} is included as part of Emacs (since Emacs version 22.1). 321@value{tramp} is included as part of Emacs (since Emacs 22.1).
324 322
325@value{tramp} is also freely packaged for download on the Internet at 323@value{tramp} is also freely packaged for download on the Internet at
326@uref{https://ftp.gnu.org/gnu/tramp/}. 324@uref{https://ftp.gnu.org/gnu/tramp/}.
@@ -1462,8 +1460,8 @@ server.
1462 1460
1463Both ssh and PuTTY support such proxy settings, using an HTTP tunnel 1461Both ssh and PuTTY support such proxy settings, using an HTTP tunnel
1464via the @command{CONNECT} command (conforming to RFC 2616, 2817 1462via the @command{CONNECT} command (conforming to RFC 2616, 2817
1465specifications). Proxy servers using HTTP version 1.1 or later 1463specifications). Proxy servers using HTTP 1.1 or later protocol
1466protocol support this command. 1464support this command.
1467 1465
1468@subsection Tunneling with ssh 1466@subsection Tunneling with ssh
1469 1467
@@ -1501,6 +1499,7 @@ proxy server @samp{proxy.your.domain} on port 3128.
1501@cindex using non-standard methods 1499@cindex using non-standard methods
1502@cindex create your own methods 1500@cindex create your own methods
1503 1501
1502@vindex tramp-methods
1504The @code{tramp-methods} variable currently has an exhaustive list of 1503The @code{tramp-methods} variable currently has an exhaustive list of
1505predefined methods. Any part of this list can be modified with more 1504predefined methods. Any part of this list can be modified with more
1506suitable settings. Refer to the Lisp documentation of that variable, 1505suitable settings. Refer to the Lisp documentation of that variable,
@@ -1511,8 +1510,8 @@ accessible with @kbd{C-h v tramp-methods @key{RET}}.
1511@section Selecting config files for user/host name completion 1510@section Selecting config files for user/host name completion
1512@cindex customizing completion 1511@cindex customizing completion
1513@cindex selecting config files 1512@cindex selecting config files
1514@vindex tramp-completion-function-alist
1515 1513
1514@vindex tramp-completion-function-alist
1516@code{tramp-completion-function-alist} uses predefined files for user 1515@code{tramp-completion-function-alist} uses predefined files for user
1517and host name completion (@pxref{File name completion}). For each 1516and host name completion (@pxref{File name completion}). For each
1518method, it keeps a set of configuration files and a function that can 1517method, it keeps a set of configuration files and a function that can
@@ -1650,8 +1649,8 @@ the need.
1650 1649
1651@anchor{Using an authentication file} 1650@anchor{Using an authentication file}
1652@subsection Using an authentication file 1651@subsection Using an authentication file
1653@vindex auth-sources
1654 1652
1653@vindex auth-sources
1655The package @file{auth-source.el}, originally developed for No Gnus, 1654The package @file{auth-source.el}, originally developed for No Gnus,
1656reads passwords from different sources, @xref{Help for users, , 1655reads passwords from different sources, @xref{Help for users, ,
1657auth-source, auth}. The default authentication file is 1656auth-source, auth}. The default authentication file is
@@ -1697,7 +1696,6 @@ Set @code{password-cache} to @code{nil} to disable password caching.
1697@node Connection caching 1696@node Connection caching
1698@section Reusing connection related information 1697@section Reusing connection related information
1699@cindex caching 1698@cindex caching
1700@vindex tramp-persistency-file-name
1701 1699
1702@vindex tramp-persistency-file-name 1700@vindex tramp-persistency-file-name
1703For faster initial connection times, @value{tramp} stores previous 1701For faster initial connection times, @value{tramp} stores previous
@@ -1721,11 +1719,11 @@ connection related information for that host and creates a new entry.
1721 1719
1722@node Predefined connection information 1720@node Predefined connection information
1723@section Setting own connection related information 1721@section Setting own connection related information
1724@vindex tramp-connection-properties
1725 1722
1726For more precise customization, parameters specified by 1723For more precise customization, parameters specified by
1727@code{tramp-methods} can be overwritten manually. 1724@code{tramp-methods} can be overwritten manually.
1728 1725
1726@vindex tramp-connection-properties
1729Set @option{tramp-connection-properties} to manually override 1727Set @option{tramp-connection-properties} to manually override
1730@code{tramp-methods}. Properties in this list are in the form 1728@code{tramp-methods}. Properties in this list are in the form
1731@code{(@var{regexp} @var{property} @var{value})}. @var{regexp} 1729@code{(@var{regexp} @var{property} @var{value})}. @var{regexp}
@@ -1900,7 +1898,6 @@ prompts, for which @value{tramp} uses @option{tramp-wrong-passwd-regexp}.
1900@item @command{tset} and other questions 1898@item @command{tset} and other questions
1901@cindex unix command @command{tset} 1899@cindex unix command @command{tset}
1902@cindex @command{tset} unix command 1900@cindex @command{tset} unix command
1903@vindex tramp-terminal-type
1904 1901
1905@vindex tramp-terminal-type 1902@vindex tramp-terminal-type
1906To suppress inappropriate prompts for terminal type, @value{tramp} 1903To suppress inappropriate prompts for terminal type, @value{tramp}
@@ -1981,9 +1978,9 @@ shell-specific config files. For example, bash can use
1981 1978
1982@value{tramp} redefines the remote shell prompt internally for robust 1979@value{tramp} redefines the remote shell prompt internally for robust
1983parsing. This redefinition affects the looks of a prompt in an 1980parsing. This redefinition affects the looks of a prompt in an
1984interactive remote shell through commands, such as @kbd{M-x 1981interactive remote shell through commands, such as @kbd{M-x shell
1985shell}. Such prompts, however, can be reset to something more readable 1982@key{RET}}. Such prompts, however, can be reset to something more
1986and recognizable using these @value{tramp} variables. 1983readable and recognizable using these @value{tramp} variables.
1987 1984
1988@value{tramp} sets the @env{INSIDE_EMACS} variable in the startup 1985@value{tramp} sets the @env{INSIDE_EMACS} variable in the startup
1989script file @file{~/.emacs_SHELLNAME}. 1986script file @file{~/.emacs_SHELLNAME}.
@@ -2096,8 +2093,8 @@ directory for temporary files:
2096 2093
2097@item 2094@item
2098Open a remote connection with the command @kbd{C-x C-f 2095Open a remote connection with the command @kbd{C-x C-f
2099@trampfn{ssh,192.168.0.26#2222,}}, where @command{sshd} is listening 2096@trampfn{ssh,192.168.0.26#2222,} @key{RET}}, where @command{sshd} is
2100on port @samp{2222}. 2097listening on port @samp{2222}.
2101 2098
2102To add a corresponding entry to the @file{~/.ssh/config} file 2099To add a corresponding entry to the @file{~/.ssh/config} file
2103(recommended), use this: 2100(recommended), use this:
@@ -2124,7 +2121,7 @@ the previous example, fix the connection properties as follows:
2124 2121
2125@noindent 2122@noindent
2126Open a remote connection with a more concise command @kbd{C-x C-f 2123Open a remote connection with a more concise command @kbd{C-x C-f
2127@trampfn{ssh,android,}}. 2124@trampfn{ssh,android,} @key{RET}}.
2128@end itemize 2125@end itemize
2129 2126
2130 2127
@@ -2132,8 +2129,8 @@ Open a remote connection with a more concise command @kbd{C-x C-f
2132@section Auto-save and Backup configuration 2129@section Auto-save and Backup configuration
2133@cindex auto-save 2130@cindex auto-save
2134@cindex backup 2131@cindex backup
2135@vindex backup-directory-alist
2136 2132
2133@vindex backup-directory-alist
2137To avoid @value{tramp} from saving backup files owned by @samp{root} 2134To avoid @value{tramp} from saving backup files owned by @samp{root}
2138to locations accessible to others, default backup settings in 2135to locations accessible to others, default backup settings in
2139@option{backup-directory-alist} have to be altered. 2136@option{backup-directory-alist} have to be altered.
@@ -2176,7 +2173,6 @@ Disabling backups can be targeted to just the @option{su} and
2176@end group 2173@end group
2177@end lisp 2174@end lisp
2178 2175
2179@vindex backup-directory-alist
2180@vindex tramp-backup-directory-alist 2176@vindex tramp-backup-directory-alist
2181Another option is to create better backup file naming with user and 2177Another option is to create better backup file naming with user and
2182host names prefixed to the file name. For example, transforming 2178host names prefixed to the file name. For example, transforming
@@ -2237,8 +2233,9 @@ This section is incomplete. Please share your solutions.
2237@cindex @option{sshx} method with cygwin 2233@cindex @option{sshx} method with cygwin
2238 2234
2239Cygwin's @command{ssh} works only with a Cygwin version of Emacs. To 2235Cygwin's @command{ssh} works only with a Cygwin version of Emacs. To
2240check for compatibility: type @kbd{M-x eshell}, and start @kbd{ssh 2236check for compatibility: type @kbd{M-x eshell @key{RET}}, and start
2241test.host}. Incompatibilities trigger this message: 2237@kbd{ssh test.host @key{RET}}. Incompatibilities trigger this
2238message:
2242 2239
2243@example 2240@example
2244Pseudo-terminal will not be allocated because stdin is not a terminal. 2241Pseudo-terminal will not be allocated because stdin is not a terminal.
@@ -2555,8 +2552,8 @@ remote host name and file name. For example, hopping over a single
2555proxy @samp{bird@@bastion} to a remote file on @samp{you@@remotehost}: 2552proxy @samp{bird@@bastion} to a remote file on @samp{you@@remotehost}:
2556 2553
2557@example 2554@example
2558@c @kbd{C-x C-f @trampfn{ssh@value{postfixhop}bird@@bastion|ssh,you,remotehost,/path}} 2555@c @kbd{C-x C-f @trampfn{ssh@value{postfixhop}bird@@bastion|ssh,you,remotehost,/path} @key{RET}}
2559@kbd{C-x C-f @value{prefix}ssh@value{postfixhop}bird@@bastion|ssh@value{postfixhop}you@@remotehost@value{postfix}/path} 2556@kbd{C-x C-f @value{prefix}ssh@value{postfixhop}bird@@bastion|ssh@value{postfixhop}you@@remotehost@value{postfix}/path @key{RET}}
2560@end example 2557@end example
2561 2558
2562Proxies can take patterns @code{%h} or @code{%u}. 2559Proxies can take patterns @code{%h} or @code{%u}.
@@ -2671,9 +2668,9 @@ this. You could overwrite this behavior by evaluating
2671@end lisp 2668@end lisp
2672 2669
2673In addition to @option{tramp-remote-process-environment}, you can set 2670In addition to @option{tramp-remote-process-environment}, you can set
2674environment variables for invidivual remote process calls by 2671environment variables for individual remote process calls by
2675let-binding @code{process-environment}. @value{tramp} will apply any 2672let-binding @code{process-environment}. @value{tramp} applies any
2676entries which are not present in the global default value of 2673entries not present in the global default value of
2677@code{process-environment} (overriding 2674@code{process-environment} (overriding
2678@option{tramp-remote-process-environment} settings, if they conflict). 2675@option{tramp-remote-process-environment} settings, if they conflict).
2679For example: 2676For example:
@@ -2778,14 +2775,15 @@ host. Example:
2778@example 2775@example
2779@group 2776@group
2780@kbd{C-x C-f @trampfn{sudo,,} @key{RET}} 2777@kbd{C-x C-f @trampfn{sudo,,} @key{RET}}
2781@kbd{M-! tail -f /var/log/syslog.log & @key{RET}} 2778@kbd{M-& tail -f /var/log/syslog.log @key{RET}}
2782@end group 2779@end group
2783@end example 2780@end example
2784 2781
2785@command{tail} command outputs continuously to the local buffer, 2782@command{tail} command outputs continuously to the local buffer,
2786@file{*Async Shell Command*} 2783@file{*Async Shell Command*}
2787 2784
2788@kbd{M-x auto-revert-tail-mode} runs similarly showing continuous output. 2785@kbd{M-x auto-revert-tail-mode @key{RET}} runs similarly showing
2786continuous output.
2789 2787
2790 2788
2791@subsection Running @code{eshell} on a remote host 2789@subsection Running @code{eshell} on a remote host
@@ -2794,8 +2792,8 @@ host. Example:
2794@value{tramp} is integrated into @file{eshell.el}, which enables 2792@value{tramp} is integrated into @file{eshell.el}, which enables
2795interactive eshell sessions on remote hosts at the command prompt. 2793interactive eshell sessions on remote hosts at the command prompt.
2796You must add the module @code{em-tramp} to @code{eshell-modules-list}. 2794You must add the module @code{em-tramp} to @code{eshell-modules-list}.
2797Here's a sample interaction after opening @kbd{M-x eshell} on a remote 2795Here's a sample interaction after opening @kbd{M-x eshell @key{RET}}
2798host: 2796on a remote host:
2799 2797
2800@example 2798@example
2801@group 2799@group
@@ -2876,7 +2874,7 @@ calls include:
2876@end group 2874@end group
2877@end example 2875@end example
2878 2876
2879Just the local part of a remote file name, such as @kbd{perl -d 2877Just the local part of a remote file name, such as @command{perl -d
2880/home/user/myprog.pl}, is not possible. 2878/home/user/myprog.pl}, is not possible.
2881 2879
2882Arguments of the program to be debugged must be literal, can take 2880Arguments of the program to be debugged must be literal, can take
@@ -2896,8 +2894,8 @@ command. Powershell V2.0 on the remote host is required to run
2896processes triggered from @value{tramp}. 2894processes triggered from @value{tramp}.
2897 2895
2898@option{explicit-shell-file-name} and @option{explicit-*-args} have to 2896@option{explicit-shell-file-name} and @option{explicit-*-args} have to
2899be set properly so @kbd{M-x shell} can open a proper remote shell on a 2897be set properly so @kbd{M-x shell @key{RET}} can open a proper remote
2900MS Windows host. To open @command{cmd}, set it as follows: 2898shell on a MS Windows host. To open @command{cmd}, set it as follows:
2901 2899
2902@lisp 2900@lisp
2903@group 2901@group
@@ -3189,9 +3187,9 @@ Before sending a bug report, run the test suite first @ref{Testing}.
3189Check if the bug or problem is already addressed in @xref{Frequently 3187Check if the bug or problem is already addressed in @xref{Frequently
3190Asked Questions}. 3188Asked Questions}.
3191 3189
3192Run @kbd{M-x tramp-bug} to generate a buffer with details of the 3190Run @kbd{M-x tramp-bug @key{RET}} to generate a buffer with details of
3193system along with the details of the @value{tramp} 3191the system along with the details of the @value{tramp} installation.
3194installation. Please include these details with the bug report. 3192Please include these details with the bug report.
3195 3193
3196The bug report must describe in as excruciating detail as possible the 3194The bug report must describe in as excruciating detail as possible the
3197steps required to reproduce the problem. These details must include 3195steps required to reproduce the problem. These details must include
@@ -3317,7 +3315,7 @@ put the cursor at the top of the buffer, and then apply the following
3317expression: 3315expression:
3318 3316
3319@example 3317@example
3320@kbd{M-: (re-search-forward (concat tramp-shell-prompt-pattern "$"))} 3318@kbd{M-: (re-search-forward (concat tramp-shell-prompt-pattern "$")) @key{RET}}
3321@end example 3319@end example
3322 3320
3323If the cursor has not moved to the prompt at the bottom of the buffer, 3321If the cursor has not moved to the prompt at the bottom of the buffer,
@@ -3521,9 +3519,10 @@ the following code in @file{~/.emacs} file.
3521How to get a Visual Warning when working with @samp{root} privileges? 3519How to get a Visual Warning when working with @samp{root} privileges?
3522Host indication in the mode line? 3520Host indication in the mode line?
3523 3521
3522@cindex @value{tramp} theme
3524@vindex tramp-theme-face-remapping-alist 3523@vindex tramp-theme-face-remapping-alist
3525Install @file{tramp-theme} from GNU ELPA via Emacs' Package Manager. 3524Install @file{tramp-theme} from GNU ELPA via Emacs' Package Manager.
3526Enable it via @kbd{M-x load-theme @key{RET} tramp}. Further 3525Enable it via @kbd{M-x load-theme @key{RET} tramp @key{RET}}. Further
3527customization is explained in user option 3526customization is explained in user option
3528@option{tramp-theme-face-remapping-alist}. 3527@option{tramp-theme-face-remapping-alist}.
3529 3528
@@ -3598,6 +3597,24 @@ is @file{@trampfn{ssh,news@@news.my.domain,/opt/news/etc}}, then:
3598@enumerate 3597@enumerate
3599 3598
3600@item 3599@item
3600Use simplified syntax:
3601
3602If you always apply the default method (@pxref{Default Method}), you
3603could use the simplified @value{tramp} syntax (@pxref{Change file name
3604syntax}):
3605
3606@lisp
3607@group
3608(customize-set-variable 'tramp-default-method "ssh")
3609(tramp-change-syntax 'simplified)
3610@end group
3611@end lisp
3612
3613The reduced typing: @kbd{C-x C-f
3614@code{@value{prefix}news@@news.my.domain@value{postfix}/opt/news/etc}
3615@key{RET}}.
3616
3617@item
3601Use default values for method name and user name: 3618Use default values for method name and user name:
3602 3619
3603You can define default methods and user names for hosts, 3620You can define default methods and user names for hosts,
@@ -3611,11 +3628,12 @@ You can define default methods and user names for hosts,
3611@end group 3628@end group
3612@end lisp 3629@end lisp
3613 3630
3614The reduced typing: @kbd{C-x C-f @trampfn{-,news.my.domain,/opt/news/etc}}. 3631The reduced typing: @kbd{C-x C-f
3632@trampfn{-,news.my.domain,/opt/news/etc} @key{RET}}.
3615 3633
3616@strong{Note} that there are some useful shortcuts already. Accessing 3634@strong{Note} that there are some useful shortcuts already. Accessing
3617your local host as @samp{root} user, is possible just by @kbd{C-x C-f 3635your local host as @samp{root} user, is possible just by @kbd{C-x C-f
3618@trampfn{su,,}}. 3636@trampfn{su,,} @key{RET}}.
3619 3637
3620@item 3638@item
3621Use configuration options of the access method: 3639Use configuration options of the access method:
@@ -3632,7 +3650,7 @@ Host xy
3632@end group 3650@end group
3633@end example 3651@end example
3634 3652
3635The reduced typing: @kbd{C-x C-f @trampfn{ssh,xy,/opt/news/etc}}. 3653The reduced typing: @kbd{C-x C-f @trampfn{ssh,xy,/opt/news/etc} @key{RET}}.
3636 3654
3637Depending on the number of files in the directories, host names 3655Depending on the number of files in the directories, host names
3638completion can further reduce key strokes: @kbd{C-x C-f 3656completion can further reduce key strokes: @kbd{C-x C-f
@@ -3800,8 +3818,8 @@ Load @file{bbdb} in Emacs:
3800@end group 3818@end group
3801@end lisp 3819@end lisp
3802 3820
3803Create a BBDB entry with @kbd{M-x bbdb-create-ftp-site}. Then specify 3821Create a BBDB entry with @kbd{M-x bbdb-create-ftp-site @key{RET}}.
3804a method and user name where needed. Examples: 3822Then specify a method and user name where needed. Examples:
3805 3823
3806@example 3824@example
3807@group 3825@group
@@ -3937,8 +3955,8 @@ To disable both @value{tramp} (and Ange FTP), set @code{tramp-mode} to
3937@end lisp 3955@end lisp
3938 3956
3939@item 3957@item
3940To unload @value{tramp}, type @kbd{M-x tramp-unload-tramp}. Unloading 3958To unload @value{tramp}, type @kbd{M-x tramp-unload-tramp @key{RET}}.
3941@value{tramp} resets Ange FTP plugins also. 3959Unloading @value{tramp} resets Ange FTP plugins also.
3942@end itemize 3960@end itemize
3943@end itemize 3961@end itemize
3944 3962
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index a64c88c4f0d..1bf6d04b63b 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -295,6 +295,11 @@ The information is logged to `byte-compile-log-buffer'."
295 "If true, the byte-compiler reports warnings with `error'." 295 "If true, the byte-compiler reports warnings with `error'."
296 :group 'bytecomp 296 :group 'bytecomp
297 :type 'boolean) 297 :type 'boolean)
298;; This needs to be autoloaded because it needs to be available to
299;; Emacs before the byte compiler is loaded, otherwise Emacs will not
300;; know that this variable is marked as safe until it is too late.
301;; (See https://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00261.html )
302;;;###autoload(put 'byte-compile-error-on-warn 'safe-local-variable 'booleanp)
298 303
299(defconst byte-compile-warning-types 304(defconst byte-compile-warning-types
300 '(redefine callargs free-vars unresolved 305 '(redefine callargs free-vars unresolved
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 1d7dc9927e5..353d4352f60 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -1917,7 +1917,10 @@ before point that's highlighted as misspelled."
1917;;*---------------------------------------------------------------------*/ 1917;;*---------------------------------------------------------------------*/
1918(defun flyspell-auto-correct-word () 1918(defun flyspell-auto-correct-word ()
1919 "Correct the current word. 1919 "Correct the current word.
1920This command proposes various successive corrections for the current word." 1920This command proposes various successive corrections for the
1921current word. If invoked repeatedly on the same position, it
1922cycles through the possible corrections of the word at or near
1923that position."
1921 (interactive) 1924 (interactive)
1922 ;; If we are not in the construct where flyspell should be active, 1925 ;; If we are not in the construct where flyspell should be active,
1923 ;; invoke the original binding of M-TAB, if that was recorded. 1926 ;; invoke the original binding of M-TAB, if that was recorded.
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 47172dd52fa..9274714cc60 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -243,8 +243,11 @@ Should be consistent with the Git config value i18n.logOutputEncoding."
243 (vc-git--run-command-string nil "version"))) 243 (vc-git--run-command-string nil "version")))
244 (setq vc-git--program-version 244 (setq vc-git--program-version
245 (if (and version-string 245 (if (and version-string
246 (string-match "git version \\([0-9.]+\\)$" 246 ;; Git for Windows appends ".windows.N" to the
247 version-string)) 247 ;; numerical version reported by Git.
248 (string-match
249 "git version \\([0-9.]+\\)\\(\.windows.[0-9]+\\)?$"
250 version-string))
248 (match-string 1 version-string) 251 (match-string 1 version-string)
249 "0"))))) 252 "0")))))
250 253