summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-04-04 23:27:13 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-04-04 23:27:13 -0700
commit2a97c855efa10947a59ffce5d971f41af0585ce4 (patch)
treeb1dc829c2a86d535e6672a6a785e6e0e672c7da9
parent42de5a4346c5a796b836d8c8b49f2ecc7116b468 (diff)
downloadtxr-2a97c855efa10947a59ffce5d971f41af0585ce4.tar.gz
txr-2a97c855efa10947a59ffce5d971f41af0585ce4.tar.bz2
txr-2a97c855efa10947a59ffce5d971f41af0585ce4.zip
compiler: bugfix: broken Lisp forms in quasiquote.
* share/txr/stdlib/compiler.tl (expand-quasi-args): When the element of the quasiquote is a compound form, we can't just return it. Firstly, because we are appending, we must wrap each returned item in a list. Secondly, we must wrap the form in code which formats it into a string consistently.
-rw-r--r--share/txr/stdlib/compiler.tl2
1 files changed, 1 insertions, 1 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index b0942a15..1926885e 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -1089,7 +1089,7 @@
(sys:var (mac-param-bind form (sym exp : mods) el
(list (expand-quasi-mods exp mods))))
(sys:quasi (expand-quasi-mods el))
- (t el)))
+ (t (list ^(sys:fmt-simple ,el nil nil nil nil)))))
((bindable el)
(list ^(sys:fmt-simple ,el nil nil nil nil)))
(t