summaryrefslogtreecommitdiff
path: root/libguile/eval.c
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>2003-11-17 16:52:05 +0000
committerMarius Vollmer <mvo@zagadka.de>2003-11-17 16:52:05 +0000
commit6d1a2e9f4b676011b029505c602f523bd1aeb64e (patch)
treec7f6e8765ca9bf66c945e87c86c2a668e2844597 /libguile/eval.c
parentaff7e166e8a11a5a014e3de757a6b8060d0dba09 (diff)
downloadguile-6d1a2e9f4b676011b029505c602f523bd1aeb64e.tar.gz
(scm_m_generalized_set_x): Macroexpand the target when it
is a list. This allows (@ ...) to work with set!. (scm_m_generalized_set_x): Use ASSERT_SYNTAX_2 instead of SCM_ASSYNT.
Diffstat (limited to 'libguile/eval.c')
-rw-r--r--libguile/eval.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libguile/eval.c b/libguile/eval.c
index c8a534501..d6135b407 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -1958,8 +1958,9 @@ scm_m_generalized_set_x (SCM expr, SCM env)
&& SCM_NULLP (SCM_CDDR (exp_target)))
{
exp_target= SCM_CADR (exp_target);
- SCM_ASSYNT (SCM_SYMBOLP (exp_target) || SCM_VARIABLEP (exp_target),
- s_bad_variable, s_set_x);
+ ASSERT_SYNTAX_2 (SCM_SYMBOLP (exp_target)
+ || SCM_VARIABLEP (exp_target),
+ s_bad_variable, exp_target, expr);
return scm_cons (SCM_IM_SET_X, scm_cons (exp_target,
SCM_CDR (cdr_expr)));
}