- progress_indication (_f ("paper output to `%s'...", "<markup>"));
- return (unsmob_page (ly_car (pages)))->to_stencil ().smobbed_copy ();
+ if (Score *score = unsmob_score (scm_car (s)))
+ {
+ SCM outputs = score
+ ->book_rendering (paper_book->paper_, default_layout, key);
+
+ while (scm_is_pair (outputs))
+ {
+ Music_output *output = unsmob_music_output (scm_car (outputs));
+
+ if (Performance *perf = dynamic_cast<Performance *> (output))
+ paper_book->add_performance (perf->self_scm ());
+ else if (Paper_score *pscore = dynamic_cast<Paper_score *> (output))
+ {
+ if (ly_is_module (score->header_))
+ paper_book->add_score (score->header_);
+ paper_book->add_score (pscore->self_scm ());
+ }
+
+ outputs = scm_cdr (outputs);
+ }
+ }
+ else if (Text_interface::is_markup (scm_car (s)))
+ paper_book->add_score (scm_car (s));
+ else
+ assert (0);