Function: cl--map-intervals
cl--map-intervals is an autoloaded and byte-compiled function defined
in cl-extra.el.gz.
Signature
(cl--map-intervals CL-FUNC &optional CL-WHAT CL-PROP CL-START CL-END)
Aliases
cl-map-intervals (obsolete since 24.3)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-extra.el.gz
;;;###autoload
(defun cl--map-intervals (cl-func &optional cl-what cl-prop cl-start cl-end)
(or cl-what (setq cl-what (current-buffer)))
(if (bufferp cl-what)
(let (cl-mark cl-mark2 (cl-next t) cl-next2)
(with-current-buffer cl-what
(setq cl-mark (copy-marker (or cl-start (point-min))))
(setq cl-mark2 (and cl-end (copy-marker cl-end))))
(while (and cl-next (or (not cl-mark2) (< cl-mark cl-mark2)))
(setq cl-next (if cl-prop (next-single-property-change
cl-mark cl-prop cl-what)
(next-property-change cl-mark cl-what))
cl-next2 (or cl-next (with-current-buffer cl-what
(point-max))))
(funcall cl-func (prog1 (marker-position cl-mark)
(set-marker cl-mark cl-next2))
(if cl-mark2 (min cl-next2 cl-mark2) cl-next2)))
(set-marker cl-mark nil) (if cl-mark2 (set-marker cl-mark2 nil)))
(or cl-start (setq cl-start 0))
(or cl-end (setq cl-end (length cl-what)))
(while (< cl-start cl-end)
(let ((cl-next (or (if cl-prop (next-single-property-change
cl-start cl-prop cl-what)
(next-property-change cl-start cl-what))
cl-end)))
(funcall cl-func cl-start (min cl-next cl-end))
(setq cl-start cl-next)))))