Function: package--append-to-alist

package--append-to-alist is a byte-compiled function defined in package.el.gz.

Signature

(package--append-to-alist PKG-DESC ALIST)

Documentation

Append an entry for PKG-DESC to the start of ALIST and return it.

This entry takes the form (package-desc-name PKG-DESC).

If ALIST already has an entry with this name, destructively add PKG-DESC to the cdr of this entry instead, sorted by version number.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(defun package--append-to-alist (pkg-desc alist)
  "Append an entry for PKG-DESC to the start of ALIST and return it.
This entry takes the form (`package-desc-name' PKG-DESC).

If ALIST already has an entry with this name, destructively add
PKG-DESC to the cdr of this entry instead, sorted by version
number."
  (let* ((name (package-desc-name pkg-desc))
         (priority-version (package-desc-priority-version pkg-desc))
         (existing-packages (assq name alist)))
    (if (not existing-packages)
        (cons (list name pkg-desc)
              alist)
      (while (if (and (cdr existing-packages)
                      (version-list-< priority-version
                                      (package-desc-priority-version
                                       (cadr existing-packages))))
                 (setq existing-packages (cdr existing-packages))
               (push pkg-desc (cdr existing-packages))
               nil))
      alist)))