X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbook.cc;h=48a5a4c5524c49dbfd95b0977b9104872ff69bff;hb=f525dfd4dd6493c3b81001c8752a02c165908292;hp=96243e1b954647127c7dc50d4bd51ed1293618cb;hpb=1d4e8083422321e7e4a6d92d1ed99980a4cbf5f6;p=lilypond.git diff --git a/lily/book.cc b/lily/book.cc index 96243e1b95..48a5a4c552 100644 --- a/lily/book.cc +++ b/lily/book.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2007 Han-Wen Nienhuys + (c) 1997--2009 Han-Wen Nienhuys */ #include "book.hh" @@ -200,9 +200,14 @@ Book::process_bookparts (Paper_book *output_paper_book, Output_def *paper, Outpu { Paper_book *paper_book_part = book->process (paper, layout, output_paper_book); if (paper_book_part) - output_paper_book->add_bookpart (paper_book_part->self_scm ()); + { + output_paper_book->add_bookpart (paper_book_part->self_scm ()); + paper_book_part->unprotect (); + } } } + /* In a Paper_book, bookparts are stored in straight order */ + output_paper_book->bookparts_ = scm_reverse_x (output_paper_book->bookparts_, SCM_EOL); } void @@ -263,6 +268,7 @@ Book::process (Output_def *default_paper, paper_book->paper_->parent_ = parent_part->paper_; } paper_book->header_ = header_; + scaled_bookdef->unprotect (); if (scm_is_pair (bookparts_)) {