emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] scratch/add-vdiff ff1fbc4 248/258: vdiff: Generate ancestor buffe


From: Justin Burkett
Subject: [elpa] scratch/add-vdiff ff1fbc4 248/258: vdiff: Generate ancestor buffer in merge-conflict
Date: Wed, 17 May 2017 08:14:02 -0400 (EDT)

branch: scratch/add-vdiff
commit ff1fbc409f816574a230bfdaa17ea73f65196654
Author: Justin Burkett <address@hidden>
Commit: Justin Burkett <address@hidden>

    vdiff: Generate ancestor buffer in merge-conflict
    
    It's not shown or used at the moment, but it's there now.
---
 vdiff.el | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/vdiff.el b/vdiff.el
index bc9234a..ef4cbde 100644
--- a/vdiff.el
+++ b/vdiff.el
@@ -1754,6 +1754,10 @@ The base or ancestor file is currently ignored."
            (other (generate-new-buffer
                    (concat "*" filename " "
                            (smerge--get-marker smerge-end-re "OTHER")
+                           "*")))
+           (base (generate-new-buffer
+                  (concat "*" filename " "
+                          (smerge--get-marker smerge-end-re "BASE")
                            "*"))))
       (with-current-buffer mine
         (buffer-disable-undo)
@@ -1765,6 +1769,17 @@ The base or ancestor file is currently ignored."
         (set-buffer-modified-p nil)
         (funcall mode))
 
+      (with-current-buffer base
+        (buffer-disable-undo)
+        (insert-buffer-substring smerge-buffer)
+        (goto-char (point-min))
+        (while (smerge-find-conflict)
+          (when (match-beginning 2)
+            (smerge-keep-n 2)))
+        (buffer-enable-undo)
+        (set-buffer-modified-p nil)
+        (funcall mode))
+
       (with-current-buffer other
         (buffer-disable-undo)
         (insert-buffer-substring smerge-buffer)
@@ -1777,13 +1792,14 @@ The base or ancestor file is currently ignored."
 
       (vdiff-buffers3
        mine other smerge-buffer
-       (lambda (mine other smerge-buffer)
-         (with-current-buffer smerge-buffer
-           (when (yes-or-no-p (format "Conflict resolution finished; save %s?"
-                                      buffer-file-name))
-             (save-buffer)))
-         (when (buffer-live-p mine) (kill-buffer mine))
-         (when (buffer-live-p other) (kill-buffer other)))
+       `(lambda (mine other smerge-buffer)
+          (with-current-buffer smerge-buffer
+            (when (yes-or-no-p (format "Conflict resolution finished; save %s?"
+                                       buffer-file-name))
+              (save-buffer)))
+          (when (buffer-live-p mine) (kill-buffer mine))
+          (when (buffer-live-p ,base) (kill-buffer ,base))
+          (when (buffer-live-p other) (kill-buffer other)))
        t))))
 
 ;;;###autoload



reply via email to

[Prev in Thread] Current Thread [Next in Thread]