Function: msb--collect

msb--collect is a byte-compiled function defined in msb.el.gz.

Signature

(msb--collect FUNCTION-INFO-VECTOR)

Source Code

;; Defined in /usr/src/emacs/lisp/msb.el.gz
;; This defsubst is only used in `msb--choose-menu' below.  It was
;; pulled out merely to make the code somewhat clearer.  The indentation
;; level was too big.
(defsubst msb--collect (function-info-vector)
  (let ((result nil)
	(multi-flag nil)
	function-info-list)
    (setq function-info-list
	  (cl-loop for fi
                   across function-info-vector
                   if (and (setq result
                                 (eval (aref fi 1) t)) ;Test CONDITION
                           (not (and (eq result 'no-multi)
                                     multi-flag))
                           (progn (when (eq result 'multi)
                                    (setq multi-flag t))
                                  t))
                   collect fi
                   until (and result
                              (not (eq result 'multi)))))
    (when (and (not function-info-list)
	       (not result))
      (error "No catch-all in msb-menu-cond!"))
    function-info-list))