diff options
| author | Artur Malabarba | 2015-02-05 20:47:28 -0200 |
|---|---|---|
| committer | Artur Malabarba | 2015-02-05 20:47:28 -0200 |
| commit | a844b9407496aeaa6945f4611e57e4b0e69ada18 (patch) | |
| tree | 057c75a0dd790530b89939487b1d428dc6dce51d | |
| parent | b2c4997c823a32e79c9f16b547b491463da9c1c2 (diff) | |
| download | emacs-a844b9407496aeaa6945f4611e57e4b0e69ada18.tar.gz emacs-a844b9407496aeaa6945f4611e57e4b0e69ada18.zip | |
emacs-lisp/package.el (package-delete): Don't always delesect.
| -rw-r--r-- | lisp/ChangeLog | 3 | ||||
| -rw-r--r-- | lisp/emacs-lisp/package.el | 10 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 37e922aafbc..b24b2afb0b8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -5,6 +5,9 @@ | |||
| 5 | (package-menu-execute): Use it to delete packages in order. | 5 | (package-menu-execute): Use it to delete packages in order. |
| 6 | (package--sort-deps-in-alist): New function. | 6 | (package--sort-deps-in-alist): New function. |
| 7 | (package-menu-mark-install): Can mark dependencies. | 7 | (package-menu-mark-install): Can mark dependencies. |
| 8 | (package--newest-p): New function. | ||
| 9 | (package-delete): Don't delesect when deleting an older version of | ||
| 10 | an upgraded package. | ||
| 8 | 11 | ||
| 9 | 2015-02-05 Stefan Monnier <monnier@iro.umontreal.ca> | 12 | 2015-02-05 Stefan Monnier <monnier@iro.umontreal.ca> |
| 10 | 13 | ||
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." | |||
| 1510 | (and (memq pkg (mapcar #'car (package-desc-reqs (cadr p)))) | 1510 | (and (memq pkg (mapcar #'car (package-desc-reqs (cadr p)))) |
| 1511 | (car p)))))) | 1511 | (car p)))))) |
| 1512 | 1512 | ||
| 1513 | (defun package--newest-p (pkg) | ||
| 1514 | "Return t if PKG is the newest package with its name." | ||
| 1515 | (equal (cadr (assq (package-desc-name pkg) package-alist)) | ||
| 1516 | pkg)) | ||
| 1517 | |||
| 1513 | (defun package-delete (pkg-desc &optional force nosave) | 1518 | (defun package-delete (pkg-desc &optional force nosave) |
| 1514 | "Delete package PKG-DESC. | 1519 | "Delete package PKG-DESC. |
| 1515 | 1520 | ||
| @@ -1527,7 +1532,10 @@ If NOSAVE is non-nil, the package is not removed from | |||
| 1527 | ;; don't want it marked as selected, so we remove it from | 1532 | ;; don't want it marked as selected, so we remove it from |
| 1528 | ;; `package-selected-packages' even if it can't be deleted. | 1533 | ;; `package-selected-packages' even if it can't be deleted. |
| 1529 | (when (and (null nosave) | 1534 | (when (and (null nosave) |
| 1530 | (package--user-selected-p name)) | 1535 | (package--user-selected-p name) |
| 1536 | ;; Don't delesect if this is an older version of an | ||
| 1537 | ;; upgraded package. | ||
| 1538 | (package--newest-p pkg-desc)) | ||
| 1531 | (customize-save-variable | 1539 | (customize-save-variable |
| 1532 | 'package-selected-packages (remove name package-selected-packages))) | 1540 | 'package-selected-packages (remove name package-selected-packages))) |
| 1533 | (cond ((not (string-prefix-p (file-name-as-directory | 1541 | (cond ((not (string-prefix-p (file-name-as-directory |