diff -u --label \#\ --label \#\ /tmp/buffer-content-4azQGZ /tmp/buffer-content-x8FLpt --- # +++ # @@ -2275,16 +2275,20 @@ package using this command, first upgrade the package to a newer version from ELPA by using `\\\\[package-menu-mark-install]' after `\\[list-packages]'." (interactive - (list (completing-read - "Upgrade package: " (package--upgradeable-packages) nil t))) - (let* ((package (if (symbolp name) - name - (intern name))) - (pkg-desc (cadr (assq package package-alist)))) - (if (package-vc-p pkg-desc) - (package-vc-upgrade pkg-desc) - (package-delete pkg-desc 'force 'dont-unselect) - (package-install package 'dont-select)))) + (list (intern (completing-read + "Upgrade package: " (package--upgradeable-packages) nil t)))) + (let* ((name (if (symbolp name) + name + (intern name))) + (old-pkg-desc (cadr (assq name package-alist))) + (new-pkg-desc (cadr (assq name package-archive-contents)))) + (if (package-vc-p old-pkg-desc) + (package-vc-upgrade old-pkg-desc) + (unwind-protect + (package-install new-pkg-desc 'dont-select) + (if (package-installed-p (package-desc-name new-pkg-desc) + (package-desc-version new-pkg-desc)) + (package-delete old-pkg-desc 'force 'dont-unselect)))))) (defun package--upgradeable-packages () ;; Initialize the package system to get the list of package Diff finished. Mon Jul 31 08:22:46 2023