]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/accidental-placement.cc
Merge branch 'master' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / lily / accidental-placement.cc
index f6bfefff5d944ca100b370bb9e1cdcb9133166ea..cbc1478608fba2bc42ddf31c34ae5a5b59157da4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
@@ -75,6 +75,24 @@ Accidental_placement::split_accidentals (Grob *accs,
       }
 }
 
+vector<Grob*>
+Accidental_placement::get_break_reminder_accidentals (vector<Grob*> const &elts, Grob *left)
+{
+  vector<Grob*> br;
+  vector<Grob*> ra;
+  vector<Grob*> ret;
+
+  if (dynamic_cast<Item *> (left)->break_status_dir () != RIGHT)
+    return vector<Grob*> ();
+
+  for (vsize i = 0; i < elts.size (); i++)
+    {
+      split_accidentals (elts[i], &br, &ra);
+      ret.insert (ret.end (), br.begin (), br.end ());
+    }
+  return ret;
+}
+
 /*
   Accidentals are special, because they appear and disappear after
   ties at will.
@@ -379,8 +397,8 @@ Accidental_placement::calc_positioning_done (SCM smob)
   Real padding = robust_scm2double (me->get_property ("padding"), 0.2);
 
   Skyline left_skyline = head_ape->left_skyline_;
-  left_skyline.raise (-robust_scm2double (me->get_property ("right-padding"), 0))
-;
+  left_skyline.raise (-robust_scm2double (me->get_property ("right-padding"), 0));
+  
   /*
     Add accs entries right-to-left.
   */
@@ -388,7 +406,7 @@ Accidental_placement::calc_positioning_done (SCM smob)
     {
       Real offset = -apes[i]->right_skyline_.distance (left_skyline);
       if (isinf (offset))
-       offset = (i < apes.size () - 1) ? apes[i + 1]->offset_ : 0.0;
+       offset = (i + 1 < apes.size ()) ? apes[i + 1]->offset_ : 0.0;
       else
        offset -= padding;
 
@@ -424,9 +442,10 @@ Accidental_placement::calc_positioning_done (SCM smob)
   me->flush_extent_cache (X_AXIS);
   me->set_property ("X-extent", scm_width);
 
-  for (vsize i = apes.size (); i--;)
-    delete apes[i];
+  junk_pointers (apes);
 
+  delete head_ape;
+  
   return SCM_BOOL_T;
 }