branch: elpa/magit
commit c1ac25deb182449eb5a4592ea8087387e5cb149b
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>

    magit-ediff-resolve-rest: Cosmetics
    
    Use the same approach to set `ediff-quit-hook'
    as in `magit-ediff-buffers'.
---
 lisp/magit-ediff.el | 45 ++++++++++++++++++++++++++-------------------
 1 file changed, 26 insertions(+), 19 deletions(-)

diff --git a/lisp/magit-ediff.el b/lisp/magit-ediff.el
index 239219159c..4900cf26f5 100644
--- a/lisp/magit-ediff.el
+++ b/lisp/magit-ediff.el
@@ -208,25 +208,32 @@ and alternative commands."
     (let ((winconf (current-window-configuration)))
       (with-current-buffer (find-file-noselect file)
         (smerge-ediff)
-        (setq-local
-         ediff-quit-hook
-         (lambda ()
-           (let ((bufC ediff-buffer-C)
-                 (bufS smerge-ediff-buf))
-             (with-current-buffer bufS
-               (when (yes-or-no-p
-                      (format "Conflict resolution finished; save %s? "
-                              buffer-file-name))
-                 (erase-buffer)
-                 (insert-buffer-substring bufC)
-                 (save-buffer))))
-           (when (buffer-live-p ediff-buffer-A) (kill-buffer ediff-buffer-A))
-           (when (buffer-live-p ediff-buffer-B) (kill-buffer ediff-buffer-B))
-           (when (buffer-live-p ediff-buffer-C) (kill-buffer ediff-buffer-C))
-           (when (buffer-live-p ediff-ancestor-buffer)
-             (kill-buffer ediff-ancestor-buffer))
-           (let ((magit-ediff-previous-winconf winconf))
-             (run-hooks 'magit-ediff-quit-hook))))))))
+        (setq-local ediff-quit-hook nil)
+        (add-hook 'ediff-quit-hook
+                  (lambda ()
+                    (let ((bufC ediff-buffer-C)
+                          (bufS smerge-ediff-buf))
+                      (with-current-buffer bufS
+                        (when (yes-or-no-p
+                               (format "Conflict resolution finished; save %s? 
"
+                                       buffer-file-name))
+                          (erase-buffer)
+                          (insert-buffer-substring bufC)
+                          (save-buffer)))))
+                  t t)
+        (add-hook 'ediff-quit-hook
+                  (lambda ()
+                    (when (buffer-live-p ediff-buffer-A) (kill-buffer 
ediff-buffer-A))
+                    (when (buffer-live-p ediff-buffer-B) (kill-buffer 
ediff-buffer-B))
+                    (when (buffer-live-p ediff-buffer-C) (kill-buffer 
ediff-buffer-C))
+                    (when (buffer-live-p ediff-ancestor-buffer)
+                      (kill-buffer ediff-ancestor-buffer)))
+                  t t)
+        (add-hook 'ediff-quit-hook
+                  (lambda ()
+                    (let ((magit-ediff-previous-winconf winconf))
+                      (run-hooks 'magit-ediff-quit-hook)))
+                  t t)))))
 
 ;;;###autoload(autoload 'magit-ediff-stage "magit-ediff" nil t)
 (transient-define-suffix magit-ediff-stage (file)

Reply via email to