branch: externals/transient
commit 70791e2c97f6422568ca6a3398be844a905dfabc
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    Prefer quoting top-level included groups
    
    That's only natural, given that the group vectors are self-quoting,
    while the values in the preceding property list are evaluated.  For
    backward compatibility the quoting is optional, for now at least.
---
 lisp/transient.el | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/lisp/transient.el b/lisp/transient.el
index cc6b2b8414..6eb74195b6 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1255,10 +1255,19 @@ commands are aliases for."
               (setq class v)
             (push k keys)
             (push v keys))))
-      (while (let ((arg (car args)))
-               (or (vectorp arg)
-                   (and arg (symbolp arg))))
-        (push (pop args) suffixes))
+      (while-let
+          ((arg (car args))
+           (arg (cond
+                 ;; Inline group definition.
+                 ((vectorp arg)
+                  (pop args))
+                 ;; Quoted include, as one would expect.
+                 ((eq (car-safe arg) 'quote)
+                  (cadr (pop args)))
+                 ;; Unquoted include, for compatibility.
+                 ((and arg (symbolp arg))
+                  (pop args)))))
+        (push arg suffixes))
       (when (eq (car-safe (car args)) 'declare)
         (setq declare (car args))
         (setq args (cdr args))

Reply via email to