diff --git a/lisp/files.el b/lisp/files.el index a6fe381..0d0d6e2 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -5940,8 +5940,8 @@ make-auto-save-file-name ;; Make sure auto-save file names don't contain characters ;; invalid for the underlying filesystem. (if (and (memq system-type '(ms-dos windows-nt cygwin)) - ;; Don't modify remote (ange-ftp) filenames - (not (string-match "^/address@hidden:" result))) + ;; Don't modify remote filenames. + (not (file-remote-p result))) (convert-standard-filename result) result)))) @@ -5978,8 +5978,8 @@ make-auto-save-file-name ((file-writable-p "/var/tmp/") "/var/tmp/") ("~/"))))) (if (and (memq system-type '(ms-dos windows-nt cygwin)) - ;; Don't modify remote (ange-ftp) filenames - (not (string-match "^/address@hidden:" fname))) + ;; Don't modify remote filenames. + (not (file-remote-p fname))) ;; The call to convert-standard-filename is in case ;; buffer-name includes characters not allowed by the ;; DOS/Windows filesystems. make-temp-file writes to the diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index b4242c0..f350f2a 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -4102,7 +4102,11 @@ tramp-handle-make-auto-save-file-name (file-exists-p tramp-auto-save-directory)) (make-directory tramp-auto-save-directory t)) - (let ((system-type 'not-windows) + (let ((system-type + (if (and (stringp tramp-auto-save-directory) + (file-remote-p tramp-auto-save-directory)) + 'not-windows + system-type)) (auto-save-file-name-transforms (if (and (null tramp-auto-save-directory) (boundp 'auto-save-file-name-transforms)) diff --git a/test/automated/tramp-tests.el b/test/automated/tramp-tests.el index 83a780d..2c59591 100644 --- a/test/automated/tramp-tests.el +++ b/test/automated/tramp-tests.el @@ -1775,13 +1775,17 @@ tramp-test--shell-command-to-string-asynchronously (should (string-equal (make-auto-save-file-name) - ;; This is taken from original `make-auto-save-file-name'. - (expand-file-name - (format - "#%s#" - (subst-char-in-string - ?/ ?! (replace-regexp-in-string "!" "!!" tmp-name1))) - temporary-file-directory))))) + ;; This is taken from original `make-auto-save-file-name'. + ;; We call `convert-standard-filename', because on + ;; MS Windows the (local) colons must be replaced by + ;; exclamation marks. + (convert-standard-filename + (expand-file-name + (format + "#%s#" + (subst-char-in-string + ?/ ?! (replace-regexp-in-string "!" "!!" tmp-name1))) + temporary-file-directory)))))) ;; No mapping. (let (tramp-auto-save-directory auto-save-file-name-transforms)