branch: externals/transient
commit be119ee43fe5f6af2469d366f6ab84204255038d
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
Export variables for transient non-infix suffixes
Unlike infixes, which change the value, non-infix suffixes are
supposed to use the value. Just because they are made transient,
that doesn't mean they should fall back to the default value and
have no access to other state variables that need to be exported.
It was clearly unintentional to use the non-exporting pre-command
for non-infix suffixes when the value of `transient' is just t.
Closes #151.
---
lisp/transient.el | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/lisp/transient.el b/lisp/transient.el
index 4d1df2f..abae5b7 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1611,9 +1611,10 @@ of the corresponding object.")
(define-key map (vector sym)
(let ((do (oref obj transient)))
(pcase do
- (`t (if sub-prefix
- 'transient--do-replace
- 'transient--do-stay))
+ (`t (cond (sub-prefix 'transient--do-replace)
+ ((cl-typep obj 'transient-infix)
+ 'transient--do-stay)
+ (t 'transient--do-call)))
(`nil 'transient--do-exit)
(_ do)))))
((not (lookup-key transient-predicate-map (vector sym)))