X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbook.cc;h=87df4efe841e33cf9b7d9317b7df960cb112aadb;hb=6eeb079ba4ed77997316262c842b215016dfe1e7;hp=f007e6263077f88a1e108856f4bc5c38eae98c64;hpb=8a099812dc626f36699fbef0dba05901ac0315b7;p=lilypond.git diff --git a/lily/book.cc b/lily/book.cc index f007e62630..87df4efe84 100644 --- a/lily/book.cc +++ b/lily/book.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2005 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ #include "book.hh" @@ -38,6 +38,12 @@ Book::Book () smobify_self (); } +Book* +Book::clone () const +{ + return new Book (*this); +} + Book::~Book () { } @@ -75,6 +81,7 @@ Book::add_score (SCM s) scores_ = scm_cons (s, scores_); } + /* Concatenate all score outputs into a Paper_book */ Paper_book * @@ -86,12 +93,12 @@ Book::process (Output_def *default_paper, if (score->error_found_) return 0; - Output_def *paper = paper_ ? default_paper : paper_; + Output_def *paper = paper_ ? paper_ : default_paper; if (!paper) return 0; Paper_book *paper_book = new Paper_book (); - Real scale = scm_to_double (paper->c_variable ("outputscale")); + Real scale = scm_to_double (paper->c_variable ("output-scale")); Output_def *scaled_bookdef = scale_output_def (paper, scale); Object_key *key = new Lilypond_general_key (0, user_key_, 0); @@ -118,10 +125,9 @@ Book::process (Output_def *default_paper, paper_book->add_performance (perf->self_scm ()); else if (Paper_score *pscore = dynamic_cast (output)) { - SCM systems = pscore->get_paper_systems (); if (ly_is_module (score->header_)) paper_book->add_score (score->header_); - paper_book->add_score (systems); + paper_book->add_score (pscore->self_scm ()); } outputs = scm_cdr (outputs); @@ -136,3 +142,4 @@ Book::process (Output_def *default_paper, scm_remember_upto_here_1 (scm_key); return paper_book; } +