diff options
author | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2001-01-19 17:16:52 +0000 |
---|---|---|
committer | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2001-01-19 17:16:52 +0000 |
commit | 4567ed787c01a8a8510a5c4ad6ca24e199ffe21c (patch) | |
tree | db5ccf96e926b3d5f44a93d452bcda1c6951a35f /libguile | |
parent | 6c29a390fab934c0e37e459d2e03449dc1a8920c (diff) | |
download | guile-4567ed787c01a8a8510a5c4ad6ca24e199ffe21c.tar.gz |
* Applied Martin Grabmueller's fix of case's handling of 'else.
Diffstat (limited to 'libguile')
-rw-r--r-- | libguile/ChangeLog | 6 | ||||
-rw-r--r-- | libguile/eval.c | 3 |
2 files changed, 8 insertions, 1 deletions
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 <D.Herrmann@tu-bs.de> + + * 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 <ghouston@arglist.com> * 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); |