mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Fix problems found while writing a test suite.
* net/tramp.el (tramp-file-name-regexp-unified): Simplify. (tramp-file-name-for-operation): Use `tramp-tramp-file-p'. (tramp-handle-substitute-in-file-name): Let-bind `process-environment' to nil when running original file name handler. Otherwise, there are problems with constructs like "$$FOO". * net/tramp-sh.el (tramp-do-copy-or-rename-file): Use correct prefix for `localname'.
This commit is contained in:
parent
2ea53115b4
commit
b27cc9fc02
3 changed files with 25 additions and 10 deletions
|
|
@ -1,3 +1,16 @@
|
|||
2013-11-04 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
Fix problems found while writing a test suite.
|
||||
|
||||
* net/tramp.el (tramp-file-name-regexp-unified): Simplify.
|
||||
(tramp-file-name-for-operation): Use `tramp-tramp-file-p'.
|
||||
(tramp-handle-substitute-in-file-name): Let-bind `process-environment'
|
||||
to nil when running original file name handler. Otherwise,
|
||||
there are problems with constructs like "$$FOO".
|
||||
|
||||
* net/tramp-sh.el (tramp-do-copy-or-rename-file): Use correct prefix
|
||||
for `localname'.
|
||||
|
||||
2013-11-04 Bozhidar Batsov <bozhidar@batsov.com>
|
||||
|
||||
* helpers.el: New library for misc helper functions.
|
||||
|
|
|
|||
|
|
@ -1988,14 +1988,14 @@ file names."
|
|||
;; In case of `rename', we must flush the cache of the source file.
|
||||
(when (and t1 (eq op 'rename))
|
||||
(with-parsed-tramp-file-name filename v1
|
||||
(tramp-flush-file-property v1 (file-name-directory localname))
|
||||
(tramp-flush-file-property v1 localname)))
|
||||
(tramp-flush-file-property v1 (file-name-directory v1-localname))
|
||||
(tramp-flush-file-property v1 v1-localname)))
|
||||
|
||||
;; When newname did exist, we have wrong cached values.
|
||||
(when t2
|
||||
(with-parsed-tramp-file-name newname v2
|
||||
(tramp-flush-file-property v2 (file-name-directory localname))
|
||||
(tramp-flush-file-property v2 localname)))))))
|
||||
(tramp-flush-file-property v2 (file-name-directory v2-localname))
|
||||
(tramp-flush-file-property v2 v2-localname)))))))
|
||||
|
||||
(defun tramp-do-copy-or-rename-file-via-buffer (op filename newname keep-date)
|
||||
"Use an Emacs buffer to copy or rename a file.
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ pair of the form (KEY VALUE). The following KEYs are defined:
|
|||
using `tramp-error'. If a method does not provide
|
||||
a value here, then Tramp looks at whether the method's
|
||||
login program uses a \"%h\" parameter. If not, then Tramp
|
||||
requires that the given hostname match `tramp-local-host-regexp'.
|
||||
requires that the given hostname match `tramp-local-host-regexp'.
|
||||
|
||||
What does all this mean? Well, you should specify `tramp-login-program'
|
||||
for all methods; this program is used to log in to the remote site. Then,
|
||||
|
|
@ -893,8 +893,8 @@ See also `tramp-file-name-regexp'.")
|
|||
;;;###autoload
|
||||
(defconst tramp-file-name-regexp-unified
|
||||
(if (memq system-type '(cygwin windows-nt))
|
||||
"\\`/\\([^[/|:]\\{2,\\}\\|[^/|]\\{2,\\}]\\):"
|
||||
"\\`/\\([^[/|:]+\\|[^/|]+]\\):")
|
||||
"\\`/[^/|:]\\{2,\\}[^/|]*:"
|
||||
"\\`/[^/|:][^/|]*:")
|
||||
"Value for `tramp-file-name-regexp' for unified remoting.
|
||||
Emacs (not XEmacs) uses a unified filename syntax for Ange-FTP and
|
||||
Tramp. See `tramp-file-name-structure' for more explanations.
|
||||
|
|
@ -2029,8 +2029,8 @@ ARGS are the arguments OPERATION has been called with."
|
|||
'vm-imap-move-mail 'vm-pop-move-mail 'vm-spool-move-mail))
|
||||
(save-match-data
|
||||
(cond
|
||||
((string-match tramp-file-name-regexp (nth 0 args)) (nth 0 args))
|
||||
((string-match tramp-file-name-regexp (nth 1 args)) (nth 1 args))
|
||||
((tramp-tramp-file-p (nth 0 args)) (nth 0 args))
|
||||
((tramp-tramp-file-p (nth 1 args)) (nth 1 args))
|
||||
(t (buffer-file-name (current-buffer))))))
|
||||
;; START END FILE.
|
||||
((eq operation 'write-region)
|
||||
|
|
@ -3258,7 +3258,9 @@ User is always nil."
|
|||
;; "/m:h:~" does not work for completion. We use "/m:h:~/".
|
||||
(when (string-match "~$" filename)
|
||||
(setq filename (concat filename "/"))))
|
||||
(tramp-run-real-handler 'substitute-in-file-name (list filename))))
|
||||
;; We do not want to replace environment variables, again.
|
||||
(let (process-environment)
|
||||
(tramp-run-real-handler 'substitute-in-file-name (list filename)))))
|
||||
|
||||
(defun tramp-handle-unhandled-file-name-directory (_filename)
|
||||
"Like `unhandled-file-name-directory' for Tramp files."
|
||||
|
|
|
|||
Loading…
Reference in a new issue