Function: erc--traverse-inserted

erc--traverse-inserted is a byte-compiled function defined in erc.el.gz.

Signature

(erc--traverse-inserted BEG END FN)

Documentation

Visit messages between BEG and END and run FN in narrowed buffer.

If END is a marker, possibly update its position.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defun erc--traverse-inserted (beg end fn)
  "Visit messages between BEG and END and run FN in narrowed buffer.
If END is a marker, possibly update its position."
  (unless (markerp end)
    (setq end (set-marker (make-marker) (or end erc-insert-marker))))
  (unless (eq end erc-insert-marker)
    (set-marker end (min erc-insert-marker end)))
  (save-excursion
    (goto-char beg)
    (let ((b (if (get-text-property (point) 'erc--msg)
                 (point)
               (next-single-property-change (point) 'erc--msg nil end))))
      (while-let ((b)
                  ((< b end))
                  (e (next-single-property-change (1+ b) 'erc--msg nil end)))
        (save-restriction
          (narrow-to-region b e)
          (funcall fn))
        (setq b e))))
  (unless (eq end erc-insert-marker)
    (set-marker end nil)))