* eshell/esh-util.el (eshell-path-env): New defvar.
(eshell-parse-colon-path): New defun.
(eshell-file-attributes): Use `eshell-parse-colon-path'.
* eshell/esh-ext.el (eshell-search-path): Use
`eshell-parse-colon-path'.
(eshell-remote-command): Remove argument HANDLER.
(eshell-external-command): Check for FTP remote connection.
* eshell/esh-proc.el (eshell-gather-process-output): Use
`file-truename', in order to start also symlinked files. Apply
`start-file-process' instead of `start-process'. Shorten `command'
to the local file name part.
* eshell/em-cmpl.el (eshell-complete-commands-list): Use
`eshell-parse-colon-path'.
* eshell/em-unix.el (eshell/du): Check for FTP remote connection.
* net/tramp.el (tramp-eshell-directory-change): New defun. Add it
to `eshell-directory-change-hook'.
return.
(tramp-handle-make-symbolic-link)
(tramp-handle-dired-compress-file, tramp-handle-expand-file-name):
Quote file names.
(tramp-send-command-and-check): New argument DONT-SUPPRESS-ERR.
(tramp-handle-process-file): Use it.
(tramp-advice-minibuffer-electric-tilde): Unload advices via
`tramp-unload'.
(tramp-advice-make-auto-save-file-name)
(tramp-advice-file-expand-wildcards): Apply also `ad-activate'
after removing the advice.
(tramp-advice-file-expand-wildcards): Unload via
`ad-remove-advice'.
* net/tramp.el (tramp-advice-file-expand-wildcards): Don't rely on
`ad-do-it'.
* net/tramp.el (tramp-handle-write-region): Copy but rename temp file,
in order to keep context in SELinux.
code contributed by yary <not.com@gmail.com> (tiny change).
(tramp-handle-file-truename, tramp-get-remote-perl): Use it.
Check also for "perl-file-spec" and "perl-cwd-realpath"
properties.
(tramp-handle-write-region): In case of APPEND, reuse the tmpfile
name.
* net/tramp.el (tramp-perl-file-name-all-completions): New
defconst.
(tramp-get-remote-readlink): New defun.
(tramp-handle-file-truename): Use it.
(tramp-handle-file-exists-p): Check file-attributes cache, assume
file exists if cache value present.
(tramp-check-cached-permissions) New defun.
(tramp-handle-file-readable-p): Use it.
(tramp-handle-file-writable-p): Likewise.
(tramp-handle-file-executable-p): Likewise.
(tramp-handle-file-name-all-completions): Try using Perl to get
partial completions. When perl not available, combine `cd' and
`ls' into single remote operation and use shell expansion to get
partial remote directory contents. Set `file-exists-p' cache for
directory and any files returned by ls. Change cache handling to
support partial directory contents. Use error message emitted by
remote `cd' or Perl code for local tramp-error.
(tramp-do-copy-or-rename-file-directly): Avoid separate
tramp-send-command-and-check call.
(tramp-handle-process-file): Merge three remote ops into one. Do
not flush all caches when `process-file-side-effects' is set.
(tramp-handle-write-region): Avoid tramp-set-file-uid-gid if
file-attributes shows uid/gid to be set already.
from `rfn-eshadow-update-overlay-hook' when unloading.
(tramp-methods): Add `tramp-copy-keep-tmpfile' for "rsync" and
"rsyncc". Adjust doc string.
(tramp-temp-buffer-file-name) New buffer-local defvar.
(tramp-handle-insert-file-contents, tramp-handle-write-region):
Keep temporary file when indicated by method ("rsync" and
"rsyncc").
(tramp-handle-write-region): Handle APPEND.
(tramp-delete-temp-file-function): New defun. Added to
`kill-buffer-hook'.
(tramp-methods): Add recursive option to `tramp-copy-args'. Add
`tramp-copy-recursive'. Valid for "rcp", "scp", "scp1", "scp2",
"scp1_old", "scp2_old", "rsync", "rsyncc".
(tramp-default-method): Check also for
`auth-source-user-or-password'.
(tramp-file-name-handler-alist, tramp-file-name-for-operation):
Add handler for `copy-directory'.
(tramp-handle-copy-directory): New defun.
(tramp-do-copy-or-rename-file-out-of-band): Handle directory case.
(tramp-handle-start-file-process): Raise an error when PROGRAM is
nil. Optimize sent command.
lstat fails.
(tramp-do-file-attributes-with-ls): Check for file existence at
remote end.
(tramp-do-file-attributes-with-stat): Likewise.
(tramp-convert-file-attributes): Return nil when attr is nil.
(tramp-do-file-attributes-with-perl)
(tramp-do-file-attributes-with-stat): Rename from
`tramp-handle-file-attributes-with-*'.
(tramp-handle-file-attributes): Use them.
(tramp-do-directory-files-and-attributes-with-perl)
(tramp-do-directory-files-and-attributes-with-stat): Rename from
`tramp-handle-directory-files-and-attributes-with-*'.
(tramp-handle-directory-files-and-attributes): Use them.
(tramp-method-out-of-band-p): Additional parameter SIZE.
(tramp-do-copy-or-rename-file, tramp-handle-file-local-copy)
(tramp-handle-write-region): Use it.
(tramp-handle-insert-directory): Use "?\ " for compatibility
reasons.
(tramp-handle-vc-registered): Check, whether the first run did
return files to be tested.
(tramp-advice-make-auto-save-file-name): Do not call directly
`tramp-handle-make-auto-save-file-name', because this would bypass
the locking mechanism.
(tramp-handle-file-local-copy): Unset `file-name-handler-alist'
when writing the temp file. Otherwise, epa-file gets confused.
(tramp-register-file-name-handlers): Make it a defun. Move also
`epa-file-handler' to the front of `file-name-handler-alist'.
* net/tramp.el (tramp-shell-prompt-pattern): Allow a prompt to
start right after a ^M.
(tramp-root-regexp, tramp-completion-file-name-regexp-unified)
(tramp-completion-file-name-regexp-separate)
(tramp-completion-file-name-regexp-url): Use \\` and \\'.
(tramp-handle-file-attributes, tramp-set-file-uid-gid): Don't
modify last-coding-system-used by accident.
(tramp-completion-file-name-handler): Apply the checks here,
instead during registration.
(tramp-register-file-name-handlers) Renamed from
`tramp-register-file-name-handler'. Register both
`tramp-file-name-handler' and `tramp-completion-file-name-handler'.
(tramp-register-completion-file-name-handler): Removed.
(top): Add completion function for "rsyncc".
(tramp-message-show-message): New defvar.
(tramp-message, tramp-error): Use it.
(tramp-do-copy-or-rename-file-directly): Extend check for direct
remote copying.
(tramp-do-copy-or-rename-file-out-of-band): Handle new
`tramp-methods' entry `copy-env' of "rsyncc".
((tramp-handle-process-file): Do not flush all
caches when `process-file-side-effects' is set.
tramp-vc-registered-read-file-names): New defconst.
(tramp-vc-registered-file-names): New defvar.
(tramp-handle-vc-registered): Implement optimization strategy.
(tramp-run-real-handler): Add `tramp-vc-file-name-handler'.
(tramp-vc-file-name-handler): New defun.
(tramp-get-ls-command, tramp-get-test-command)
(tramp-get-file-exists-command, tramp-get-remote-ln)
(tramp-get-remote-perl, tramp-get-remote-stat)
(tramp-get-remote-id): Remove
superfluous `with-current-buffer'.
(tramp-handle-insert-file-contents): Optimize, when BEG
or END is non-nil.
(tramp-handle-vc-registered): Use `tramp-cache-inhibit-cache'.
(tramp-get-debug-buffer): Change `outline-regexp' according to new
format.
Simplify check for out-of-band methods.
(tramp-do-copy-or-rename-file-out-of-band): Allow both files to be
remote. Remove messages which are in `tramp-do-copy-or-rename-file'.
when a loading of a package fails. Completion function for rsync
is `tramp-completion-function-alist-ssh'.
(all): Replace all calls of `split-string' and
`tramp-split-string' by `tramp-compat-split-string'.
(tramp-default-method): Use `tramp-compat-process-running-p'.
(tramp-default-proxies-alist): Allow also Lisp forms.
(tramp-remote-path): Add choice "Private Directories".
(tramp-wrong-passwd-regexp): Remove "Tramp connection closed"
option.
(tramp-domain-regexp): Allow also "-", "_" and ".".
(tramp-end-of-output): Remove newlines, and add "$" at the end.
(tramp-file-name-handler-alist): Add handler for `dired-uncache'.
(tramp-debug-message): Insert header line in debug buffer.
(tramp-handle-directory-files-and-attributes-with-stat): Care
about filenames with spaces, or starting with "-".
(tramp-handle-dired-uncache): New defun.
(tramp-handle-insert-directory): Don't flush the directory from
cache, this is handled by `dired-uncache' now.
(tramp-handle-insert-file-contents): Improve error handling.
(tramp-find-shell, tramp-open-connection-setup-interactive-shell):
Quote `tramp-end-of-output'.
(tramp-action-password): Improve trace message.
(tramp-check-for-regexp): Both echoes must be present, before
removing.
(tramp-open-connection-setup-interactive-shell): Trace coding
system.
(tramp-compute-multi-hops): Eval cons cells of
`tramp-default-proxies-alist'.
(tramp-maybe-open-connection): Use the same command pattern for
first hop and further hops.
(tramp-wait-for-output): Remove handling of newlines.
(tramp-get-remote-path): Handle also `tramp-own-remote-path'.
(tramp-split-string): Remove function. It is handled in
tramp-compat now.
Fix an error in flushing cache data.
(tramp-handle-process-file): Flush all file cache values for the
connection, because the remote process could have changed them.
Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
Handle QUIT.