]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/page-spacing.cc
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / lily / page-spacing.cc
index 7e20f8416c5aa534983068a7987cfab5a85ec78e..97c68a5e29ebae8d1ca48151568843940ea0d8b6 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2006--2011 Joe Neeman <joeneeman@gmail.com>
+  Copyright (C) 2006--2015 Joe Neeman <joeneeman@gmail.com>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -102,8 +102,8 @@ Page_spacing::account_for_footnotes (Line_details const &line)
              : 0.0))
          +
          (footnote_height
-          - (has_footnotes_
-             ? breaker_->footnote_padding () + breaker_->footnote_footer_padding ()
+          + (has_footnotes_
+             ? breaker_->footnote_padding () + breaker_->footnote_footer_padding ()
              : 0.0));
 }
 
@@ -155,6 +155,9 @@ Page_spacer::solve ()
     }
 
   Page_spacing_result ret;
+  if (simple_state_.empty ())
+    return ret;
+
   ret.penalty_ = simple_state_.back ().penalty_
                  + lines_.back ().page_penalty_ + lines_.back ().turn_penalty_;
   ret.system_count_status_ = simple_state_.back ().system_count_status_;
@@ -326,7 +329,7 @@ Page_spacer::calc_subproblem (vsize page, vsize line)
       space.prepend_system (lines_[page_start]);
 
       bool overfull = (space.rod_height_ > paper_height
-                       || (ragged
+                       || (ragged_
                            && (space.rod_height_ + space.spring_len_ > paper_height)));
       // This 'if' statement is a little hard to parse. It won't consider this configuration
       // if it is overfull unless the current configuration is the first one with this start
@@ -385,7 +388,8 @@ Page_spacer::calc_subproblem (vsize page, vsize line)
         }
 
       if (page_start > 0
-          && lines_[page_start - 1].page_permission_ == ly_symbol2scm ("force"))
+          && scm_is_eq (lines_[page_start - 1].page_permission_,
+                        ly_symbol2scm ("force")))
         break;
     }
   return !isinf (cur.demerits_);