[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r112581: * subr.el (user-emacs-direct
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r112581: * subr.el (user-emacs-directory-warning): New option. |
Date: |
Tue, 14 May 2013 09:01:16 -0700 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 112581
fixes bug: http://debbugs.gnu.org/13930
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Tue 2013-05-14 09:01:16 -0700
message:
* subr.el (user-emacs-directory-warning): New option.
(locate-user-emacs-file): Handle non-accessible .emacs.d.
Not in NEWS, because you only need to know about this if you encounter
it in the wild.
modified:
lisp/ChangeLog
lisp/subr.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2013-05-14 10:11:56 +0000
+++ b/lisp/ChangeLog 2013-05-14 16:01:16 +0000
@@ -1,3 +1,8 @@
+2013-05-14 Glenn Morris <address@hidden>
+
+ * subr.el (user-emacs-directory-warning): New option.
+ (locate-user-emacs-file): Handle non-accessible .emacs.d. (Bug#13930)
+
2013-05-14 Leo Liu <address@hidden>
* progmodes/octave.el (octave-font-lock-keywords): Fix error
=== modified file 'lisp/subr.el'
--- a/lisp/subr.el 2013-04-27 21:12:17 +0000
+++ b/lisp/subr.el 2013-05-14 16:01:16 +0000
@@ -2643,6 +2643,13 @@
Note that this should end with a directory separator.
See also `locate-user-emacs-file'.")
+(custom-declare-variable-early 'user-emacs-directory-warning t
+ "Non-nil means warn if cannot access `user-emacs-directory'.
+Set this to nil at your own risk..."
+ :type 'boolean
+ :group 'initialization
+ :version "24.4")
+
(defun locate-user-emacs-file (new-name &optional old-name)
"Return an absolute per-user Emacs-specific file name.
If NEW-NAME exists in `user-emacs-directory', return it.
@@ -2658,17 +2665,33 @@
(file-readable-p at-home))
at-home
;; Make sure `user-emacs-directory' exists,
- ;; unless we're in batch mode or dumping Emacs
+ ;; unless we're in batch mode or dumping Emacs.
(or noninteractive
purify-flag
- (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))))
+ (let (errtype)
+ (if (file-directory-p user-emacs-directory)
+ (or (file-accessible-directory-p user-emacs-directory)
+ (setq errtype "access"))
+ (let ((umask (default-file-modes)))
+ (unwind-protect
+ (progn
+ (set-default-file-modes ?\700)
+ (condition-case nil
+ (make-directory user-emacs-directory)
+ (error (setq errtype "create"))))
+ (set-default-file-modes umask))))
+ (when (and errtype
+ user-emacs-directory-warning
+ (not (get 'user-emacs-directory-warning 'this-session)))
+ ;; Only warn once per Emacs session.
+ (put 'user-emacs-directory-warning 'this-session t)
+ (display-warning 'initialization
+ (format "\
+Unable to %s `user-emacs-directory' (%s).
+Any data that would normally be written there may be lost!
+If you never want to see this message again,
+customize the variable `user-emacs-directory-warning'."
+ errtype user-emacs-directory)))))
bestname))))
;;;; Misc. useful functions.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r112581: * subr.el (user-emacs-directory-warning): New option.,
Glenn Morris <=