Function: proced-filter
proced-filter is a byte-compiled function defined in proced.el.gz.
Signature
(proced-filter PROCESS-ALIST FILTER-LIST)
Documentation
Apply FILTER-LIST to PROCESS-ALIST.
Return the filtered process list.
Source Code
;; Defined in /usr/src/emacs/lisp/proced.el.gz
;;; Filtering
(defun proced-filter (process-alist filter-list)
"Apply FILTER-LIST to PROCESS-ALIST.
Return the filtered process list."
(if (symbolp filter-list)
(setq filter-list (cdr (assq filter-list proced-filter-alist))))
(dolist (filter filter-list)
(let (new-alist)
(cond ( ;; apply function to entire process list
(eq (car filter) 'fun-all)
(setq new-alist (funcall (cdr filter) process-alist)))
( ;; apply predicate to each list of attributes
(eq (car filter) 'function)
(dolist (process process-alist)
(if (funcall (cdr filter) (cdr process))
(push process new-alist))))
(t ;; apply predicate to specified attribute
(let* ((cdrfilter (cdr filter))
(fun (if (stringp cdrfilter)
(lambda (val)
(string-match cdrfilter val))
cdrfilter))
value)
(dolist (process process-alist)
(setq value (cdr (assq (car filter) (cdr process))))
(if (and value (funcall fun value))
(push process new-alist))))))
(setq process-alist new-alist)))
process-alist)