summaryrefslogtreecommitdiff
path: root/lisp/ediff-diff.el
diff options
context:
space:
mode:
authorMichael Kifer <kifer@cs.stonybrook.edu>1999-11-25 04:34:23 +0000
committerMichael Kifer <kifer@cs.stonybrook.edu>1999-11-25 04:34:23 +0000
commit086171bf0b8c34abca3f4eed0512d2d1e4235d9d (patch)
treed0bbc28d532df4f764a779ca75fa3e960df43a80 /lisp/ediff-diff.el
parentba7394febc752024269693ac231be8de0ff988c6 (diff)
downloademacs-086171bf0b8c34abca3f4eed0512d2d1e4235d9d.tar.gz
emacs-086171bf0b8c34abca3f4eed0512d2d1e4235d9d.tar.bz2
emacs-086171bf0b8c34abca3f4eed0512d2d1e4235d9d.zip
*** empty log message ***
Diffstat (limited to 'lisp/ediff-diff.el')
-rw-r--r--lisp/ediff-diff.el30
1 files changed, 17 insertions, 13 deletions
diff --git a/lisp/ediff-diff.el b/lisp/ediff-diff.el
index 47a3015ed5f..ac26f522b5d 100644
--- a/lisp/ediff-diff.el
+++ b/lisp/ediff-diff.el
@@ -799,20 +799,24 @@ one optional arguments, diff-number to refine.")
(ediff-overlay-put overl 'priority priority))
fine-diff-vector)))
-;; This assumes buffer C and that the region looks like a combination of
-;; regions in buffer A and C.
+;; Set overlays over the regions that denote delimiters
(defun ediff-set-fine-overlays-for-combined-merge (diff-list reg-num)
- (let (overlay1 overlay2 overlay3)
- (setq overlay1 (ediff-make-bullet-proof-overlay (nth 0 diff-list)
- (nth 1 diff-list)
- ediff-buffer-C)
- overlay2 (ediff-make-bullet-proof-overlay (nth 2 diff-list)
- (nth 3 diff-list)
- ediff-buffer-C)
- overlay3 (ediff-make-bullet-proof-overlay (nth 4 diff-list)
- (nth 5 diff-list)
- ediff-buffer-C))
- (ediff-set-fine-diff-vector reg-num 'C (vector overlay1 overlay2 overlay3))
+ (let (overlay overlay-list)
+ (while diff-list
+ (condition-case nil
+ (setq overlay
+ (ediff-make-bullet-proof-overlay
+ (nth 0 diff-list) (nth 1 diff-list) ediff-buffer-C))
+ (error ""))
+ (setq overlay-list (cons overlay overlay-list))
+ (if (> (length diff-list) 1)
+ (setq diff-list (cdr (cdr diff-list)))
+ (error "ediff-set-fine-overlays-for-combined-merge: corrupt list of
+delimiter regions"))
+ )
+ (setq overlay-list (reverse overlay-list))
+ (ediff-set-fine-diff-vector
+ reg-num 'C (apply 'vector overlay-list))
))