diff --git a/libguile/strports.c b/libguile/strports.c index 34485f0b3..55ae2ed1e 100644 --- a/libguile/strports.c +++ b/libguile/strports.c @@ -254,12 +254,20 @@ SCM scm_eval_0str (expr) char *expr; { - SCM port = scm_mkstrport (SCM_MAKINUM (0), - scm_makfrom0str (expr), - SCM_OPN | SCM_RDNG, + return scm_eval_string (scm_makfrom0str (expr)); +} + + +SCM_PROC (s_eval_string, "eval-string", 1, 0, 0, scm_eval_string); + +SCM +scm_eval_string (string) + SCM string; +{ + SCM port = scm_mkstrport (SCM_MAKINUM (0), string, SCM_OPN | SCM_RDNG, "scm_eval_0str"); SCM form; - SCM ans = SCM_EOL; + SCM ans = SCM_UNSPECIFIED; /* Read expressions from that port; ignore the values. */ while ((form = scm_read (port)) != SCM_EOF_VAL) @@ -270,6 +278,7 @@ scm_eval_0str (expr) } + static int noop0 SCM_P ((SCM stream)); static int diff --git a/libguile/strports.h b/libguile/strports.h index fc0a1ed9f..ecba678e4 100644 --- a/libguile/strports.h +++ b/libguile/strports.h @@ -56,6 +56,7 @@ extern SCM scm_strprint_obj SCM_P ((SCM obj)); extern SCM scm_call_with_input_string SCM_P ((SCM str, SCM proc)); extern SCM scm_read_0str SCM_P ((char *expr)); extern SCM scm_eval_0str SCM_P ((char *expr)); +extern SCM scm_eval_string SCM_P ((SCM string)); extern void scm_init_strports SCM_P ((void)); #endif /* STRPORTSH */