branch: elpa/llama
commit 61ac5906dfa5d98c5cec5b71ea7a7adea2f89f29
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    llama--collect: Support splice
---
 llama-test.el |  4 ++++
 llama.el      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/llama-test.el b/llama-test.el
index 7ae87f4d30..792d32e48a 100644
--- a/llama-test.el
+++ b/llama-test.el
@@ -388,6 +388,10 @@
   (should (equal (##`(,%1 %2 (,%3) ,%4 . ,%5))
                  (lambda (%1 _%2 %3 %4 %5)
                    `(,%1 %2 (,%3) ,%4 . ,%5))))
+
+  (should (equal (##list `(,@%1 %2 ,%3 (,@%3 ,%1)))
+                 (lambda (%1 _%2 %3)
+                   (list `(,@%1 %2 ,%3 (,@%3 ,%1))))))
   )
 
 (ert-deftest llama-test-701-llama nil
diff --git a/llama.el b/llama.el
index e8af17e4e3..dfd75de11f 100644
--- a/llama.el
+++ b/llama.el
@@ -187,11 +187,16 @@ to view this docstring.)"
   (cond
    ((memq (car-safe expr) (list (intern "") 'llama 'quote)) expr)
    ((and backquoted (symbolp expr)) expr)
-   ((and backquoted (eq (car-safe expr) backquote-unquote-symbol))
-    (list backquote-unquote-symbol
+   ((and backquoted
+         (memq (car-safe expr)
+               (list backquote-unquote-symbol
+                     backquote-splice-symbol)))
+    (list (car expr)
           (llama--collect (cadr expr) args)))
-   ((eq (car-safe expr) backquote-backquote-symbol)
-    (list backquote-backquote-symbol
+   ((memq (car-safe expr)
+          (list backquote-backquote-symbol
+                backquote-splice-symbol))
+    (list (car expr)
           (llama--collect (cadr expr) args nil t)))
    ((symbolp expr)
     (let ((name (symbol-name expr)))
@@ -398,7 +403,10 @@ expansion, and the looks of this face should hint at 
that.")
    ((eq (ignore-errors (bare-symbol (car-safe expr))) 'quote))
    ((and (memq (car-safe expr) (list (intern "") 'llama)) (not top)))
    ((and backquoted (symbol-with-pos-p expr)))
-   ((and backquoted (eq (car-safe expr) backquote-unquote-symbol))
+   ((and backquoted
+         (memq (car-safe expr)
+               (list backquote-unquote-symbol
+                     backquote-splice-symbol)))
     (llama--fontify expr))
    ((symbol-with-pos-p expr)
     (save-match-data

Reply via email to