Function: ibuffer-generate-filter-groups
ibuffer-generate-filter-groups is a byte-compiled function defined in
ibuf-ext.el.gz.
Signature
(ibuffer-generate-filter-groups BMARKLIST &optional NOEMPTY NODEFAULT)
Source Code
;; Defined in /usr/src/emacs/lisp/ibuf-ext.el.gz
(defun ibuffer-generate-filter-groups (bmarklist &optional noempty nodefault)
(let ((filter-group-alist (if nodefault
ibuffer-filter-groups
(append ibuffer-filter-groups
(list (cons "Default" nil))))))
;; (dolist (hidden ibuffer-hidden-filter-groups)
;; (setq filter-group-alist (ibuffer-remove-alist
;; hidden filter-group-alist)))
(let ((vec (make-vector (length filter-group-alist) nil))
(i 0))
(dolist (filtergroup filter-group-alist)
(let ((filterset (cdr filtergroup)))
(let* ((res (seq-group-by (lambda (bufmark)
(ibuffer-included-in-filters-p (car bufmark)
filterset))
bmarklist))
(hip-crowd (cdr (assq t res)))
(lamers (cdr (assq nil res))))
(aset vec i hip-crowd)
(cl-incf i)
(setq bmarklist lamers))))
(let (ret)
(dotimes (j i)
(let ((bufs (aref vec j)))
(unless (and noempty (null bufs))
(push (cons (car (nth j filter-group-alist))
bufs)
ret))))
ret))))