+SCM
+ly_str02scm (char const*c)
+{
+ // this all really sucks, guile should take char const* arguments!
+ return gh_str02scm ((char*)c);
+}
+
+SCM
+ly_ch_C_eval_scm (char const*c)
+{
+ // this all really sucks, guile should take char const* arguments!
+ return gh_eval_str ((char*)c);
+}
+
+
+/*
+ Pass string to scm parser, evaluate one expression.
+ Return result value and #chars read.
+
+ Thanks to Gary Houston <ghouston@freewire.co.uk>
+
+ Need guile-1.3.4 (>1.3 anyway) for ftell on str ports -- jcn
+*/
+SCM
+ly_parse_scm (char const* s, int* n)
+{
+ SCM str = gh_str02scm ((char*)s);
+ SCM port = scm_mkstrport (SCM_INUM0, str, SCM_OPN | SCM_RDNG,
+ "scm_eval_0str");
+ SCM from = scm_ftell (port);