]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/extender-engraver.cc
Prepare introduction of Waf build system
[lilypond.git] / lily / extender-engraver.cc
index efbb82d05c433b299044b52c005fc8e10c353b4b..041f9046ed470e9ee45a6ecbdfc0ff7d7c22784f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Glen Prideaux <glenprideaux@iname.com>,
+  (c) 1999--2009 Glen Prideaux <glenprideaux@iname.com>,
   Han-Wen Nienhuys <hanwen@xs4all.nl>,
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
@@ -35,7 +35,9 @@ public:
 protected:
   DECLARE_TRANSLATOR_LISTENER (extender);
   DECLARE_ACKNOWLEDGER (lyric_syllable);
+
   virtual void finalize ();
+
   void stop_translation_timestep ();
   void process_music ();
 };
@@ -96,11 +98,17 @@ 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
        {
-         if (pending_extender_)
+         if (pending_extender_
+             && !get_property ("extendersOverRests"))
            {
              completize_extender (pending_extender_);
              pending_extender_ = 0;
@@ -152,7 +160,15 @@ Extender_engraver::finalize ()
 
 ADD_ACKNOWLEDGER (Extender_engraver, lyric_syllable);
 ADD_TRANSLATOR (Extender_engraver,
-               /* doc */ "Create lyric extenders",
-               /* create */ "LyricExtender",
-               /* read */ "",
-               /* write */ "");
+               /* doc */
+               "Create lyric extenders.",
+
+               /* create */
+               "LyricExtender ",
+
+               /* read */
+               "extendersOverRests ",
+
+               /* write */
+               ""
+               );