summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-01-28 19:01:31 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-01-28 19:01:31 -0800
commit9fabcf6f295bcd8676dda77e74e8fc605f5df1f6 (patch)
treefb53fcaec17ffccc37e73bc6ec4fdb1a1ca47e50
parent293eeef3fca41458568340d20fdbdf4262036332 (diff)
downloadtxr-9fabcf6f295bcd8676dda77e74e8fc605f5df1f6.tar.gz
txr-9fabcf6f295bcd8676dda77e74e8fc605f5df1f6.tar.bz2
txr-9fabcf6f295bcd8676dda77e74e8fc605f5df1f6.zip
* eval.c (bind_macro_params): Bugfix: the colon argument's special
meaning "treat the argument as missing" must apply only to optional parameters.
-rw-r--r--ChangeLog6
-rw-r--r--eval.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 43a0b236..d197bbf6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-28 Kaz Kylheku <kaz@kylheku.com>
+
+ * eval.c (bind_macro_params): Bugfix: the colon argument's special
+ meaning "treat the argument as missing" must apply only to optional
+ parameters.
+
2015-01-27 Kaz Kylheku <kaz@kylheku.com>
* lib.c (make_like): Fix regression introduced in 102.
diff --git a/eval.c b/eval.c
index 8a795f12..8bc38a4b 100644
--- a/eval.c
+++ b/eval.c
@@ -791,7 +791,7 @@ static val bind_macro_params(val env, val menv, val params, val form,
}
if (consp(form)) {
- if (car(form) == colon_k) {
+ if (optargs && car(form) == colon_k) {
form = cdr(form);
goto noarg;
}