summaryrefslogtreecommitdiff
path: root/guix/gexp.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-01-01 22:22:14 +0100
committerLudovic Courtès <ludo@gnu.org>2017-01-01 23:30:30 +0100
commit5e2e4a51f93f98c35824e4a7f5a88274d1551b4c (patch)
treea177456b845a28b17fdb62f5f4babf7ab10d657e /guix/gexp.scm
parent4a6e889feba7bb382bb9e356d15e8260a256ced4 (diff)
downloadgnu-guix-5e2e4a51f93f98c35824e4a7f5a88274d1551b4c.tar
gnu-guix-5e2e4a51f93f98c35824e4a7f5a88274d1551b4c.tar.gz
gexp: Support 'ungexp' forms in improper lists.
* guix/gexp.scm (gexp)[collect-escapes, substitute-references]: Replace the (exp0 exp ...) patterns with (exp0 . exp) to match improper lists. Adjust clause bodies accordingly. * tests/gexp.scm ("one input package, dotted list"): New test.
Diffstat (limited to 'guix/gexp.scm')
-rw-r--r--guix/gexp.scm8
1 files changed, 4 insertions, 4 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 79a7b18b09..1f7fbef0a0 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -812,9 +812,9 @@ environment."
(cons exp result))
((ungexp-native-splicing _ ...)
(cons exp result))
- ((exp0 exp ...)
+ ((exp0 . exp)
(let ((result (loop #'exp0 result)))
- (fold loop result #'(exp ...))))
+ (loop #'exp result)))
(_
result))))
@@ -875,9 +875,9 @@ environment."
(substitute-ungexp-splicing exp substs))
(((ungexp-native-splicing _ ...) rest ...)
(substitute-ungexp-splicing exp substs))
- ((exp0 exp ...)
+ ((exp0 . exp)
#`(cons #,(substitute-references #'exp0 substs)
- #,(substitute-references #'(exp ...) substs)))
+ #,(substitute-references #'exp substs)))
(x #''x)))
(syntax-case s (ungexp output)