Function: range-list-intersection
range-list-intersection is a byte-compiled function defined in
range.el.gz.
Signature
(range-list-intersection LIST RANGES)
Documentation
Return a list of numbers in LIST that are members of RANGES.
LIST is a sorted list.
Aliases
gnus-list-range-intersection (obsolete since 29.1)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/range.el.gz
(defun range-list-intersection (list ranges)
"Return a list of numbers in LIST that are members of RANGES.
LIST is a sorted list."
(setq ranges (range-normalize ranges))
(let (number result)
(while (setq number (pop list))
(while (and ranges
(if (numberp (car ranges))
(< (car ranges) number)
(< (cdar ranges) number)))
(setq ranges (cdr ranges)))
(when (and ranges
(if (numberp (car ranges))
(= (car ranges) number)
;; (caar ranges) <= number <= (cdar ranges)
(>= number (caar ranges))))
(push number result)))
(nreverse result)))