From f4ab08f73bc1d16d4971a16a0a66b5621af77572 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 27 Jun 2015 07:16:20 -0700 Subject: Fix TXR 97 regression in quasiliterals. * eval.c (expand_quasi): When the modifiers argument of a var item is expanded, the expansion incorrectly places it as the fourth item rather than third. This is effectively a continuation of the incomplete regression fix that was applied on 2014-08-29. The breakage is that `@{(expr) modifier}` ignores modifier whenever (expr) is an expression that undergoes expansion. --- ChangeLog | 11 +++++++++++ eval.c | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c0c3717b..38b3d83a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2015-06-27 Kaz Kylheku + + Fix TXR 97 regression in quasiliterals. + + * eval.c (expand_quasi): When the modifiers argument of a var + item is expanded, the expansion incorrectly places it as the + fourth item rather than third. This is effectively a continuation + of the incomplete regression fix that was applied on 2014-08-29. + The breakage is that `@{(expr) modifier}` ignores modifier + whenever (expr) is an expression that undergoes expansion. + 2015-06-26 Kaz Kylheku Third round of quasiliteral-related fixes. diff --git a/eval.c b/eval.c index 1b9b7805..c7cd95d8 100644 --- a/eval.c +++ b/eval.c @@ -2371,7 +2371,7 @@ static val expand_quasi(val quasi_forms, val menv) val mods_ex = expand_forms(mods, menv); if (param_ex != param || mods_ex != mods) - form_ex = rlcp(list(sym, param_ex, nil, mods_ex, nao), form); + form_ex = rlcp(list(sym, param_ex, mods_ex, nao), form); } } -- cgit v1.2.3