]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/extender-engraver.cc
* scm/paper.scm (set-staff-size): new function: set default
[lilypond.git] / lily / extender-engraver.cc
index 9279849bb265468ac0830086665fed6598855d6a..407442c96822a1f4cd96482177de36db6886e86d 100644 (file)
@@ -67,19 +67,42 @@ Extender_engraver::try_music (Music* r)
   return true;
 }
 
+void
+completize_extender (Spanner* sp)
+{
+  if (!sp->get_bound (RIGHT))
+    {
+      SCM heads = sp->get_grob_property ("heads");
+      if (gh_pair_p (heads))
+       {
+         Item* it = dynamic_cast<Item*> (unsmob_grob (gh_car (heads)));
+         if (it)
+           sp->set_bound (RIGHT, it);
+       }
+    }
+}
+
+  
+
 void
 Extender_engraver::finalize ()
 {
   if (extender_)
     {
-      extender_->warning (_ ("unterminated extender"));
+      completize_extender (extender_);
+
+      if (!extender_->get_bound (RIGHT))
+       extender_->warning (_ ("unterminated extender"));
       typeset_grob (extender_);
       extender_ = 0;
     }
 
   if (finished_extender_)
     {
-      finished_extender_->warning (_("unterminated extender"));
+      completize_extender (finished_extender_);
+
+      if (!finished_extender_->get_bound (RIGHT))
+         finished_extender_->warning (_("unterminated extender"));
       typeset_grob (finished_extender_);
       finished_extender_ =0;
     }