diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-02-05 20:47:28 -0200 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-02-05 20:47:28 -0200 |
commit | a844b9407496aeaa6945f4611e57e4b0e69ada18 (patch) | |
tree | 057c75a0dd790530b89939487b1d428dc6dce51d /lisp/emacs-lisp | |
parent | b2c4997c823a32e79c9f16b547b491463da9c1c2 (diff) | |
download | emacs-a844b9407496aeaa6945f4611e57e4b0e69ada18.tar.gz emacs-a844b9407496aeaa6945f4611e57e4b0e69ada18.tar.bz2 emacs-a844b9407496aeaa6945f4611e57e4b0e69ada18.zip |
emacs-lisp/package.el (package-delete): Don't always delesect.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/package.el | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index f11790693b9..f19cca571e4 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1510,6 +1510,11 @@ with PKG-DESC entry removed." (and (memq pkg (mapcar #'car (package-desc-reqs (cadr p)))) (car p)))))) +(defun package--newest-p (pkg) + "Return t if PKG is the newest package with its name." + (equal (cadr (assq (package-desc-name pkg) package-alist)) + pkg)) + (defun package-delete (pkg-desc &optional force nosave) "Delete package PKG-DESC. @@ -1527,7 +1532,10 @@ If NOSAVE is non-nil, the package is not removed from ;; 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)) + (package--user-selected-p name) + ;; Don't delesect if this is an older version of an + ;; upgraded package. + (package--newest-p pkg-desc)) (customize-save-variable 'package-selected-packages (remove name package-selected-packages))) (cond ((not (string-prefix-p (file-name-as-directory |