aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMichael Albinus2018-06-20 12:13:56 +0200
committerMichael Albinus2018-06-20 12:13:56 +0200
commit6f649e77b8512f73b17f03fd795beea9965c4029 (patch)
treec52a6a8413dab1e9af36d975869f16019230ad53 /doc
parent3a47f3921bdaaf7b7d80dc3be05a5f1b1f2501eb (diff)
downloademacs-6f649e77b8512f73b17f03fd795beea9965c4029.tar.gz
emacs-6f649e77b8512f73b17f03fd795beea9965c4029.zip
Implement command completion in remote shells. (Bug#31704)
* doc/lispref/files.texi (Locating Files): Describe optional argument REMOTE of `executable-find'. (Magic File Names): Add `exec-path'. * doc/lispref/processes.texi (Subprocess Creation): Describe function `exec-path'. * doc/misc/tramp.texi (Remote programs): Explain refresh of search paths by `tramp-cleanup-this-connection'. * etc/NEWS: Mention 'exec-path' and 'executable-find'. * lisp/files.el (exec-path): New defun. (executable-find): Add optional argument REMOTE. * lisp/shell.el (shell-completion-vars): Set `comint-file-name-prefix'. (shell--command-completion-data): Use `(exec-path)'. (Bug#31704) * lisp/net/ange-ftp.el (exec-path): * lisp/net/tramp.el (tramp-file-name-for-operation): * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist) <exec-path>: Add handler. * lisp/net/tramp-adb.el (tramp-adb-handle-exec-path): New defun. (tramp-adb-maybe-open-connection): Do not set "remote-path" connection property. * lisp/net/tramp-compat.el (tramp-compat-exec-path): New defun. * lisp/net/tramp-sh.el (tramp-sh-handle-exec-path): New defun. * lisp/net/tramp.el (tramp-eshell-directory-change): Use it. * test/lisp/net/tramp-archive-tests.el (tramp-archive-test38-make-nearby-temp-file) (tramp-archive-test41-file-system-info) (tramp-archive-test43-auto-load) (tramp-archive-test43-delay-load): Rename. * test/lisp/net/tramp-tests.el (tramp-test34-exec-path): New test. (tramp-test36-make-auto-save-file-name) (tramp-test37-find-backup-file-name) (tramp-test38-make-nearby-temp-file) (tramp-test39-special-characters) (tramp-test39-special-characters-with-stat) (tramp-test39-special-characters-with-perl) (tramp-test39-special-characters-with-ls, tramp-test40-utf8) (tramp-test40-utf8-with-stat, tramp-test40-utf8-with-perl) (tramp-test40-utf8-with-ls, tramp-test41-file-system-info) (tramp-test42-asynchronous-requests, tramp-test43-auto-load) (tramp-test43-delay-load, tramp-test43-recursive-load) (tramp-test43-remote-load-path, tramp-test44-unload): Rename.
Diffstat (limited to 'doc')
-rw-r--r--doc/lispref/files.texi13
-rw-r--r--doc/lispref/processes.texi8
-rw-r--r--doc/misc/tramp.texi6
3 files changed, 19 insertions, 8 deletions
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index f4678ddd846..068cf054437 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -1567,13 +1567,16 @@ For compatibility, @var{predicate} can also be one of the symbols
1567a list of one or more of these symbols. 1567a list of one or more of these symbols.
1568@end defun 1568@end defun
1569 1569
1570@defun executable-find program 1570@defun executable-find program &optional remote
1571This function searches for the executable file of the named 1571This function searches for the executable file of the named
1572@var{program} and returns the absolute file name of the executable, 1572@var{program} and returns the absolute file name of the executable,
1573including its file-name extensions, if any. It returns @code{nil} if 1573including its file-name extensions, if any. It returns @code{nil} if
1574the file is not found. The functions searches in all the directories 1574the file is not found. The function searches in all the directories
1575in @code{exec-path}, and tries all the file-name extensions in 1575in @code{exec-path}, and tries all the file-name extensions in
1576@code{exec-suffixes} (@pxref{Subprocess Creation}). 1576@code{exec-suffixes} (@pxref{Subprocess Creation}).
1577
1578If @var{remote} is non-@code{nil}, and @code{default-directory} is a
1579remote directory, @var{program} is searched on the respective remote host.
1577@end defun 1580@end defun
1578 1581
1579@node Changing Files 1582@node Changing Files
@@ -3137,8 +3140,8 @@ first, before handlers for jobs such as remote file access.
3137@code{directory-file-name}, 3140@code{directory-file-name},
3138@code{directory-files}, 3141@code{directory-files},
3139@code{directory-files-and-attributes}, 3142@code{directory-files-and-attributes},
3140@code{dired-compress-file}, @code{dired-uncache},@* 3143@code{dired-compress-file}, @code{dired-uncache},
3141@code{expand-file-name}, 3144@code{exec-path}, @code{expand-file-name},@*
3142@code{file-accessible-directory-p}, 3145@code{file-accessible-directory-p},
3143@code{file-acl}, 3146@code{file-acl},
3144@code{file-attributes}, 3147@code{file-attributes},
@@ -3195,7 +3198,7 @@ first, before handlers for jobs such as remote file access.
3195@code{directory-files}, 3198@code{directory-files},
3196@code{directory-files-and-at@discretionary{}{}{}tributes}, 3199@code{directory-files-and-at@discretionary{}{}{}tributes},
3197@code{dired-compress-file}, @code{dired-uncache}, 3200@code{dired-compress-file}, @code{dired-uncache},
3198@code{expand-file-name}, 3201@code{exec-path}, @code{expand-file-name},
3199@code{file-accessible-direc@discretionary{}{}{}tory-p}, 3202@code{file-accessible-direc@discretionary{}{}{}tory-p},
3200@code{file-acl}, 3203@code{file-acl},
3201@code{file-attributes}, 3204@code{file-attributes},
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 3e26f577982..f78d8485e4e 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -177,6 +177,14 @@ before starting Emacs. Trying to modify @code{exec-path}
177independently of @env{PATH} can lead to confusing results. 177independently of @env{PATH} can lead to confusing results.
178@end defopt 178@end defopt
179 179
180@defun exec-path
181The function @code{exec-path} is an extension of the respective
182variable. If @code{default-directory} indicates a remote directory,
183it returns a list of directories used for searching programs on the
184respective remote host. In case of a local @code{default-directory},
185the function returns just the value of the variable @code{exec-path}.
186@end defun
187
180@node Shell Arguments 188@node Shell Arguments
181@section Shell Arguments 189@section Shell Arguments
182@cindex arguments for shell commands 190@cindex arguments for shell commands
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 420fef7164c..a9de1fddc66 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -1816,9 +1816,9 @@ shell supports the login argument @samp{-l}.
1816@end defopt 1816@end defopt
1817 1817
1818When remote search paths are changed, local @value{tramp} caches must 1818When remote search paths are changed, local @value{tramp} caches must
1819be recomputed. To force @value{tramp} to recompute afresh, exit 1819be recomputed. To force @value{tramp} to recompute afresh, call
1820Emacs, remove the persistent file (@pxref{Connection caching}), and 1820@kbd{M-x tramp-cleanup-this-connection @key{RET}} or friends
1821restart Emacs. 1821(@pxref{Cleanup remote connections}).
1822 1822
1823 1823
1824@node Remote shell setup 1824@node Remote shell setup