]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/slur-engraver.cc
Add a regression test for 1062.
[lilypond.git] / lily / slur-engraver.cc
index 8f7a7525486fb851ca54a34d0b6809d5b5019b28..76738bf481d228dd96bcf6691d80c0966cc3a99f 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  slur-engraver.cc -- implement Slur_engraver
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "engraver.hh"
@@ -47,7 +58,6 @@ class Slur_engraver : public Engraver
 protected:
   DECLARE_TRANSLATOR_LISTENER (slur);
   DECLARE_ACKNOWLEDGER (accidental);
-  DECLARE_ACKNOWLEDGER (dynamic_line_spanner);
   DECLARE_ACKNOWLEDGER (fingering);
   DECLARE_ACKNOWLEDGER (note_column);
   DECLARE_ACKNOWLEDGER (script);
@@ -112,12 +122,6 @@ Slur_engraver::acknowledge_accidental (Grob_info info)
   acknowledge_extra_object (info);
 }
 
-void
-Slur_engraver::acknowledge_dynamic_line_spanner (Grob_info info)
-{
-  acknowledge_extra_object (info);
-}
-
 void
 Slur_engraver::acknowledge_fingering (Grob_info info)
 {
@@ -154,7 +158,11 @@ void
 Slur_engraver::finalize ()
 {
   if (slurs_.size ())
-    slurs_[0]->warning (_ ("unterminated slur"));
+    {
+      slurs_[0]->warning (_ ("unterminated slur"));
+      for (vsize i = 0; i < slurs_.size (); i++)
+       slurs_[i]->suicide ();
+    }
 }
 
 void
@@ -197,7 +205,7 @@ Slur_engraver::process_music ()
 void
 Slur_engraver::stop_translation_timestep ()
 {
-  if (Grob *g = unsmob_grob (get_property ("breakableSeparationItem")))
+  if (Grob *g = unsmob_grob (get_property ("currentCommandColumn")))
     {
       for (vsize i = 0; i < end_slurs_.size (); i++)
        Slur::add_extra_encompass (end_slurs_[i], g);
@@ -220,7 +228,6 @@ Slur_engraver::stop_translation_timestep ()
 }
 
 ADD_ACKNOWLEDGER (Slur_engraver, accidental);
-ADD_ACKNOWLEDGER (Slur_engraver, dynamic_line_spanner);
 ADD_ACKNOWLEDGER (Slur_engraver, fingering);
 ADD_ACKNOWLEDGER (Slur_engraver, note_column);
 ADD_ACKNOWLEDGER (Slur_engraver, script);
@@ -228,10 +235,16 @@ ADD_ACKNOWLEDGER (Slur_engraver, text_script);
 ADD_ACKNOWLEDGER (Slur_engraver, tie);
 ADD_ACKNOWLEDGER (Slur_engraver, tuplet_number);
 ADD_TRANSLATOR (Slur_engraver,
-               /* doc */ "Build slur grobs from slur events",
-               /* create */ "Slur",
+               /* doc */
+               "Build slur grobs from slur events.",
+
+               /* create */
+               "Slur ",
+
                /* read */
                "slurMelismaBusy "
                "doubleSlurs ",
 
-               /* write */ "");
+               /* write */
+               ""
+               );