summaryrefslogtreecommitdiff
path: root/lisp/files.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1995-12-29 03:36:35 +0000
committerRichard M. Stallman <rms@gnu.org>1995-12-29 03:36:35 +0000
commitdcd6be3ac19efb052acbb9b310d9683856baee26 (patch)
tree7e02e66ad297d644e44e23363c1e0cc4109dbe71 /lisp/files.el
parent02930645d60b876bad14da6bec300cfce5e557e2 (diff)
downloademacs-dcd6be3ac19efb052acbb9b310d9683856baee26.tar.gz
(make-auto-save-file-name): Make name always end in #,
i.e. overwrite third char in extension if required.
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el14
1 files changed, 10 insertions, 4 deletions
diff --git a/lisp/files.el b/lisp/files.el
index dadf9c95a4b..969da941f89 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2342,10 +2342,16 @@ 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'."
(if buffer-file-name
- (concat (file-name-directory buffer-file-name)
- "#"
- (file-name-nondirectory buffer-file-name)
- "#")
+ (if (eq system-type 'ms-dos)
+ (let ((fn (file-name-nondirectory buffer-file-name)))
+ (string-match "\\`\\([^.]+\\)\\(\\.\\(..?\\)?.?\\|\\)\\'" fn)
+ (concat (file-name-directory buffer-file-name)
+ "#" (match-string 1 fn)
+ "." (match-string 3 fn) "#"))
+ (concat (file-name-directory buffer-file-name)
+ "#"
+ (file-name-nondirectory buffer-file-name)
+ "#"))
;; Deal with buffers that don't have any associated files. (Mail
;; mode tends to create a good number of these.)