aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/files.el
diff options
context:
space:
mode:
authorDrew Adams <[email protected]>2011-12-21 19:33:38 +0100
committerMichael Albinus <[email protected]>2011-12-21 19:33:38 +0100
commitbace743a4a6760cdb3620b0b50396c73ffd16b52 (patch)
treef4803935ea4a6083b1d47abaef71c44ab2102116 /lisp/files.el
parent5da6dcc815adb1dbcaf0c43141dacdf7aa4b0589 (diff)
* files.el (file-remote-p): Fix docstring. (Bug#10319)
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el53
1 files changed, 35 insertions, 18 deletions
diff --git a/lisp/files.el b/lisp/files.el
index 40b6e7d56b..0f7386511f 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -917,24 +917,41 @@ See `load-file' for a different interface to `load'."
(defun file-remote-p (file &optional identification connected)
"Test whether FILE specifies a location on a remote system.
-Returns nil or a string identifying the remote connection (ideally
-a prefix of FILE). For example, the remote identification for filename
-\"/user@host:/foo\" could be \"/user@host:\".
-A file is considered \"remote\" if accessing it is likely to be slower or
-less reliable than accessing local files.
-Furthermore, relative file names do not work across remote connections.
-
-IDENTIFICATION specifies which part of the identification shall
-be returned as string. IDENTIFICATION can be the symbol
-`method', `user', `host' or `localname'; any other value is
-handled like nil and means to return the complete identification
-string.
-
-If CONNECTED is non-nil, the function returns an identification only
-if FILE is located on a remote system, and a connection is established
-to that remote system.
-
-`file-remote-p' will never open a connection on its own."
+A file is considered remote if accessing it is likely to
+be slower or less reliable than accessing local files.
+
+`file-remote-p' never opens a new remote connection. It can
+only reuse a connection that is already open.
+
+Return nil or a string identifying the remote connection
+\(ideally a prefix of FILE). Return nil if FILE is a relative
+file name.
+
+When IDENTIFICATION is nil, the returned string is a complete
+remote identifier: with components method, user, and host. The
+components are those present in FILE, with defaults filled in for
+any that are missing.
+
+IDENTIFICATION can specify which part of the identification to
+return. IDENTIFICATION can be the symbol `method', `user',
+`host', or `localname'. Any other value is handled like nil and
+means to return the complete identification. The string returned
+for IDENTIFICATION `localname' can differ depending on whether
+there is an existing connection.
+
+If CONNECTED is non-nil, return an identification only if FILE is
+located on a remote system and a connection is established to
+that remote system.
+
+Tip: You can use this expansion of remote identifier components
+ to derive a new remote file name from an existing one. For
+ example, if FILE is \"/sudo::/path/to/file\" then
+
+ \(concat \(file-remote-p FILE) \"/bin/sh\")
+
+ returns a remote file name for file \"/bin/sh\" that has the
+ same remote identifier as FILE but expanded; a name such as
+ \"/sudo:root@myhost:/bin/sh\"."
(let ((handler (find-file-name-handler file 'file-remote-p)))
(if handler
(funcall handler 'file-remote-p file identification connected)