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: Robert Prije
Subject: bug#13930: Emacs doesn't cope well if it can't access/create .emacs.d
Date: Tue, 14 May 2013 16:46:16 +0800

This is much better. I now get a separate window with the following error:

"Warning (initialization): Unable to create `user-emacs-directory' (~/.emacs.d/).
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'."

but the file I attempt to open still opens and I can edit it as usual. It appears the patch works as intended. Which release is it likely to make it to?

Thanks a bunch Glenn.



On Tue, May 14, 2013 at 3:30 PM, Glenn Morris <rgm@gnu.org> wrote:

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]