Function: ediff-looks-like-combined-merge

ediff-looks-like-combined-merge is a byte-compiled function defined in ediff-merg.el.gz.

Signature

(ediff-looks-like-combined-merge REGION-NUM)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-merg.el.gz
;; Checks if the region in buff C looks like a combination of the regions
;; in buffers A and B.  Return a list (reg-a-beg reg-a-end reg-b-beg reg-b-end)
;; These refer to where the delimiters for region A, B, Ancestor start and end
;; in buffer C
(defun ediff-looks-like-combined-merge (region-num)
  (if ediff-merge-job
      (let ((combined (string-match (regexp-quote "(A+B)")
				    (or (ediff-get-state-of-diff region-num 'C)
					"")))
	    (mrgreg-beg (ediff-get-diff-posn 'C 'beg region-num))
	    (mrgreg-end (ediff-get-diff-posn 'C 'end region-num))
	    (pattern-list ediff-combination-pattern)
	    delim reg-beg reg-end delim-regs-list)

	(if combined
	    (ediff-with-current-buffer ediff-buffer-C
	      (while pattern-list
		(goto-char mrgreg-beg)
		(setq delim (nth 0 pattern-list))
		(search-forward delim mrgreg-end 'noerror)
		(setq reg-beg (match-beginning 0))
		(setq reg-end (match-end 0))
		(if (and reg-beg reg-end)
		    (setq delim-regs-list
			  ;; in reverse
			  (cons reg-end (cons reg-beg delim-regs-list))))
		(if (> (length pattern-list) 1)
		    (setq pattern-list (cdr (cdr pattern-list)))
		  (setq pattern-list nil))
		)))

	(reverse delim-regs-list)
	)))