+2006-06-03 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * 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 <nicolas.sceaux@free.fr>
* scm/define-markup-commands.scm (whiteout): do not force
}
/*
-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 ()
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;
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);