diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 892f631e9..a4cc49e64 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,10 @@ +2001-06-05 Dirk Herrmann + + * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro. + + (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls + to SCM_VALIDATE_NON_EMPTY_COMBINATION. + 2001-06-05 Marius Vollmer * extensions.c (scm_c_register_extension): Allow NULL as library diff --git a/libguile/eval.c b/libguile/eval.c index df458d50a..ee577c1e1 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -106,6 +106,14 @@ char *alloca (); +#define SCM_VALIDATE_NON_EMPTY_COMBINATION(x) \ + do { \ + if (SCM_EQ_P ((x), SCM_EOL)) \ + scm_misc_error (NULL, scm_s_expression, SCM_EOL); \ + } while (0) + + + /* The evaluator contains a plethora of EVAL symbols. * This is an attempt at explanation. * @@ -1979,7 +1987,7 @@ dispatch: goto nontoplevel_begin; } else - SCM_EVALIM2 (SCM_CAR (x)); + SCM_VALIDATE_NON_EMPTY_COMBINATION (SCM_CAR (x)); } else SCM_CEVAL (SCM_CAR (x), env); @@ -3515,7 +3523,7 @@ tail: goto again; } else - SCM_EVALIM2 (SCM_CAR (proc)); + SCM_VALIDATE_NON_EMPTY_COMBINATION (SCM_CAR (proc)); } else SCM_CEVAL (SCM_CAR (proc), args);