Function: ibuffer--or-and-filter

ibuffer--or-and-filter is a byte-compiled function defined in ibuf-ext.el.gz.

Signature

(ibuffer--or-and-filter OP DECOMPOSE)

Source Code

;; Defined in /usr/src/emacs/lisp/ibuf-ext.el.gz
(defun ibuffer--or-and-filter (op decompose)
  (if decompose
      (if (eq op (caar ibuffer-filtering-qualifiers))
          (ibuffer-decompose-filter)
        (error "Top filter is not an %s" (upcase (symbol-name op))))
    (when (< (length ibuffer-filtering-qualifiers) 2)
      (error "Need two filters to %s" (upcase (symbol-name op))))
    ;; If either filter is an op, eliminate unnecessary nesting.
    (let ((first (pop ibuffer-filtering-qualifiers))
          (second (pop ibuffer-filtering-qualifiers)))
      (push (nconc (if (eq op (car first)) first (list op first))
                   (if (eq op (car second)) (cdr second) (list second)))
            ibuffer-filtering-qualifiers)))
  (ibuffer-update nil t))