Function: emerge-place-flags-in-buffer1
emerge-place-flags-in-buffer1 is a byte-compiled function defined in
emerge.el.gz.
Signature
(emerge-place-flags-in-buffer1 DIFFERENCE BEFORE-INDEX AFTER-INDEX)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/emerge.el.gz
(defun emerge-place-flags-in-buffer1 (difference before-index after-index)
(let ((inhibit-read-only t))
;; insert the flag before the difference
(let ((before (aref (aref emerge-globalized-difference-list difference)
before-index))
here)
(goto-char before)
;; insert the flag itself
(insert-before-markers emerge-before-flag)
(setq here (point))
;; Put the marker(s) referring to this position 1 character before the
;; end of the flag, so it won't be damaged by the user.
;; This gets a bit tricky, as there could be a number of markers
;; that have to be moved.
(set-marker before (1- before))
(let ((n (1- difference)) after-marker before-marker diff-list)
(while (and
(>= n 0)
(progn
(setq diff-list (aref emerge-globalized-difference-list n)
after-marker (aref diff-list after-index))
(= after-marker here)))
(set-marker after-marker (1- after-marker))
(setq before-marker (aref diff-list before-index))
(if (= before-marker here)
(setq before-marker (1- before-marker)))
(setq n (1- n)))))
;; insert the flag after the difference
(let* ((after (aref (aref emerge-globalized-difference-list difference)
after-index))
(here (marker-position after)))
(goto-char here)
;; insert the flag itself
(insert emerge-after-flag)
;; Put the marker(s) referring to this position 1 character after the
;; beginning of the flag, so it won't be damaged by the user.
;; This gets a bit tricky, as there could be a number of markers
;; that have to be moved.
(set-marker after (1+ after))
(let ((n (1+ difference)) before-marker after-marker diff-list)
(while (and
(< n emerge-globalized-number-of-differences)
(progn
(setq diff-list (aref emerge-globalized-difference-list n)
before-marker (aref diff-list before-index))
(= before-marker here)))
(set-marker before-marker (1+ before-marker))
(setq after-marker (aref diff-list after-index))
(if (= after-marker here)
(setq after-marker (1+ after-marker)))
(setq n (1+ n)))))))