]> git.eshelyaron.com Git - emacs.git/commitdiff
Let ediff '=' compare against ancestor buffer (Bug#11320)
authorNoam Postavsky <npostavs@gmail.com>
Sat, 12 May 2018 01:56:56 +0000 (21:56 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Fri, 29 Jun 2018 02:09:04 +0000 (22:09 -0400)
* lisp/vc/ediff-util.el (ediff-inferior-compare-regions): Ask user
whether to compare against the ancestor or merge buffer.  Use
read-multiple-choice for A vs B buffer query.

lisp/vc/ediff-util.el

index 104a5782682553b06e311f87edb9207c72b3d1f1..b1652e7efd4401a746ae7a5d2ee22daf7cd634e6 100644 (file)
@@ -3546,25 +3546,19 @@ Ediff Control Panel to restore highlighting."
     (ediff-paint-background-regions 'unhighlight)
 
     (cond ((ediff-merge-job)
-          (setq bufB ediff-buffer-C)
           ;; ask which buffer to compare to the merge buffer
-          (while (cond ((eq answer ?A)
-                        (setq bufA ediff-buffer-A
-                              possibilities '(?B))
-                        nil)
-                       ((eq answer ?B)
-                        (setq bufA ediff-buffer-B
-                              possibilities '(?A))
-                        nil)
-                       ((equal answer ""))
-                       (t (beep 1)
-                          (message "Valid values are A or B")
-                          (sit-for 2)
-                          t))
-            (let ((cursor-in-echo-area t))
-              (message
-               "Which buffer to compare to the merge buffer (A or B)? ")
-              (setq answer (capitalize (read-char-exclusive))))))
+          (setq answer (read-multiple-choice
+                         "Which buffer to compare?"
+                         '((?a "A")
+                           (?b "B"))))
+           (if (eq (car answer) ?a)
+               (setq bufA ediff-buffer-A)
+             (setq bufA ediff-buffer-B))
+           (setq bufB (if (and ediff-ancestor-buffer
+                               (y-or-n-p (format "Compare %s against ancestor buffer?"
+                                                 (cadr answer))))
+                          ediff-ancestor-buffer
+                        ediff-buffer-C)))
 
          ((ediff-3way-comparison-job)
           ;; ask which two buffers to compare