bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#13930: Emacs doesn't cope well if it can't access/create .emacs.d


From: Glenn Morris
Subject: bug#13930: Emacs doesn't cope well if it can't access/create .emacs.d
Date: Tue, 14 May 2013 03:30:50 -0400
User-agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/)

Does this patch work for you?

*** lisp/subr.el        2013-04-27 21:12:17 +0000
--- lisp/subr.el        2013-05-14 07:27:31 +0000
***************
*** 2643,2648 ****
--- 2643,2655 ----
  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,2674 ****
                (file-readable-p at-home))
         at-home
         ;; Make sure `user-emacs-directory' exists,
!        ;; 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))))
         bestname))))
  
  ;;;; Misc. useful functions.
--- 2665,2697 ----
                (file-readable-p at-home))
         at-home
         ;; Make sure `user-emacs-directory' exists,
!        ;; unless we're in batch mode or dumping Emacs.
         (or noninteractive
           purify-flag
!          (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.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]