branch: elpa/magit
commit dc7aef0517dde6cde355979045010a0f3bc2cc00
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
magit-ediff-resolve-rest: Handle cleaning up buffers setup by Smerge
Now this function handles cleaning up all buffers for all of
Magit's Ediff commands. `magit-ediff-resolve-rest' needs a special
case because it uses `smerge-ediff', which of course does not use
`magit-find-file-noselect' to create buffers, and these buffers have
to be cleaned up differently.
---
lisp/magit-ediff.el | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/lisp/magit-ediff.el b/lisp/magit-ediff.el
index 0ac2e745e7..755b60abe4 100644
--- a/lisp/magit-ediff.el
+++ b/lisp/magit-ediff.el
@@ -221,15 +221,7 @@ and alternative commands."
(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 #'magit-ediff--cleanup-buffers t t)
+ (add-hook 'ediff-quit-hook (##magit-ediff--cleanup-buffers t) t t)
(add-hook 'ediff-quit-hook
(lambda ()
(let ((magit-ediff-previous-winconf winconf))
@@ -536,11 +528,18 @@ is done setting up buffers."
;;; Quit
-(defun magit-ediff--cleanup-buffers ()
- (magit-ediff--bury-buffer ediff-buffer-A)
- (magit-ediff--bury-buffer ediff-buffer-B)
- (magit-ediff--bury-buffer ediff-buffer-C)
- (magit-ediff--bury-buffer ediff-ancestor-buffer)
+(defun magit-ediff--cleanup-buffers (&optional smerge)
+ (cond (smerge
+ (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
+ (magit-ediff--bury-buffer ediff-buffer-A)
+ (magit-ediff--bury-buffer ediff-buffer-B)
+ (magit-ediff--bury-buffer ediff-buffer-C)
+ (magit-ediff--bury-buffer ediff-ancestor-buffer)))
(let* ((ctl-buf ediff-control-buffer)
(ctl-win (ediff-get-visible-buffer-window ctl-buf))
(ctl-frm ediff-control-frame)