From: Stefan Kangas Date: Tue, 9 Aug 2022 20:09:20 +0000 (+0200) Subject: * lisp/vc/pcvs-util.el (cvs-partition): Simplify. X-Git-Tag: emacs-29.0.90~1447^2~268 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8caa91b2ce4a27a9a11d8a7cf190a15b136768e7;p=emacs.git * lisp/vc/pcvs-util.el (cvs-partition): Simplify. --- diff --git a/lisp/vc/pcvs-util.el b/lisp/vc/pcvs-util.el index 702033dd88a..89f8d26880b 100644 --- a/lisp/vc/pcvs-util.el +++ b/lisp/vc/pcvs-util.el @@ -38,6 +38,7 @@ (apply #'append (mapcar (lambda (x) (if (listp x) x (list x))) xs))) (defun cvs-first (l &optional n) + ;; FIXME: Replace this with `seq-take'? (if (null n) (car l) (when l (let* ((nl (list (pop l))) @@ -53,10 +54,9 @@ The function returns a `cons' cell where the `car' contains elements of L for which P is true while the `cdr' contains the other elements. The ordering among elements is maintained." - (let (car cdr) - (dolist (x l) - (if (funcall p x) (push x car) (push x cdr))) - (cons (nreverse car) (nreverse cdr)))) + (let ((res (seq-group-by p l))) + (cons (cdr (assq t res)) + (cdr (assq nil res))))) ;;; ;;; frame, window, buffer handling