branch: externals/transient
commit b1951a87b586a95d6f52d61e6fbfde0b3732b653
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>

    transient--resolve-pre-command: Optionally resolve boolean as well
    
    This assumes that we are dealing with the predicate of a non-suffix.
    For other types of commands resolving a boolean is more complex and
    handled elsewhere.
---
 lisp/transient.el | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/lisp/transient.el b/lisp/transient.el
index 1b3be625d8..d9594008d0 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -2521,15 +2521,15 @@ nil) then do nothing."
   (or (ignore-errors
         (lookup-key transient--predicate-map (vector cmd)))
       (and (not suffix-only)
-           (let ((pred (transient--resolve-pre-command
-                        (oref transient--prefix transient-non-suffix))))
-             (pcase pred
-               ('t   #'transient--do-stay)
-               ('nil #'transient--do-warn)
-               (_    pred))))))
-
-(defun transient--resolve-pre-command (pre)
-  (cond ((booleanp pre) pre)
+           (transient--resolve-pre-command
+            (oref transient--prefix transient-non-suffix)
+            t))))
+
+(defun transient--resolve-pre-command (pre &optional resolve-boolean)
+  (cond ((booleanp pre)
+         (if resolve-boolean
+             (if pre #'transient--do-stay #'transient--do-warn)
+           pre))
         ((string-match-p "--do-" (symbol-name pre)) pre)
         ((let ((sym (intern (format "transient--do-%s" pre))))
            (if (functionp sym) sym pre)))))

Reply via email to