]> code.delx.au - gnu-emacs/blobdiff - man/tramp.texi
(url-current-object, url-package-name, url-package-version): Add defvars.
[gnu-emacs] / man / tramp.texi
index ebba03d6260772cfb46562f1eab1b309b1b5e78c..b28292cff87157a50d447436266cf9a4810ff5ad 100644 (file)
@@ -25,8 +25,8 @@
 @end macro
 
 @copying
 @end macro
 
 @copying
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004 Free Software
-Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
+   2005 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -88,7 +88,7 @@ combination of @command{rsh} and @command{rcp} or other work-alike
 programs, such as @command{ssh}/@command{scp}.
 
 You can find the latest version of this document on the web at
 programs, such as @command{ssh}/@command{scp}.
 
 You can find the latest version of this document on the web at
-@uref{http://www.freesoftware.fsf.org/tramp/}.
+@uref{http://www.gnu.org/software/tramp/}.
 
 @c Pointer to the other Emacs flavor is necessary only in case of
 @c standalone installation.
 
 @c Pointer to the other Emacs flavor is necessary only in case of
 @c standalone installation.
@@ -99,7 +99,7 @@ If you want to read the info pages for @value{emacsothername}, you
 should read in @ref{Installation} how to create them.
 @end ifinfo
 @ifhtml
 should read in @ref{Installation} how to create them.
 @end ifinfo
 @ifhtml
-If you're using the other Emacs flavour, you should read the
+If you're using the other Emacs flavor, you should read the
 @uref{@value{emacsotherfilename}, @value{emacsothername}} pages.
 @end ifhtml
 @end ifset
 @uref{@value{emacsotherfilename}, @value{emacsothername}} pages.
 @end ifhtml
 @end ifset
@@ -111,18 +111,18 @@ Japanese translation}.
 @end ifset
 
 The latest release of @value{tramp} is available for
 @end ifset
 
 The latest release of @value{tramp} is available for
-@uref{http://savannah.nongnu.org/download/tramp/, download}, or you
-may see @ref{Obtaining Tramp} for more details, including the CVS
-server details.
+@uref{http://ftp.gnu.org/gnu/tramp/, download}, or you may see
+@ref{Obtaining Tramp} for more details, including the CVS server
+details.
 
 
-@value{tramp} also has a @uref{http://savannah.nongnu.org/projects/tramp/,
+@value{tramp} also has a @uref{http://savannah.gnu.org/projects/tramp/,
 Savannah Project Page}.
 @end ifhtml
 
 There is a mailing list for @value{tramp}, available at
 Savannah Project Page}.
 @end ifhtml
 
 There is a mailing list for @value{tramp}, available at
-@email{tramp-devel@@mail.freesoftware.fsf.org}, and archived at
-@uref{http://savannah.nongnu.org/mail/?group=tramp, Savannah Mail
-Archive}.
+@email{tramp-devel@@gnu.org}, and archived at
+@uref{http://lists.gnu.org/archive/html/tramp-devel/, the
+@value{tramp} Mail Archive}.
 @ifhtml
 Older archives are located at
 @uref{http://sourceforge.net/mailarchive/forum.php?forum=tramp-devel,
 @ifhtml
 Older archives are located at
 @uref{http://sourceforge.net/mailarchive/forum.php?forum=tramp-devel,
@@ -192,6 +192,7 @@ Using @value{tramp}
 * Multi-hop filename syntax::   Multi-hop filename conventions.
 * Filename completion::         Filename completion.
 * Dired::                       Dired.
 * Multi-hop filename syntax::   Multi-hop filename conventions.
 * Filename completion::         Filename completion.
 * Dired::                       Dired.
+* Compilation::                 Compile remote files.
 
 The inner workings of remote version control
 
 
 The inner workings of remote version control
 
@@ -217,10 +218,10 @@ How file names, directories and localnames are mangled and managed
 @chapter An overview of @value{tramp}
 @cindex overview
 
 @chapter An overview of @value{tramp}
 @cindex overview
 
-After the installation of @value{tramp} into your @value{emacsname}, you
-will be able to access files on remote machines as though they were
-local.  Access to the remote file system for editing files, version
-control, and @command{dired} are transparently enabled.
+After the installation of @value{tramp} into your @value{emacsname},
+you will be able to access files on remote machines as though they
+were local.  Access to the remote file system for editing files,
+version control, and @code{dired} are transparently enabled.
 
 Your access to the remote machine can be with the @command{rsh},
 @command{rlogin}, @command{telnet} programs or with any similar
 
 Your access to the remote machine can be with the @command{rsh},
 @command{rlogin}, @command{telnet} programs or with any similar
@@ -288,9 +289,9 @@ Communication with this process happens through an
 goes into a buffer.
 
 @item
 goes into a buffer.
 
 @item
-The remote host may prompt for a login name (for @command{telnet}).  The
-login name is given in the file name, so @value{tramp} sends the login name and
-a newline.
+The remote host may prompt for a login name (for @command{telnet}).
+The login name is given in the file name, so @value{tramp} sends the
+login name and a newline.
 
 @item
 The remote host may prompt for a password or pass phrase (for
 
 @item
 The remote host may prompt for a password or pass phrase (for
@@ -364,7 +365,6 @@ you are finished, you type @kbd{C-x C-s} to save the buffer.
 Again, @value{tramp} transfers the file contents to the remote host either
 inline or out-of-band.  This is the reverse of what happens when reading
 the file.
 Again, @value{tramp} transfers the file contents to the remote host either
 inline or out-of-band.  This is the reverse of what happens when reading
 the file.
-
 @end itemize
 
 I hope this has provided you with a basic overview of what happens
 @end itemize
 
 I hope this has provided you with a basic overview of what happens
@@ -376,14 +376,14 @@ behind the scenes when you open a file with @value{tramp}.
 @chapter Obtaining Tramp.
 @cindex obtaining Tramp
 
 @chapter Obtaining Tramp.
 @cindex obtaining Tramp
 
-@value{tramp} is freely available on the Internet and the latest release
-may be downloaded from
-@uref{http://savannah.nongnu.org/download/tramp/}. This
-release includes the full documentation and code for @value{tramp},
-suitable for installation.  But Emacs (21.4 or later) includes
-@value{tramp} already, and there is a @value{tramp} package for XEmacs, as well.
-So maybe it is easier to just use those.  But if you want the bleeding
-edge, read on@dots{...}
+@value{tramp} is freely available on the Internet and the latest
+release may be downloaded from
+@uref{http://ftp.gnu.org/gnu/tramp/}. This release includes the full
+documentation and code for @value{tramp}, suitable for installation.
+But GNU Emacs (22 or later) includes @value{tramp} already, and there
+is a @value{tramp} package for XEmacs, as well.  So maybe it is easier
+to just use those.  But if you want the bleeding edge, read
+on@dots{...}
 
 For the especially brave, @value{tramp} is available from CVS.  The CVS
 version is the latest version of the code and may contain incomplete
 
 For the especially brave, @value{tramp} is available from CVS.  The CVS
 version is the latest version of the code and may contain incomplete
@@ -395,7 +395,7 @@ following URL and then clicking on the CVS link in the navigation bar
 at the top.
 
 @noindent
 at the top.
 
 @noindent
-@uref{http://savannah.nongnu.org/projects/tramp/}
+@uref{http://savannah.gnu.org/projects/tramp/}
 
 @noindent
 Or follow the example session below:
 
 @noindent
 Or follow the example session below:
@@ -403,7 +403,7 @@ Or follow the example session below:
 @example
 ] @strong{cd ~/@value{emacsdir}}
 ] @strong{export CVS_RSH="ssh"}
 @example
 ] @strong{cd ~/@value{emacsdir}}
 ] @strong{export CVS_RSH="ssh"}
-] @strong{cvs -z3 -d:ext:anoncvs@@savannah.nongnu.org:/cvsroot/tramp co tramp}
+] @strong{cvs -z3 -d:ext:anoncvs@@savannah.gnu.org:/cvsroot/tramp co tramp}
 @end example
 
 @noindent
 @end example
 
 @noindent
@@ -652,7 +652,6 @@ easy to implement, so I haven't got around to it, yet.
 @item @option{sshx}
 @cindex method sshx
 @cindex sshx method
 @item @option{sshx}
 @cindex method sshx
 @cindex sshx method
-@cindex Cygwin (with sshx method)
 
 As you would expect, this is similar to @option{ssh}, only a little
 different.  Whereas @option{ssh} opens a normal interactive shell on
 
 As you would expect, this is similar to @option{ssh}, only a little
 different.  Whereas @option{ssh} opens a normal interactive shell on
@@ -673,9 +672,9 @@ in without such questions.
 This is also useful for Windows users where @command{ssh}, when
 invoked from an @value{emacsname} buffer, tells them that it is not
 allocating a pseudo tty.  When this happens, the login shell is wont
 This is also useful for Windows users where @command{ssh}, when
 invoked from an @value{emacsname} buffer, tells them that it is not
 allocating a pseudo tty.  When this happens, the login shell is wont
-to not print any shell prompt, which confuses @value{tramp} mightily.  For
-reasons unknown, some Windows ports for @command{ssh} (maybe the
-Cygwin one) require the doubled @samp{-t} option.
+to not print any shell prompt, which confuses @value{tramp} mightily.
+For reasons unknown, some Windows ports for @command{ssh} require the
+doubled @samp{-t} option.
 
 This supports the @samp{-p} kludge.
 
 
 This supports the @samp{-p} kludge.
 
@@ -816,7 +815,6 @@ This method supports the @samp{-p} hack.
 @cindex scpx method
 @cindex scp (with scpx method)
 @cindex ssh (with scpx method)
 @cindex scpx method
 @cindex scp (with scpx method)
 @cindex ssh (with scpx method)
-@cindex Cygwin (with scpx method)
 
 As you would expect, this is similar to @option{scp}, only a little
 different.  Whereas @option{scp} opens a normal interactive shell on
 
 As you would expect, this is similar to @option{scp}, only a little
 different.  Whereas @option{scp} opens a normal interactive shell on
@@ -831,7 +829,6 @@ This is also useful for Windows users where @command{ssh}, when
 invoked from an @value{emacsname} buffer, tells them that it is not
 allocating a pseudo tty.  When this happens, the login shell is wont
 to not print any shell prompt, which confuses @value{tramp} mightily.
 invoked from an @value{emacsname} buffer, tells them that it is not
 allocating a pseudo tty.  When this happens, the login shell is wont
 to not print any shell prompt, which confuses @value{tramp} mightily.
-Maybe this applies to the Cygwin port of SSH.
 
 This method supports the @samp{-p} hack.
 
 
 This method supports the @samp{-p} hack.
 
@@ -1024,7 +1021,7 @@ For example:
  '("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n"))
 @end lisp
 
  '("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n"))
 @end lisp
 
-Now you can use an @code{sshf} hop which connects to port 4400 instead of
+Now you can use an @option{sshf} hop which connects to port 4400 instead of
 the standard port.
 
 
 the standard port.
 
 
@@ -1073,16 +1070,16 @@ Another consideration with the selection of transfer methods is the
 environment you will use them in and, especially when used over the
 Internet, the security implications of your preferred method.
 
 environment you will use them in and, especially when used over the
 Internet, the security implications of your preferred method.
 
-The @command{rsh} and @command{telnet} methods send your password as
-plain text as you log in to the remote machine, as well as transferring
-the files in such a way that the content can easily be read from other
-machines.
+The @option{rsh} and @option{telnet} methods send your password as
+plain text as you log in to the remote machine, as well as
+transferring the files in such a way that the content can easily be
+read from other machines.
 
 If you need to connect to remote systems that are accessible from the
 
 If you need to connect to remote systems that are accessible from the
-Internet, you should give serious thought to using @command{ssh} based
+Internet, you should give serious thought to using @option{ssh} based
 methods to connect. These provide a much higher level of security,
 methods to connect. These provide a much higher level of security,
-making it a non-trivial exercise for someone to obtain your password or
-read the content of the files you are editing.
+making it a non-trivial exercise for someone to obtain your password
+or read the content of the files you are editing.
 
 
 @subsection Which method is the right one for me?
 
 
 @subsection Which method is the right one for me?
@@ -1100,26 +1097,29 @@ methods might be more efficient, but I guess that most people will want
 to edit mostly small files.
 
 I guess that these days, most people can access a remote machine by
 to edit mostly small files.
 
 I guess that these days, most people can access a remote machine by
-using @code{ssh}.  So I suggest that you use the @code{ssh} method.
-So, type @kbd{C-x C-f
+using @command{ssh}.  So I suggest that you use the @option{ssh}
+method.  So, type @kbd{C-x C-f
 @value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd
 @key{RET}} to edit the @file{/etc/motd} file on the other host.
 
 @value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd
 @key{RET}} to edit the @file{/etc/motd} file on the other host.
 
-If you can't use @code{ssh} to log in to the remote host, then select a
-method that uses a program that works.  For instance, Windows users
-might like the @code{plink} method which uses the PuTTY implementation
-of @code{ssh}.  Or you use Kerberos and thus like @code{krlogin}.
+If you can't use @option{ssh} to log in to the remote host, then
+select a method that uses a program that works.  For instance, Windows
+users might like the @option{plink} method which uses the PuTTY
+implementation of @command{ssh}.  Or you use Kerberos and thus like
+@option{krlogin}.
 
 For the special case of editing files on the local host as another
 
 For the special case of editing files on the local host as another
-user, see the @code{su} or @code{sudo} method.
+user, see the @option{su} or @option{sudo} methods.  They offer
+shortened syntax for the @samp{root} account, like
+@file{@value{prefix}su@value{postfixsinglehop}@value{postfix}/etc/motd}.
 
 
-People who edit large files may want to consider @code{scp} instead of
-@code{ssh}, or @code{pscp} instead of @code{plink}.  These out-of-band
-methods are faster than inline methods for large files.  Note, however,
-that out-of-band methods suffer from some limitations.  Please try
-first whether you really get a noticeable speed advantage from using an
-out-of-band method!  Maybe even for large files, inline methods are
-fast enough.
+People who edit large files may want to consider @option{scp} instead
+of @option{ssh}, or @option{pscp} instead of @option{plink}.  These
+out-of-band methods are faster than inline methods for large files.
+Note, however, that out-of-band methods suffer from some limitations.
+Please try first whether you really get a noticeable speed advantage
+from using an out-of-band method!  Maybe even for large files, inline
+methods are fast enough.
 
 
 @node Customizing Methods
 
 
 @node Customizing Methods
@@ -1208,7 +1208,8 @@ in @file{~/.ssh/config} style files.
 
 SSH2 parsing of directories @file{/etc/ssh2/hostkeys/*} and
 @file{~/ssh2/hostkeys/*}.  Hosts are coded in file names
 
 SSH2 parsing of directories @file{/etc/ssh2/hostkeys/*} and
 @file{~/ssh2/hostkeys/*}.  Hosts are coded in file names
-@file{hostkey_PORTNUMBER_HOST-NAME.pub}.  User names are always nil.
+@file{hostkey_@var{portnumber}_@var{host-name}.pub}.  User names
+are always @code{nil}.
 
 @item @code{tramp-parse-sknownhosts}
 @findex tramp-parse-shostkeys
 
 @item @code{tramp-parse-sknownhosts}
 @findex tramp-parse-shostkeys
@@ -1216,7 +1217,7 @@ SSH2 parsing of directories @file{/etc/ssh2/hostkeys/*} and
 Another SSH2 style parsing of directories like
 @file{/etc/ssh2/knownhosts/*} and @file{~/ssh2/knownhosts/*}.  This
 case, hosts names are coded in file names
 Another SSH2 style parsing of directories like
 @file{/etc/ssh2/knownhosts/*} and @file{~/ssh2/knownhosts/*}.  This
 case, hosts names are coded in file names
-@file{HOST-NAME.ALGORITHM.pub}.  User names are always nil.
+@file{@var{host-name}.@var{algorithm}.pub}.  User names are always @code{nil}.
 
 @item @code{tramp-parse-hosts}
 @findex tramp-parse-hosts
 
 @item @code{tramp-parse-hosts}
 @findex tramp-parse-hosts
@@ -1361,16 +1362,16 @@ the remote host such that it behaves like @value{tramp} expects.  This might
 be inconvenient because you have to invest a lot of effort into shell
 setup before you can begin to use @value{tramp}.
 
 be inconvenient because you have to invest a lot of effort into shell
 setup before you can begin to use @value{tramp}.
 
-The package, therefore, pursues a combined approach.  It tries to figure
-out some of the more common setups, and only requires you to avoid
-really exotic stuff.  For example, it looks through a list of
+The package, therefore, pursues a combined approach.  It tries to
+figure out some of the more common setups, and only requires you to
+avoid really exotic stuff.  For example, it looks through a list of
 directories to find some programs on the remote host.  And also, it
 knows that it is not obvious how to check whether a file exists, and
 directories to find some programs on the remote host.  And also, it
 knows that it is not obvious how to check whether a file exists, and
-therefore it tries different possibilities.  (On some hosts and shells,
-the command @code{test -e} does the trick, on some hosts the shell
-builtin doesn't work but the program @code{/usr/bin/test -e} or
-@code{/bin/test -e} works.  And on still other hosts, @code{ls -d} is
-the right way to do this.)
+therefore it tries different possibilities.  (On some hosts and
+shells, the command @command{test -e} does the trick, on some hosts
+the shell builtin doesn't work but the program @command{/usr/bin/test
+-e} or @command{/bin/test -e} works.  And on still other hosts,
+@command{ls -d} is the right way to do this.)
 
 Below you find a discussion of a few things that @value{tramp} does not deal
 with, and that you therefore have to set up correctly.
 
 Below you find a discussion of a few things that @value{tramp} does not deal
 with, and that you therefore have to set up correctly.
@@ -1405,11 +1406,11 @@ different user.  The default value of
 @code{shell-prompt-pattern}, which is reported to work well in many
 circumstances.
 
 @code{shell-prompt-pattern}, which is reported to work well in many
 circumstances.
 
-@item @code{tset} and other questions
+@item @command{tset} and other questions
 @cindex Unix command tset
 @cindex tset Unix command
 
 @cindex Unix command tset
 @cindex tset Unix command
 
-Some people invoke the @code{tset} program from their shell startup
+Some people invoke the @command{tset} program from their shell startup
 scripts which asks the user about the terminal type of the shell.
 Maybe some shells ask other questions when they are started.  @value{tramp}
 does not know how to answer these questions.  There are two approaches
 scripts which asks the user about the terminal type of the shell.
 Maybe some shells ask other questions when they are started.  @value{tramp}
 does not know how to answer these questions.  There are two approaches
@@ -1439,20 +1440,21 @@ This weird effect was actually reported by a @value{tramp} user!
 @item Non-Bourne commands in @file{.profile}
 
 After logging in to the remote host, @value{tramp} issues the command
 @item Non-Bourne commands in @file{.profile}
 
 After logging in to the remote host, @value{tramp} issues the command
-@code{exec /bin/sh}.  (Actually, the command is slightly different.)
-When @code{/bin/sh} is executed, it reads some init files, such as
-@file{~/.shrc} or @file{~/.profile}.
+@command{exec /bin/sh}.  (Actually, the command is slightly
+different.)  When @command{/bin/sh} is executed, it reads some init
+files, such as @file{~/.shrc} or @file{~/.profile}.
 
 Now, some people have a login shell which is not @code{/bin/sh} but a
 Bourne-ish shell such as bash or ksh.  Some of these people might put
 
 Now, some people have a login shell which is not @code{/bin/sh} but a
 Bourne-ish shell such as bash or ksh.  Some of these people might put
-their shell setup into the files @code{~/.shrc} or @code{~/.profile}.
+their shell setup into the files @file{~/.shrc} or @file{~/.profile}.
 This way, it is possible for non-Bourne constructs to end up in those
 This way, it is possible for non-Bourne constructs to end up in those
-files.  Then, @code{exec /bin/sh} might cause the Bourne shell to barf
-on those constructs.
+files.  Then, @command{exec /bin/sh} might cause the Bourne shell to
+barf on those constructs.
 
 
-As an example, imagine somebody putting @code{export FOO=bar} into the
-file @file{~/.profile}.  The standard Bourne shell does not understand
-this syntax and will emit a syntax error when it reaches this line.
+As an example, imagine somebody putting @command{export FOO=bar} into
+the file @file{~/.profile}.  The standard Bourne shell does not
+understand this syntax and will emit a syntax error when it reaches
+this line.
 
 Another example is the tilde (@code{~}) character, say when adding
 @file{~/bin} to @code{$PATH}.  Many Bourne shells will not expand this
 
 Another example is the tilde (@code{~}) character, say when adding
 @file{~/bin} to @code{$PATH}.  Many Bourne shells will not expand this
@@ -1463,8 +1465,8 @@ What can you do about this?
 
 Well, one possibility is to make sure that everything in @file{~/.shrc}
 and @file{~/.profile} on all remote hosts is Bourne-compatible.  In the
 
 Well, one possibility is to make sure that everything in @file{~/.shrc}
 and @file{~/.profile} on all remote hosts is Bourne-compatible.  In the
-above example, instead of @code{export FOO=bar}, you might use
-@code{FOO=bar; export FOO} instead.
+above example, instead of @command{export FOO=bar}, you might use
+@command{FOO=bar; export FOO} instead.
 
 The other possibility is to put your non-Bourne shell setup into some
 other files.  For example, bash reads the file @file{~/.bash_profile}
 
 The other possibility is to put your non-Bourne shell setup into some
 other files.  For example, bash reads the file @file{~/.bash_profile}
@@ -1472,14 +1474,15 @@ instead of @file{~/.profile}, if the former exists.  So bash
 aficionados just rename their @file{~/.profile} to
 @file{~/.bash_profile} on all remote hosts, and Bob's your uncle.
 
 aficionados just rename their @file{~/.profile} to
 @file{~/.bash_profile} on all remote hosts, and Bob's your uncle.
 
-The @value{tramp} developers would like to circumvent this problem, so if you
-have an idea about it, please tell us.  However, we are afraid it is not
-that simple: before saying @code{exec /bin/sh}, @value{tramp} does not know
-which kind of shell it might be talking to.  It could be a Bourne-ish
-shell like ksh or bash, or it could be a csh derivative like tcsh, or
-it could be zsh, or even rc.  If the shell is Bourne-ish already, then
-it might be prudent to omit the @code{exec /bin/sh} step.  But how to
-find out if the shell is Bourne-ish?
+The @value{tramp} developers would like to circumvent this problem, so
+if you have an idea about it, please tell us.  However, we are afraid
+it is not that simple: before saying @command{exec /bin/sh},
+@value{tramp} does not know which kind of shell it might be talking
+to.  It could be a Bourne-ish shell like ksh or bash, or it could be a
+csh derivative like tcsh, or it could be zsh, or even rc.  If the
+shell is Bourne-ish already, then it might be prudent to omit the
+@command{exec /bin/sh} step.  But how to find out if the shell is
+Bourne-ish?
 
 @end table
 
 
 @end table
 
@@ -1519,7 +1522,7 @@ When
 @ifset xemacs
 @code{bkup-backup-directory-info}
 @end ifset
 @ifset xemacs
 @code{bkup-backup-directory-info}
 @end ifset
-is nil (the default), such problems do not occur.
+is @code{nil} (the default), such problems do not occur.
 
 Therefore, it is usefull to set special values for @value{tramp}
 files.  For example, the following statement effectively `turns off'
 
 Therefore, it is usefull to set special values for @value{tramp}
 files.  For example, the following statement effectively `turns off'
@@ -1602,12 +1605,12 @@ directory an auto-saved file should go.  By default, it is initialized
 for @value{tramp} files to the local temporary directory.
 
 On some versions of @value{emacsname}, namely the version built for
 for @value{tramp} files to the local temporary directory.
 
 On some versions of @value{emacsname}, namely the version built for
-Debian Linux, the variable @code{auto-save-file-name-transforms}
+Debian GNU/Linux, the variable @code{auto-save-file-name-transforms}
 contains the directory where @value{emacsname} was built.  A
 workaround is to manually set the variable to a sane value.
 
 If auto-saved files should go into the same directory as the original
 contains the directory where @value{emacsname} was built.  A
 workaround is to manually set the variable to a sane value.
 
 If auto-saved files should go into the same directory as the original
-files, @code{auto-save-file-name-transforms} should be set to nil.
+files, @code{auto-save-file-name-transforms} should be set to @code{nil}.
 
 Another possibility is to set the variable
 @code{tramp-auto-save-directory} to a proper value.
 
 Another possibility is to set the variable
 @code{tramp-auto-save-directory} to a proper value.
@@ -1626,38 +1629,44 @@ This section needs a lot of work!  Please help.
 
 @cindex method sshx with Cygwin
 @cindex sshx method with Cygwin
 
 @cindex method sshx with Cygwin
 @cindex sshx method with Cygwin
-If you use the Cygwin installation of ssh (you have to explicitly select
-it in the installer), then it should work out of the box to just select
-@code{sshx} as the connection method.  You can find information about
-setting up Cygwin in their FAQ at @uref{http://cygwin.com/faq/}.
+The recent Cygwin installation of @command{ssh} works only with a
+Cygwinized @value{emacsname}.  You can check it by typing @kbd{M-x
+eshell}, and starting @kbd{ssh test.machine}.  The problem is evident
+if you see a message like this:
+
+@example
+Pseudo-terminal will not be allocated because stdin is not a terminal.
+@end example
+
+Older @command{ssh} versions of Cygwin are told to cooperate with
+@value{tramp} selecting @option{sshx} as the connection method.  You
+can find information about setting up Cygwin in their FAQ at
+@uref{http://cygwin.com/faq/}.
 
 @cindex method scpx with Cygwin
 @cindex scpx method with Cygwin
 
 @cindex method scpx with Cygwin
 @cindex scpx method with Cygwin
-If you wish to use the @code{scpx} connection method, then you might
-have the problem that @value{emacsname} calls @code{scp} with a
+If you wish to use the @option{scpx} connection method, then you might
+have the problem that @value{emacsname} calls @command{scp} with a
 Windows filename such as @code{c:/foo}.  The Cygwin version of
 Windows filename such as @code{c:/foo}.  The Cygwin version of
-@code{scp} does not know about Windows filenames and interprets this
+@command{scp} does not know about Windows filenames and interprets this
 as a remote filename on the host @code{c}.
 
 as a remote filename on the host @code{c}.
 
-One possible workaround is to write a wrapper script for @code{scp}
+One possible workaround is to write a wrapper script for @option{scp}
 which converts the Windows filename to a Cygwinized filename.
 
 which converts the Windows filename to a Cygwinized filename.
 
-I guess that another workaround is to run @value{emacsname} under
-Cygwin, or to run a Cygwinized @value{emacsname}.
-
 @cindex Cygwin and ssh-agent
 @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows
 @cindex Cygwin and ssh-agent
 @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows
-If you want to use either @code{ssh} based method on Windows, then you
-might encounter problems with @code{ssh-agent}.  Using this program,
-you can avoid typing the pass-phrase every time you log in.  However,
-if you start @value{emacsname} from a desktop shortcut, then the
-environment variable @code{SSH_AUTH_SOCK} is not set and so
-@value{emacsname} and thus @value{tramp} and thus @code{ssh} and
-@code{scp} started from @value{tramp} cannot communicate with
-@code{ssh-agent}.  It works better to start @value{emacsname} from
+If you want to use either @option{ssh} based method on Windows, then
+you might encounter problems with @command{ssh-agent}.  Using this
+program, you can avoid typing the pass-phrase every time you log in.
+However, if you start @value{emacsname} from a desktop shortcut, then
+the environment variable @code{SSH_AUTH_SOCK} is not set and so
+@value{emacsname} and thus @value{tramp} and thus @command{ssh} and
+@command{scp} started from @value{tramp} cannot communicate with
+@command{ssh-agent}.  It works better to start @value{emacsname} from
 the shell.
 
 the shell.
 
-If anyone knows how to start @code{ssh-agent} under Windows in such a
+If anyone knows how to start @command{ssh-agent} under Windows in such a
 way that desktop shortcuts can profit, please holler.  I don't really
 know anything at all about Windows@dots{}
 
 way that desktop shortcuts can profit, please holler.  I don't really
 know anything at all about Windows@dots{}
 
@@ -1690,6 +1699,7 @@ minute you have already forgotten that you hit that key!
 * Multi-hop filename syntax::   Multi-hop filename conventions.
 * Filename completion::         Filename completion.
 * Dired::                       Dired.
 * Multi-hop filename syntax::   Multi-hop filename conventions.
 * Filename completion::         Filename completion.
 * Dired::                       Dired.
+* Compilation::                 Compile remote files.
 @end menu
 
 
 @end menu
 
 
@@ -1885,6 +1895,32 @@ present, than filename completion.  Dired has its own cache mechanism
 and will only fetch the directory listing once.
 
 
 and will only fetch the directory listing once.
 
 
+@node Compilation
+@section Compile remote files
+@cindex compile
+@cindex recompile
+
+@value{tramp} provides commands for compilation of files on remote
+machines.  In order to get them loaded, you need to require
+@file{tramp-util.el}:
+
+@lisp
+(require 'tramp-util)
+@end lisp
+
+Afterwards, you can use the commands @code{tramp-compile} and
+@code{tramp-recompile} instead of @code{compile} and @code{recompile},
+respectively; @inforef{Compilation, ,@value{emacsdir}}.  This does not
+work for the @option{ftp} and @option{smb} methods.
+
+The corresponding key bindings and menu entries calling these commands
+are redefined automatically for buffers associated with remote files.
+
+After finishing the compilation, you can use the usual commands like
+@code{previous-error}, @code{next-error} and @code{first-error} for
+navigation in the @file{*Compilation*} buffer.
+
+
 @node Bug Reports
 @chapter Reporting Bugs and Problems
 @cindex bug reports
 @node Bug Reports
 @chapter Reporting Bugs and Problems
 @cindex bug reports
@@ -1896,13 +1932,13 @@ The @value{tramp} mailing list is a great place to get information on working
 with @value{tramp}, solving problems and general discussion and advice on topics
 relating to the package.
 
 with @value{tramp}, solving problems and general discussion and advice on topics
 relating to the package.
 
-The  mailing list is at @email{tramp-devel@@mail.freesoftware.fsf.org}.
-Messages sent to this address go to all the subscribers. This is
-@emph{not} the address to send subscription requests to.
+The mailing list is at @email{tramp-devel@@gnu.org}.  Messages sent to
+this address go to all the subscribers. This is @emph{not} the address
+to send subscription requests to.
 
 
-For help on subscribing to the list, send mail to the administrative
-address, @email{tramp-devel-request@@mail.freesoftware.fsf.org}, with the
-subject @samp{help}.
+Subscribing to the list is performed via
+@uref{http://lists.gnu.org/mailman/listinfo/tramp-devel/,
+the @value{tramp} Mail Subscription Page}.
 
 To report a bug in @value{tramp}, you should execute @kbd{M-x tramp-bug}. This
 will automatically generate a buffer with the details of your system and
 
 To report a bug in @value{tramp}, you should execute @kbd{M-x tramp-bug}. This
 will automatically generate a buffer with the details of your system and
@@ -1928,20 +1964,21 @@ Where can I get the latest @value{tramp}?
 @value{tramp} is available under the URL below.
 
 @noindent
 @value{tramp} is available under the URL below.
 
 @noindent
-@uref{http://savannah.nongnu.org/download/tramp/}
+@uref{http://ftp.gnu.org/gnu/tramp/}
 
 @noindent
 There is also a Savannah project page.
 
 @noindent
 
 @noindent
 There is also a Savannah project page.
 
 @noindent
-@uref{http://savannah.nongnu.org/projects/tramp/}
+@uref{http://savannah.gnu.org/projects/tramp/}
 
 @item
 Which systems does it work on?
 
 
 @item
 Which systems does it work on?
 
-The package has been used successfully on Emacs 20 and Emacs 21, as well
-as XEmacs 21.  XEmacs 20 is more problematic, see the notes in
-@file{tramp.el}.  I don't think anybody has really tried it on Emacs 19.
+The package has been used successfully on GNU Emacs 20, GNU Emacs 21
+and GNU Emacs 22, as well as XEmacs 21.  XEmacs 20 is more
+problematic, see the notes in @file{tramp.el}.  I don't think anybody
+has really tried it on GNU Emacs 19.
 
 The package was intended to work on Unix, and it really expects a
 Unix-like system on the remote end (except the @option{smb} method),
 
 The package was intended to work on Unix, and it really expects a
 Unix-like system on the remote end (except the @option{smb} method),
@@ -1952,9 +1989,12 @@ There is some informations on @value{tramp} on NT at the following URL;
 many thanks to Joe Stoy for providing the information:
 @uref{ftp://ftp.comlab.ox.ac.uk/tmp/Joe.Stoy/}
 
 many thanks to Joe Stoy for providing the information:
 @uref{ftp://ftp.comlab.ox.ac.uk/tmp/Joe.Stoy/}
 
+@c The link is broken. I've contacted Tom for clarification. Michael.
+@ignore
 The above mostly contains patches to old ssh versions; Tom Roche has a
 Web page with instructions:
 @uref{http://www4.ncsu.edu/~tlroche/plinkTramp.html}
 The above mostly contains patches to old ssh versions; Tom Roche has a
 Web page with instructions:
 @uref{http://www4.ncsu.edu/~tlroche/plinkTramp.html}
+@end ignore
 
 ??? Is the XEmacs info correct?
 
 
 ??? Is the XEmacs info correct?
 
@@ -2073,10 +2113,10 @@ remote host.
 There's this @file{~/.sh_history} file on the remote host which keeps
 growing and growing.  What's that?
 
 There's this @file{~/.sh_history} file on the remote host which keeps
 growing and growing.  What's that?
 
-Sometimes, @value{tramp} starts @code{ksh} on the remote host for tilde
-expansion.  Maybe @code{ksh} saves the history by default.  @value{tramp}
-tries to turn off saving the history, but maybe you have to help.  For
-example, you could put this in your @file{.kshrc}:
+Sometimes, @value{tramp} starts @command{ksh} on the remote host for
+tilde expansion.  Maybe @command{ksh} saves the history by default.
+@value{tramp} tries to turn off saving the history, but maybe you have
+to help.  For example, you could put this in your @file{.kshrc}:
 
 @example
 if [ -f $HOME/.sh_history ] ; then
 
 @example
 if [ -f $HOME/.sh_history ] ; then
@@ -2091,7 +2131,8 @@ fi
 @end example
 
 
 @end example
 
 
-@item @value{tramp} doesn't transfer strings with more than 500 characters
+@item
+@value{tramp} doesn't transfer strings with more than 500 characters
 correctly
 
 On some few systems, the implementation of @code{process-send-string}
 correctly
 
 On some few systems, the implementation of @code{process-send-string}
@@ -2099,7 +2140,6 @@ seems to be broken for longer strings.  This case, you should
 customize the variable @code{tramp-chunksize} to 500.  For a
 description how to determine whether this is necessary see the
 documentation of @code{tramp-chunksize}.
 customize the variable @code{tramp-chunksize} to 500.  For a
 description how to determine whether this is necessary see the
 documentation of @code{tramp-chunksize}.
-
 @end itemize
 
 
 @end itemize
 
 
@@ -2281,18 +2321,18 @@ effect while preserving the @value{tramp} file name information.
 @itemize @bullet
 @item The uuencode method does not always work.
 
 @itemize @bullet
 @item The uuencode method does not always work.
 
-Due to the design of @value{tramp}, the encoding and decoding programs need to
-read from stdin and write to stdout.  On some systems, @code{uudecode -o
--} will read stdin and write the decoded file to stdout, on other
-systems @code{uudecode -p} does the same thing.  But some systems have
-uudecode implementations which cannot do this at all---it is not
-possible to call these uudecode implementations with suitable parameters
-so that they write to stdout.
+Due to the design of @value{tramp}, the encoding and decoding programs
+need to read from stdin and write to stdout.  On some systems,
+@command{uudecode -o -} will read stdin and write the decoded file to
+stdout, on other systems @command{uudecode -p} does the same thing.
+But some systems have uudecode implementations which cannot do this at
+all---it is not possible to call these uudecode implementations with
+suitable parameters so that they write to stdout.
 
 Of course, this could be circumvented: the @code{begin foo 644} line
 could be rewritten to put in some temporary file name, then
 
 Of course, this could be circumvented: the @code{begin foo 644} line
 could be rewritten to put in some temporary file name, then
-@code{uudecode} could be called, then the temp file could be printed and
-deleted.
+@command{uudecode} could be called, then the temp file could be
+printed and deleted.
 
 But I have decided that this is too fragile to reliably work, so on some
 systems you'll have to do without the uuencode methods.
 
 But I have decided that this is too fragile to reliably work, so on some
 systems you'll have to do without the uuencode methods.
@@ -2305,9 +2345,9 @@ emulation macro to @value{tramp}, but if somebody who uses XEmacs 20 steps
 forward and wishes to implement and test it, please contact me or the
 mailing list.
 
 forward and wishes to implement and test it, please contact me or the
 mailing list.
 
-@item The @value{tramp} filename syntax differs between Emacs and XEmacs.
+@item The @value{tramp} filename syntax differs between GNU Emacs and XEmacs.
 
 
-The Emacs maintainers wish to use a unified filename syntax for
+The GNU Emacs maintainers wish to use a unified filename syntax for
 Ange-FTP and @value{tramp} so that users don't have to learn a new
 syntax.  It is sufficient to learn some extensions to the old syntax.
 
 Ange-FTP and @value{tramp} so that users don't have to learn a new
 syntax.  It is sufficient to learn some extensions to the old syntax.
 
@@ -2333,13 +2373,12 @@ to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}.
 
 In case of unified filenames, all @value{emacsname} download sites
 are added to @code{tramp-default-method-alist} with default method
 
 In case of unified filenames, all @value{emacsname} download sites
 are added to @code{tramp-default-method-alist} with default method
-@code{ftp} @xref{Default Method}.  These settings shouldn't be touched
+@option{ftp} @xref{Default Method}.  These settings shouldn't be touched
 for proper working of the @value{emacsname} package system.
 
 The syntax for unified filenames is described in the @value{tramp} manual
 for @value{emacsothername}.
 @end ifset
 for proper working of the @value{emacsname} package system.
 
 The syntax for unified filenames is described in the @value{tramp} manual
 for @value{emacsothername}.
 @end ifset
-
 @end itemize
 
 @node Concept Index
 @end itemize
 
 @node Concept Index