]> git.eshelyaron.com Git - emacs.git/commitdiff
emacs-lisp/package.el (package-delete): Always unselect package.
authorArtur Malabarba <bruce.connor.am@gmail.com>
Wed, 4 Feb 2015 13:01:02 +0000 (11:01 -0200)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Wed, 4 Feb 2015 13:01:02 +0000 (11:01 -0200)
lisp/ChangeLog
lisp/emacs-lisp/package.el

index c18a8ff0f522998c81a3d0400767b28e96772ca4..88abb4ff5f373e5c107c032bd00c9c03b6229814 100644 (file)
@@ -1,3 +1,8 @@
+2015-02-04  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * emacs-lisp/package.el (package-delete): Remove package from
+       `package-selected-packages' even if it can't be deleted.
+
 2015-02-03  Artur Malabarba  <bruce.connor.am@gmail.com>
 
        * emacs-lisp/package.el (package-delete): Document NOSAVE.
index fa620eb6bb6d896eb1bdb392a71cca419683928d..b07362e6a5e979a602441460c77dc342fd7e0a4a 100644 (file)
@@ -1506,6 +1506,13 @@ If NOSAVE is non-nil, the package is not removed from
   (let ((dir (package-desc-dir pkg-desc))
         (name (package-desc-name pkg-desc))
         pkg-used-elsewhere-by)
+    ;; If the user is trying to delete this package, they definitely
+    ;; don't want it marked as selected, so we remove it from
+    ;; `package-selected-packages' even if it can't be deleted.
+    (when (and (null nosave)
+               (package--user-selected-p name))
+      (customize-save-variable
+       'package-selected-packages (remove name package-selected-packages)))
     (cond ((not (string-prefix-p (file-name-as-directory
                                   (expand-file-name package-user-dir))
                                  (expand-file-name dir)))
@@ -1530,11 +1537,6 @@ If NOSAVE is non-nil, the package is not removed from
              (delete pkg-desc pkgs)
              (unless (cdr pkgs)
                (setq package-alist (delq pkgs package-alist))))
-           ;; Update package-selected-packages.
-           (when (and (null nosave)
-                      (package--user-selected-p name))
-             (customize-save-variable
-              'package-selected-packages (remove name package-selected-packages)))
            (message "Package `%s' deleted." (package-desc-full-name pkg-desc))))))
 
 (defun package--removable-packages ()