Function: emerge-extract-diffs3

emerge-extract-diffs3 is a byte-compiled function defined in emerge.el.gz.

Signature

(emerge-extract-diffs3 DIFF-BUFFER)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/emerge.el.gz
(defun emerge-extract-diffs3 (diff-buffer)
  (let (list)
    (with-current-buffer
     diff-buffer
     (while (re-search-forward "^====\\(.?\\)$" nil t)
       ;; leave point after matched line
       (beginning-of-line 2)
       (let ((agreement (buffer-substring (match-beginning 1) (match-end 1))))
	 ;; if the A and B files are the same, ignore the difference
	 (if (not (string-equal agreement "2"))
	     (setq list
		   (cons
		    (let (group-1 group-3 pos)
		      (setq pos (point))
		      (setq group-1 (emerge-get-diff3-group "1"))
		      (goto-char pos)
		      (setq group-3 (emerge-get-diff3-group "3"))
		      (vector (car group-1) (car (cdr group-1))
			      (car group-3) (car (cdr group-3))
			      (cond ((string-equal agreement "1") 'prefer-A)
				    ((string-equal agreement "3") 'prefer-B)
				    (t 'default-A))))
		    list))))))
    (nreverse list)))