From: David Kastrup Date: Sun, 4 Aug 2013 22:53:57 +0000 (+0200) Subject: Let second argument of interpret_stencil_expression return an SCM value X-Git-Tag: release/2.17.24-1~7 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=77853b782ac17fd7a8e231e3b8803b92af9694c3;p=lilypond.git Let second argument of interpret_stencil_expression return an SCM value --- diff --git a/lily/include/paper-outputter.hh b/lily/include/paper-outputter.hh index 1ac0a74dfd..ef1b1b7a22 100644 --- a/lily/include/paper-outputter.hh +++ b/lily/include/paper-outputter.hh @@ -46,7 +46,7 @@ public: SCM dump_string (SCM); SCM file () const; SCM module () const; - void output_scheme (SCM scm); + SCM output_scheme (SCM scm); void output_stencil (Stencil); SCM scheme_to_string (SCM); }; diff --git a/lily/include/stencil.hh b/lily/include/stencil.hh index 6a89e022da..34bafa6d41 100644 --- a/lily/include/stencil.hh +++ b/lily/include/stencil.hh @@ -93,7 +93,7 @@ public: DECLARE_UNSMOB (Stencil, stencil); void interpret_stencil_expression (SCM expr, - void (*func) (void *, SCM), + SCM (*func) (void *, SCM), void *func_arg, Offset o); SCM find_expression_fonts (SCM expr); diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index 57efb2fb35..06b490472c 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -105,17 +105,20 @@ Paper_outputter::module () const return output_module_; } -void +SCM Paper_outputter::output_scheme (SCM scm) { - dump_string (scheme_to_string (scm)); + SCM str = scheme_to_string (scm); + if (scm_is_string (str)) + dump_string (str); + return str; } -void +SCM paper_outputter_dump (void *po, SCM x) { Paper_outputter *me = (Paper_outputter *) po; - me->output_scheme (x); + return me->output_scheme (x); } void diff --git a/lily/stencil-interpret.cc b/lily/stencil-interpret.cc index 8214af5dcc..d3966c94af 100644 --- a/lily/stencil-interpret.cc +++ b/lily/stencil-interpret.cc @@ -21,7 +21,7 @@ void interpret_stencil_expression (SCM expr, - void (*func) (void *, SCM), + SCM (*func) (void *, SCM), void *func_arg, Offset o) { @@ -133,7 +133,7 @@ struct Font_list SCM fonts_; }; -static void +static SCM find_font_function (void *fs, SCM x) { Font_list *me = (Font_list *) fs; @@ -152,6 +152,7 @@ find_font_function (void *fs, SCM x) me->fonts_ = scm_cons (scm_cadr (what), me->fonts_); } } + return SCM_BOOL_T; } SCM diff --git a/lily/stencil-scheme.cc b/lily/stencil-scheme.cc index e799f53a4a..ab0f8cf745 100644 --- a/lily/stencil-scheme.cc +++ b/lily/stencil-scheme.cc @@ -315,10 +315,10 @@ struct Stencil_interpret_arguments SCM arg1; }; -void stencil_interpret_in_scm (void *p, SCM expr) +SCM stencil_interpret_in_scm (void *p, SCM expr) { Stencil_interpret_arguments *ap = (Stencil_interpret_arguments *) p; - scm_call_2 (ap->func, ap->arg1, expr); + return scm_call_2 (ap->func, ap->arg1, expr); } LY_DEFINE (ly_interpret_stencil_expression, "ly:interpret-stencil-expression",