From d6262c7c39da949e0fe855410cfc11ed7d03bc27 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Wed, 8 Jan 2014 12:19:30 +0100 Subject: [PATCH] package.el: various fixes. * emacs-lisp/package.el (package-installed-p): First check if the package name is in package-alist. (package-delete): Correctly delete the package from package-alist. --- lisp/ChangeLog | 6 ++++++ lisp/emacs-lisp/package.el | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9ff78a4ca5f..a39294ac54d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-01-08 Bastien Guerry + + * emacs-lisp/package.el (package-installed-p): First check if the + package name is in package-alist. + (package-delete): Correctly delete the package from package-alist. + 2014-01-08 Daiki Ueno * emacs-lisp/package.el (url-recreate-url): Declare. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 64a9eff916a..a89bf40eb44 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -881,13 +881,14 @@ GnuPG keyring is located under \"gnupg\" in `package-user-dir'." "Return true if PACKAGE, of MIN-VERSION or newer, is installed. MIN-VERSION should be a version list." (unless package--initialized (error "package.el is not yet initialized!")) + (when (assq package package-alist) (or (let ((pkg-descs (cdr (assq package package-alist)))) (and pkg-descs (version-list-<= min-version (package-desc-version (car pkg-descs))))) ;; Also check built-in packages. - (package-built-in-p package min-version))) + (package-built-in-p package min-version)))) (defun package-compute-transaction (packages requirements) "Return a list of packages to be installed, including PACKAGES. @@ -1232,7 +1233,7 @@ The file can either be a tar file or an Emacs Lisp file." (delete-file signed-file))) ;; Update package-alist. (let* ((name (package-desc-name pkg-desc))) - (delete (delete pkg-desc (assq name package-alist)) package-alist)) + (setq package-alist (delete (assq name package-alist) package-alist))) (message "Package `%s' deleted." (package-desc-full-name pkg-desc))))) (defun package-archive-base (desc) -- 2.39.2