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))))