-SCM
-Score::mark_smob (SCM s)
-{
- Score * sc = (Score*) SCM_CELL_WORD_1 (s);
-
- scm_gc_mark (sc->header_);
- for (int i = sc->defs_.size (); i--;)
- scm_gc_mark (sc->defs_[i]->self_scm ());
-
- return sc->music_;
-}
-
-int
-Score::print_smob (SCM , SCM p, scm_print_state*)
-{
- scm_puts ("#<Score>", p);
-
- return 1;
+ if (Global_context *g = dynamic_cast<Global_context*>
+ (unsmob_context (context)))
+ {
+ SCM systems = ly_format_output (context, outname);
+ Music_output *output = g->get_output ();
+ if (systems != SCM_UNDEFINED)
+ {
+ Paper_score *ps = dynamic_cast<Paper_score*> (output);
+
+ paper_book->papers_.push (ps->paper_);
+ paper_book->scores_.push (systems);
+ paper_book->global_headers_.push (global_input_file->header_);
+ paper_book->headers_.push (header);
+ if (output_format_global != PAGE_LAYOUT)
+ paper_book->classic_output (ly_scm2string (outname));
+ }
+ delete output;
+ }