]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/package.el: Be more careful with the init file
authorArtur Malabarba <bruce.connor.am@gmail.com>
Fri, 15 May 2015 09:17:48 +0000 (10:17 +0100)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Fri, 15 May 2015 09:17:48 +0000 (10:17 +0100)
(package--ensure-init-file): Check that user-init-file is set,
exists, is readable, and is writable.  (Bug#20584)
Also expand the docstring.

lisp/emacs-lisp/package.el

index 615631383e73e9cc679d60e0d84d9e8db4f44ba0..1d27bf752dfd9fb0192e136811b145fdd8aab28b 100644 (file)
@@ -1796,9 +1796,14 @@ using `package-compute-transaction'."
    (callback (funcall callback))))
 
 (defun package--ensure-init-file ()
-  "Ensure that the user's init file calls `package-initialize'."
+  "Ensure that the user's init file has `package-initialize'.
+`package-initialize' doesn't have to be called, as long as it is
+present somewhere in the file, even as a comment.  If it is not,
+add a call to it along with some explanatory comments."
   ;; Don't mess with the init-file from "emacs -Q".
-  (when user-init-file
+  (when (and (stringp user-init-file)
+             (file-readable-p user-init-file)
+             (file-writable-p user-init-file))
     (let* ((buffer (find-buffer-visiting user-init-file))
            (contains-init
             (if buffer