@code{directory-file-name},
@code{directory-files},
@code{directory-files-and-attributes},
-@code{dired-call-process},
@code{dired-compress-file}, @code{dired-uncache},@*
@code{expand-file-name},
@code{file-accessible-directory-p},
@code{make-directory},
@code{make-directory-internal},
@code{make-symbolic-link},@*
+@code{process-file},
@code{rename-file}, @code{set-file-modes}, @code{set-file-times},
@code{set-visited-file-modtime}, @code{shell-command},
+@code{start-file-process},
@code{substitute-in-file-name},@*
@code{unhandled-file-name-directory},
@code{vc-registered},
@code{directory-file-name},
@code{directory-files},
@code{directory-files-and-at@discretionary{}{}{}tributes},
-@code{dired-call-process},
@code{dired-compress-file}, @code{dired-uncache},
@code{expand-file-name},
@code{file-accessible-direc@discretionary{}{}{}tory-p},
@code{load}, @code{make-direc@discretionary{}{}{}tory},
@code{make-direc@discretionary{}{}{}tory-internal},
@code{make-symbolic-link},
+@code{process-file},
@code{rename-file}, @code{set-file-modes},
@code{set-visited-file-modtime}, @code{shell-command},
+@code{start-file-process},
@code{substitute-in-file-name},
@code{unhandled-file-name-directory},
@code{vc-regis@discretionary{}{}{}tered},
of the local copy file.
@end defun
-@defun file-remote-p filename
+@defun file-remote-p filename &optional identification connected
This function tests whether @var{filename} is a remote file. If
@var{filename} is local (not remote), the return value is @code{nil}.
If @var{filename} is indeed remote, the return value is a string that
This identifier string can include a host name and a user name, as
well as characters designating the method used to access the remote
system. For example, the remote identifier string for the filename
-@code{/ssh:user@@host:/some/file} is @code{/ssh:user@@host:}.
+@code{/sudo::/some/file} is @code{/sudo:root@@localhost:}.
If @code{file-remote-p} returns the same identifier for two different
filenames, that means they are stored on the same file system and can
example, that it is possible to start a remote process accessing both
files at the same time. Implementors of file handlers need to ensure
this principle is valid.
+
+@var{identification} specifies which part of the identifier shall be
+returned as string. @var{identification} can be the symbol
+@code{method}, @code{user} or @code{host}; any other value is handled
+like @code{nil} and means to return the complete identifier string.
+In the example above, the remote @code{user} identifier string would
+be @code{root}.
+
+If @var{connected} is non-@code{nil}, this function returns @code{nil}
+even if @var{filename} is remote, if Emacs has no network connection
+to its host. This is useful when you want to avoid the delay of
+making connections when they don't exist.
@end defun
@defun unhandled-file-name-directory filename
If @var{to-fn} is a string, it is a shell command; Emacs runs the
command as a filter to perform the conversion.
-If @var{to-fn} is a function, it is called with two arguments, @var{begin}
-and @var{end}, which specify the part of the buffer it should convert.
-There are two ways it can do the conversion:
+If @var{to-fn} is a function, it is called with three arguments:
+@var{begin} and @var{end}, which specify the part of the buffer it
+should convert, and @var{buffer}, which specifies which buffer. There
+are two ways it can do the conversion:
@itemize @bullet
@item
@defvar after-insert-file-functions
Each function in this list is called by @code{insert-file-contents}
-with one argument, the number of characters inserted, and should
-return the new character count, leaving point the same.
+with one argument, the number of characters inserted, and with point
+at the beginning of the inserted text. Each function should leave
+point unchanged, and return the new character count describing the
+inserted text as modified by the function.
@c ??? The docstring mentions a handler from `file-name-handler-alist'
@c "intercepting" `insert-file-contents'. Hmmm. --ttn
@end defvar