Function: minibuffer--group-by
minibuffer--group-by is a byte-compiled function defined in
minibuffer.el.gz.
Signature
(minibuffer--group-by GROUP-FUN SORT-FUN ELEMS)
Documentation
Group ELEMS by GROUP-FUN and sort groups by SORT-FUN.
Source Code
;; Defined in /usr/src/emacs/lisp/minibuffer.el.gz
(defun minibuffer--group-by (group-fun sort-fun elems)
"Group ELEMS by GROUP-FUN and sort groups by SORT-FUN."
(let ((groups))
(dolist (cand elems)
(let* ((key (funcall group-fun cand nil))
(group (assoc key groups)))
(if group
(setcdr group (cons cand (cdr group)))
(push (list key cand) groups))))
(setq groups (nreverse groups)
groups (mapc (lambda (x)
(setcdr x (nreverse (cdr x))))
groups)
groups (funcall sort-fun groups))
(mapcan #'cdr groups)))