Function: rcirc-update-undo-list
rcirc-update-undo-list is a byte-compiled function defined in
rcirc.el.gz.
Signature
(rcirc-update-undo-list SHIFT)
Documentation
Translate buffer positions in buffer-undo-list by SHIFT.
Source Code
;; Defined in /usr/src/emacs/lisp/net/rcirc.el.gz
;; Copied from lisp/erc/erc.el (erc-update-undo-list)
(defun rcirc-update-undo-list (shift)
"Translate buffer positions in buffer-undo-list by SHIFT."
(unless (or (zerop shift) (atom buffer-undo-list))
(let ((list buffer-undo-list) elt)
(while list
(setq elt (car list))
(cond ((integerp elt) ; POSITION
(incf (car list) shift))
((or (atom elt) ; nil, EXTENT
;; (eq t (car elt)) ; (t . TIME)
(markerp (car elt))) ; (MARKER . DISTANCE)
nil)
((integerp (car elt)) ; (BEGIN . END)
(incf (car elt) shift)
(incf (cdr elt) shift))
((stringp (car elt)) ; (TEXT . POSITION)
(incf (cdr elt) (* (if (natnump (cdr elt)) 1 -1) shift)))
((null (car elt)) ; (nil PROPERTY VALUE BEG . END)
(let ((cons (nthcdr 3 elt)))
(incf (car cons) shift)
(incf (cdr cons) shift))))
(setq list (cdr list))))))