]> git.eshelyaron.com Git - emacs.git/commitdiff
emacs-lisp/package.el (package-menu-mark-install): Mark dependency.
authorArtur Malabarba <bruce.connor.am@gmail.com>
Thu, 5 Feb 2015 22:33:23 +0000 (20:33 -0200)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Thu, 5 Feb 2015 22:33:23 +0000 (20:33 -0200)
lisp/ChangeLog
lisp/emacs-lisp/package.el

index be03e569e582e6b2b8b50911b5d1122fba78124b..37e922aafbcb25f14c403f21c5383644375887b5 100644 (file)
@@ -4,6 +4,7 @@
        function.  Return PACKAGE-LIST sorted by dependencies.
        (package-menu-execute): Use it to delete packages in order.
        (package--sort-deps-in-alist): New function.
+       (package-menu-mark-install): Can mark dependencies.
 
 2015-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 
index 2932efa75354a6ecd5e840ec206de3ca0187fee4..f11790693b987300172473d5022e7d64d0b2f825 100644 (file)
@@ -2262,7 +2262,7 @@ If optional arg BUTTON is non-nil, describe its associated package."
 (defun package-menu-mark-install (&optional _num)
   "Mark a package for installation and move to the next line."
   (interactive "p")
-  (if (member (package-menu-get-status) '("available" "new"))
+  (if (member (package-menu-get-status) '("available" "new" "dependency"))
       (tabulated-list-put-tag "I" t)
     (forward-line)))
 
@@ -2418,7 +2418,13 @@ Optional argument NOQUERY non-nil means do not ask the user to confirm."
                       (mapconcat #'package-desc-full-name
                                  install-list ", ")))))
           (mapc (lambda (p)
-                  (package-install p (null (package-installed-p p))))
+                  ;; Mark as selected if it's the exact version of a
+                  ;; package that's already installed, or if it's not
+                  ;; installed at all.  Don't mark if it's a new
+                  ;; version of an installed package.
+                  (package-install p (or (package-installed-p p)
+                                         (not (package-installed-p
+                                               (package-desc-name p))))))
                 install-list)))
     ;; Delete packages, prompting if necessary.
     (when delete-list