Function: emerge-setup
emerge-setup is a byte-compiled function defined in emerge.el.gz.
Signature
(emerge-setup BUFFER-A FILE-A BUFFER-B FILE-B STARTUP-HOOKS QUIT-HOOKS OUTPUT-FILE)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/emerge.el.gz
;; Start up Emerge on two files
(defun emerge-setup (buffer-A file-A buffer-B file-B startup-hooks quit-hooks
output-file)
(setq file-A (expand-file-name file-A))
(setq file-B (expand-file-name file-B))
(setq output-file (and output-file (expand-file-name output-file)))
(let* ((merge-buffer-name (emerge-unique-buffer-name "*merge" "*"))
;; create the merge buffer from buffer A, so it inherits buffer A's
;; default directory, etc.
(merge-buffer (with-current-buffer
buffer-A
(get-buffer-create merge-buffer-name))))
(with-current-buffer
merge-buffer
(emerge-copy-modes buffer-A)
(setq buffer-read-only nil)
(auto-save-mode 1)
(setq emerge-mode t)
(setq emerge-A-buffer buffer-A)
(setq emerge-B-buffer buffer-B)
(setq emerge-ancestor-buffer nil)
(setq emerge-merge-buffer merge-buffer)
(setq emerge-output-description
(if output-file
(concat "Output to file: " output-file)
(concat "Output to buffer: " (buffer-name merge-buffer))))
(save-excursion (insert-buffer-substring emerge-A-buffer))
(emerge-set-keys)
(setq emerge-difference-list (emerge-make-diff-list file-A file-B))
(setq emerge-number-of-differences (length emerge-difference-list))
(setq emerge-current-difference -1)
(setq emerge-quit-hook quit-hooks)
(emerge-remember-buffer-characteristics)
(emerge-handle-local-variables))
(emerge-setup-windows buffer-A buffer-B merge-buffer t)
(with-current-buffer merge-buffer
(mapc #'funcall startup-hooks)
(run-hooks 'emerge-startup-hook)
(setq buffer-read-only t))))