Function: ediff-get-diff3-group
ediff-get-diff3-group is a byte-compiled function defined in
ediff-diff.el.gz.
Signature
(ediff-get-diff3-group FILE)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-diff.el.gz
;; Stolen from emerge.el
(defun ediff-get-diff3-group (file)
;; This save-excursion allows ediff-get-diff3-group to be called for the
;; various groups of lines (1, 2, 3) in any order, and for the lines to
;; appear in any order. The reason this is necessary is that GNU diff3
;; can produce the groups in the order 1, 2, 3 or 1, 3, 2.
(save-excursion
(re-search-forward
(concat "^" file ":\\([0-9]+\\)\\(,\\([0-9]+\\)\\)?\\([ac]\\)\C-m?$"))
(beginning-of-line 2)
;; treatment depends on whether it is an "a" group or a "c" group
(if (string-equal (buffer-substring (match-beginning 4) (match-end 4)) "c")
;; it is a "c" group
(if (match-beginning 2)
;; it has two numbers
(list (string-to-number
(buffer-substring (match-beginning 1) (match-end 1)))
(1+ (string-to-number
(buffer-substring (match-beginning 3) (match-end 3)))))
;; it has one number
(let ((x (string-to-number
(buffer-substring (match-beginning 1) (match-end 1)))))
(list x (1+ x))))
;; it is an "a" group
(let ((x (1+ (string-to-number
(buffer-substring (match-beginning 1) (match-end 1))))))
(list x x)))))