[uim-commit] r2185 - branches/r5rs/sigscheme
yamaken at freedesktop.org
yamaken at freedesktop.org
Sun Nov 20 07:05:40 PST 2005
Author: yamaken
Date: 2005-11-20 07:05:36 -0800 (Sun, 20 Nov 2005)
New Revision: 2185
Modified:
branches/r5rs/sigscheme/eval.c
Log:
* sigscheme/eval.c
- (call): Make argument check for continuation exact
- (map_eval): Change multiple value checking to SCM_STRICT_ARGCHECK
Modified: branches/r5rs/sigscheme/eval.c
===================================================================
--- branches/r5rs/sigscheme/eval.c 2005-11-20 15:02:47 UTC (rev 2184)
+++ branches/r5rs/sigscheme/eval.c 2005-11-20 15:05:36 UTC (rev 2185)
@@ -379,8 +379,8 @@
eval_state);
case ScmContinuation:
- if (NO_MORE_ARG(args))
- SigScm_Error("Continuation invocation lacks an argument.");
+ if (!CONSP(args) || !NULLP(CDR(args)))
+ ERR("continuation takes exactly one argument");
Scm_CallContinuation(proc,
suppress_eval ? CAR(args) : EVAL(CAR(args), env));
/* NOTREACHED */
@@ -584,17 +584,17 @@
/* eval each element of args */
result = CONS(EVAL(CAR(args), env), SCM_NULL);
-#if SCM_STRICT_R5RS
+#if SCM_STRICT_ARGCHECK
if (VALUEPACKETP(CAR(result)))
- SigScm_Error("multiple values are not allowed here");
+ ERR_OBJ("multiple values are not allowed here", CAR(result));
#endif
tail = result;
newtail = SCM_NULL;
for (args = CDR(args); !NULLP(args); args = CDR(args)) {
newtail = CONS(EVAL(CAR(args), env), SCM_NULL);
-#if SCM_STRICT_R5RS
+#if SCM_STRICT_ARGCHECK
if (VALUEPACKETP(CAR(newtail)))
- SigScm_Error("multiple values are not allowed here");
+ ERR_OBJ("multiple values are not allowed here", CAR(newtail));
#endif
SET_CDR(tail, newtail);
tail = newtail;
More information about the uim-commit
mailing list