diff --git a/THANKS b/THANKS index dbabae485..2845273c9 100644 --- a/THANKS +++ b/THANKS @@ -18,6 +18,7 @@ For fixes or providing information which led to a fix: George Caswell Chris Cramer I. N. Golubev + Martin Grabmueller Brad Knotwell Matthias Köppe Bruce Korb diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 572ae53ce..4e1bce790 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,9 @@ +2001-01-19 Dirk Herrmann + + * eval.c (scm_m_case): The 'else' clause of a 'case' statement + now has to be the last clause, as required by R5RS. Thanks to + Martin Grabmueller for the patch. + 2001-01-18 Gary Houston * ioext.c: further simplify scm_read_string_x_partial by defining diff --git a/libguile/eval.c b/libguile/eval.c index b7cf5be11..feb7808c5 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -595,7 +595,8 @@ scm_m_case (SCM xorig, SCM env) proc = SCM_CAR (x); SCM_ASSYNT (scm_ilength (proc) >= 2, xorig, scm_s_clauses, s_case); SCM_ASSYNT (scm_ilength (SCM_CAR (proc)) >= 0 - || SCM_EQ_P (scm_sym_else, SCM_CAR (proc)), + || (SCM_EQ_P (scm_sym_else, SCM_CAR (proc)) + && SCM_NULLP (SCM_CDR (x))), xorig, scm_s_clauses, s_case); } return scm_cons (SCM_IM_CASE, cdrx);