[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