summaryrefslogtreecommitdiff
path: root/lisp/files.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el10
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/files.el b/lisp/files.el
index 84dd9391846..35c430c1942 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2471,8 +2471,14 @@ See also `auto-save-file-name-p'."
"\\\\")
(substring buffer-name (match-end 0))))
(setq limit (1+ (match-end 0))))
-
- (expand-file-name (format "#%s#%s#" buffer-name (make-temp-name ""))))))
+ ;; Generate the file name.
+ (expand-file-name
+ (format "#%s#%s#" buffer-name (make-temp-name ""))
+ ;; Try a few alternative directories, to get one we can write it.
+ (cond
+ ((file-writable-p default-directory) default-directory)
+ ((file-writable-p "/var/tmp/") "/var/tmp/")
+ ("~/"))))))
(defun auto-save-file-name-p (filename)
"Return non-nil if FILENAME can be yielded by `make-auto-save-file-name'.