]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/page-breaking.cc
Run `make grand-replace'.
[lilypond.git] / lily / page-breaking.cc
index 1bc13ffc5fac1b22b15059d93ad40bb163ece0fd..33d43fda085c0606352b58dc179b3ade3b54b367 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2008 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "page-breaking.hh"
@@ -212,6 +212,7 @@ Page_breaking::systems ()
 Real
 Page_breaking::page_height (int page_num, bool last) const
 {
+  bool last_part = ly_scm2bool (book_->paper_->c_variable ("is-last-bookpart"));
   SCM mod = scm_c_resolve_module ("scm page");
   SCM calc_height = scm_c_module_lookup (mod, "calc-printable-height");
   SCM make_page = scm_c_module_lookup (mod, "make-page");
@@ -222,7 +223,8 @@ Page_breaking::page_height (int page_num, bool last) const
   SCM page = scm_apply_0 (make_page, scm_list_n (
                   book_->self_scm (),
                   ly_symbol2scm ("page-number"), scm_from_int (page_num),
-                  ly_symbol2scm ("is-last"), scm_from_bool (last),
+                  ly_symbol2scm ("is-last-bookpart"), scm_from_bool (last_part),
+                  ly_symbol2scm ("is-bookpart-last-page"), scm_from_bool (last),
                   SCM_UNDEFINED));
   SCM height = scm_apply_1 (calc_height, page, SCM_EOL);
   return scm_to_double (height) - page_top_space_;
@@ -253,8 +255,8 @@ Page_breaking::make_pages (vector<vsize> lines_per_page, SCM systems)
 
   SCM book = book_->self_scm ();
   int first_page_number
-    = robust_scm2int (book_->paper_->c_variable ("part-first-page-number"), 1);
-  bool last_part = ly_scm2bool (book_->paper_->c_variable ("part-is-last"));
+    = robust_scm2int (book_->paper_->c_variable ("first-page-number"), 1);
+  bool last_bookpart = ly_scm2bool (book_->paper_->c_variable ("is-last-bookpart"));
   SCM ret = SCM_EOL;
   SCM label_page_table = book_->top_paper ()->c_variable ("label-page-table");
   if (label_page_table == SCM_UNDEFINED)
@@ -263,15 +265,15 @@ Page_breaking::make_pages (vector<vsize> lines_per_page, SCM systems)
   for (vsize i = 0; i < lines_per_page.size (); i++)
     {
       SCM page_num = scm_from_int (i + first_page_number);
-      bool last_from_part = (i == lines_per_page.size () - 1);
-      SCM last_from_book = scm_from_bool (last_part && last_from_part);
-      SCM rag = scm_from_bool (ragged () || (last_from_part && ragged_last ()));
+      bool partbook_last_page = (i == lines_per_page.size () - 1);
+      SCM rag = scm_from_bool (ragged () || ( partbook_last_page && ragged_last ()));
       SCM line_count = scm_from_int (lines_per_page[i]);
       SCM lines = scm_list_head (systems, line_count);
       SCM page = scm_apply_0 (make_page,
-                             scm_list_n (book, lines, page_num,
-                                         rag, last_from_book, SCM_UNDEFINED));
-
+                             scm_list_n (book, lines, page_num, rag,
+                                         scm_from_bool (last_bookpart),
+                                         scm_from_bool (partbook_last_page),
+                                         SCM_UNDEFINED));
       /* collect labels */
       for (SCM l = lines ; scm_is_pair (l)  ; l = scm_cdr (l))
        {