[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/git-commit db2e9546f8 5/9: magit-ediff-buffers: Change arg
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/git-commit db2e9546f8 5/9: magit-ediff-buffers: Change argument order |
Date: |
Mon, 16 May 2022 16:58:17 -0400 (EDT) |
branch: elpa/git-commit
commit db2e9546f88d607189c58bf884ae075565305ade
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
magit-ediff-buffers: Change argument order
---
lisp/magit-ediff.el | 140 ++++++++++++++++++++++++++--------------------------
1 file changed, 70 insertions(+), 70 deletions(-)
diff --git a/lisp/magit-ediff.el b/lisp/magit-ediff.el
index f5f045250d..8fb98c4082 100644
--- a/lisp/magit-ediff.el
+++ b/lisp/magit-ediff.el
@@ -123,47 +123,49 @@ recommend you do not further complicate that by enabling
this.")
("r" "Show range" magit-ediff-compare)
("z" "Show stash" magit-ediff-show-stash)]])
-(defmacro magit-ediff-buffers (quit &rest spec)
- (declare (indent 1))
- (let ((fn (if (length= spec 3) 'ediff-buffers3 'ediff-buffers))
- (char ?A)
- get make kill)
- (pcase-dolist (`(,g ,m) spec)
- (let ((b (intern (format "buf%c" char))))
- (push `(,b ,g) get)
- ;; This is an unfortunate complication that I have added for
- ;; the benefit of one user. Pretend we used this instead:
- ;; (push `(or ,b ,m) make)
- (push `(if ,b
- (if magit-ediff-use-indirect-buffers
- (prog1
- (make-indirect-buffer
- ,b (generate-new-buffer-name (buffer-name ,b)) t)
- (setq ,b nil))
- ,b)
- ,m)
- make)
- (push `(unless ,b
- (ediff-kill-buffer-carefully
- ,(intern (format "ediff-buffer-%c" char))))
- kill))
- (cl-incf char))
+(defmacro magit-ediff-buffers (a b &optional c setup quit)
+ (let (get make kill (char ?A))
+ (dolist (spec (list a b c))
+ (if (not spec)
+ (push nil make)
+ (pcase-let ((`(,g ,m) spec))
+ (let ((b (intern (format "buf%c" char))))
+ (push `(,b ,g) get)
+ ;; This is an unfortunate complication that I have added for
+ ;; the benefit of one user. Pretend we used this instead:
+ ;; (push `(or ,b ,m) make)
+ (push `(if ,b
+ (if magit-ediff-use-indirect-buffers
+ (prog1 (make-indirect-buffer
+ ,b
+ (generate-new-buffer-name (buffer-name ,b))
+ t)
+ (setq ,b nil))
+ ,b)
+ ,m)
+ make)
+ (push `(unless ,b
+ (ediff-kill-buffer-carefully
+ ,(intern (format "ediff-buffer-%c" char))))
+ kill))
+ (cl-incf char))))
(setq get (nreverse get))
(setq make (nreverse make))
(setq kill (nreverse kill))
`(magit-with-toplevel
(let ((conf (current-window-configuration))
,@get)
- (,fn
+ (ediff-buffers-internal
,@make
- (list (lambda ()
+ (list ,@(and setup (list setup))
+ (lambda ()
(setq-local ediff-quit-hook
(list ,@(and quit (list quit))
(lambda ()
,@kill
(let ((magit-ediff-previous-winconf
conf))
(run-hooks
'magit-ediff-quit-hook)))))))
- ',fn)))))
+ ,(if c 'ediff-buffers3 'ediff-buffers))))))
;;;###autoload
(defun magit-ediff-resolve-rest (file)
@@ -218,21 +220,22 @@ FILE has to be relative to the top directory of the
repository."
(bufB* (magit-find-file-index-noselect file t)))
(setf (buffer-local-value 'buffer-read-only bufB*) nil)
(magit-ediff-buffers
- (lambda ()
- (when (buffer-live-p ediff-buffer-B)
- (when lockB
- (setf (buffer-local-value 'buffer-read-only bufB) t))
- (when (buffer-modified-p ediff-buffer-B)
- (with-current-buffer ediff-buffer-B
- (magit-update-index))))
- (when (and (buffer-live-p ediff-buffer-C)
- (buffer-modified-p ediff-buffer-C))
- (with-current-buffer ediff-buffer-C
- (when (y-or-n-p (format "Save file %s? " buffer-file-name))
- (save-buffer)))))
- (bufA bufA*)
- (bufB bufB*)
- (bufC bufC*)))))
+ (bufA bufA*)
+ (bufB bufB*)
+ (bufC bufC*)
+ nil
+ (lambda ()
+ (when (buffer-live-p ediff-buffer-B)
+ (when lockB
+ (setf (buffer-local-value 'buffer-read-only bufB) t))
+ (when (buffer-modified-p ediff-buffer-B)
+ (with-current-buffer ediff-buffer-B
+ (magit-update-index))))
+ (when (and (buffer-live-p ediff-buffer-C)
+ (buffer-modified-p ediff-buffer-C))
+ (with-current-buffer ediff-buffer-C
+ (when (y-or-n-p (format "Save file %s? " buffer-file-name))
+ (save-buffer)))))))))
;;;###autoload
(defun magit-ediff-compare (revA revB fileA fileB)
@@ -252,11 +255,11 @@ range)."
nil current-prefix-arg)))
(nconc (list revA revB)
(magit-ediff-read-files revA revB))))
- (magit-ediff-buffers nil
- ((if revA (magit-get-revision-buffer revA fileA) (get-file-buffer
fileA))
- (if revA (magit-find-file-noselect revA fileA) (find-file-noselect
fileA)))
- ((if revB (magit-get-revision-buffer revB fileB) (get-file-buffer
fileB))
- (if revB (magit-find-file-noselect revB fileB) (find-file-noselect
fileB)))))
+ (magit-ediff-buffers
+ ((if revA (magit-get-revision-buffer revA fileA) (get-file-buffer fileA))
+ (if revA (magit-find-file-noselect revA fileA) (find-file-noselect
fileA)))
+ ((if revB (magit-get-revision-buffer revB fileB) (get-file-buffer fileB))
+ (if revB (magit-find-file-noselect revB fileB) (find-file-noselect
fileB)))))
(defun magit-ediff-compare--read-revisions (&optional arg mbase)
(let ((input (or arg (magit-diff-read-range-or-commit
@@ -381,11 +384,10 @@ FILE must be relative to the top directory of the
repository."
(list (magit-read-file-choice "Show staged changes for file"
(magit-staged-files)
"No staged files")))
- (magit-ediff-buffers nil
- ((magit-get-revision-buffer "HEAD" file)
- (magit-find-file-noselect "HEAD" file))
- ((get-buffer (concat file ".~{index}~"))
- (magit-find-file-index-noselect file t))))
+ (magit-ediff-buffers ((magit-get-revision-buffer "HEAD" file)
+ (magit-find-file-noselect "HEAD" file))
+ ((get-buffer (concat file ".~{index}~"))
+ (magit-find-file-index-noselect file t))))
;;;###autoload
(defun magit-ediff-show-unstaged (file)
@@ -399,11 +401,10 @@ FILE must be relative to the top directory of the
repository."
(list (magit-read-file-choice "Show unstaged changes for file"
(magit-unstaged-files)
"No unstaged files")))
- (magit-ediff-buffers nil
- ((get-buffer (concat file ".~{index}~"))
- (magit-find-file-index-noselect file t))
- ((get-file-buffer file)
- (find-file-noselect file))))
+ (magit-ediff-buffers ((get-buffer (concat file ".~{index}~"))
+ (magit-find-file-index-noselect file t))
+ ((get-file-buffer file)
+ (find-file-noselect file))))
;;;###autoload
(defun magit-ediff-show-working-tree (file)
@@ -413,11 +414,10 @@ FILE must be relative to the top directory of the
repository."
(list (magit-read-file-choice "Show changes in file"
(magit-changed-files "HEAD")
"No changed files")))
- (magit-ediff-buffers nil
- ((magit-get-revision-buffer "HEAD" file)
- (magit-find-file-noselect "HEAD" file))
- ((get-file-buffer file)
- (find-file-noselect file))))
+ (magit-ediff-buffers ((magit-get-revision-buffer "HEAD" file)
+ (magit-find-file-noselect "HEAD" file))
+ ((get-file-buffer file)
+ (find-file-noselect file))))
;;;###autoload
(defun magit-ediff-show-commit (commit)
@@ -443,13 +443,13 @@ stash that were staged."
(fileB fileC))
(if (and magit-ediff-show-stash-with-index
(member fileA (magit-changed-files revB revA)))
- (magit-ediff-buffers nil
- ((magit-get-revision-buffer revA fileA)
- (magit-find-file-noselect revA fileA))
- ((magit-get-revision-buffer revB fileB)
- (magit-find-file-noselect revB fileB))
- ((magit-get-revision-buffer revC fileC)
- (magit-find-file-noselect revC fileC)))
+ (magit-ediff-buffers
+ ((magit-get-revision-buffer revA fileA)
+ (magit-find-file-noselect revA fileA))
+ ((magit-get-revision-buffer revB fileB)
+ (magit-find-file-noselect revB fileB))
+ ((magit-get-revision-buffer revC fileC)
+ (magit-find-file-noselect revC fileC)))
(magit-ediff-compare revA revC fileA fileC))))
(defun magit-ediff-cleanup-auxiliary-buffers ()
- [nongnu] elpa/git-commit updated (421105ef4f -> 5a7519fd3d), ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit 1e2b473f20 3/9: magit-ediff-resolve: Rename to magit-ediff-resolve-rest, ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit d035386e96 6/9: magit-ediff-buffers: Support merge jobs, ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit 5a7519fd3d 9/9: magit-ediff-dwim-resolve-function: New option, ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit ce45c43f9d 2/9: magit-ediff-resolve: Move definition, ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit efb09e8d57 1/9: magit-renamed-files: Minor tweaks, ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit db2e9546f8 5/9: magit-ediff-buffers: Change argument order,
ELPA Syncer <=
- [nongnu] elpa/git-commit 46685b1c76 7/9: magit-ediff-resolve-all: New command, ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit 6fc4bacdee 8/9: magit-ediff-resolve-{all, rest}: Use file at point, ELPA Syncer, 2022/05/16
- [nongnu] elpa/git-commit e2e90f7b0c 4/9: magit-ediff-buffers: Cosmetics and new comments, ELPA Syncer, 2022/05/16