aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Albinus2008-06-28 10:15:00 +0000
committerMichael Albinus2008-06-28 10:15:00 +0000
commit2d8b5d77c1fa8e257b3d1b56a1d47e88d782a67a (patch)
treeb1f79cd0d02311d7f0e528065083e3d1824f5826
parentf731e2f977dd330bd8ac8c25bfccef3ddb1e64fa (diff)
downloademacs-2d8b5d77c1fa8e257b3d1b56a1d47e88d782a67a.tar.gz
emacs-2d8b5d77c1fa8e257b3d1b56a1d47e88d782a67a.zip
* net/tramp-ftp.el (top): Delete 'ange-ftp property from
`substitute-in-file-name' when unloading. (tramp-ftp-file-name-handler): Set `tramp-mode' to nil.
-rw-r--r--lisp/net/tramp-ftp.el14
1 files changed, 13 insertions, 1 deletions
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el
index 3bac605480d..5ad73a7d4b6 100644
--- a/lisp/net/tramp-ftp.el
+++ b/lisp/net/tramp-ftp.el
@@ -120,6 +120,13 @@ present for backward compatibility."
120;; If there is URL syntax, `substitute-in-file-name' needs special 120;; If there is URL syntax, `substitute-in-file-name' needs special
121;; handling. 121;; handling.
122(put 'substitute-in-file-name 'ange-ftp 'tramp-handle-substitute-in-file-name) 122(put 'substitute-in-file-name 'ange-ftp 'tramp-handle-substitute-in-file-name)
123(add-hook 'tramp-ftp-unload-hook
124 '(lambda ()
125 (setplist 'substitute-in-file-name
126 (delete 'ange-ftp
127 (delete 'tramp-handle-substitute-in-file-name
128 (symbol-plist
129 'substitute-in-file-name))))))
123 130
124(defun tramp-ftp-file-name-handler (operation &rest args) 131(defun tramp-ftp-file-name-handler (operation &rest args)
125 "Invoke the Ange-FTP handler for OPERATION. 132 "Invoke the Ange-FTP handler for OPERATION.
@@ -178,7 +185,12 @@ pass to the OPERATION."
178 (ignore-errors (delete-file tmpfile))))) 185 (ignore-errors (delete-file tmpfile)))))
179 186
180 ;; Normally, the handlers must be discarded. 187 ;; Normally, the handlers must be discarded.
181 (t (let* ((inhibit-file-name-handlers 188 ;; `inhibit-file-name-handlers' isn't sufficient, because the
189 ;; local file name could be in Tramp syntax as well (for
190 ;; example, returning VMS file names like "/DISK$CAM:/AAA").
191 ;; That's why we set also `tramp-mode' to nil.
192 (t (let* ((tramp-mode nil)
193 (inhibit-file-name-handlers
182 (list 'tramp-file-name-handler 194 (list 'tramp-file-name-handler
183 'tramp-completion-file-name-handler 195 'tramp-completion-file-name-handler
184 (and (eq inhibit-file-name-operation operation) 196 (and (eq inhibit-file-name-operation operation)