diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2011-08-26 11:53:50 -0400 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2011-08-26 11:53:50 -0400 |
commit | 7254299e4d19b0acdfc5dd7580c24be817731488 (patch) | |
tree | be72c7bbe9daa92f09191b87a11b1a897f9776f7 /lisp/emacs-lisp | |
parent | d43f5a423d85bdc4f3557622a828335fde06bb8a (diff) | |
download | emacs-7254299e4d19b0acdfc5dd7580c24be817731488.tar.gz emacs-7254299e4d19b0acdfc5dd7580c24be817731488.tar.bz2 emacs-7254299e4d19b0acdfc5dd7580c24be817731488.zip |
* package.el (package-install): Call package-initialize if called interactively.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/package.el | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 19e8375966b..88282606aa8 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -852,18 +852,26 @@ using `package-compute-transaction'." (t (error "Unknown package kind: %s" (symbol-name kind))))))) +(defvar package--initialized nil) + ;;;###autoload (defun package-install (name) "Install the package named NAME. -Interactively, prompt for the package name. -The package is found on one of the archives in `package-archives'." +NAME should be the name of one of the available packages in an +archive in `package-archives'. Interactively, prompt for NAME." (interactive - (list (intern (completing-read "Install package: " - (mapcar (lambda (elt) - (cons (symbol-name (car elt)) - nil)) - package-archive-contents) - nil t)))) + (progn + ;; Initialize the package system to get the list of package + ;; symbols for completion. + (unless package--initialized + (package-initialize t)) + (list (intern (completing-read + "Install package: " + (mapcar (lambda (elt) + (cons (symbol-name (car elt)) + nil)) + package-archive-contents) + nil t))))) (let ((pkg-desc (assq name package-archive-contents))) (unless pkg-desc (error "Package `%s' is not available for installation" @@ -1076,8 +1084,6 @@ makes them available for download." (car archive))))) (package-read-all-archive-contents)) -(defvar package--initialized nil) - ;;;###autoload (defun package-initialize (&optional no-activate) "Load Emacs Lisp packages, and activate them. |