(original-make-auto-save-file-name): New.
authorEli Zaretskii <eliz@gnu.org>
Sun, 16 Sep 2001 10:22:43 +0000 (10:22 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sun, 16 Sep 2001 10:22:43 +0000 (10:22 +0000)
(make-auto-save-file-name): New function, overrides the definition
on files.el and calls the original function via
original-make-auto-save-file-name.

lisp/ChangeLog
lisp/dos-fns.el

index 42f897f..e69e04d 100644 (file)
@@ -1,5 +1,10 @@
 2001-09-16  Eli Zaretskii  <eliz@is.elta.co.il>
 
+       * dos-fns.el (original-make-auto-save-file-name): New.
+       (make-auto-save-file-name): New function, overrides the definition
+       on files.el and calls the original function via
+       original-make-auto-save-file-name.
+
        * mail/rmail.el (top-level): Require mule-utils when compiling.
        (rmail-decode-babyl-format): Use detect-coding-with-priority
        instead of detect-coding-region, to favor detection of emacs-mule
index 1a727f1..3751cc7 100644 (file)
@@ -172,6 +172,25 @@ with a definition that really does change some file names."
                    (dos-8+3-filename dir))
                  string))))))
 
+;; Make sure auto-save file names don't contain characters invalid for
+;; the underlying filesystem.  This is particularly annoying with
+;; `compose-mail's *mail* buffers: `*' is not allowed in file names on
+;; DOS/Windows, so Emacs bitches on you each time it tries to autosave
+;; the message being composed.
+(fset 'original-make-auto-save-file-name
+      (symbol-function 'make-auto-save-file-name))
+
+(defun make-auto-save-file-name ()
+  "Return file name to use for auto-saves of current buffer.
+Does not consider `auto-save-visited-file-name' as that variable is checked
+before calling this function.  You can redefine this for customization.
+See also `auto-save-file-name-p'."
+  (let ((filename (original-make-auto-save-file-name)))
+    ;; Don't modify remote (ange-ftp) filenames
+    (if (string-match "^/\\w+@[-A-Za-z0-9._]+:" filename)
+       filename
+      (convert-standard-filename filename))))
+
 ;; See dos-vars.el for defcustom.
 (defvar msdos-shells)