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

    magit-{diff,log}--get-value: Add shorthands for USE-BUFFER-ARGS
---
 lisp/magit-diff.el   | 17 ++++++++++++-----
 lisp/magit-log.el    | 19 ++++++++++++-------
 lisp/magit-status.el |  6 ++----
 3 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 3a9faaf1d9f..469a09c2314 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -35,6 +35,8 @@
 (require 'image)
 (require 'smerge-mode)
 
+;; For `magit-diff--get-value'
+(defvar magit-status-use-buffer-arguments)
 ;; For `magit-diff-popup'
 (declare-function magit-stash-show "magit-stash" (stash &optional args files))
 ;; For `magit-diff-visit-file'
@@ -828,8 +830,7 @@ and `:slant'."
 
 (cl-defmethod transient-init-value ((obj magit-diff-prefix))
   (pcase-let ((`(,args ,files)
-               (magit-diff--get-value 'magit-diff-mode
-                                      magit-prefix-use-buffer-arguments)))
+               (magit-diff--get-value 'magit-diff-mode 'prefix)))
     (when-let (((not (eq transient-current-command 'magit-dispatch)))
                (file (magit-file-relative-name)))
       (setq files (list file)))
@@ -853,11 +854,17 @@ and `:slant'."
   "Return the current diff arguments."
   (if (memq transient-current-command '(magit-diff magit-diff-refresh))
       (magit--transient-args-and-files)
-    (magit-diff--get-value (or mode 'magit-diff-mode))))
+    (magit-diff--get-value (or mode 'magit-diff-mode) 'direct)))
 
 (defun magit-diff--get-value (mode &optional use-buffer-args)
-  (unless use-buffer-args
-    (setq use-buffer-args magit-direct-use-buffer-arguments))
+  (setq use-buffer-args
+        (pcase-exhaustive use-buffer-args
+          ('prefix magit-prefix-use-buffer-arguments)
+          ('status magit-status-use-buffer-arguments)
+          ('direct magit-direct-use-buffer-arguments)
+          ('nil    magit-direct-use-buffer-arguments)
+          ((or 'always 'selected 'current 'never)
+           use-buffer-args)))
   (let (args files)
     (cond
      ((and (memq use-buffer-args '(always selected current))
diff --git a/lisp/magit-log.el b/lisp/magit-log.el
index 187c800bad2..c4cb1de6707 100644
--- a/lisp/magit-log.el
+++ b/lisp/magit-log.el
@@ -51,6 +51,7 @@
 (defvar magit-buffer-margin)
 (defvar magit-status-margin)
 (defvar magit-status-sections-hook)
+(defvar magit-status-use-buffer-arguments)
 
 (require 'ansi-color)
 (require 'crm)
@@ -372,8 +373,7 @@ commits before and half after."
 
 (cl-defmethod transient-init-value ((obj magit-log-prefix))
   (pcase-let ((`(,args ,files)
-               (magit-log--get-value 'magit-log-mode
-                                     magit-prefix-use-buffer-arguments)))
+               (magit-log--get-value 'magit-log-mode 'prefix)))
     (when-let (((not (eq transient-current-command 'magit-dispatch)))
                (file (magit-file-relative-name)))
       (setq files (list file)))
@@ -397,11 +397,17 @@ commits before and half after."
   "Return the current log arguments."
   (if (memq transient-current-command '(magit-log magit-log-refresh))
       (magit--transient-args-and-files)
-    (magit-log--get-value (or mode 'magit-log-mode))))
+    (magit-log--get-value (or mode 'magit-log-mode) 'direct)))
 
 (defun magit-log--get-value (mode &optional use-buffer-args)
-  (unless use-buffer-args
-    (setq use-buffer-args magit-direct-use-buffer-arguments))
+  (setq use-buffer-args
+        (pcase-exhaustive use-buffer-args
+          ('prefix magit-prefix-use-buffer-arguments)
+          ('status magit-status-use-buffer-arguments)
+          ('direct magit-direct-use-buffer-arguments)
+          ('nil    magit-direct-use-buffer-arguments)
+          ((or 'always 'selected 'current 'never)
+           use-buffer-args)))
   (let (args files)
     (cond
      ((and (memq use-buffer-args '(always selected current))
@@ -1745,8 +1751,7 @@ Type \\[magit-log-select-quit] to abort without selecting 
a commit."
   (magit-log-select-setup-buffer
    (or branch (magit-get-current-branch) "HEAD")
    (append args
-           (car (magit-log--get-value 'magit-log-select-mode
-                                      magit-direct-use-buffer-arguments))))
+           (car (magit-log--get-value 'magit-log-select-mode 'direct))))
   (if initial
       (magit-log-goto-commit-section initial)
     (while-let ((rev (magit-section-value-if 'commit))
diff --git a/lisp/magit-status.el b/lisp/magit-status.el
index b002776631e..75fd4bd6795 100644
--- a/lisp/magit-status.el
+++ b/lisp/magit-status.el
@@ -450,10 +450,8 @@ Type \\[magit-commit] to create a commit.
   (when (file-remote-p directory)
     (magit-git-version-assert))
   (let* ((default-directory directory)
-         (d (magit-diff--get-value 'magit-status-mode
-                                   magit-status-use-buffer-arguments))
-         (l (magit-log--get-value 'magit-status-mode
-                                  magit-status-use-buffer-arguments))
+         (d (magit-diff--get-value 'magit-status-mode 'status))
+         (l (magit-log--get-value 'magit-status-mode 'status))
          (file (and magit-status-goto-file-position
                     (magit-file-relative-name)))
          (line (and file (save-restriction (widen) (line-number-at-pos))))

Reply via email to