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);
};
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);
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
void
interpret_stencil_expression (SCM expr,
- void (*func) (void *, SCM),
+ SCM (*func) (void *, SCM),
void *func_arg,
Offset o)
{
SCM fonts_;
};
-static void
+static SCM
find_font_function (void *fs, SCM x)
{
Font_list *me = (Font_list *) fs;
me->fonts_ = scm_cons (scm_cadr (what), me->fonts_);
}
}
+ return SCM_BOOL_T;
}
SCM
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",