Mercurial > emacs
changeset 96391:c114f6a4c246
* 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.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Sat, 28 Jun 2008 10:15:00 +0000 |
parents | 02d657f45045 |
children | 61ba354c1338 |
files | lisp/net/tramp-ftp.el |
diffstat | 1 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/net/tramp-ftp.el Sat Jun 28 07:30:47 2008 +0000 +++ b/lisp/net/tramp-ftp.el Sat Jun 28 10:15:00 2008 +0000 @@ -120,6 +120,13 @@ ;; If there is URL syntax, `substitute-in-file-name' needs special ;; handling. (put 'substitute-in-file-name 'ange-ftp 'tramp-handle-substitute-in-file-name) +(add-hook 'tramp-ftp-unload-hook + '(lambda () + (setplist 'substitute-in-file-name + (delete 'ange-ftp + (delete 'tramp-handle-substitute-in-file-name + (symbol-plist + 'substitute-in-file-name)))))) (defun tramp-ftp-file-name-handler (operation &rest args) "Invoke the Ange-FTP handler for OPERATION. @@ -178,7 +185,12 @@ (ignore-errors (delete-file tmpfile))))) ;; Normally, the handlers must be discarded. - (t (let* ((inhibit-file-name-handlers + ;; `inhibit-file-name-handlers' isn't sufficient, because the + ;; local file name could be in Tramp syntax as well (for + ;; example, returning VMS file names like "/DISK$CAM:/AAA"). + ;; That's why we set also `tramp-mode' to nil. + (t (let* ((tramp-mode nil) + (inhibit-file-name-handlers (list 'tramp-file-name-handler 'tramp-completion-file-name-handler (and (eq inhibit-file-name-operation operation)