Function: package-menu--find-upgrades
package-menu--find-upgrades is a byte-compiled function defined in
package.el.gz.
Signature
(package-menu--find-upgrades)
Documentation
In Package Menu, return an alist of packages that can be upgraded.
The alist has the same form as package-alist, namely a list
of elements of the form (PKG . DESCS), but where DESCS is the package-desc
object corresponding to the newer version.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(defun package-menu--find-upgrades ()
"In Package Menu, return an alist of packages that can be upgraded.
The alist has the same form as `package-alist', namely a list
of elements of the form (PKG . DESCS), but where DESCS is the `package-desc'
object corresponding to the newer version."
(let (installed available upgrades)
;; Build list of installed/available packages in this buffer.
(dolist (entry tabulated-list-entries)
;; ENTRY is (PKG-DESC [NAME VERSION STATUS DOC])
(let ((pkg-desc (car entry))
(status (aref (cadr entry) 2)))
(cond ((member status '("installed" "dependency" "unsigned" "external" "built-in"))
(push pkg-desc installed))
((member status '("available" "new"))
(setq available (package--append-to-alist pkg-desc available))))))
;; Loop through list of installed packages, finding upgrades.
(dolist (pkg-desc installed)
(let* ((name (package-desc-name pkg-desc))
(avail-pkg (cadr (assq name available))))
(and avail-pkg
(version-list-< (package-desc-priority-version pkg-desc)
(package-desc-priority-version avail-pkg))
(or (not (package--active-built-in-p pkg-desc))
package-install-upgrade-built-in)
(push (cons name avail-pkg) upgrades))))
upgrades))