diff options
author | Mark Diekhans <markd@soe.ucsc.edu> | 2011-01-14 21:32:19 -0500 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2011-01-14 21:32:19 -0500 |
commit | b024d9f02d2758815069b2a0df3af72fcf0ee220 (patch) | |
tree | c804be069540cb3f8562a4d50c07ce6e0e8d7e6d /lisp | |
parent | 66399c0a66e87c20edad6a7eb2474981d9bc7e4e (diff) | |
download | emacs-b024d9f02d2758815069b2a0df3af72fcf0ee220.tar.gz |
Make last-resort backup file in .emacs.d (Bug#6953).
* lisp/files.el (backup-buffer): Make last-resort backup file in
.emacs.d.
* lisp/subr.el (locate-user-emacs-file): If .emacs.d does not exist,
make it with permission 700.
* doc/emacs/files.texi (Backup Names): Document the new location of the
last-resort backup file.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 8 | ||||
-rw-r--r-- | lisp/files.el | 7 | ||||
-rw-r--r-- | lisp/subr.el | 11 |
3 files changed, 19 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0f6138bf698..0ff810a1230 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2011-01-15 Mark Diekhans <markd@soe.ucsc.edu> + + * files.el (backup-buffer): Make last-resort backup file in + .emacs.d (Bug#6953). + + * subr.el (locate-user-emacs-file): If .emacs.d does not exist, + make it with permission 700. + 2011-01-14 Kenichi Handa <handa@m17n.org> * mail/rmailmm.el (rmail-mime-insert-header): Set diff --git a/lisp/files.el b/lisp/files.el index ab027b507f6..92029b470ff 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3683,10 +3683,9 @@ BACKUPNAME is the backup file name, which is the old file renamed." (rename-file real-file-name backupname t) (setq setmodes (cons modes backupname))) (file-error - ;; If trouble writing the backup, write it in ~. - (setq backupname (expand-file-name - (convert-standard-filename - "~/%backup%~"))) + ;; If trouble writing the backup, write it in + ;; .emacs.d/%backup%. + (setq backupname (locate-user-emacs-file "%backup%~")) (message "Cannot write backup file; backing up in %s" backupname) (sleep-for 1) diff --git a/lisp/subr.el b/lisp/subr.el index 7ddabbc0e90..2a0dee69338 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2340,11 +2340,16 @@ directory if it does not exist." ;; unless we're in batch mode or dumping Emacs (or noninteractive purify-flag - (file-accessible-directory-p (directory-file-name user-emacs-directory)) - (make-directory user-emacs-directory)) + (file-accessible-directory-p + (directory-file-name user-emacs-directory)) + (let ((umask (default-file-modes))) + (unwind-protect + (progn + (set-default-file-modes ?\700) + (make-directory user-emacs-directory)) + (set-default-file-modes umask)))) (abbreviate-file-name (expand-file-name new-name user-emacs-directory)))))) - ;;;; Misc. useful functions. |