]> git.donarmstrong.com Git - lilypond.git/commitdiff
Fix lyric extenders to end properly when there are notes but no more lyrics.
authorChris Snyder <csnyder@adoromusicpub.com>
Mon, 16 Mar 2009 23:51:26 +0000 (16:51 -0700)
committerJoe Neeman <joeneeman@gmail.com>
Mon, 16 Mar 2009 23:51:26 +0000 (16:51 -0700)
The previous extender code only ends extenders when the next
lyric is encountered. This can lead to issues when there are additional notes,
but no more lyrics. This patch adds a check to see if a
melisma is ending, completetizing the extender if appropriate.

input/regression/lyric-extender-completion.ly [new file with mode: 0644]
lily/extender-engraver.cc

diff --git a/input/regression/lyric-extender-completion.ly b/input/regression/lyric-extender-completion.ly
new file mode 100644 (file)
index 0000000..a712c9a
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.13.0"
+
+\header {
+
+    texidoc= "A LyricExtender should end at the right place even if there are more notes in the voice than lyrics."
+
+}
+
+<<
+
+\new Staff \relative c' {
+  \new Voice = "upper" {
+    \voiceTwo
+    g'1( |
+    c,) |
+    d |
+  }
+}
+\new Lyrics \lyricsto "upper" \lyricmode { Ah __ }
+
+>>
index f3f711de0f84d9efb31664bb04b43f3ce7f8086e..041f9046ed470e9ee45a6ecbdfc0ff7d7c22784f 100644 (file)
@@ -98,6 +98,11 @@ Extender_engraver::stop_translation_timestep ()
            {
              Pointer_group_interface::add_grob (pending_extender_,
                                                 ly_symbol2scm ("heads"), h);
+             if (!melisma_busy (voice))
+               {
+                 completize_extender (pending_extender_);
+                 pending_extender_ = 0;
+               }
            }
        }
       else