Function: erc-update-undo-list
erc-update-undo-list is a byte-compiled function defined in erc.el.gz.
Signature
(erc-update-undo-list SHIFT)
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defun erc-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
(cl-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)
(cl-incf (car elt) shift)
(cl-incf (cdr elt) shift))
((stringp (car elt)) ; (TEXT . POSITION)
(cl-incf (cdr elt) (* (if (natnump (cdr elt)) 1 -1) shift)))
((null (car elt)) ; (nil PROPERTY VALUE BEG . END)
(let ((cons (nthcdr 3 elt)))
(cl-incf (car cons) shift)
(cl-incf (cdr cons) shift))))
(setq list (cdr list))))))