Function: erc-nicks--create-culled-pool

erc-nicks--create-culled-pool is a byte-compiled function defined in erc-nicks.el.gz.

Signature

(erc-nicks--create-culled-pool ADJUSTMENTS COLORS)

Documentation

Return COLORS that fall within parameters indicated by ADJUSTMENTS.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-nicks.el.gz
(defun erc-nicks--create-culled-pool (adjustments colors)
  "Return COLORS that fall within parameters indicated by ADJUSTMENTS."
  (let (addp capp satp pool)
    (dolist (adjustment adjustments)
      (pcase adjustment
        ((or 'erc-nicks-invert 'erc-nicks-add-contrast) (setq addp t))
        ('erc-nicks-cap-contrast (setq capp t))
        ('erc-nicks-ensaturate (setq satp t))))
    (dolist (color colors)
      (let* ((rgb (color-name-to-rgb color))
             (contrast (and (or addp capp) (erc-nicks--get-contrast rgb))))
        (if (or (and addp (< contrast (car erc-nicks-contrast-range)))
                (and capp (> contrast (cdr erc-nicks-contrast-range)))
                (and-let* ((satp)
                           (s (cadr (apply #'color-rgb-to-hsl rgb))))
                  (or (< s (car erc-nicks-saturation-range))
                      (> s (cdr erc-nicks-saturation-range)))))
            (when erc-nicks--colors-rejects
              (push color erc-nicks--colors-rejects))
          (push color pool))))
    (nreverse pool)))