emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r105580: * package.el (package-instal


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105580: * package.el (package-install): Call package-initialize if called interactively.
Date: Fri, 26 Aug 2011 11:53:50 -0400
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105580
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Fri 2011-08-26 11:53:50 -0400
message:
  * package.el (package-install): Call package-initialize if called 
interactively.
modified:
  lisp/ChangeLog
  lisp/emacs-lisp/package.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-08-26 09:52:07 +0000
+++ b/lisp/ChangeLog    2011-08-26 15:53:50 +0000
@@ -1,3 +1,8 @@
+2011-08-26  Chong Yidong  <address@hidden>
+
+       * emacs-lisp/package.el (package-install): Call package-initialize
+       if called interactively.
+
 2011-08-26  Leo Liu  <address@hidden>
 
        * emacs-lisp/cl-macs.el (defstruct): Fix format.  (Bug#9357)

=== modified file 'lisp/emacs-lisp/package.el'
--- a/lisp/emacs-lisp/package.el        2011-08-04 00:58:07 +0000
+++ b/lisp/emacs-lisp/package.el        2011-08-26 15:53:50 +0000
@@ -852,18 +852,26 @@
        (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 @@
                      (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.


reply via email to

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