/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
LilyPond is free software: you can redistribute it and/or modify
#include "ly-smobs.icc"
-Paper_outputter::Paper_outputter (SCM port, string format)
+Paper_outputter::Paper_outputter (SCM port, const string &format)
{
file_ = port;
output_module_ = SCM_EOL;
int
Paper_outputter::print_smob (SCM /* x */,
- SCM p,
- scm_print_state *)
+ SCM p,
+ scm_print_state *)
{
scm_puts ("#<Paper_outputter>", p);
return 1;
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
Paper_outputter::output_stencil (Stencil stil)
{
interpret_stencil_expression (stil.expr (), paper_outputter_dump,
- (void *) this, Offset (0, 0));
+ (void *) this, Offset (0, 0));
}
void
{
scm_close_port (file_);
/*
- Remove the "warning" definitions for missing stencil
- expressions so that we start fresh with the next \book
- block. --pmccarty
+ Remove the "warning" definitions for missing stencil
+ expressions so that we start fresh with the next \book
+ block. --pmccarty
*/
SCM proc = ly_lily_module_constant ("remove-stencil-warnings");
scm_call_1 (proc, output_module_);