aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorTom Tromey2013-06-03 12:25:05 -0600
committerTom Tromey2013-06-03 12:25:05 -0600
commit68359abba96d7ec4db8aab3d3dd9cf1105c3bab5 (patch)
tree862703e7e1a1888170136a8296a5750d6b2ae2eb /doc/misc
parentcbcba8ce7f980b01c18c0fd561ef6687b1361507 (diff)
parente2d8a6f0a229b4ebe26484b892ec4f14888f58b6 (diff)
downloademacs-68359abba96d7ec4db8aab3d3dd9cf1105c3bab5.tar.gz
emacs-68359abba96d7ec4db8aab3d3dd9cf1105c3bab5.zip
merge from trunk; clean up some issues
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/ChangeLog51
-rw-r--r--doc/misc/calc.texi20
-rw-r--r--doc/misc/cl.texi23
-rw-r--r--doc/misc/emacs-mime.texi6
-rw-r--r--doc/misc/erc.texi6
-rw-r--r--doc/misc/eshell.texi5
-rw-r--r--doc/misc/flymake.texi163
-rw-r--r--doc/misc/gnus.texi2
-rw-r--r--doc/misc/tramp.texi48
-rw-r--r--doc/misc/trampver.texi2
10 files changed, 214 insertions, 112 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 45862f93f0c..8ee12718980 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,50 @@
12013-05-28 Xue Fuqiao <xfq.free@gmail.com>
2
3 * erc.texi (Special Features): ERC is being maintained within
4 Emacs now.
5
62013-05-25 Xue Fuqiao <xfq.free@gmail.com>
7
8 * flymake.texi: Changing from one space between sentences to two.
9
102013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
11
12 * cl.texi (Obsolete Macros): Describe replacements for `flet'
13 (bug#14293).
14
152013-04-16 Michael Albinus <michael.albinus@gmx.de>
16
17 * tramp.texi (Frequently Asked Questions): Precise, how to define
18 an own ControlPath.
19
202013-04-15 Michael Albinus <michael.albinus@gmx.de>
21
22 * tramp.texi (Frequently Asked Questions): New item for
23 ControlPath settings.
24
252013-03-31 Jay Belanger <jay.p.belanger@gmail.com>
26
27 * calc.texi: (Basic Operations on Units): Streamline some
28 descriptions.
29
302013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz>
31
32 * eshell.texi (Built-ins): Update manual to mention tramp module.
33
342013-03-18 Michael Albinus <michael.albinus@gmx.de>
35
36 * tramp.texi (Filename Syntax): Host names are not allowed to be
37 any method name, unless method name is specified explicitly.
38 Remove restriction on unibyte filenames.
39
40 * trampver.texi: Update release number.
41
422013-03-17 Paul Eggert <eggert@cs.ucla.edu>
43
44 doc: convert some TeX accents to UTF-8
45 * emacs-mime.texi (Interface Functions): Use 'ï' rather than
46 '@"{@dotless{i}}'.
47
12013-03-15 Michael Albinus <michael.albinus@gmx.de> 482013-03-15 Michael Albinus <michael.albinus@gmx.de>
2 49
3 Sync with Tramp 2.2.7. 50 Sync with Tramp 2.2.7.
@@ -2395,6 +2442,10 @@
2395 dired-add-entry, dired-initial-position, dired-clean-up-after-deletion, 2442 dired-add-entry, dired-initial-position, dired-clean-up-after-deletion,
2396 dired-read-shell-command, or dired-find-buffer-nocreate. 2443 dired-read-shell-command, or dired-find-buffer-nocreate.
2397 2444
24452013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz>
2446
2447 * eshell.texi (Input/Output): Document insert output redirection operator, >>>.
2448
23982011-02-18 Glenn Morris <rgm@gnu.org> 24492011-02-18 Glenn Morris <rgm@gnu.org>
2399 2450
2400 * dired-x.texi (Optional Installation File At Point): Simplify. 2451 * dired-x.texi (Optional Installation File At Point): Simplify.
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 44462d1d5a8..b2b054ec1ea 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -27911,11 +27911,10 @@ prompt first for the old units which this value should be considered
27911to have, then for the new units. (If the value on the stack can be 27911to have, then for the new units. (If the value on the stack can be
27912simplified so that it doesn't contain any units, like @samp{ft/in} can 27912simplified so that it doesn't contain any units, like @samp{ft/in} can
27913be simplified to 12, then @kbd{u c} will still prompt for both old 27913be simplified to 12, then @kbd{u c} will still prompt for both old
27914units and new units. This can be disabled; @pxref{Customizing Calc}.) 27914units and new units. Assuming the old and new units you give are
27915Assuming the old and new units you give are consistent with each 27915consistent with each other, the result also will not contain any
27916other, the result also will not contain any units. For example, 27916units. For example, @kbd{@w{u c} cm @key{RET} in @key{RET}} converts
27917@kbd{@w{u c} cm @key{RET} in @key{RET}} converts the number 2 on the 27917the number 2 on the stack to 5.08.
27918stack to 5.08.
27919 27918
27920@kindex u b 27919@kindex u b
27921@pindex calc-base-units 27920@pindex calc-base-units
@@ -35694,17 +35693,6 @@ have different dimensions. The default value of @code{calc-ensure-consistent-uni
35694is @code{nil}. 35693is @code{nil}.
35695@end defvar 35694@end defvar
35696 35695
35697@defvar calc-allow-units-as-numbers
35698When converting units, the variable @code{calc-allow-units-as-numbers}
35699determines whether or not values which can be simplified so that
35700they don't contain units (such as @samp{ft/in} can be simplified to 12)
35701can be regarded as not containing units. If
35702@code{calc-allow-units-as-numbers} is non-@code{nil}, then @kbd{u c}
35703will prompt for both old units and new units when converting an expression
35704like @samp{ft/in}, otherwise @kbd{u c} will only prompt for the new units.
35705The default value of @code{calc-allow-units-as-numbers} is @code{t}.
35706@end defvar
35707
35708@defvar calc-undo-length 35696@defvar calc-undo-length
35709The variable @code{calc-undo-length} determines the number of undo 35697The variable @code{calc-undo-length} determines the number of undo
35710steps that Calc will keep track of when @code{calc-quit} is called. 35698steps that Calc will keep track of when @code{calc-quit} is called.
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index 83df411cb23..90f8a258d23 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -4850,10 +4850,27 @@ generated directly inside Emacs will not be caught since they make
4850direct C-language calls to the message routines rather than going 4850direct C-language calls to the message routines rather than going
4851through the Lisp @code{message} function. 4851through the Lisp @code{message} function.
4852 4852
4853For those cases where the dynamic scoping of @code{flet} is desired,
4854@code{cl-flet} is clearly not a substitute. The most direct replacement would
4855be instead to use @code{cl-letf} to temporarily rebind @code{(symbol-function
4856'@var{fun})}. But in most cases, a better substitute is to use an advice, such
4857as:
4858
4859@example
4860(defvar my-fun-advice-enable nil)
4861(add-advice '@var{fun} :around
4862 (lambda (orig &rest args)
4863 (if my-fun-advice-enable (do-something)
4864 (apply orig args))))
4865@end example
4866
4867so that you can then replace the @code{flet} with a simple dynamically scoped
4868binding of @code{my-fun-advice-enable}.
4869
4853@c Bug#411. 4870@c Bug#411.
4854Note that many primitives (e.g., @code{+}) have special byte-compile 4871Note that many primitives (e.g., @code{+}) have special byte-compile handling.
4855handling. Attempts to redefine such functions using @code{flet} will 4872Attempts to redefine such functions using @code{flet}, @code{cl-letf}, or an
4856fail if byte-compiled. 4873advice will fail when byte-compiled.
4857@c Or cl-flet. 4874@c Or cl-flet.
4858@c In such cases, use @code{labels} instead. 4875@c In such cases, use @code{labels} instead.
4859@end defmac 4876@end defmac
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 5f377e57725..cbb78af9d59 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -1221,7 +1221,7 @@ Return the value of the field under point.
1221@item mail-encode-encoded-word-region 1221@item mail-encode-encoded-word-region
1222@findex mail-encode-encoded-word-region 1222@findex mail-encode-encoded-word-region
1223Encode the non-@acronym{ASCII} words in the region. For instance, 1223Encode the non-@acronym{ASCII} words in the region. For instance,
1224@samp{Na@"{@dotless{i}}ve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}. 1224@samp{Naïve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}.
1225 1225
1226@item mail-encode-encoded-word-buffer 1226@item mail-encode-encoded-word-buffer
1227@findex mail-encode-encoded-word-buffer 1227@findex mail-encode-encoded-word-buffer
@@ -1234,7 +1234,7 @@ Encode the words that need encoding in a string, and return the result.
1234 1234
1235@example 1235@example
1236(mail-encode-encoded-word-string 1236(mail-encode-encoded-word-string
1237 "This is na@"{@dotless{i}}ve, baby") 1237 "This is naïve, baby")
1238@result{} "This is =?iso-8859-1?q?na=EFve,?= baby" 1238@result{} "This is =?iso-8859-1?q?na=EFve,?= baby"
1239@end example 1239@end example
1240 1240
@@ -1249,7 +1249,7 @@ Decode the encoded words in the string and return the result.
1249@example 1249@example
1250(mail-decode-encoded-word-string 1250(mail-decode-encoded-word-string
1251 "This is =?iso-8859-1?q?na=EFve,?= baby") 1251 "This is =?iso-8859-1?q?na=EFve,?= baby")
1252@result{} "This is na@"{@dotless{i}}ve, baby" 1252@result{} "This is naïve, baby"
1253@end example 1253@end example
1254 1254
1255@end table 1255@end table
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index cc61cd1ab5b..33686fd79fd 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -234,9 +234,9 @@ forwards.
234 234
235Different channels and servers may have different language encodings. 235Different channels and servers may have different language encodings.
236 236
237In addition, it is possible to translate the messages that ERC uses into 237In addition, it is possible to translate the messages that ERC uses
238multiple languages. Please contact the developers of ERC at 238into multiple languages. Please contact the developers of Emacs at
239@email{erc-discuss@@gnu.org} if you are interested in helping with the 239@email{emacs-devel@@gnu.org} if you are interested in helping with the
240translation effort. 240translation effort.
241 241
242@item user scripting 242@item user scripting
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index ec01f731daf..dca95da2d10 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -460,8 +460,9 @@ With @samp{cd -42}, you can access the directory stack by number.
460@cmindex su 460@cmindex su
461@itemx sudo 461@itemx sudo
462@cmindex sudo 462@cmindex sudo
463Uses TRAMP's @command{su} or @command{sudo} method to run a command via 463Uses TRAMP's @command{su} or @command{sudo} method @pxref{Inline methods, , , tramp}
464@command{su} or @command{sudo}. 464to run a command via @command{su} or @command{sudo}. These commands
465are in the eshell-tramp module, which is disabled by default.
465 466
466@end table 467@end table
467 468
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 5dedda16ee1..f88bd95008c 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -63,13 +63,13 @@ modify this GNU manual.''
63@cindex Overview of Flymake 63@cindex Overview of Flymake
64 64
65Flymake is a universal on-the-fly syntax checker implemented as an 65Flymake is a universal on-the-fly syntax checker implemented as an
66Emacs minor mode. Flymake runs the pre-configured syntax check tool 66Emacs minor mode. Flymake runs the pre-configured syntax check tool
67(compiler for C++ files, @code{perl} for perl files, etc.)@: in the 67(compiler for C++ files, @code{perl} for perl files, etc.)@: in the
68background, passing it a temporary copy of the current buffer, and 68background, passing it a temporary copy of the current buffer, and
69parses the output for known error/warning message patterns. Flymake 69parses the output for known error/warning message patterns. Flymake
70then highlights erroneous lines (i.e., lines for which at least one 70then highlights erroneous lines (i.e., lines for which at least one
71error or warning has been reported by the syntax check tool), and 71error or warning has been reported by the syntax check tool), and
72displays an overall buffer status in the mode line. Status information 72displays an overall buffer status in the mode line. Status information
73displayed by Flymake contains total number of errors and warnings 73displayed by Flymake contains total number of errors and warnings
74reported for the buffer during the last syntax check. 74reported for the buffer during the last syntax check.
75 75
@@ -79,14 +79,14 @@ line, respectively.
79 79
80Calling @code{flymake-display-err-menu-for-current-line} will popup a 80Calling @code{flymake-display-err-menu-for-current-line} will popup a
81menu containing error messages reported by the syntax check tool for 81menu containing error messages reported by the syntax check tool for
82the current line. Errors/warnings belonging to another file, such as a 82the current line. Errors/warnings belonging to another file, such as a
83@code{.h} header file included by a @code{.c} file, are shown in the 83@code{.h} header file included by a @code{.c} file, are shown in the
84current buffer as belonging to the first line. Menu items for such 84current buffer as belonging to the first line. Menu items for such
85messages also contain a filename and a line number. Selecting such a 85messages also contain a filename and a line number. Selecting such a
86menu item will automatically open the file and jump to the line with 86menu item will automatically open the file and jump to the line with
87error. 87error.
88 88
89Syntax check is done 'on-the-fly'. It is started whenever 89Syntax check is done 'on-the-fly'. It is started whenever
90 90
91@itemize @bullet 91@itemize @bullet
92@item buffer is loaded 92@item buffer is loaded
@@ -97,7 +97,7 @@ delay is configurable).
97 97
98Flymake is a universal syntax checker in the sense that it's easily 98Flymake is a universal syntax checker in the sense that it's easily
99extended to support new syntax check tools and error message 99extended to support new syntax check tools and error message
100patterns. @xref{Configuring Flymake}. 100patterns. @xref{Configuring Flymake}.
101 101
102@node Installing Flymake 102@node Installing Flymake
103@chapter Installing 103@chapter Installing
@@ -107,7 +107,7 @@ patterns. @xref{Configuring Flymake}.
107Flymake is packaged in a single file, @code{flymake.el}. 107Flymake is packaged in a single file, @code{flymake.el}.
108 108
109To install/update Flymake, place @code{flymake.el} to a directory 109To install/update Flymake, place @code{flymake.el} to a directory
110somewhere on Emacs load path. You might also want to byte-compile 110somewhere on Emacs load path. You might also want to byte-compile
111@code{flymake.el} to improve performance. 111@code{flymake.el} to improve performance.
112 112
113Also, place the following line in the @code{.emacs} file. 113Also, place the following line in the @code{.emacs} file.
@@ -141,13 +141,13 @@ You might also map the most frequently used Flymake functions, such as
141@section Flymake mode 141@section Flymake mode
142@cindex flymake-mode 142@cindex flymake-mode
143 143
144Flymake is an Emacs minor mode. To use Flymake, you 144Flymake is an Emacs minor mode. To use Flymake, you
145must first activate @code{flymake-mode} by using the 145must first activate @code{flymake-mode} by using the
146@code{flymake-mode} function. 146@code{flymake-mode} function.
147 147
148Instead of manually activating @code{flymake-mode}, you can configure 148Instead of manually activating @code{flymake-mode}, you can configure
149Flymake to automatically enable @code{flymake-mode} upon opening any 149Flymake to automatically enable @code{flymake-mode} upon opening any
150file for which syntax check is possible. To do so, place the following 150file for which syntax check is possible. To do so, place the following
151line in @code{.emacs}: 151line in @code{.emacs}:
152 152
153@lisp 153@lisp
@@ -159,9 +159,9 @@ line in @code{.emacs}:
159@cindex Manually starting the syntax check 159@cindex Manually starting the syntax check
160 160
161When @code{flymake-mode} is active, syntax check is started 161When @code{flymake-mode} is active, syntax check is started
162automatically on any of the three conditions mentioned above. Syntax 162automatically on any of the three conditions mentioned above. Syntax
163check can also be started manually by using the 163check can also be started manually by using the
164@code{flymake-start-syntax-check-for-current-buffer} function. This 164@code{flymake-start-syntax-check-for-current-buffer} function. This
165can be used, for example, when changes were made to some other buffer 165can be used, for example, when changes were made to some other buffer
166affecting the current buffer. 166affecting the current buffer.
167 167
@@ -171,7 +171,7 @@ affecting the current buffer.
171 171
172After syntax check is completed, lines for which at least one error or 172After syntax check is completed, lines for which at least one error or
173warning has been reported are highlighted, and total number of errors 173warning has been reported are highlighted, and total number of errors
174and warning is shown in the mode line. Use the following functions to 174and warning is shown in the mode line. Use the following functions to
175navigate the highlighted lines. 175navigate the highlighted lines.
176 176
177@multitable @columnfractions 0.25 0.75 177@multitable @columnfractions 0.25 0.75
@@ -184,7 +184,7 @@ navigate the highlighted lines.
184 184
185@end multitable 185@end multitable
186 186
187These functions treat erroneous lines as a linked list. Therefore, 187These functions treat erroneous lines as a linked list. Therefore,
188@code{flymake-goto-next-error} will go to the first erroneous line 188@code{flymake-goto-next-error} will go to the first erroneous line
189when invoked in the end of the buffer. 189when invoked in the end of the buffer.
190 190
@@ -193,7 +193,7 @@ when invoked in the end of the buffer.
193@cindex Viewing error messages 193@cindex Viewing error messages
194 194
195To view error messages belonging to the current line, use the 195To view error messages belonging to the current line, use the
196@code{flymake-display-err-menu-for-current-line} function. If there's 196@code{flymake-display-err-menu-for-current-line} function. If there's
197at least one error or warning reported for the current line, this 197at least one error or warning reported for the current line, this
198function will display a popup menu with error/warning texts. 198function will display a popup menu with error/warning texts.
199Selecting the menu item whose error belongs to another file brings 199Selecting the menu item whose error belongs to another file brings
@@ -209,12 +209,12 @@ The following statuses are defined.
209 209
210@multitable @columnfractions 0.25 0.75 210@multitable @columnfractions 0.25 0.75
211@item Flymake* or Flymake:E/W* 211@item Flymake* or Flymake:E/W*
212@tab Flymake is currently running. For the second case, E/W contains the 212@tab Flymake is currently running. For the second case, E/W contains the
213error and warning count for the previous run. 213error and warning count for the previous run.
214 214
215@item Flymake 215@item Flymake
216@tab Syntax check is not running. Usually this means syntax check was 216@tab Syntax check is not running. Usually this means syntax check was
217successfully passed (no errors, no warnings). Other possibilities are: 217successfully passed (no errors, no warnings). Other possibilities are:
218syntax check was killed as a result of executing 218syntax check was killed as a result of executing
219@code{flymake-compile}, or syntax check cannot start as compilation 219@code{flymake-compile}, or syntax check cannot start as compilation
220is currently in progress. 220is currently in progress.
@@ -232,7 +232,7 @@ OFF for the buffer.
232@multitable @columnfractions 0.25 0.75 232@multitable @columnfractions 0.25 0.75
233@item CFGERR 233@item CFGERR
234@tab Syntax check process returned nonzero exit code, but no 234@tab Syntax check process returned nonzero exit code, but no
235errors/warnings were reported. This indicates a possible configuration 235errors/warnings were reported. This indicates a possible configuration
236error (for example, no suitable error message patterns for the 236error (for example, no suitable error message patterns for the
237syntax check tool). 237syntax check tool).
238 238
@@ -253,12 +253,12 @@ syntax check tool).
253@cindex Troubleshooting 253@cindex Troubleshooting
254 254
255Flymake uses a simple logging facility for indicating important points 255Flymake uses a simple logging facility for indicating important points
256in the control flow. The logging facility sends logging messages to 256in the control flow. The logging facility sends logging messages to
257the @code{*Messages*} buffer. The information logged can be used for 257the @code{*Messages*} buffer. The information logged can be used for
258resolving various problems related to Flymake. 258resolving various problems related to Flymake.
259 259
260Logging output is controlled by the @code{flymake-log-level} 260Logging output is controlled by the @code{flymake-log-level}
261variable. @code{3} is the most verbose level, and @code{-1} switches 261variable. @code{3} is the most verbose level, and @code{-1} switches
262logging off. 262logging off.
263 263
264@node Configuring Flymake 264@node Configuring Flymake
@@ -286,30 +286,30 @@ Controls logging output, see @ref{Troubleshooting}.
286 286
287@item flymake-allowed-file-name-masks 287@item flymake-allowed-file-name-masks
288A list of @code{(filename-regexp, init-function, cleanup-function 288A list of @code{(filename-regexp, init-function, cleanup-function
289getfname-function)} for configuring syntax check tools. @xref{Adding 289getfname-function)} for configuring syntax check tools. @xref{Adding
290support for a new syntax check tool}. 290support for a new syntax check tool}.
291 291
292@ignore 292@ignore
293@item flymake-buildfile-dirs 293@item flymake-buildfile-dirs
294A list of directories (relative paths) for searching a 294A list of directories (relative paths) for searching a
295buildfile. @xref{Locating the buildfile}. 295buildfile. @xref{Locating the buildfile}.
296@end ignore 296@end ignore
297 297
298@item flymake-master-file-dirs 298@item flymake-master-file-dirs
299A list of directories for searching a master file. @xref{Locating a 299A list of directories for searching a master file. @xref{Locating a
300master file}. 300master file}.
301 301
302@item flymake-get-project-include-dirs-function 302@item flymake-get-project-include-dirs-function
303A function used for obtaining a list of project include dirs (C/C++ 303A function used for obtaining a list of project include dirs (C/C++
304specific). @xref{Getting the include directories}. 304specific). @xref{Getting the include directories}.
305 305
306@item flymake-master-file-count-limit 306@item flymake-master-file-count-limit
307@itemx flymake-check-file-limit 307@itemx flymake-check-file-limit
308Used when looking for a master file. @xref{Locating a master file}. 308Used when looking for a master file. @xref{Locating a master file}.
309 309
310@item flymake-err-line-patterns 310@item flymake-err-line-patterns
311Patterns for error/warning messages in the form @code{(regexp file-idx 311Patterns for error/warning messages in the form @code{(regexp file-idx
312line-idx col-idx err-text-idx)}. @xref{Parsing the output}. 312line-idx col-idx err-text-idx)}. @xref{Parsing the output}.
313 313
314@item flymake-compilation-prevents-syntax-check 314@item flymake-compilation-prevents-syntax-check
315A flag indicating whether compilation and syntax check of the same 315A flag indicating whether compilation and syntax check of the same
@@ -321,7 +321,7 @@ started after @code{flymake-no-changes-timeout} seconds.
321 321
322@item flymake-gui-warnings-enabled 322@item flymake-gui-warnings-enabled
323A boolean flag indicating whether Flymake will show message boxes for 323A boolean flag indicating whether Flymake will show message boxes for
324non-recoverable errors. If @code{flymake-gui-warnings-enabled} is 324non-recoverable errors. If @code{flymake-gui-warnings-enabled} is
325@code{nil}, these errors will only be logged to the @code{*Messages*} 325@code{nil}, these errors will only be logged to the @code{*Messages*}
326buffer. 326buffer.
327 327
@@ -360,7 +360,7 @@ Which fringe (if any) should show the warning/error bitmaps.
360@end menu 360@end menu
361 361
362Syntax check tools are configured using the 362Syntax check tools are configured using the
363@code{flymake-allowed-file-name-masks} list. Each item of this list 363@code{flymake-allowed-file-name-masks} list. Each item of this list
364has the following format: 364has the following format:
365 365
366@lisp 366@lisp
@@ -371,14 +371,14 @@ has the following format:
371@item filename-regexp 371@item filename-regexp
372This field is used as a key for locating init/cleanup/getfname 372This field is used as a key for locating init/cleanup/getfname
373functions for the buffer. Items in 373functions for the buffer. Items in
374@code{flymake-allowed-file-name-masks} are searched sequentially. The 374@code{flymake-allowed-file-name-masks} are searched sequentially. The
375first item with @code{filename-regexp} matching buffer filename is 375first item with @code{filename-regexp} matching buffer filename is
376selected. If no match is found, @code{flymake-mode} is switched off. 376selected. If no match is found, @code{flymake-mode} is switched off.
377 377
378@item init-function 378@item init-function
379@code{init-function} is required to initialize the syntax check, 379@code{init-function} is required to initialize the syntax check,
380usually by creating a temporary copy of the buffer contents. The 380usually by creating a temporary copy of the buffer contents. The
381function must return @code{(list cmd-name arg-list)}. If 381function must return @code{(list cmd-name arg-list)}. If
382@code{init-function} returns null, syntax check is aborted, by 382@code{init-function} returns null, syntax check is aborted, by
383@code{flymake-mode} is not switched off. 383@code{flymake-mode} is not switched off.
384 384
@@ -389,7 +389,7 @@ usually deleting a temporary copy created by the @code{init-function}.
389 389
390@item getfname-function 390@item getfname-function
391This function is used for translating filenames reported by the syntax 391This function is used for translating filenames reported by the syntax
392check tool into ``real'' filenames. Filenames reported by the tool 392check tool into ``real'' filenames. Filenames reported by the tool
393will be different from the real ones, as actually the tool works with 393will be different from the real ones, as actually the tool works with
394the temporary copy. In most cases, the default implementation 394the temporary copy. In most cases, the default implementation
395provided by Flymake, @code{flymake-get-real-file-name}, can be used as 395provided by Flymake, @code{flymake-get-real-file-name}, can be used as
@@ -411,7 +411,7 @@ support for various syntax check tools.
411@cindex Adding support for perl 411@cindex Adding support for perl
412 412
413In this example, we will add support for @code{perl} as a syntax check 413In this example, we will add support for @code{perl} as a syntax check
414tool. @code{perl} supports the @code{-c} option which does syntax 414tool. @code{perl} supports the @code{-c} option which does syntax
415checking. 415checking.
416 416
417First, we write the @code{init-function}: 417First, we write the @code{init-function}:
@@ -463,7 +463,7 @@ In this example we will add support for C files syntax checked by
463@command{gcc} called via @command{make}. 463@command{gcc} called via @command{make}.
464 464
465We're not required to write any new functions, as Flymake already has 465We're not required to write any new functions, as Flymake already has
466functions for @command{make}. We just add a new entry to the 466functions for @command{make}. We just add a new entry to the
467@code{flymake-allowed-file-name-masks}: 467@code{flymake-allowed-file-name-masks}:
468 468
469@lisp 469@lisp
@@ -489,7 +489,7 @@ command line:
489 489
490@code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}. 490@code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}.
491 491
492Thus, @code{Makefile} must contain the @code{check-syntax} target. In 492Thus, @code{Makefile} must contain the @code{check-syntax} target. In
493our case this target might look like this: 493our case this target might look like this:
494 494
495@verbatim 495@verbatim
@@ -527,12 +527,12 @@ check-syntax:
527 527
528Syntax check is started by calling @code{flymake-start-syntax-check-for-current-buffer}. 528Syntax check is started by calling @code{flymake-start-syntax-check-for-current-buffer}.
529Flymake first determines whether it is able to do syntax 529Flymake first determines whether it is able to do syntax
530check. It then saves a copy of the buffer in a temporary file in the 530check. It then saves a copy of the buffer in a temporary file in the
531buffer's directory (or in the system temp directory, for java 531buffer's directory (or in the system temp directory, for java
532files), creates a syntax check command and launches a process with 532files), creates a syntax check command and launches a process with
533this command. The output is parsed using a list of error message patterns, 533this command. The output is parsed using a list of error message patterns,
534and error information (file name, line number, type and text) is 534and error information (file name, line number, type and text) is
535saved. After the process has finished, Flymake highlights erroneous 535saved. After the process has finished, Flymake highlights erroneous
536lines in the buffer using the accumulated error information. 536lines in the buffer using the accumulated error information.
537 537
538@node Determining whether syntax check is possible 538@node Determining whether syntax check is possible
@@ -551,14 +551,14 @@ Two syntax check modes are distinguished:
551@item 551@item
552Buffer can be syntax checked in a standalone fashion, that is, the 552Buffer can be syntax checked in a standalone fashion, that is, the
553file (its temporary copy, in fact) can be passed over to the compiler to 553file (its temporary copy, in fact) can be passed over to the compiler to
554do the syntax check. Examples are C/C++ (.c, .cpp) and Java (.java) 554do the syntax check. Examples are C/C++ (.c, .cpp) and Java (.java)
555sources. 555sources.
556 556
557@item 557@item
558Buffer can be syntax checked, but additional file, called master file, 558Buffer can be syntax checked, but additional file, called master file,
559is required to perform this operation. A master file is a file that 559is required to perform this operation. A master file is a file that
560includes the current file, so that running a syntax check tool on it 560includes the current file, so that running a syntax check tool on it
561will also check syntax in the current file. Examples are C/C++ (.h, 561will also check syntax in the current file. Examples are C/C++ (.h,
562.hpp) headers. 562.hpp) headers.
563 563
564@end enumerate 564@end enumerate
@@ -579,7 +579,7 @@ copies, finding master files, etc.), as well as some tool-specific
579 579
580After the possibility of the syntax check has been determined, a 580After the possibility of the syntax check has been determined, a
581temporary copy of the current buffer is made so that the most recent 581temporary copy of the current buffer is made so that the most recent
582unsaved changes could be seen by the syntax check tool. Making a copy 582unsaved changes could be seen by the syntax check tool. Making a copy
583is quite straightforward in a standalone case (mode @code{1}), as it's 583is quite straightforward in a standalone case (mode @code{1}), as it's
584just saving buffer contents to a temporary file. 584just saving buffer contents to a temporary file.
585 585
@@ -595,11 +595,11 @@ name.
595Locating a master file is discussed in the following section. 595Locating a master file is discussed in the following section.
596 596
597Patching just changes all appropriate lines of the master file so that they 597Patching just changes all appropriate lines of the master file so that they
598use the new (temporary) name of the current file. For example, suppose current 598use the new (temporary) name of the current file. For example, suppose current
599file name is @code{file.h}, the master file is @code{file.cpp}, and 599file name is @code{file.h}, the master file is @code{file.cpp}, and
600it includes current file via @code{#include "file.h"}. Current file's copy 600it includes current file via @code{#include "file.h"}. Current file's copy
601is saved to file @code{file_flymake.h}, so the include line must be 601is saved to file @code{file_flymake.h}, so the include line must be
602changed to @code{#include "file_flymake.h"}. Finally, patched master file 602changed to @code{#include "file_flymake.h"}. Finally, patched master file
603is saved to @code{file_flymake_master.cpp}, and the last one is passed to 603is saved to @code{file_flymake_master.cpp}, and the last one is passed to
604the syntax check tool. 604the syntax check tool.
605 605
@@ -609,27 +609,27 @@ the syntax check tool.
609 609
610Master file is located in two steps. 610Master file is located in two steps.
611 611
612First, a list of possible master files is built. A simple name 612First, a list of possible master files is built. A simple name
613matching is used to find the files. For a C++ header @code{file.h}, 613matching is used to find the files. For a C++ header @code{file.h},
614Flymake searches for all @code{.cpp} files in the directories whose relative paths are 614Flymake searches for all @code{.cpp} files in the directories whose relative paths are
615stored in a customizable variable @code{flymake-master-file-dirs}, which 615stored in a customizable variable @code{flymake-master-file-dirs}, which
616usually contains something like @code{("." "./src")}. No more than 616usually contains something like @code{("." "./src")}. No more than
617@code{flymake-master-file-count-limit} entries is added to the master file 617@code{flymake-master-file-count-limit} entries is added to the master file
618list. The list is then sorted to move files with names @code{file.cpp} to 618list. The list is then sorted to move files with names @code{file.cpp} to
619the top. 619the top.
620 620
621Next, each master file in a list is checked to contain the appropriate 621Next, each master file in a list is checked to contain the appropriate
622include directives. No more than @code{flymake-check-file-limit} of each 622include directives. No more than @code{flymake-check-file-limit} of each
623file are parsed. 623file are parsed.
624 624
625For @code{file.h}, the include directives to look for are 625For @code{file.h}, the include directives to look for are
626@code{#include "file.h"}, @code{#include "../file.h"}, etc. Each 626@code{#include "file.h"}, @code{#include "../file.h"}, etc. Each
627include is checked against a list of include directories 627include is checked against a list of include directories
628(see @ref{Getting the include directories}) to be sure it points to the 628(see @ref{Getting the include directories}) to be sure it points to the
629correct @code{file.h}. 629correct @code{file.h}.
630 630
631First matching master file found stops the search. The master file is then 631First matching master file found stops the search. The master file is then
632patched and saved to disk. In case no master file is found, syntax check is 632patched and saved to disk. In case no master file is found, syntax check is
633aborted, and corresponding status (!) is reported in the mode line. 633aborted, and corresponding status (!) is reported in the mode line.
634 634
635@node Getting the include directories 635@node Getting the include directories
@@ -637,19 +637,19 @@ aborted, and corresponding status (!) is reported in the mode line.
637@cindex Include directories (C/C++ specific) 637@cindex Include directories (C/C++ specific)
638 638
639Two sets of include directories are distinguished: system include directories 639Two sets of include directories are distinguished: system include directories
640and project include directories. The former is just the contents of the 640and project include directories. The former is just the contents of the
641@code{INCLUDE} environment variable. The latter is not so easy to obtain, 641@code{INCLUDE} environment variable. The latter is not so easy to obtain,
642and the way it can be obtained can vary greatly for different projects. 642and the way it can be obtained can vary greatly for different projects.
643Therefore, a customizable variable 643Therefore, a customizable variable
644@code{flymake-get-project-include-dirs-function} is used to provide the 644@code{flymake-get-project-include-dirs-function} is used to provide the
645way to implement the desired behavior. 645way to implement the desired behavior.
646 646
647The default implementation, @code{flymake-get-project-include-dirs-imp}, 647The default implementation, @code{flymake-get-project-include-dirs-imp},
648uses a @command{make} call. This requires a correct base directory, that is, a 648uses a @command{make} call. This requires a correct base directory, that is, a
649directory containing a correct @file{Makefile}, to be determined. 649directory containing a correct @file{Makefile}, to be determined.
650 650
651As obtaining the project include directories might be a costly operation, its 651As obtaining the project include directories might be a costly operation, its
652return value is cached in the hash table. The cache is cleared in the beginning 652return value is cached in the hash table. The cache is cleared in the beginning
653of every syntax check attempt. 653of every syntax check attempt.
654 654
655@node Locating the buildfile 655@node Locating the buildfile
@@ -659,18 +659,18 @@ of every syntax check attempt.
659@cindex Makefile, locating 659@cindex Makefile, locating
660 660
661Flymake can be configured to use different tools for performing syntax 661Flymake can be configured to use different tools for performing syntax
662checks. For example, it can use direct compiler call to syntax check a perl 662checks. For example, it can use direct compiler call to syntax check a perl
663script or a call to @command{make} for a more complicated case of a 663script or a call to @command{make} for a more complicated case of a
664@code{C/C++} source. The general idea is that simple files, like perl 664@code{C/C++} source. The general idea is that simple files, like perl
665scripts and html pages, can be checked by directly invoking a 665scripts and html pages, can be checked by directly invoking a
666corresponding tool. Files that are usually more complex and generally 666corresponding tool. Files that are usually more complex and generally
667used as part of larger projects, might require non-trivial options to 667used as part of larger projects, might require non-trivial options to
668be passed to the syntax check tool, like include directories for 668be passed to the syntax check tool, like include directories for
669C++. The latter files are syntax checked using some build tool, like 669C++. The latter files are syntax checked using some build tool, like
670Make or Ant. 670Make or Ant.
671 671
672All Make configuration data is usually stored in a file called 672All Make configuration data is usually stored in a file called
673@code{Makefile}. To allow for future extensions, flymake uses a notion of 673@code{Makefile}. To allow for future extensions, flymake uses a notion of
674buildfile to reference the 'project configuration' file. 674buildfile to reference the 'project configuration' file.
675 675
676Special function, @code{flymake-find-buildfile} is provided for locating buildfiles. 676Special function, @code{flymake-find-buildfile} is provided for locating buildfiles.
@@ -679,7 +679,7 @@ for possible master files.
679@ignore 679@ignore
680A customizable variable 680A customizable variable
681@code{flymake-buildfile-dirs} holds a list of relative paths to the 681@code{flymake-buildfile-dirs} holds a list of relative paths to the
682buildfile. They are checked sequentially until a buildfile is found. 682buildfile. They are checked sequentially until a buildfile is found.
683@end ignore 683@end ignore
684In case there's no build file, syntax check is aborted. 684In case there's no build file, syntax check is aborted.
685 685
@@ -690,7 +690,7 @@ Buildfile values are also cached.
690@cindex Syntax check process 690@cindex Syntax check process
691 691
692The command line (command name and the list of arguments) for launching a process is returned by the 692The command line (command name and the list of arguments) for launching a process is returned by the
693initialization function. Flymake then just calls @code{start-process} 693initialization function. Flymake then just calls @code{start-process}
694to start an asynchronous process and configures process filter and 694to start an asynchronous process and configures process filter and
695sentinel which is used for processing the output of the syntax check 695sentinel which is used for processing the output of the syntax check
696tool. 696tool.
@@ -701,24 +701,24 @@ tool.
701 701
702The output generated by the syntax check tool is parsed in the process 702The output generated by the syntax check tool is parsed in the process
703filter/sentinel using the error message patterns stored in the 703filter/sentinel using the error message patterns stored in the
704@code{flymake-err-line-patterns} variable. This variable contains a 704@code{flymake-err-line-patterns} variable. This variable contains a
705list of items of the form @code{(regexp file-idx line-idx 705list of items of the form @code{(regexp file-idx line-idx
706err-text-idx)}, used to determine whether a particular line is an 706err-text-idx)}, used to determine whether a particular line is an
707error message and extract file name, line number and error text, 707error message and extract file name, line number and error text,
708respectively. Error type (error/warning) is also guessed by matching 708respectively. Error type (error/warning) is also guessed by matching
709error text with the '@code{^[wW]arning}' pattern. Anything that was not 709error text with the '@code{^[wW]arning}' pattern. Anything that was not
710classified as a warning is considered an error. Type is then used to 710classified as a warning is considered an error. Type is then used to
711sort error menu items, which shows error messages first. 711sort error menu items, which shows error messages first.
712 712
713Flymake is also able to interpret error message patterns missing err-text-idx 713Flymake is also able to interpret error message patterns missing err-text-idx
714information. This is done by merely taking the rest of the matched line 714information. This is done by merely taking the rest of the matched line
715(@code{(substring line (match-end 0))}) as error text. This trick allows 715(@code{(substring line (match-end 0))}) as error text. This trick allows
716to make use of a huge collection of error message line patterns from 716to make use of a huge collection of error message line patterns from
717@code{compile.el}. All these error patterns are appended to 717@code{compile.el}. All these error patterns are appended to
718the end of @code{flymake-err-line-patterns}. 718the end of @code{flymake-err-line-patterns}.
719 719
720The error information obtained is saved in a buffer local 720The error information obtained is saved in a buffer local
721variable. The buffer for which the process output belongs is 721variable. The buffer for which the process output belongs is
722determined from the process-id@w{}->@w{}buffer mapping updated 722determined from the process-id@w{}->@w{}buffer mapping updated
723after every process launch/exit. 723after every process launch/exit.
724 724
@@ -727,7 +727,7 @@ after every process launch/exit.
727@cindex Erroneous lines, faces 727@cindex Erroneous lines, faces
728 728
729Highlighting is implemented with overlays and happens in the process 729Highlighting is implemented with overlays and happens in the process
730sentinel, after calling the cleanup function. Two customizable faces 730sentinel, after calling the cleanup function. Two customizable faces
731are used: @code{flymake-errline} and 731are used: @code{flymake-errline} and
732@code{flymake-warnline}. Errors belonging outside the current 732@code{flymake-warnline}. Errors belonging outside the current
733buffer are considered to belong to line 1 of the current buffer. 733buffer are considered to belong to line 1 of the current buffer.
@@ -749,12 +749,13 @@ and @code{flymake-warning-bitmap}.
749The only mode flymake currently knows about is @code{compile}. 749The only mode flymake currently knows about is @code{compile}.
750 750
751Flymake can be configured to not start syntax check if it thinks the 751Flymake can be configured to not start syntax check if it thinks the
752compilation is in progress. The check is made by the 752compilation is in progress. The check is made by the
753@code{flymake-compilation-is-running}, which tests the 753@code{flymake-compilation-is-running}, which tests the
754@code{compilation-in-progress} variable. The reason why this might be 754@code{compilation-in-progress} variable. The reason why this might be
755useful is saving CPU time in case both syntax check and compilation 755useful is saving CPU time in case both syntax check and compilation
756are very CPU intensive. The original reason for adding this feature, 756are very CPU intensive. The original reason for adding this feature,
757though, was working around a locking problem with MS Visual C++ compiler. 757though, was working around a locking problem with MS Visual C++
758compiler.
758 759
759Flymake also provides an alternative command for starting compilation, 760Flymake also provides an alternative command for starting compilation,
760@code{flymake-compile}: 761@code{flymake-compile}:
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 983887d721d..a7a9647fd81 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -15400,7 +15400,7 @@ substitutions in the group names), you can say things like:
15400In this example, messages sent to @samp{debian-foo@@lists.debian.org} 15400In this example, messages sent to @samp{debian-foo@@lists.debian.org}
15401will be filed in @samp{mail.debian.foo}. 15401will be filed in @samp{mail.debian.foo}.
15402 15402
15403If the string contains the element @samp{\&}, then the previously 15403If the string contains the element @samp{\\&}, then the previously
15404matched string will be substituted. Similarly, the elements @samp{\\1} 15404matched string will be substituted. Similarly, the elements @samp{\\1}
15405up to @samp{\\9} will be substituted with the text matched by the 15405up to @samp{\\9} will be substituted with the text matched by the
15406groupings 1 through 9. 15406groupings 1 through 9.
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 4a3e0ebc33c..4c3740f02f7 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -2406,13 +2406,18 @@ using the @option{ssh} method to transfer files, and edit
2406@file{.emacs} in my home directory I would specify the filename 2406@file{.emacs} in my home directory I would specify the filename
2407@file{@trampfn{ssh, daniel, melancholia, .emacs}}. 2407@file{@trampfn{ssh, daniel, melancholia, .emacs}}.
2408 2408
2409@ifset emacs
2410A remote filename containing a host name only, which is equal to a
2411method name, is not allowed. If such a host name is used, it must
2412always be preceded by an explicit method name, like
2413@file{@value{prefix}ssh@value{postfixhop}ssh@value{postfix}}.
2414@end ifset
2415
2409Finally, for some methods it is possible to specify a different port 2416Finally, for some methods it is possible to specify a different port
2410number than the default one, given by the method. This is specified 2417number than the default one, given by the method. This is specified
2411by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh, 2418by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh,
2412daniel, melancholia#42, .emacs}}. 2419daniel, melancholia#42, .emacs}}.
2413 2420
2414Note that @value{tramp} supports only filenames encoded in unibyte.
2415
2416 2421
2417@node Alternative Syntax 2422@node Alternative Syntax
2418@section URL-like filename syntax 2423@section URL-like filename syntax
@@ -3119,6 +3124,45 @@ Host *
3119 3124
3120 3125
3121@item 3126@item
3127@value{tramp} does not use my @command{ssh} @code{ControlPath}
3128
3129Your @code{ControlPath} setting will be overwritten by @command{ssh}
3130sessions initiated by @value{tramp}. This is because a master
3131session, initiated outside @value{emacsname}, could be closed, which
3132would stall all other @command{ssh} sessions for that host inside
3133@value{emacsname}.
3134
3135Consequently, if you connect to a remote host via @value{tramp}, you
3136might be prompted for a password again, even if you have established
3137already an @command{ssh} connection to that host. Further
3138@value{tramp} connections to that host, for example in order to run a
3139process on that host, will reuse that initial @command{ssh}
3140connection.
3141
3142If your @command{ssh} version supports the @code{ControlPersist}
3143option, you could customize the variable
3144@code{tramp-ssh-controlmaster-options} to use your @code{ControlPath},
3145for example:
3146
3147@lisp
3148(setq tramp-ssh-controlmaster-options
3149 (concat
3150 "-o ControlPath=/tmp/ssh-ControlPath-%%r@@%%h:%%p "
3151 "-o ControlMaster=auto -o ControlPersist=yes"))
3152@end lisp
3153
3154Note, that "%r", "%h" and "%p" must be encoded as "%%r", "%%h" and
3155"%%p", respectively. The entries of @code{ControlPath},
3156@code{ControlMaster} and @code{ControlPersist} can be removed from
3157this setting, if they are configured properly in your
3158@file{~/.ssh/config}:
3159
3160@lisp
3161(setq tramp-ssh-controlmaster-options "")
3162@end lisp
3163
3164
3165@item
3122File name completion does not work with @value{tramp} 3166File name completion does not work with @value{tramp}
3123 3167
3124When you log in to the remote machine, do you see the output of 3168When you log in to the remote machine, do you see the output of
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index 18c4252e6d2..c22141335e1 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -8,7 +8,7 @@
8@c In the Tramp CVS, the version number is auto-frobbed from 8@c In the Tramp CVS, the version number is auto-frobbed from
9@c configure.ac, so you should edit that file and run 9@c configure.ac, so you should edit that file and run
10@c "autoconf && ./configure" to change the version number. 10@c "autoconf && ./configure" to change the version number.
11@set trampver 2.2.7 11@set trampver 2.2.8-pre
12 12
13@c Other flags from configuration 13@c Other flags from configuration
14@set instprefix /usr/local 14@set instprefix /usr/local