diff lisp/ediff/ediff-util.el @ 197:acd284d43ca1 r20-3b25

Import from CVS: tag r20-3b25
author cvs
date Mon, 13 Aug 2007 10:00:02 +0200
parents b405438285a2
children
line wrap: on
line diff
--- a/lisp/ediff/ediff-util.el	Mon Aug 13 09:59:07 2007 +0200
+++ b/lisp/ediff/ediff-util.el	Mon Aug 13 10:00:02 2007 +0200
@@ -1586,20 +1586,20 @@
   (if (< ediff-current-difference ediff-number-of-differences)
       (let ((n (min ediff-number-of-differences
 		    (+ ediff-current-difference arg)))
-	    regexp-skip)
+	    non-clash-skip regexp-skip)
 	    
 	(ediff-visible-region)
 	(or (>= n ediff-number-of-differences)
 	    (setq regexp-skip (funcall ediff-skip-diff-region-function n))
+	    ;; this won't exec if regexp-skip is t
+	    (setq non-clash-skip (ediff-merge-region-is-non-clash n))
 	    (ediff-install-fine-diff-if-necessary n))
 	(while (and (< n ediff-number-of-differences)
 		    (or
 		     ;; regexp skip
 		     regexp-skip
 		     ;; skip clashes, if necessary
-		     (and ediff-show-clashes-only
-			  (string-match "prefer"
-					(or (ediff-get-state-of-merge n) "")))
+		     non-clash-skip
 		     ;; skip difference regions that differ in white space
 		     (and ediff-ignore-similar-regions
 			  (eq (ediff-no-fine-diffs-p n) t))))
@@ -1608,6 +1608,8 @@
 	      (message "Skipped over region %d and counting ..."  n))
 	  (or (>= n ediff-number-of-differences)
 	      (setq regexp-skip (funcall ediff-skip-diff-region-function n))
+	      ;; this won't exec if regexp-skip is t
+	      (setq non-clash-skip (ediff-merge-region-is-non-clash n))
 	      (ediff-install-fine-diff-if-necessary n))
 	  )
 	(message "")
@@ -1623,20 +1625,20 @@
   (ediff-barf-if-not-control-buffer)
   (if (> ediff-current-difference -1)
       (let ((n (max -1 (- ediff-current-difference arg)))
-	    regexp-skip)
+	    non-clash-skip regexp-skip)
 	    
 	(ediff-visible-region)
 	(or (< n 0)
 	    (setq regexp-skip (funcall ediff-skip-diff-region-function n))
+	    ;; this won't exec if regexp-skip is t
+	    (setq non-clash-skip (ediff-merge-region-is-non-clash n))
 	    (ediff-install-fine-diff-if-necessary n))
 	(while (and (> n -1)
 		    (or
 		     ;; regexp skip
 		     regexp-skip
 		     ;; skip clashes, if necessary
-		     (and ediff-show-clashes-only
-			  (string-match "prefer"
-					(or (ediff-get-state-of-merge n) "")))
+		     non-clash-skip
 		     ;; skip difference regions that differ in white space
 		     (and ediff-ignore-similar-regions
 			  (eq (ediff-no-fine-diffs-p n) t))))
@@ -1645,6 +1647,8 @@
 	  (setq n (1- n))
 	  (or (< n 0)
 	      (setq regexp-skip (funcall ediff-skip-diff-region-function n))
+	      ;; this won't exec if regexp-skip is t
+	      (setq non-clash-skip (ediff-merge-region-is-non-clash n))
 	      (ediff-install-fine-diff-if-necessary n))
 	  )
 	(message "")