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)))))