2009/6/14 Reinhold Kainhofer <[email protected]>: > 2) If I have extender lines turned on, it is not possible to print markup as a > figure inside the Staff context. If I try this, I always get the same extender > warning and no figure is shown: > Programmierfehler: must have Item for spanner bound of BassFigureContinuation
I think the only solution for this is to patch the Figured_bass_engraver (see attached patch). Regards, Neil
From 7f3126eae268432298db41a18a6228ca3ad6d0bf Mon Sep 17 00:00:00 2001 From: Neil Puttock <[email protected]> Date: Sun, 14 Jun 2009 22:28:44 +0100 Subject: [PATCH] Make figured bass markup work when using extenders. --- lily/figured-bass-engraver.cc | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lily/figured-bass-engraver.cc b/lily/figured-bass-engraver.cc index f9ed332..f62b6b0 100644 --- a/lily/figured-bass-engraver.cc +++ b/lily/figured-bass-engraver.cc @@ -31,6 +31,7 @@ struct Figure_group SCM augmented_; SCM diminished_; SCM augmented_slash_; + SCM text_; Item *figure_item_; Stream_event *current_event_; @@ -46,6 +47,7 @@ struct Figure_group augmented_ = SCM_EOL; diminished_ = SCM_EOL; augmented_slash_ = SCM_EOL; + text_ = SCM_EOL; group_ = 0; current_event_ = 0; } @@ -63,7 +65,9 @@ struct Figure_group && ly_is_equal (diminished_, current_event_->get_property ("diminished")) && ly_is_equal (augmented_slash_, - current_event_->get_property ("augmented-slash")); + current_event_->get_property ("augmented-slash")) + && ly_is_equal (text_, + current_event_->get_property ("text")); } }; @@ -106,6 +110,7 @@ Figured_bass_engraver::derived_mark () const scm_gc_mark (groups_[i].augmented_); scm_gc_mark (groups_[i].diminished_); scm_gc_mark (groups_[i].augmented_slash_); + scm_gc_mark (groups_[i].text_); } } @@ -177,10 +182,12 @@ Figured_bass_engraver::listen_bass_figure (Stream_event *ev) if (to_boolean (get_property ("useBassFigureExtenders"))) { SCM fig = ev->get_property ("figure"); + SCM txt = ev->get_property ("text"); for (vsize i = 0; i < groups_.size (); i++) { if (!groups_[i].current_event_ - && ly_is_equal (groups_[i].number_, fig)) + && (ly_is_equal (groups_[i].number_, fig) + || ly_is_equal (groups_[i].text_, txt))) { groups_[i].current_event_ = ev; groups_[i].force_no_continuation_ @@ -366,6 +373,7 @@ Figured_bass_engraver::process_music () groups_[i].augmented_ = SCM_BOOL_F; groups_[i].diminished_ = SCM_BOOL_F; groups_[i].augmented_slash_ = SCM_BOOL_F; + groups_[i].text_ = SCM_BOOL_F; } } @@ -472,8 +480,9 @@ Figured_bass_engraver::create_grobs () group.augmented_ = group.current_event_->get_property ("augmented"); group.diminished_ = group.current_event_->get_property ("diminished"); group.augmented_slash_ = group.current_event_->get_property ("augmented-slash"); + group.text_ = group.current_event_->get_property ("text"); - SCM text = group.current_event_->get_property ("text"); + SCM text = group.text_; if (!Text_interface::is_markup (text) && ly_is_procedure (proc)) { -- 1.6.0.4
_______________________________________________ lilypond-user mailing list [email protected] http://lists.gnu.org/mailman/listinfo/lilypond-user
