From 23b009d7136ec24fe60591a688866a132404f0e5 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 11 Apr 2004 15:15:51 +0000 Subject: [PATCH] * input/test/title-markup.ly: Add \noPagebreak test. * lily/score-engraver.cc (try_music): Bugfix. --- ChangeLog | 6 ++++++ input/test/title-markup.ly | 10 +++++++++- lily/score-engraver.cc | 17 ++++++----------- lily/system.cc | 12 +----------- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index f6d75da182..37e8c13e3e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-04-11 Jan Nieuwenhuizen + + * input/test/title-markup.ly: Add \noPagebreak test. + + * lily/score-engraver.cc (try_music): Bugfix. + 2004-04-11 Han-Wen Nienhuys * lily/main.cc (main_with_guile): call lilypond-main diff --git a/input/test/title-markup.ly b/input/test/title-markup.ly index bc0641e5f7..63b1ecd010 100644 --- a/input/test/title-markup.ly +++ b/input/test/title-markup.ly @@ -85,6 +85,9 @@ spaceTest = \markup { "two space chars" } %% bookTitle = \markup { \fill-line < \huge\bold \title > > } } +%% suggest harder :-) +%% noPagebreak = #(make-event-chord (list (make-penalty-music 0 1e9))) + \book { \score { @@ -101,7 +104,12 @@ spaceTest = \markup { "two space chars" } %% stress page breaking: %% 35 keep on 3 pages %% 36 spread evenly over 4 pages - \repeat unfold 36 { a b c d \break } + \repeat unfold 6 { a b c d \break } + + %% FIXME: TODO factor \pagebreak \noPagebreak into regtest + %% Without this, page breaks are better, after measure: 12 + \noPagebreak + \repeat unfold 30 { a b c d \break } c1 } \header { diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 52e6c63ba3..818bb2ac5f 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -280,17 +280,12 @@ Score_engraver::try_music (Music *m) forbid_breaks (); SCM page_pen = command_column_->get_property ("page-penalty"); - if (is_number (page_pen)) - { - Real total_pp = ly_scm2double (page_pen); - SCM mpage_pen = m->get_property ("page-penalty"); - if (is_number (mpen)) - total_pp += ly_scm2double (mpage_pen); - - // FIXME: this never reaches a grob that System::get_line sees. - command_column_->set_property ("page-penalty", - scm_make_real (total_pp)); - } + Real total_pp = is_number (page_pen) ? ly_scm2double (page_pen) : 0.0; + SCM mpage_pen = m->get_property ("page-penalty"); + if (is_number (mpage_pen)) + total_pp += ly_scm2double (mpage_pen); + + command_column_->set_property ("page-penalty", scm_make_real (total_pp)); return true; } return false; diff --git a/lily/system.cc b/lily/system.cc index 1e6a24446c..00a7caf69b 100644 --- a/lily/system.cc +++ b/lily/system.cc @@ -362,27 +362,17 @@ System::get_line () unsmob_stencil (my_stencil)->translate (o + extra); stencils = scm_cons (my_stencil, stencils); -#if 0 - // FIXME: never original - if (!penalty || g->original_) + if (g->original_) { if (Item *it = dynamic_cast (g)) { Grob *col = it->get_column (); SCM s = col->get_property ("page-penalty"); - // FIXME: 'page-penalty is never set // FIXME; page breaking is not discrete at +-10000 if (is_number (s)) // && fabs (ly_scm2double (s)) < 10000) penalty += ly_scm2double (s); } } -#else - SCM s = g->get_property ("page-penalty"); - // FIXME: 'page-penalty is never set - // FIXME; page breaking is not discrete at +-10000 - if (is_number (s)) // && fabs (ly_scm2double (s)) < 10000) - penalty += ly_scm2double (s); -#endif } Interval x (extent (this, X_AXIS)); -- 2.39.5