X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpaper-outputter.cc;h=bb9c3812cf8ed9138793f8a04dcc8f1efdaf3c48;hb=334fe0d65dbcbb1cd69df39ca8bb8e422cf9d784;hp=6824f893ca29ed1c4dae4ab149107aa843907cd2;hpb=99433c54bea756a38ed6b2a70bc8c90cd0d37902;p=lilypond.git diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index 6824f893ca..bb9c3812cf 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -38,9 +38,6 @@ Paper_outputter::Paper_outputter (String filename, String format) smobify_self (); filename_ = filename; - file_ = scm_open_file (scm_makfrom0str (filename.to_str0 ()), - scm_makfrom0str ("w")); - String module_name = "scm output-" + format; output_module_ = scm_c_resolve_module (module_name.to_str0 ()); } @@ -64,14 +61,24 @@ Paper_outputter::mark_smob (SCM x) int Paper_outputter::print_smob (SCM x, SCM p, scm_print_state*) { + (void) x; scm_puts ("#", p); return 1; } +SCM +Paper_outputter::file () +{ + if (file_ == SCM_EOL) + file_ = scm_open_file (scm_makfrom0str (filename_.to_str0 ()), + scm_makfrom0str ("w")); + return file_; +} + SCM Paper_outputter::dump_string (SCM scm) { - return scm_display (scm, file_); + return scm_display (scm, file ()); } SCM @@ -97,7 +104,7 @@ 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)); } Paper_outputter * @@ -106,7 +113,6 @@ get_paper_outputter (String outname, String f) progress_indication (_f ("paper output to `%s'...", outname == "-" ? String ("") : outname)); return new Paper_outputter (outname, f); - } /* FIXME: why is output_* wrapper called dump? */ @@ -114,14 +120,11 @@ LY_DEFINE (ly_outputter_dump_stencil, "ly:outputter-dump-stencil", 2, 0, 0, (SCM outputter, SCM stencil), "Dump stencil @var{expr} onto @var{outputter}.") { - Paper_outputter *po = unsmob_outputter (outputter); + Paper_outputter *po = unsmob_outputter (outputter); Stencil *st = unsmob_stencil (stencil); - SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter"); SCM_ASSERT_TYPE (st, stencil, SCM_ARG1, __FUNCTION__, "Paper_outputter"); - po->output_stencil (*st); - return SCM_UNSPECIFIED; } @@ -129,7 +132,7 @@ LY_DEFINE (ly_outputter_dump_string, "ly:outputter-dump-string", 2, 0, 0, (SCM outputter, SCM str), "Dump @var{str} onto @var{outputter}.") { - Paper_outputter *po = unsmob_outputter (outputter); + Paper_outputter *po = unsmob_outputter (outputter); SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter"); SCM_ASSERT_TYPE (ly_c_string_p (str), str, SCM_ARG1, __FUNCTION__, "Paper_outputter");