Function: emerge-recenter
emerge-recenter is an interactive and byte-compiled function defined
in emerge.el.gz.
Signature
(emerge-recenter &optional ARG)
Documentation
Bring the highlighted region of all three merge buffers into view.
This brings the buffers into view if they are in windows. With an argument, reestablish the default three-window display.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/vc/emerge.el.gz
;;; Commands
(defun emerge-recenter (&optional arg)
"Bring the highlighted region of all three merge buffers into view.
This brings the buffers into view if they are in windows.
With an argument, reestablish the default three-window display."
(interactive "P")
;; If there is an argument, rebuild the window structure
(if arg
(emerge-setup-windows emerge-A-buffer emerge-B-buffer
emerge-merge-buffer))
;; Redisplay whatever buffers are showing, if there is a selected difference
(if (and (>= emerge-current-difference 0)
(< emerge-current-difference emerge-number-of-differences))
(let* ((merge-buffer emerge-merge-buffer)
(buffer-A emerge-A-buffer)
(buffer-B emerge-B-buffer)
(window-A (get-buffer-window buffer-A 'visible))
(window-B (get-buffer-window buffer-B 'visible))
(merge-window (get-buffer-window merge-buffer))
(diff-vector
(aref emerge-difference-list emerge-current-difference)))
(if window-A (progn
(select-window window-A)
(emerge-position-region
(- (aref diff-vector 0)
(1- emerge-before-flag-length))
(+ (aref diff-vector 1)
(1- emerge-after-flag-length))
(1+ (aref diff-vector 0)))))
(if window-B (progn
(select-window window-B)
(emerge-position-region
(- (aref diff-vector 2)
(1- emerge-before-flag-length))
(+ (aref diff-vector 3)
(1- emerge-after-flag-length))
(1+ (aref diff-vector 2)))))
(if merge-window (progn
(select-window merge-window)
(emerge-position-region
(- (aref diff-vector 4)
(1- emerge-before-flag-length))
(+ (aref diff-vector 5)
(1- emerge-after-flag-length))
(1+ (aref diff-vector 4))))))))