]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug#16762
authorDmitry Gutov <dgutov@yandex.ru>
Mon, 24 Mar 2014 22:38:06 +0000 (00:38 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Mon, 24 Mar 2014 22:38:06 +0000 (00:38 +0200)
* lisp/emacs-lisp/package.el (package--add-to-archive-contents):
Include already installed and built-in packages in
`package-archive-contents'.
(package-install): Don't include already installed packages in the
options on interactive invocation.

lisp/ChangeLog
lisp/emacs-lisp/package.el

index 20b0a98f8d72e20a97a1bb60c8225e9a7a321536..667b85729d7500ae5e72e52901061e31297975db 100644 (file)
@@ -1,3 +1,11 @@
+2014-03-24  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * emacs-lisp/package.el (package--add-to-archive-contents):
+       Include already installed and built-in packages in
+       `package-archive-contents'.
+       (package-install): Don't include already installed packages in the
+       options during interactive invocation.  (Bug#16762)
+
 2014-03-24  Daniel Colascione  <dancol@dancol.org>
 
        * emacs-lisp/cl-macs.el (cl--do-arglist): Use `plist-member'
index 39cfd8e46ec6ba23d3b9b83b1b56c8737571dc11..49366cffc220f4d3151acbdddf420336742847a6 100644 (file)
@@ -1047,14 +1047,9 @@ Also, add the originating archive to the `package-desc' structure."
          (existing-packages (assq name package-archive-contents))
          (pinned-to-archive (assoc name package-pinned-packages)))
     (cond
-     ;; Skip entirely if pinned to another archive or already installed.
-     ((or (and pinned-to-archive
-               (not (equal (cdr pinned-to-archive) archive)))
-          (let ((bi (assq name package--builtin-versions)))
-            (and bi (version-list-= version (cdr bi))))
-          (let ((ins (cdr (assq name package-alist))))
-            (and ins (version-list-= version
-                                     (package-desc-version (car ins))))))
+     ;; Skip entirely if pinned to another archive.
+     ((and pinned-to-archive
+           (not (equal (cdr pinned-to-archive) archive)))
       nil)
      ((not existing-packages)
       (push (list name pkg-desc) package-archive-contents))
@@ -1090,8 +1085,11 @@ in an archive in `package-archives'.  Interactively, prompt for its name."
        (package-refresh-contents))
      (list (intern (completing-read
                     "Install package: "
-                    (mapcar (lambda (elt) (symbol-name (car elt)))
-                            package-archive-contents)
+                    (delq nil
+                          (mapcar (lambda (elt)
+                                    (unless (package-installed-p (car elt))
+                                      (symbol-name (car elt))))
+                                  package-archive-contents))
                     nil t)))))
   (package-download-transaction
    (if (package-desc-p pkg)