]> git.eshelyaron.com Git - emacs.git/commitdiff
(original-make-auto-save-file-name): New symbol bound
authorGeoff Voelker <voelker@cs.washington.edu>
Fri, 3 May 1996 18:25:59 +0000 (18:25 +0000)
committerGeoff Voelker <voelker@cs.washington.edu>
Fri, 3 May 1996 18:25:59 +0000 (18:25 +0000)
to old value of make-auto-save-file-name.
(make-auto-save-file-name): New function overriding old.

lisp/w32-fns.el

index aef3d5550c292d96aa51c02cc621e7ba8c8b3da8..0502fe9986a5d1c7b60ce86a54bddc475268143d 100644 (file)
@@ -154,6 +154,24 @@ against the file name, and TYPE is nil for text, t for binary.")
       (remove-hook 'write-file-hooks 'save-to-unix-hook)
       (remove-hook 'after-save-hook 'revert-from-unix-hook))))
 
+;;; Avoid creating auto-save file names containing illegal characters
+;;; (primarily "*", eg. for the *mail* buffer).
+(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 ((name (original-make-auto-save-file-name))
+       (start 0))
+    ;; destructively replace occurences of * or ? with $
+    (while (string-match "[?*]" name start)
+      (aset name (match-beginning 0) ?$)
+      (setq start (1+ (match-end 0))))
+    name))
+
 ;;; Fix interface to (X-specific) mouse.el
 (defalias 'x-set-selection 'ignore)
 (fset 'x-get-selection '(lambda (&rest rest) ""))