[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/git-commit a4a78d341a: magit-ediff-buffers: Fix hygiene re
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/git-commit a4a78d341a: magit-ediff-buffers: Fix hygiene regression |
Date: |
Sun, 22 May 2022 13:58:10 -0400 (EDT) |
branch: elpa/git-commit
commit a4a78d341a7006ccdec708b424048ba3b22ee801
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
magit-ediff-buffers: Fix hygiene regression
Closes #4694.
---
lisp/magit-ediff.el | 53 ++++++++++++++++++++++++++++-------------------------
1 file changed, 28 insertions(+), 25 deletions(-)
diff --git a/lisp/magit-ediff.el b/lisp/magit-ediff.el
index ae2f053123..7b6dd0cec1 100644
--- a/lisp/magit-ediff.el
+++ b/lisp/magit-ediff.el
@@ -181,31 +181,34 @@ is put in FILE."
(setq get (nreverse get))
(setq make (nreverse make))
(setq kill (nreverse kill))
- `(magit-with-toplevel
- (let ((conf (current-window-configuration))
- (file ,file)
- ,@get)
- (ediff-buffers-internal
- ,@make
- (list ,@(and setup (list setup))
- (lambda ()
- ;; We do not want to kill buffers that existed before
- ;; Ediff was invoked, so we cannot use Ediff's default
- ;; quit functions. Ediff splits quitting across two
- ;; hooks for merge jobs but we only ever use one.
- (setq-local ediff-quit-merge-hook nil)
- (setq-local ediff-quit-hook
- (list ,@(and quit (list quit))
- (lambda ()
- ,@kill
- (let ((magit-ediff-previous-winconf
conf))
- (run-hooks
'magit-ediff-quit-hook)))))))
- (pcase (list ,(and c t) (and file t))
- ('(nil nil) 'ediff-buffers)
- ('(nil t) 'ediff-merge-buffers)
- ('(t nil) 'ediff-buffers3)
- ('(t t) 'ediff-merge-buffers-with-ancestor))
- file)))))
+ (let ((mconf (cl-gensym "conf"))
+ (mfile (cl-gensym "file")))
+ `(magit-with-toplevel
+ (let ((,mconf (current-window-configuration))
+ (,mfile ,file)
+ ,@get)
+ (ediff-buffers-internal
+ ,@make
+ (list ,@(and setup (list setup))
+ (lambda ()
+ ;; We do not want to kill buffers that existed before
+ ;; Ediff was invoked, so we cannot use Ediff's default
+ ;; quit functions. Ediff splits quitting across two
+ ;; hooks for merge jobs but we only ever use one.
+ (setq-local ediff-quit-merge-hook nil)
+ (setq-local ediff-quit-hook
+ (list
+ ,@(and quit (list quit))
+ (lambda ()
+ ,@kill
+ (let ((magit-ediff-previous-winconf ,mconf))
+ (run-hooks 'magit-ediff-quit-hook)))))))
+ (pcase (list ,(and c t) (and ,mfile t))
+ ('(nil nil) 'ediff-buffers)
+ ('(nil t) 'ediff-merge-buffers)
+ ('(t nil) 'ediff-buffers3)
+ ('(t t) 'ediff-merge-buffers-with-ancestor))
+ ,mfile))))))
;;;###autoload
(defun magit-ediff-resolve-all (file)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/git-commit a4a78d341a: magit-ediff-buffers: Fix hygiene regression,
ELPA Syncer <=