Subject: bug#17382: 24.3.90; Ediff mode is broken

From: Nicolas Richard <[email-masked]>
Date: Fri, 02 May 2014 07:15:00 +0200

Glenn Morris <[email-masked]> writes:
> Rafal Kowalski wrote:
>> While ediffing two buffers with 4 different regions, got an error
>> related to an overlay in the 3rd chunk (see below).  Ediff was not able
>> to skip to the next region nor to exit the ediff session.

I'd guess this is #17257

Rafal, can you try the following patch and see if it fixes the problem
for you ?

diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el
index f429eb3..ed248fb 100644
--- a/lisp/vc/ediff-diff.el
+++ b/lisp/vc/ediff-diff.el
@@ -822,8 +822,9 @@ one optional arguments, diff-number to refine.")
 		(ediff-get-symbol-from-alist
 		 buf-type ediff-fine-diff-face-alist)
 		)))
-    (dolist (overl fine-diff-vector)
-      (ediff-set-overlay-face overl face))))
+    (mapc (lambda (overl)
+	    (ediff-set-overlay-face overl face))
+	  fine-diff-vector)))
 
 ;; Set overlays over the regions that denote delimiters
 (defun ediff-set-fine-overlays-for-combined-merge (diff-list reg-num)

-- 
Nico.