From 334e70b9574054547298b6456696ea8b0b443604 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sat, 3 Jun 2006 12:25:27 +0000 Subject: [PATCH] * lily/lyric-combine-music-iterator.cc (find_voice): return 0 if nothing changes. (Erik S) * lily/percent-repeat-iterator.cc (get_music_list): fix repeat count. (Erik S) --- ChangeLog | 8 ++++++++ lily/lyric-combine-music-iterator.cc | 12 ++++++++++-- lily/percent-repeat-iterator.cc | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d3b96d5ab..334fe29a84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-06-03 Han-Wen Nienhuys + + * lily/lyric-combine-music-iterator.cc (find_voice): return 0 if + nothing changes. (Erik S) + + * lily/percent-repeat-iterator.cc (get_music_list): fix repeat + count. (Erik S) + 2006-05-28 Nicolas Sceaux * scm/define-markup-commands.scm (whiteout): do not force diff --git a/lily/lyric-combine-music-iterator.cc b/lily/lyric-combine-music-iterator.cc index 14d3959cee..8501d3f5b2 100644 --- a/lily/lyric-combine-music-iterator.cc +++ b/lily/lyric-combine-music-iterator.cc @@ -202,7 +202,11 @@ Lyric_combine_music_iterator::check_new_context (SCM sev) } /* -Look for a suitable voice to align lyrics to. + Look for a suitable voice to align lyrics to. + + Returns 0 if nothing should change; i.e., if we already listen to the + right voice, or if we don't yet listen to a voice but no appropriate + voice could be found. */ Context * Lyric_combine_music_iterator::find_voice () @@ -232,7 +236,11 @@ Lyric_combine_music_iterator::find_voice () void Lyric_combine_music_iterator::process (Moment) { - find_voice (); + /* see if associatedVoice has been changed */ + Context *new_voice = find_voice (); + if (new_voice) + set_music_context (new_voice); + if (!music_context_) return; diff --git a/lily/percent-repeat-iterator.cc b/lily/percent-repeat-iterator.cc index 7ba527da5d..27481cf1ab 100644 --- a/lily/percent-repeat-iterator.cc +++ b/lily/percent-repeat-iterator.cc @@ -34,7 +34,7 @@ Percent_repeat_iterator::get_music_list () const percent->set_spot (*mus->origin ()); percent->set_property ("length", length); if (repeats > 1) - percent->set_property ("repeat-count", scm_int2num (i - 1)); + percent->set_property ("repeat-count", scm_int2num (i)); child_list = scm_cons (percent->unprotect (), child_list); } child_list = scm_cons (child->self_scm (), child_list); -- 2.39.2