Check more carefully for packages before loading package.el.
* startup.el (command-line): Search for package directories, and don't load package.el if none are found. * emacs-lisp/package.el (describe-package, list-packages): Call package-initialize if it has not been called yet.
This commit is contained in:
parent
837ba704f8
commit
8a500a91a2
3 changed files with 41 additions and 5 deletions
|
@ -1,3 +1,11 @@
|
|||
2010-10-30 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* startup.el (command-line): Search for package directories, and
|
||||
don't load package.el if none are found.
|
||||
|
||||
* emacs-lisp/package.el (describe-package, list-packages): Call
|
||||
package-initialize if it has not been called yet.
|
||||
|
||||
2010-10-30 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
* progmodes/cc-fonts.el (c-font-lock-enum-tail): New function
|
||||
|
|
|
@ -1037,10 +1037,13 @@ The variable `package-load-list' controls which packages to load."
|
|||
(defun describe-package (package)
|
||||
"Display the full documentation of PACKAGE (a symbol)."
|
||||
(interactive
|
||||
(let* ((packages (append (mapcar 'car package-alist)
|
||||
(let* ((guess (function-called-at-point))
|
||||
packages val)
|
||||
;; Initialize the package system if it's not.
|
||||
(unless package-alist
|
||||
(package-initialize))
|
||||
(setq packages (append (mapcar 'car package-alist)
|
||||
(mapcar 'car package-archive-contents)))
|
||||
(guess (function-called-at-point))
|
||||
val)
|
||||
(unless (memq guess packages)
|
||||
(setq guess nil))
|
||||
(setq packages (mapcar 'symbol-name packages))
|
||||
|
@ -1617,6 +1620,9 @@ list; the default is to display everything in `package-alist'."
|
|||
Fetches the updated list of packages before displaying.
|
||||
The list is displayed in a buffer named `*Packages*'."
|
||||
(interactive)
|
||||
;; Initialize the package system if necessary.
|
||||
(unless package-alist
|
||||
(package-initialize))
|
||||
(package-refresh-contents)
|
||||
(package--list-packages))
|
||||
|
||||
|
|
|
@ -1172,8 +1172,30 @@ the `--debug-init' option to view a complete error backtrace."
|
|||
(eq face-ignored-fonts old-face-ignored-fonts))
|
||||
(clear-face-cache)))
|
||||
|
||||
;; Load ELPA packages.
|
||||
(and user-init-file package-enable-at-startup (package-initialize))
|
||||
;; If any package directory exists, initialize the package system.
|
||||
(and user-init-file
|
||||
package-enable-at-startup
|
||||
(catch 'package-dir-found
|
||||
(let (dirs)
|
||||
(if (boundp 'package-directory-list)
|
||||
(setq dirs package-directory-list)
|
||||
(dolist (f load-path)
|
||||
(and (stringp f)
|
||||
(equal (file-name-nondirectory f) "site-lisp")
|
||||
(push (expand-file-name "elpa" f) dirs))))
|
||||
(push (if (boundp 'package-user-dir)
|
||||
package-user-dir
|
||||
(locate-user-emacs-file "elpa"))
|
||||
dirs)
|
||||
(dolist (dir dirs)
|
||||
(when (file-directory-p dir)
|
||||
(dolist (subdir (directory-files dir))
|
||||
(when (and (file-directory-p (expand-file-name subdir dir))
|
||||
;; package-subdirectory-regexp from package.el
|
||||
(string-match "^\\([^.].*\\)-\\([0-9]+\\(?:[.][0-9]+\\)*\\)$"
|
||||
subdir))
|
||||
(throw 'package-dir-found t)))))))
|
||||
(package-initialize))
|
||||
|
||||
(setq after-init-time (current-time))
|
||||
(run-hooks 'after-init-hook)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue