aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorTom Tromey2018-08-09 17:56:53 -0600
committerTom Tromey2018-08-09 17:56:53 -0600
commitaccb7b7ecc19f85c2750ded1046a464bc73c6a52 (patch)
tree1aa94af022d6700a93a8ff2b73f5b210046ac010 /doc
parentf822a2516d88eeb2118fbbc8554f155e86dfd74e (diff)
parent53483df0de0085dbc9ef0b15a0f629ab808b0147 (diff)
downloademacs-accb7b7ecc19f85c2750ded1046a464bc73c6a52.tar.gz
emacs-accb7b7ecc19f85c2750ded1046a464bc73c6a52.zip
Merge remote-tracking branch 'origin/master' into feature/bignum
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/dired.texi5
-rw-r--r--doc/emacs/files.texi2
-rw-r--r--doc/emacs/fixit.texi14
-rw-r--r--doc/emacs/indent.texi21
-rw-r--r--doc/emacs/maintaining.texi16
-rw-r--r--doc/emacs/misc.texi4
-rw-r--r--doc/emacs/mule.texi19
-rw-r--r--doc/emacs/regs.texi4
-rw-r--r--doc/lispref/debugging.texi115
-rw-r--r--doc/lispref/edebug.texi12
-rw-r--r--doc/lispref/eval.texi3
-rw-r--r--doc/lispref/files.texi8
-rw-r--r--doc/lispref/frames.texi10
-rw-r--r--doc/lispref/lists.texi23
-rw-r--r--doc/lispref/minibuf.texi2
-rw-r--r--doc/lispref/numbers.texi36
-rw-r--r--doc/lispref/sequences.texi8
-rw-r--r--doc/lispref/strings.texi27
-rw-r--r--doc/lispref/threads.texi23
-rw-r--r--doc/misc/efaq.texi4
-rw-r--r--doc/misc/ert.texi8
-rw-r--r--doc/misc/flymake.texi2
-rw-r--r--doc/misc/tramp.texi76
23 files changed, 302 insertions, 140 deletions
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 007a943714a..1b03a3967aa 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -1468,6 +1468,11 @@ rotation is lossless, and uses an external utility called
1468directory's name, and creates that directory. It signals an error if 1468directory's name, and creates that directory. It signals an error if
1469the directory already exists. 1469the directory already exists.
1470 1470
1471@findex dired-create-empty-file
1472 The command (@code{dired-create-empty-file}) reads a
1473file name, and creates that file. It signals an error if
1474the file already exists.
1475
1471@cindex searching multiple files via Dired 1476@cindex searching multiple files via Dired
1472@kindex M-s a C-s @r{(Dired)} 1477@kindex M-s a C-s @r{(Dired)}
1473@kindex M-s a M-C-s @r{(Dired)} 1478@kindex M-s a M-C-s @r{(Dired)}
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index f0a11fde555..a7cc57e4e94 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -881,6 +881,8 @@ You can answer ``no'' to bypass copying of this file, this time. If
881you want to cancel the shadowing permanently for a certain file, use 881you want to cancel the shadowing permanently for a certain file, use
882@w{@kbd{M-x shadow-cancel}} to eliminate or change the shadow file group. 882@w{@kbd{M-x shadow-cancel}} to eliminate or change the shadow file group.
883 883
884File Shadowing is not available on MS Windows.
885
884@node Time Stamps 886@node Time Stamps
885@subsection Updating Time Stamps Automatically 887@subsection Updating Time Stamps Automatically
886@cindex time stamps 888@cindex time stamps
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index ec26a35d682..8277278f521 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -427,11 +427,15 @@ dictionary.
427@cindex mode, Flyspell 427@cindex mode, Flyspell
428@findex flyspell-mode 428@findex flyspell-mode
429 Flyspell mode is a minor mode that performs automatic spell-checking 429 Flyspell mode is a minor mode that performs automatic spell-checking
430as you type. When it finds a word that it does not recognize, it 430of the text you type as you type it. When it finds a word that it
431highlights that word. Type @kbd{M-x flyspell-mode} to toggle Flyspell 431does not recognize, it highlights that word. Type @kbd{M-x
432mode in the current buffer. To enable Flyspell mode in all text mode 432flyspell-mode} to toggle Flyspell mode in the current buffer. To
433buffers, add @code{flyspell-mode} to @code{text-mode-hook}. 433enable Flyspell mode in all text mode buffers, add
434@xref{Hooks}. 434@code{flyspell-mode} to @code{text-mode-hook}. @xref{Hooks}. Note
435that, as Flyspell mode needs to check each word across which you move,
436it will slow down cursor motion and scrolling commands. It also
437doesn't automatically check the text you didn't type or move across;
438use @code{flyspell-region} or @code{flyspell-buffer} for that.
435 439
436@findex flyspell-correct-word 440@findex flyspell-correct-word
437@findex flyspell-auto-correct-word 441@findex flyspell-auto-correct-word
diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi
index b38e85819ce..bf43909edf3 100644
--- a/doc/emacs/indent.texi
+++ b/doc/emacs/indent.texi
@@ -60,9 +60,9 @@ repositioned to the first non-whitespace character on the line.
60@node Indentation Commands 60@node Indentation Commands
61@section Indentation Commands 61@section Indentation Commands
62 62
63Apart from the @key{TAB} (@code{indent-for-tab-command}) command, 63Apart from the @kbd{@key{TAB}} (@code{indent-for-tab-command})
64Emacs provides a variety of commands to perform indentation in other 64command, Emacs provides a variety of commands to perform indentation
65ways. 65in other ways.
66 66
67@table @kbd 67@table @kbd
68@item C-M-o 68@item C-M-o
@@ -113,8 +113,8 @@ appears after the newline that is deleted. @xref{Fill Prefix}.
113@item C-M-\ 113@item C-M-\
114@kindex C-M-\ 114@kindex C-M-\
115@findex indent-region 115@findex indent-region
116Indent all the lines in the region, as though you had typed @key{TAB} 116Indent all the lines in the region, as though you had typed
117at the beginning of each line (@code{indent-region}). 117@kbd{@key{TAB}} at the beginning of each line (@code{indent-region}).
118 118
119If a numeric argument is supplied, indent every line in the region to 119If a numeric argument is supplied, indent every line in the region to
120that column number. 120that column number.
@@ -128,11 +128,12 @@ in the region, moving the affected lines as a rigid unit.
128 128
129If called with no argument, the command activates a transient mode for 129If called with no argument, the command activates a transient mode for
130adjusting the indentation of the affected lines interactively. While 130adjusting the indentation of the affected lines interactively. While
131this transient mode is active, typing @key{LEFT} or @key{RIGHT} 131this transient mode is active, typing @kbd{@key{LEFT}} or
132indents leftward and rightward, respectively, by one space. You can 132@kbd{@key{RIGHT}} indents leftward and rightward, respectively, by one
133also type @kbd{S-@key{LEFT}} or @kbd{S-@key{RIGHT}} to indent leftward 133space. You can also type @kbd{S-@key{LEFT}} or @kbd{S-@key{RIGHT}} to
134or rightward to the next tab stop (@pxref{Tab Stops}). Typing any 134indent leftward or rightward to the next tab stop (@pxref{Tab Stops}).
135other key disables the transient mode, and resumes normal editing. 135Typing any other key disables the transient mode, and resumes normal
136editing.
136 137
137If called with a prefix argument @var{n}, this command indents the 138If called with a prefix argument @var{n}, this command indents the
138lines forward by @var{n} spaces (without enabling the transient mode). 139lines forward by @var{n} spaces (without enabling the transient mode).
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 024fd9728c5..b31cacf998a 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -1655,10 +1655,20 @@ not just to the next change log entry. You can also use
1655log files into a buffer in Change Log Mode, preserving the date 1655log files into a buffer in Change Log Mode, preserving the date
1656ordering of entries. 1656ordering of entries.
1657 1657
1658@vindex add-log-dont-create-changelog-file
1658 Version control systems are another way to keep track of changes in 1659 Version control systems are another way to keep track of changes in
1659your program and keep a change log. In the VC log buffer, typing 1660your program and keep a change log. Many projects that use a VCS don't
1660@kbd{C-c C-a} (@code{log-edit-insert-changelog}) inserts the relevant 1661keep a separate versioned change log file nowadays, so you may wish to
1661change log entry, if one exists. @xref{Log Buffer}. 1662avoid having such a file in the repository. If the value of
1663@code{add-log-dont-create-changelog-file} is non-@code{nil}, commands
1664like @kbd{C-x 4 a} (@code{add-change-log-entry-other-window}) will
1665record changes in a suitably named temporary buffer instead of a file,
1666if such a file does not already exist.
1667
1668Whether you have a change log file or use a temporary buffer for
1669change logs, you can type @kbd{C-c C-a}
1670(@code{log-edit-insert-changelog}) in the VC Log buffer to insert the
1671relevant change log entries, if they exist. @xref{Log Buffer}.
1662 1672
1663@node Format of ChangeLog 1673@node Format of ChangeLog
1664@subsection Format of ChangeLog 1674@subsection Format of ChangeLog
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 3d3441401dd..236cb07785c 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1026,8 +1026,8 @@ Move backward across one shell command, but not beyond the current line
1026Ask the shell for its working directory, and update the Shell buffer's 1026Ask the shell for its working directory, and update the Shell buffer's
1027default directory. @xref{Directory Tracking}. 1027default directory. @xref{Directory Tracking}.
1028 1028
1029@item M-x send-invisible @key{RET} @var{text} @key{RET} 1029@item M-x comint-send-invisible @key{RET} @var{text} @key{RET}
1030@findex send-invisible 1030@findex comint-send-invisible
1031Send @var{text} as input to the shell, after reading it without 1031Send @var{text} as input to the shell, after reading it without
1032echoing. This is useful when a shell command runs a program that asks 1032echoing. This is useful when a shell command runs a program that asks
1033for a password. 1033for a password.
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 401c83dd49a..6c0c5b23989 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -156,12 +156,19 @@ system encodes the character safely and with a single byte
156(@pxref{Coding Systems}). If the character's encoding is longer than 156(@pxref{Coding Systems}). If the character's encoding is longer than
157one byte, Emacs shows @samp{file ...}. 157one byte, Emacs shows @samp{file ...}.
158 158
159 As a special case, if the character lies in the range 128 (0200 159@cindex eight-bit character set
160octal) through 159 (0237 octal), it stands for a raw byte that 160@cindex raw bytes
161does not correspond to any specific displayable character. Such a 161 On rare occasions, Emacs encounters @dfn{raw bytes}: single bytes
162character lies within the @code{eight-bit-control} character set, 162whose values are in the range 128 (0200 octal) through 255 (0377
163and is displayed as an escaped octal character code. In this case, 163octal), which Emacs cannot interpret as part of a known encoding of
164@kbd{C-x =} shows @samp{part of display ...} instead of @samp{file}. 164some non-ASCII character. Such raw bytes are treated as if they
165belonged to a special character set @code{eight-bit}; Emacs displays
166them as escaped octal codes (this can be customized; @pxref{Display
167Custom}). In this case, @kbd{C-x =} shows @samp{raw-byte} instead of
168@samp{file}. In addition, @kbd{C-x =} shows the character codes of
169raw bytes as if they were in the range @code{#x3FFF80..#x3FFFFF},
170which is where Emacs maps them to distinguish them from Unicode
171characters in the range @code{#x0080..#x00FF}.
165 172
166@cindex character set of character at point 173@cindex character set of character at point
167@cindex font of character at point 174@cindex font of character at point
diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi
index 7d16d539128..98eed064536 100644
--- a/doc/emacs/regs.texi
+++ b/doc/emacs/regs.texi
@@ -80,7 +80,9 @@ information until you store something else in it.
80@kindex C-x r j 80@kindex C-x r j
81@findex jump-to-register 81@findex jump-to-register
82 The command @kbd{C-x r j @var{r}} switches to the buffer recorded in 82 The command @kbd{C-x r j @var{r}} switches to the buffer recorded in
83register @var{r}, and moves point to the recorded position. The 83register @var{r}, pushes a mark, and moves point to the recorded
84position. (The mark is not pushed if point was already at the
85recorded position, or in successive calls to the command.) The
84contents of the register are not changed, so you can jump to the saved 86contents of the register are not changed, so you can jump to the saved
85position any number of times. 87position any number of times.
86 88
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 1b1f87465db..9b3ba6cf7ee 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -81,7 +81,8 @@ debugger recursively. @xref{Recursive Editing}.
81* Function Debugging:: Entering it when a certain function is called. 81* Function Debugging:: Entering it when a certain function is called.
82* Variable Debugging:: Entering it when a variable is modified. 82* Variable Debugging:: Entering it when a variable is modified.
83* Explicit Debug:: Entering it at a certain point in the program. 83* Explicit Debug:: Entering it at a certain point in the program.
84* Using Debugger:: What the debugger does; what you see while in it. 84* Using Debugger:: What the debugger does.
85* Backtraces:: What you see while in the debugger.
85* Debugger Commands:: Commands used while in the debugger. 86* Debugger Commands:: Commands used while in the debugger.
86* Invoking the Debugger:: How to call the function @code{debug}. 87* Invoking the Debugger:: How to call the function @code{debug}.
87* Internals of Debugger:: Subroutines of the debugger, and global variables. 88* Internals of Debugger:: Subroutines of the debugger, and global variables.
@@ -392,32 +393,82 @@ this is not what you want, you can either set
392@code{eval-expression-debug-on-error} to @code{nil}, or set 393@code{eval-expression-debug-on-error} to @code{nil}, or set
393@code{debug-on-error} to @code{nil} in @code{debugger-mode-hook}. 394@code{debug-on-error} to @code{nil} in @code{debugger-mode-hook}.
394 395
396 The debugger itself must be run byte-compiled, since it makes
397assumptions about the state of the Lisp interpreter. These
398assumptions are false if the debugger is running interpreted.
399
400@node Backtraces
401@subsection Backtraces
402@cindex backtrace buffer
403
404Debugger mode is derived from Backtrace mode, which is also used to
405show backtraces by Edebug and ERT. (@pxref{Edebug}, and @ref{Top,the
406ERT manual,, ert, ERT: Emacs Lisp Regression Testing}.)
407
408@cindex stack frame
409The backtrace buffer shows you the functions that are executing and
410their argument values. When a backtrace buffer is created, it shows
411each stack frame on one, possibly very long, line. (A stack frame is
412the place where the Lisp interpreter records information about a
413particular invocation of a function.) The most recently called
414function will be at the top.
415
395@cindex current stack frame 416@cindex current stack frame
396 The backtrace buffer shows you the functions that are executing and 417In a backtrace you can specify a stack frame by moving point to a line
397their argument values. It also allows you to specify a stack frame by 418describing that frame. The frame whose line point is on is considered
398moving point to the line describing that frame. (A stack frame is the 419the @dfn{current frame}.
399place where the Lisp interpreter records information about a particular 420
400invocation of a function.) The frame whose line point is on is 421If a function name is underlined, that means Emacs knows where its
401considered the @dfn{current frame}. Some of the debugger commands 422source code is located. You can click with the mouse on that name, or
402operate on the current frame. If a line starts with a star, that means 423move to it and type @key{RET}, to visit the source code. You can also
403that exiting that frame will call the debugger again. This is useful 424type @key{RET} while point is on any name of a function or variable
404for examining the return value of a function. 425which is not underlined, to see help information for that symbol in a
405 426help buffer, if any exists. The @code{xref-find-definitions} command,
406 If a function name is underlined, that means the debugger knows 427bound to @key{M-.}, can also be used on any identifier in a backtrace
407where its source code is located. You can click with the mouse on 428(@pxref{Looking Up Identifiers,,,emacs, The GNU Emacs Manual}).
408that name, or move to it and type @key{RET}, to visit the source code. 429
430In backtraces, the tails of long lists and the ends of long strings,
431vectors or structures, as well as objects which are deeply nested,
432will be printed as underlined ``...''. You can click with the mouse
433on a ``...'', or type @key{RET} while point is on it, to show the part
434of the object that was hidden. To control how much abbreviation is
435done, customize @code{backtrace-line-length}.
436
437Here is a list of commands for navigating and viewing backtraces:
409 438
410 The debugger itself must be run byte-compiled, since it makes 439@table @kbd
411assumptions about how many stack frames are used for the debugger 440@item v
412itself. These assumptions are false if the debugger is running 441Toggle the display of local variables of the current stack frame.
413interpreted. 442
443@item p
444Move to the beginning of the frame, or to the beginning
445of the previous frame.
446
447@item n
448Move to the beginning of the next frame.
449
450@item +
451Add line breaks and indentation to the top-level Lisp form at point to
452make it more readable.
453
454@item -
455Collapse the top-level Lisp form at point back to a single line.
456
457@item #
458Toggle @code{print-circle} for the frame at point.
459
460@item .
461Expand all the forms abbreviated with ``...'' in the frame at point.
462
463@end table
414 464
415@node Debugger Commands 465@node Debugger Commands
416@subsection Debugger Commands 466@subsection Debugger Commands
417@cindex debugger command list 467@cindex debugger command list
418 468
419 The debugger buffer (in Debugger mode) provides special commands in 469 The debugger buffer (in Debugger mode) provides special commands in
420addition to the usual Emacs commands. The most important use of 470addition to the usual Emacs commands and to the Backtrace mode commands
471described in the previous section. The most important use of
421debugger commands is for stepping through code, so that you can see 472debugger commands is for stepping through code, so that you can see
422how control flows. The debugger can step through the control 473how control flows. The debugger can step through the control
423structures of an interpreted function, but cannot do so in a 474structures of an interpreted function, but cannot do so in a
@@ -427,6 +478,11 @@ the same function. (To do this, visit the source for the function and
427type @kbd{C-M-x} on its definition.) You cannot use the Lisp debugger 478type @kbd{C-M-x} on its definition.) You cannot use the Lisp debugger
428to step through a primitive function. 479to step through a primitive function.
429 480
481Some of the debugger commands operate on the current frame. If a
482frame starts with a star, that means that exiting that frame will call the
483debugger again. This is useful for examining the return value of a
484function.
485
430@c FIXME: Add @findex for the following commands? --xfq 486@c FIXME: Add @findex for the following commands? --xfq
431 Here is a list of Debugger mode commands: 487 Here is a list of Debugger mode commands:
432 488
@@ -502,8 +558,6 @@ Display a list of functions that will invoke the debugger when called.
502This is a list of functions that are set to break on entry by means of 558This is a list of functions that are set to break on entry by means of
503@code{debug-on-entry}. 559@code{debug-on-entry}.
504 560
505@item v
506Toggle the display of local variables of the current stack frame.
507@end table 561@end table
508 562
509@node Invoking the Debugger 563@node Invoking the Debugger
@@ -624,20 +678,19 @@ of @code{debug} (@pxref{Invoking the Debugger}).
624@cindex run time stack 678@cindex run time stack
625@cindex call stack 679@cindex call stack
626This function prints a trace of Lisp function calls currently active. 680This function prints a trace of Lisp function calls currently active.
627This is the function used by @code{debug} to fill up the 681The trace is identical to the one that @code{debug} would show in the
628@file{*Backtrace*} buffer. It is written in C, since it must have access 682@file{*Backtrace*} buffer. The return value is always nil.
629to the stack to determine which function calls are active. The return
630value is always @code{nil}.
631 683
632In the following example, a Lisp expression calls @code{backtrace} 684In the following example, a Lisp expression calls @code{backtrace}
633explicitly. This prints the backtrace to the stream 685explicitly. This prints the backtrace to the stream
634@code{standard-output}, which, in this case, is the buffer 686@code{standard-output}, which, in this case, is the buffer
635@samp{backtrace-output}. 687@samp{backtrace-output}.
636 688
637Each line of the backtrace represents one function call. The line shows 689Each line of the backtrace represents one function call. The line
638the values of the function's arguments if they are all known; if they 690shows the function followed by a list of the values of the function's
639are still being computed, the line says so. The arguments of special 691arguments if they are all known; if they are still being computed, the
640forms are elided. 692line consists of a list containing the function and its unevaluated
693arguments. Long lists or deeply nested structures may be elided.
641 694
642@smallexample 695@smallexample
643@group 696@group
@@ -654,7 +707,7 @@ forms are elided.
654@group 707@group
655----------- Buffer: backtrace-output ------------ 708----------- Buffer: backtrace-output ------------
656 backtrace() 709 backtrace()
657 (list ...computing arguments...) 710 (list 'testing (backtrace))
658@end group 711@end group
659 (progn ...) 712 (progn ...)
660 eval((progn (1+ var) (list 'testing (backtrace)))) 713 eval((progn (1+ var) (list 'testing (backtrace))))
@@ -685,7 +738,7 @@ example would look as follows:
685@group 738@group
686----------- Buffer: backtrace-output ------------ 739----------- Buffer: backtrace-output ------------
687 (backtrace) 740 (backtrace)
688 (list ...computing arguments...) 741 (list 'testing (backtrace))
689@end group 742@end group
690 (progn ...) 743 (progn ...)
691 (eval (progn (1+ var) (list 'testing (backtrace)))) 744 (eval (progn (1+ var) (list 'testing (backtrace))))
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index b9cc1d5afc2..54200b99903 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -442,8 +442,16 @@ Redisplay the most recently known expression result in the echo area
442Display a backtrace, excluding Edebug's own functions for clarity 442Display a backtrace, excluding Edebug's own functions for clarity
443(@code{edebug-backtrace}). 443(@code{edebug-backtrace}).
444 444
445You cannot use debugger commands in the backtrace buffer in Edebug as 445@xref{Backtraces}, for a description of backtraces
446you would in the standard debugger. 446and the commands which work on them.
447
448If you would like to see Edebug's functions in the backtrace,
449use @kbd{M-x edebug-backtrace-show-instrumentation}. To hide them
450again use @kbd{M-x edebug-backtrace-hide-instrumentation}.
451
452If a backtrace frame starts with @samp{>} that means that Edebug knows
453where the source code for the frame is located. Use @kbd{s} to jump
454to the source code for the current frame.
447 455
448The backtrace buffer is killed automatically when you continue 456The backtrace buffer is killed automatically when you continue
449execution. 457execution.
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
index 4e8b0df7b58..c9401be2535 100644
--- a/doc/lispref/eval.texi
+++ b/doc/lispref/eval.texi
@@ -507,9 +507,6 @@ Emacs Lisp with a reference to where each is described.
507@item setq-default 507@item setq-default
508@pxref{Creating Buffer-Local} 508@pxref{Creating Buffer-Local}
509 509
510@item track-mouse
511@pxref{Mouse Tracking}
512
513@item unwind-protect 510@item unwind-protect
514@pxref{Nonlocal Exits} 511@pxref{Nonlocal Exits}
515 512
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 068cf054437..25fabe1ea5b 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -3005,10 +3005,16 @@ This command creates a directory named @var{dirname}. If
3005@var{parents} is non-@code{nil}, as is always the case in an 3005@var{parents} is non-@code{nil}, as is always the case in an
3006interactive call, that means to create the parent directories first, 3006interactive call, that means to create the parent directories first,
3007if they don't already exist. 3007if they don't already exist.
3008
3009@code{mkdir} is an alias for this. 3008@code{mkdir} is an alias for this.
3010@end deffn 3009@end deffn
3011 3010
3011@deffn Command make-empty-file filename &optional parents
3012This command creates an empty file named @var{filename}.
3013As @code{make-directory}, this command creates parent directories
3014if @var{parents} is non-@code{nil}.
3015If @var{filename} already exists, this command signals an error.
3016@end deffn
3017
3012@deffn Command copy-directory dirname newname &optional keep-time parents copy-contents 3018@deffn Command copy-directory dirname newname &optional keep-time parents copy-contents
3013This command copies the directory named @var{dirname} to 3019This command copies the directory named @var{dirname} to
3014@var{newname}. If @var{newname} is a directory name, 3020@var{newname}. If @var{newname} is a directory name,
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 6678644bec7..ba4b9313731 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -3373,10 +3373,10 @@ occur. That is useful, because normally you don't want to track the
3373mouse forever---only until some other event, such as the release of a 3373mouse forever---only until some other event, such as the release of a
3374button. 3374button.
3375 3375
3376@defspec track-mouse body@dots{} 3376@defmac track-mouse body@dots{}
3377This special form executes @var{body}, with generation of mouse motion 3377This macro executes @var{body}, with generation of mouse motion events
3378events enabled. Typically, @var{body} would use @code{read-event} to 3378enabled. Typically, @var{body} would use @code{read-event} to read
3379read the motion events and modify the display accordingly. @xref{Motion 3379the motion events and modify the display accordingly. @xref{Motion
3380Events}, for the format of mouse motion events. 3380Events}, for the format of mouse motion events.
3381 3381
3382The value of @code{track-mouse} is that of the last form in @var{body}. 3382The value of @code{track-mouse} is that of the last form in @var{body}.
@@ -3396,7 +3396,7 @@ on (@pxref{Pointer Shape}). Therefore, Lisp programs that need the
3396mouse pointer to retain its original shape during dragging should bind 3396mouse pointer to retain its original shape during dragging should bind
3397@code{track-mouse} to the value @code{dragging} at the beginning of 3397@code{track-mouse} to the value @code{dragging} at the beginning of
3398their @var{body}. 3398their @var{body}.
3399@end defspec 3399@end defmac
3400 3400
3401The usual purpose of tracking mouse motion is to indicate on the screen 3401The usual purpose of tracking mouse motion is to indicate on the screen
3402the consequences of pushing or releasing a button at the current 3402the consequences of pushing or releasing a button at the current
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index 57cefeac962..b7bb3cf6be1 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -50,16 +50,19 @@ convention; at the level of cons cells, the @sc{car} and @sc{cdr}
50slots have similar properties). Hence, the @sc{cdr} slot of each cons 50slots have similar properties). Hence, the @sc{cdr} slot of each cons
51cell in a list refers to the following cons cell. 51cell in a list refers to the following cons cell.
52 52
53@cindex proper list
53@cindex true list 54@cindex true list
54 Also by convention, the @sc{cdr} of the last cons cell in a list is 55 Also by convention, the @sc{cdr} of the last cons cell in a list is
55@code{nil}. We call such a @code{nil}-terminated structure a 56@code{nil}. We call such a @code{nil}-terminated structure a
56@dfn{true list}. In Emacs Lisp, the symbol @code{nil} is both a 57@dfn{proper list}@footnote{It is sometimes also referred to as a
57symbol and a list with no elements. For convenience, the symbol 58@dfn{true list}, but we generally do not use this terminology in this
58@code{nil} is considered to have @code{nil} as its @sc{cdr} (and also 59manual.}. In Emacs Lisp, the symbol @code{nil} is both a symbol and a
59as its @sc{car}). 60list with no elements. For convenience, the symbol @code{nil} is
60 61considered to have @code{nil} as its @sc{cdr} (and also as its
61 Hence, the @sc{cdr} of a true list is always a true list. The 62@sc{car}).
62@sc{cdr} of a nonempty true list is a true list containing all the 63
64 Hence, the @sc{cdr} of a proper list is always a proper list. The
65@sc{cdr} of a nonempty proper list is a proper list containing all the
63elements except the first. 66elements except the first.
64 67
65@cindex dotted list 68@cindex dotted list
@@ -71,10 +74,10 @@ Pair Notation}). There is one other possibility: some cons cell's
71@sc{cdr} could point to one of the previous cons cells in the list. 74@sc{cdr} could point to one of the previous cons cells in the list.
72We call that structure a @dfn{circular list}. 75We call that structure a @dfn{circular list}.
73 76
74 For some purposes, it does not matter whether a list is true, 77 For some purposes, it does not matter whether a list is proper,
75circular or dotted. If a program doesn't look far enough down the 78circular or dotted. If a program doesn't look far enough down the
76list to see the @sc{cdr} of the final cons cell, it won't care. 79list to see the @sc{cdr} of the final cons cell, it won't care.
77However, some functions that operate on lists demand true lists and 80However, some functions that operate on lists demand proper lists and
78signal errors if given a dotted list. Most functions that try to find 81signal errors if given a dotted list. Most functions that try to find
79the end of a list enter infinite loops if given a circular list. 82the end of a list enter infinite loops if given a circular list.
80 83
@@ -538,7 +541,7 @@ object. The final argument is not copied or converted; it becomes the
538is itself a list, then its elements become in effect elements of the 541is itself a list, then its elements become in effect elements of the
539result list. If the final element is not a list, the result is a 542result list. If the final element is not a list, the result is a
540dotted list since its final @sc{cdr} is not @code{nil} as required 543dotted list since its final @sc{cdr} is not @code{nil} as required
541in a true list. 544in a proper list (@pxref{Cons Cells}).
542@end defun 545@end defun
543 546
544 Here is an example of using @code{append}: 547 Here is an example of using @code{append}:
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 889b64af8ae..d091787a680 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -2199,7 +2199,7 @@ function @code{read-passwd}.
2199@defun read-passwd prompt &optional confirm default 2199@defun read-passwd prompt &optional confirm default
2200This function reads a password, prompting with @var{prompt}. It does 2200This function reads a password, prompting with @var{prompt}. It does
2201not echo the password as the user types it; instead, it echoes 2201not echo the password as the user types it; instead, it echoes
2202@samp{.} for each character in the password. If you want to apply 2202@samp{*} for each character in the password. If you want to apply
2203another character to hide the password, let-bind the variable 2203another character to hide the password, let-bind the variable
2204@code{read-hide-char} with that character. 2204@code{read-hide-char} with that character.
2205 2205
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index d9fb43258ea..89205f9df39 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -213,7 +213,7 @@ least one digit after any decimal point in a floating-point number;
213@samp{1500.} is an integer, not a floating-point number. 213@samp{1500.} is an integer, not a floating-point number.
214 214
215 Emacs Lisp treats @code{-0.0} as numerically equal to ordinary zero 215 Emacs Lisp treats @code{-0.0} as numerically equal to ordinary zero
216with respect to @code{equal} and @code{=}. This follows the 216with respect to numeric comparisons like @code{=}. This follows the
217@acronym{IEEE} floating-point standard, which says @code{-0.0} and 217@acronym{IEEE} floating-point standard, which says @code{-0.0} and
218@code{0.0} are numerically equal even though other operations can 218@code{0.0} are numerically equal even though other operations can
219distinguish them. 219distinguish them.
@@ -227,8 +227,20 @@ infinity and negative infinity as floating-point values. It also
227provides for a class of values called NaN, or ``not a number''; 227provides for a class of values called NaN, or ``not a number'';
228numerical functions return such values in cases where there is no 228numerical functions return such values in cases where there is no
229correct answer. For example, @code{(/ 0.0 0.0)} returns a NaN@. 229correct answer. For example, @code{(/ 0.0 0.0)} returns a NaN@.
230Although NaN values carry a sign, for practical purposes there is no other 230A NaN is never numerically equal to any value, not even to itself.
231significant difference between different NaN values in Emacs Lisp. 231NaNs carry a sign and a significand, and non-numeric functions treat
232two NaNs as equal when their
233signs and significands agree. Significands of NaNs are
234machine-dependent, as are the digits in their string representation.
235
236 When NaNs and signed zeros are involved, non-numeric functions like
237@code{eql}, @code{equal}, @code{sxhash-eql}, @code{sxhash-equal} and
238@code{gethash} determine whether values are indistinguishable, not
239whether they are numerically equal. For example, when @var{x} and
240@var{y} are the same NaN, @code{(equal x y)} returns @code{t} whereas
241@code{(= x y)} uses numeric comparison and returns @code{nil};
242conversely, @code{(equal 0.0 -0.0)} returns @code{nil} whereas
243@code{(= 0.0 -0.0)} returns @code{t}.
232 244
233Here are read syntaxes for these special floating-point values: 245Here are read syntaxes for these special floating-point values:
234 246
@@ -358,11 +370,15 @@ if so, @code{nil} otherwise. The argument must be a number.
358@cindex comparing numbers 370@cindex comparing numbers
359 371
360 To test numbers for numerical equality, you should normally use 372 To test numbers for numerical equality, you should normally use
361@code{=}, not @code{eq}. There can be many distinct floating-point 373@code{=} instead of non-numeric comparison predicates like @code{eq},
362and large integer objects with the same numeric value. If you use 374@code{eql} and @code{equal}. Distinct floating-point and large
363@code{eq} to compare them, then you test whether two values are the 375integer objects can be numerically equal. If you use @code{eq} to
364same @emph{object}. By contrast, @code{=} compares only the numeric 376compare them, you test whether they are the same @emph{object}; if you
365values of the objects. 377use @code{eql} or @code{equal}, you test whether their values are
378@emph{indistinguishable}. In contrast, @code{=} uses numeric
379comparison, and sometimes returns @code{t} when a non-numeric
380comparison would return @code{nil} and vice versa. @xref{Float
381Basics}.
366 382
367 In Emacs Lisp, each small integer is a unique Lisp object. 383 In Emacs Lisp, each small integer is a unique Lisp object.
368Therefore, @code{eq} is equivalent to @code{=} where small integers are 384Therefore, @code{eq} is equivalent to @code{=} where small integers are
@@ -829,7 +845,7 @@ reproducing the same pattern moved over.
829bits in @var{integer1} to the left @var{count} places, or to the right 845bits in @var{integer1} to the left @var{count} places, or to the right
830if @var{count} is negative, bringing zeros into the vacated bits. If 846if @var{count} is negative, bringing zeros into the vacated bits. If
831@var{count} is negative, @code{lsh} shifts zeros into the leftmost 847@var{count} is negative, @code{lsh} shifts zeros into the leftmost
832(most-significant) bit, producing a positive result even if 848(most-significant) bit, producing a nonnegative result even if
833@var{integer1} is negative. Contrast this with @code{ash}, below. 849@var{integer1} is negative. Contrast this with @code{ash}, below.
834 850
835Here are two examples of @code{lsh}, shifting a pattern of bits one 851Here are two examples of @code{lsh}, shifting a pattern of bits one
@@ -1167,7 +1183,7 @@ returns a NaN.
1167 1183
1168@defun expt x y 1184@defun expt x y
1169This function returns @var{x} raised to power @var{y}. If both 1185This function returns @var{x} raised to power @var{y}. If both
1170arguments are integers and @var{y} is positive, the result is an 1186arguments are integers and @var{y} is nonnegative, the result is an
1171integer; in this case, overflow causes truncation, so watch out. 1187integer; in this case, overflow causes truncation, so watch out.
1172If @var{x} is a finite negative number and @var{y} is a finite 1188If @var{x} is a finite negative number and @var{y} is a finite
1173non-integer, @code{expt} returns a NaN. 1189non-integer, @code{expt} returns a NaN.
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index b98889eb099..6a6f4d5c82e 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -63,7 +63,8 @@ But it is possible to add elements to the list, or remove elements.
63 63
64@defun sequencep object 64@defun sequencep object
65This function returns @code{t} if @var{object} is a list, vector, 65This function returns @code{t} if @var{object} is a list, vector,
66string, bool-vector, or char-table, @code{nil} otherwise. 66string, bool-vector, or char-table, @code{nil} otherwise. See also
67@code{seqp} below.
67@end defun 68@end defun
68 69
69@defun length sequence 70@defun length sequence
@@ -479,7 +480,8 @@ built-in sequence types, @code{seq-length} behaves like @code{length}.
479@defun seqp object 480@defun seqp object
480 This function returns non-@code{nil} if @var{object} is a sequence 481 This function returns non-@code{nil} if @var{object} is a sequence
481(a list or array), or any additional type of sequence defined via 482(a list or array), or any additional type of sequence defined via
482@file{seq.el} generic functions. 483@file{seq.el} generic functions. This is an extensible variant of
484@code{sequencep}.
483 485
484@example 486@example
485@group 487@group
@@ -1355,7 +1357,7 @@ each initialized to @var{object}.
1355@defun vconcat &rest sequences 1357@defun vconcat &rest sequences
1356@cindex copying vectors 1358@cindex copying vectors
1357This function returns a new vector containing all the elements of 1359This function returns a new vector containing all the elements of
1358@var{sequences}. The arguments @var{sequences} may be true lists, 1360@var{sequences}. The arguments @var{sequences} may be proper lists,
1359vectors, strings or bool-vectors. If no @var{sequences} are given, 1361vectors, strings or bool-vectors. If no @var{sequences} are given,
1360the empty vector is returned. 1362the empty vector is returned.
1361 1363
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 026ba749cbd..3558f17301d 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -922,7 +922,8 @@ Functions}). Thus, strings are enclosed in @samp{"} characters, and
922@item %o 922@item %o
923@cindex integer to octal 923@cindex integer to octal
924Replace the specification with the base-eight representation of an 924Replace the specification with the base-eight representation of an
925unsigned integer. The object can also be a nonnegative floating-point 925integer. Negative integers are formatted in a platform-dependent
926way. The object can also be a nonnegative floating-point
926number that is formatted as an integer, dropping any fraction, if the 927number that is formatted as an integer, dropping any fraction, if the
927integer does not exceed machine limits. 928integer does not exceed machine limits.
928 929
@@ -935,7 +936,8 @@ formatted as an integer, dropping any fraction.
935@itemx %X 936@itemx %X
936@cindex integer to hexadecimal 937@cindex integer to hexadecimal
937Replace the specification with the base-sixteen representation of an 938Replace the specification with the base-sixteen representation of an
938unsigned integer. @samp{%x} uses lower case and @samp{%X} uses upper 939integer. Negative integers are formatted in a platform-dependent
940way. @samp{%x} uses lower case and @samp{%X} uses upper
939case. The object can also be a nonnegative floating-point number that 941case. The object can also be a nonnegative floating-point number that
940is formatted as an integer, dropping any fraction, if the integer does 942is formatted as an integer, dropping any fraction, if the integer does
941not exceed machine limits. 943not exceed machine limits.
@@ -1015,17 +1017,17 @@ numbered or unnumbered format specifications but not both, except that
1015 After the @samp{%} and any field number, you can put certain 1017 After the @samp{%} and any field number, you can put certain
1016@dfn{flag characters}. 1018@dfn{flag characters}.
1017 1019
1018 The flag @samp{+} inserts a plus sign before a positive number, so 1020 The flag @samp{+} inserts a plus sign before a nonnegative number, so
1019that it always has a sign. A space character as flag inserts a space 1021that it always has a sign. A space character as flag inserts a space
1020before a positive number. (Otherwise, positive numbers start with the 1022before a nonnegative number. (Otherwise, nonnegative numbers start with the
1021first digit.) These flags are useful for ensuring that positive 1023first digit.) These flags are useful for ensuring that nonnegative
1022numbers and negative numbers use the same number of columns. They are 1024and negative numbers use the same number of columns. They are
1023ignored except for @samp{%d}, @samp{%e}, @samp{%f}, @samp{%g}, and if 1025ignored except for @samp{%d}, @samp{%e}, @samp{%f}, @samp{%g}, and if
1024both flags are used, @samp{+} takes precedence. 1026both flags are used, @samp{+} takes precedence.
1025 1027
1026 The flag @samp{#} specifies an alternate form which depends on 1028 The flag @samp{#} specifies an alternate form which depends on
1027the format in use. For @samp{%o}, it ensures that the result begins 1029the format in use. For @samp{%o}, it ensures that the result begins
1028with a @samp{0}. For @samp{%x} and @samp{%X}, it prefixes the result 1030with a @samp{0}. For @samp{%x} and @samp{%X}, it prefixes nonzero results
1029with @samp{0x} or @samp{0X}. For @samp{%e} and @samp{%f}, the 1031with @samp{0x} or @samp{0X}. For @samp{%e} and @samp{%f}, the
1030@samp{#} flag means include a decimal point even if the precision is 1032@samp{#} flag means include a decimal point even if the precision is
1031zero. For @samp{%g}, it always includes a decimal point, and also 1033zero. For @samp{%g}, it always includes a decimal point, and also
@@ -1108,6 +1110,17 @@ shows only the first three characters of the representation for
1108precision is what the local library functions of the @code{printf} 1110precision is what the local library functions of the @code{printf}
1109family produce. 1111family produce.
1110 1112
1113@cindex formatting numbers for rereading later
1114 If you plan to use @code{read} later on the formatted string to
1115retrieve a copy of the formatted value, use a specification that lets
1116@code{read} reconstruct the value. To format numbers in this
1117reversible way you can use @samp{%s} and @samp{%S}, to format just
1118integers you can also use @samp{%d}, and to format just nonnegative
1119integers you can also use @samp{#x%x} and @samp{#o%o}. Other formats
1120may be problematic; for example, @samp{%d} and @samp{%g} can mishandle
1121NaNs and can lose precision and type, and @samp{#x%x} and @samp{#o%o}
1122can mishandle negative integers. @xref{Input Functions}.
1123
1111@node Case Conversion 1124@node Case Conversion
1112@section Case Conversion in Lisp 1125@section Case Conversion in Lisp
1113@cindex upper case 1126@cindex upper case
diff --git a/doc/lispref/threads.texi b/doc/lispref/threads.texi
index f05af496188..58a3a918efd 100644
--- a/doc/lispref/threads.texi
+++ b/doc/lispref/threads.texi
@@ -75,8 +75,8 @@ thread, @code{nil} otherwise.
75 75
76@defun thread-join thread 76@defun thread-join thread
77Block until @var{thread} exits, or until the current thread is 77Block until @var{thread} exits, or until the current thread is
78signaled. If @var{thread} has already exited, this returns 78signaled. It returns the result of the @var{thread} function. If
79immediately. 79@var{thread} has already exited, this returns immediately.
80@end defun 80@end defun
81 81
82@defun thread-signal thread error-symbol data 82@defun thread-signal thread error-symbol data
@@ -87,6 +87,15 @@ thread, then this just calls @code{signal} immediately. Otherwise,
87If @var{thread} was blocked by a call to @code{mutex-lock}, 87If @var{thread} was blocked by a call to @code{mutex-lock},
88@code{condition-wait}, or @code{thread-join}; @code{thread-signal} 88@code{condition-wait}, or @code{thread-join}; @code{thread-signal}
89will unblock it. 89will unblock it.
90
91Since signal handlers in Emacs are located in the main thread, a
92signal must be propagated there in order to become visible. The
93second @code{signal} call let the thread die:
94
95@example
96(thread-signal main-thread 'error data)
97(signal 'error data)
98@end example
90@end defun 99@end defun
91 100
92@defun thread-yield 101@defun thread-yield
@@ -127,15 +136,21 @@ Return a list of all the live thread objects. A new list is returned
127by each invocation. 136by each invocation.
128@end defun 137@end defun
129 138
139@defvar main-thread
140This variable keeps the main thread Emacs is running, or @code{nil} if
141Emacs is compiled without thread support.
142@end defvar
143
130When code run by a thread signals an error that is unhandled, the 144When code run by a thread signals an error that is unhandled, the
131thread exits. Other threads can access the error form which caused 145thread exits. Other threads can access the error form which caused
132the thread to exit using the following function. 146the thread to exit using the following function.
133 147
134@defun thread-last-error 148@defun thread-last-error &optional cleanup
135This function returns the last error form recorded when a thread 149This function returns the last error form recorded when a thread
136exited due to an error. Each thread that exits abnormally overwrites 150exited due to an error. Each thread that exits abnormally overwrites
137the form stored by the previous thread's error with a new value, so 151the form stored by the previous thread's error with a new value, so
138only the last one can be accessed. 152only the last one can be accessed. If @var{cleanup} is
153non-@code{nil}, the stored form is reset to @code{nil}.
139@end defun 154@end defun
140 155
141@node Mutexes 156@node Mutexes
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 903c56cef90..5b432d5b2fb 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -2988,7 +2988,7 @@ Emacs compiled on a 64-bit machine can handle much larger buffers.
2988@cindex Shell buffer, echoed commands and @samp{^M} in 2988@cindex Shell buffer, echoed commands and @samp{^M} in
2989@cindex Echoed commands in @code{shell-mode} 2989@cindex Echoed commands in @code{shell-mode}
2990 2990
2991Try typing @kbd{M-x shell-strip-ctrl-m @key{RET}} while in @code{shell-mode} to 2991Try typing @kbd{M-x comint-strip-ctrl-m @key{RET}} while in @code{shell-mode} to
2992make them go away. If that doesn't work, you have several options: 2992make them go away. If that doesn't work, you have several options:
2993 2993
2994For @code{tcsh}, put this in your @file{.cshrc} (or @file{.tcshrc}) 2994For @code{tcsh}, put this in your @file{.cshrc} (or @file{.tcshrc})
@@ -3041,7 +3041,7 @@ characters from the buffer by adding this to your @file{.emacs} init
3041file: 3041file:
3042 3042
3043@smalllisp 3043@smalllisp
3044(add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m) 3044(add-hook 'comint-output-filter-functions #'comint-strip-ctrl-m)
3045@end smalllisp 3045@end smalllisp
3046 3046
3047On a related note: if your shell is echoing your input line in the shell 3047On a related note: if your shell is echoing your input line in the shell
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 82e0e27ed1c..6a34f5c5722 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -273,9 +273,11 @@ moving point to it and typing @kbd{@key{RET}} jumps to its definition.
273@cindex backtrace of a failed test 273@cindex backtrace of a failed test
274Pressing @kbd{r} re-runs the test near point on its own. Pressing 274Pressing @kbd{r} re-runs the test near point on its own. Pressing
275@kbd{d} re-runs it with the debugger enabled. @kbd{.} jumps to the 275@kbd{d} re-runs it with the debugger enabled. @kbd{.} jumps to the
276definition of the test near point (@kbd{@key{RET}} has the same effect if 276definition of the test near point (@kbd{@key{RET}} has the same effect
277point is on the name of the test). On a failed test, @kbd{b} shows 277if point is on the name of the test). On a failed test, @kbd{b} shows
278the backtrace of the failure. 278the backtrace of the failure. @xref{Debugging,, Backtraces, elisp,
279GNU Emacs Lisp Reference Manual}, for more information about
280backtraces.
279 281
280@kindex l@r{, in ert results buffer} 282@kindex l@r{, in ert results buffer}
281@kbd{l} shows the list of @code{should} forms executed in the test. 283@kbd{l} shows the list of @code{should} forms executed in the test.
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index bdefd40d778..bda7e1428b5 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -4,7 +4,7 @@
4@set VERSION 1.0 4@set VERSION 1.0
5@set UPDATED June 2018 5@set UPDATED June 2018
6@settitle GNU Flymake @value{VERSION} 6@settitle GNU Flymake @value{VERSION}
7@include ../emacs/docstyle.texi 7@include docstyle.texi
8@syncodeindex pg cp 8@syncodeindex pg cp
9@syncodeindex vr cp 9@syncodeindex vr cp
10@syncodeindex fn cp 10@syncodeindex fn cp
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index d8f4b41e2f2..55c21b7efc4 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -544,9 +544,9 @@ file system), @file{@trampfn{dav,user@@host,/path/to/file}} and
544@cindex method @option{gdrive} 544@cindex method @option{gdrive}
545@cindex @option{gdrive} method 545@cindex @option{gdrive} method
546@cindex google drive 546@cindex google drive
547@cindex method @option{owncloud} 547@cindex method @option{nextcloud}
548@cindex @option{owncloud} method 548@cindex @option{nextcloud} method
549@cindex nextcloud 549@cindex owncloud
550 550
551GVFS-based methods include also @acronym{GNOME} Online Accounts, which 551GVFS-based methods include also @acronym{GNOME} Online Accounts, which
552support the @option{Files} service. These are the Google Drive file 552support the @option{Files} service. These are the Google Drive file
@@ -554,7 +554,7 @@ system, and the OwnCloud/NextCloud file system. The file name syntax
554is here always 554is here always
555@file{@trampfn{gdrive,john.doe@@gmail.com,/path/to/file}} 555@file{@trampfn{gdrive,john.doe@@gmail.com,/path/to/file}}
556(@samp{john.doe@@gmail.com} stands here for your Google Drive 556(@samp{john.doe@@gmail.com} stands here for your Google Drive
557account), or @file{@trampfn{owncloud,user@@host#8081,/path/to/file}} 557account), or @file{@trampfn{nextcloud,user@@host#8081,/path/to/file}}
558(@samp{8081} stands for the port number) for OwnCloud/NextCloud files. 558(@samp{8081} stands for the port number) for OwnCloud/NextCloud files.
559 559
560 560
@@ -1094,6 +1094,10 @@ syntax requires a leading volume (share) name, for example:
1094based on standard protocols, such as HTTP@. @option{davs} does the same 1094based on standard protocols, such as HTTP@. @option{davs} does the same
1095but with SSL encryption. Both methods support the port numbers. 1095but with SSL encryption. Both methods support the port numbers.
1096 1096
1097Paths being part of the WebDAV volume to be mounted by GVFS, as it is
1098common for OwnCloud or NextCloud file names, are not supported by
1099these methods. See method @option{nextcloud} for handling them.
1100
1097@item @option{gdrive} 1101@item @option{gdrive}
1098@cindex method @option{gdrive} 1102@cindex method @option{gdrive}
1099@cindex @option{gdrive} method 1103@cindex @option{gdrive} method
@@ -1110,13 +1114,13 @@ Since Google Drive uses cryptic blob file names internally,
1110could produce unexpected behavior in case two files in the same 1114could produce unexpected behavior in case two files in the same
1111directory have the same @code{display-name}, such a situation must be avoided. 1115directory have the same @code{display-name}, such a situation must be avoided.
1112 1116
1113@item @option{owncloud} 1117@item @option{nextcloud}
1114@cindex @acronym{GNOME} Online Accounts 1118@cindex @acronym{GNOME} Online Accounts
1115@cindex method @option{owncloud} 1119@cindex method @option{nextcloud}
1116@cindex @option{owncloud} method 1120@cindex @option{nextcloud} method
1117@cindex nextcloud 1121@cindex owncloud
1118 1122
1119As the name indicates, the method @option{owncloud} allows you to 1123As the name indicates, the method @option{nextcloud} allows you to
1120access OwnCloud or NextCloud hosted files and directories. Like the 1124access OwnCloud or NextCloud hosted files and directories. Like the
1121@option{gdrive} method, your credentials must be populated in your 1125@option{gdrive} method, your credentials must be populated in your
1122@command{Online Accounts} application outside Emacs. The method 1126@command{Online Accounts} application outside Emacs. The method
@@ -1135,7 +1139,7 @@ that for security reasons refuse @command{ssh} connections.
1135@defopt tramp-gvfs-methods 1139@defopt tramp-gvfs-methods
1136This user option is a list of external methods for GVFS@. By default, 1140This user option is a list of external methods for GVFS@. By default,
1137this list includes @option{afp}, @option{dav}, @option{davs}, 1141this list includes @option{afp}, @option{dav}, @option{davs},
1138@option{gdrive}, @option{owncloud} and @option{sftp}. Other methods 1142@option{gdrive}, @option{nextcloud} and @option{sftp}. Other methods
1139to include are @option{ftp}, @option{http}, @option{https} and 1143to include are @option{ftp}, @option{http}, @option{https} and
1140@option{smb}. These methods are not intended to be used directly as 1144@option{smb}. These methods are not intended to be used directly as
1141GVFS based method. Instead, they are added here for the benefit of 1145GVFS based method. Instead, they are added here for the benefit of
@@ -1238,7 +1242,7 @@ improvement is not always true.
1238@cindex default user 1242@cindex default user
1239 1243
1240@defopt tramp-default-user 1244@defopt tramp-default-user
1241@value{tramp} file name can omit the user name part since 1245A @value{tramp} file name can omit the user name part since
1242@value{tramp} substitutes the currently logged-in user name. However 1246@value{tramp} substitutes the currently logged-in user name. However
1243this substitution can be overridden with @code{tramp-default-user}. 1247this substitution can be overridden with @code{tramp-default-user}.
1244For example: 1248For example:
@@ -1453,7 +1457,7 @@ support this command.
1453 1457
1454@subsection Tunneling with ssh 1458@subsection Tunneling with ssh
1455 1459
1456With ssh, you could use the @code{ProxyCommand} entry in the 1460With ssh, you could use the @code{ProxyCommand} entry in
1457@file{~/.ssh/config}: 1461@file{~/.ssh/config}:
1458 1462
1459@example 1463@example
@@ -1589,12 +1593,12 @@ A function dedicated to @file{/etc/hosts} for host names.
1589@item @code{tramp-parse-passwd} 1593@item @code{tramp-parse-passwd}
1590@findex tramp-parse-passwd 1594@findex tramp-parse-passwd
1591 1595
1592A function which parses @file{/etc/passwd} files for user names. 1596A function which parses @file{/etc/passwd} for user names.
1593 1597
1594@item @code{tramp-parse-etc-group} 1598@item @code{tramp-parse-etc-group}
1595@findex tramp-parse-etc-group 1599@findex tramp-parse-etc-group
1596 1600
1597A function which parses @file{/etc/group} files for group names. 1601A function which parses @file{/etc/group} for group names.
1598 1602
1599@item @code{tramp-parse-netrc} 1603@item @code{tramp-parse-netrc}
1600@findex tramp-parse-netrc 1604@findex tramp-parse-netrc
@@ -2194,7 +2198,7 @@ of the secretfile is now owned by the user logged in from
2194When @code{backup-directory-alist} is @code{nil} (the default), such 2198When @code{backup-directory-alist} is @code{nil} (the default), such
2195problems do not occur. 2199problems do not occur.
2196 2200
2197To ``turn off'' the backup feature for @value{tramp} files and stop 2201To ``turn off'' the backup feature for remote files and stop
2198@value{tramp} from saving to the backup directory, use this: 2202@value{tramp} from saving to the backup directory, use this:
2199 2203
2200@lisp 2204@lisp
@@ -2256,12 +2260,11 @@ The backup file name of
2256 2260
2257@vindex auto-save-file-name-transforms 2261@vindex auto-save-file-name-transforms
2258Just as for backup files, similar issues of file naming affect 2262Just as for backup files, similar issues of file naming affect
2259auto-saving @value{tramp} files. Auto-saved files are saved in the 2263auto-saving remote files. Auto-saved files are saved in the directory
2260directory specified by the user option 2264specified by the user option @code{auto-save-file-name-transforms}.
2261@code{auto-save-file-name-transforms}. By default this is set to 2265By default this is set to the local temporary directory. But in some
2262the local temporary directory. But in some versions of Debian 2266versions of Debian GNU/Linux, this points to the source directory
2263GNU/Linux, this points to the source directory where the Emacs was 2267where the Emacs was compiled. Reset such values to a valid directory.
2264compiled. Reset such values to a valid directory.
2265 2268
2266Set @code{auto-save-file-name-transforms} to @code{nil} to save 2269Set @code{auto-save-file-name-transforms} to @code{nil} to save
2267auto-saved files to the same directory as the original file. 2270auto-saved files to the same directory as the original file.
@@ -2765,8 +2768,8 @@ hard-coded, fixed name. Note that using @code{:0} for X11 display name
2765here will not work as expected. 2768here will not work as expected.
2766 2769
2767An alternate approach is specify @code{ForwardX11 yes} or 2770An alternate approach is specify @code{ForwardX11 yes} or
2768@code{ForwardX11Trusted yes} in the file @file{~/.ssh/config} on the 2771@code{ForwardX11Trusted yes} in @file{~/.ssh/config} on the local
2769local host. 2772host.
2770 2773
2771 2774
2772@subsection Running @code{shell} on a remote host 2775@subsection Running @code{shell} on a remote host
@@ -3446,6 +3449,19 @@ source "$@{HOME@}/.iterm2_shell_integration.bash"
3446@end group 3449@end group
3447@end example 3450@end example
3448 3451
3452And finally, bash's readline should not use key bindings like
3453@samp{C-j} to commands. Disable this in your @file{~/.inputrc}:
3454
3455@example
3456@group
3457$if term=dumb
3458# Don't bind Control-J or it messes up @value{tramp}.
3459$else
3460"\C-j": next-history
3461$endif
3462@end group
3463@end example
3464
3449@item 3465@item
3450Echoed characters after login 3466Echoed characters after login
3451 3467
@@ -3582,13 +3598,13 @@ When testing, ensure the remote shell is the same shell
3582How to get notified after @value{tramp} completes file transfers? 3598How to get notified after @value{tramp} completes file transfers?
3583 3599
3584Make Emacs beep after reading from or writing to the remote host with 3600Make Emacs beep after reading from or writing to the remote host with
3585the following code in @file{~/.emacs} file. 3601the following code in @file{~/.emacs}.
3586 3602
3587@lisp 3603@lisp
3588@group 3604@group
3589(defadvice tramp-handle-write-region 3605(defadvice tramp-handle-write-region
3590 (after tramp-write-beep-advice activate) 3606 (after tramp-write-beep-advice activate)
3591 "Make tramp beep after writing a file." 3607 "Make @value{tramp} beep after writing a file."
3592 (interactive) 3608 (interactive)
3593 (beep)) 3609 (beep))
3594@end group 3610@end group
@@ -3596,7 +3612,7 @@ the following code in @file{~/.emacs} file.
3596@group 3612@group
3597(defadvice tramp-handle-do-copy-or-rename-file 3613(defadvice tramp-handle-do-copy-or-rename-file
3598 (after tramp-copy-beep-advice activate) 3614 (after tramp-copy-beep-advice activate)
3599 "Make tramp beep after copying a file." 3615 "Make @value{tramp} beep after copying a file."
3600 (interactive) 3616 (interactive)
3601 (beep)) 3617 (beep))
3602@end group 3618@end group
@@ -3604,7 +3620,7 @@ the following code in @file{~/.emacs} file.
3604@group 3620@group
3605(defadvice tramp-handle-insert-file-contents 3621(defadvice tramp-handle-insert-file-contents
3606 (after tramp-insert-beep-advice activate) 3622 (after tramp-insert-beep-advice activate)
3607 "Make tramp beep after inserting a file." 3623 "Make @value{tramp} beep after inserting a file."
3608 (interactive) 3624 (interactive)
3609 (beep)) 3625 (beep))
3610@end group 3626@end group
@@ -3642,7 +3658,7 @@ then set them with a hook as follows:
3642 3658
3643 3659
3644@item 3660@item
3645Why is @file{~/.sh_history} file on the remote host growing? 3661Why is @file{~/.sh_history} on the remote host growing?
3646 3662
3647@vindex tramp-histfile-override 3663@vindex tramp-histfile-override
3648@vindex HISTFILE@r{, environment variable} 3664@vindex HISTFILE@r{, environment variable}
@@ -3663,7 +3679,7 @@ undesired results when using @command{bash} as remote shell.
3663Another approach is to disable @value{tramp}'s handling of the 3679Another approach is to disable @value{tramp}'s handling of the
3664@env{HISTFILE} at all by setting @code{tramp-histfile-override} to 3680@env{HISTFILE} at all by setting @code{tramp-histfile-override} to
3665@code{nil}. In this case, saving history could be turned off by 3681@code{nil}. In this case, saving history could be turned off by
3666putting this shell code in the @file{.bashrc} or @file{.kshrc} file: 3682putting this shell code in @file{.bashrc} or @file{.kshrc}:
3667 3683
3668@example 3684@example
3669@group 3685@group
@@ -3680,7 +3696,7 @@ fi
3680@end example 3696@end example
3681 3697
3682For @option{ssh}-based method, add the following line to your 3698For @option{ssh}-based method, add the following line to your
3683@file{~/.ssh/environment} file: 3699@file{~/.ssh/environment}:
3684 3700
3685@example 3701@example
3686HISTFILE=/dev/null 3702HISTFILE=/dev/null