Function: proced-sort-p
proced-sort-p is a byte-compiled function defined in proced.el.gz.
Signature
(proced-sort-p P1 P2)
Documentation
Predicate for sorting processes P1 and P2.
Source Code
;; Defined in /usr/src/emacs/lisp/proced.el.gz
(defun proced-sort-p (p1 p2)
"Predicate for sorting processes P1 and P2."
(if (not (cdr proced-sort-internal))
;; only one predicate: fast scheme
(let* ((sorter (car proced-sort-internal))
(k1 (cdr (assq (car sorter) (cdr p1))))
(k2 (cdr (assq (car sorter) (cdr p2)))))
;; if the attributes are undefined, we should really abort sorting
(if (and k1 k2)
(xor (funcall (nth 1 sorter) k1 k2)
(nth 2 sorter))))
(let ((sort-list proced-sort-internal) sorter predicate k1 k2)
(catch 'done
(while (setq sorter (pop sort-list))
(setq k1 (cdr (assq (car sorter) (cdr p1)))
k2 (cdr (assq (car sorter) (cdr p2)))
predicate
(if (and k1 k2)
(funcall (nth 1 sorter) k1 k2)))
(if (not (eq predicate 'equal))
(throw 'done (xor predicate (nth 2 sorter)))))
(eq t predicate)))))