From: Artur Malabarba Date: Wed, 4 Feb 2015 13:01:02 +0000 (-0200) Subject: emacs-lisp/package.el (package-delete): Always unselect package. X-Git-Tag: emacs-25.0.90~2008^2~124 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5b83f03725e713c268ec1417ca36f8d3b65905d4;p=emacs.git emacs-lisp/package.el (package-delete): Always unselect package. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c18a8ff0f52..88abb4ff5f3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2015-02-04 Artur Malabarba + + * emacs-lisp/package.el (package-delete): Remove package from + `package-selected-packages' even if it can't be deleted. + 2015-02-03 Artur Malabarba * emacs-lisp/package.el (package-delete): Document NOSAVE. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index fa620eb6bb6..b07362e6a5e 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -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 ()