X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Faccidental-placement.cc;h=cbc1478608fba2bc42ddf31c34ae5a5b59157da4;hb=3ee551fa4f2a2c3736a06f9f85f29b9f7bd89818;hp=f6bfefff5d944ca100b370bb9e1cdcb9133166ea;hpb=31eac32495c21fc614bdd883dbcc2729de03027f;p=lilypond.git diff --git a/lily/accidental-placement.cc b/lily/accidental-placement.cc index f6bfefff5d..cbc1478608 100644 --- a/lily/accidental-placement.cc +++ b/lily/accidental-placement.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2002--2006 Han-Wen Nienhuys + (c) 2002--2007 Han-Wen Nienhuys */ @@ -75,6 +75,24 @@ Accidental_placement::split_accidentals (Grob *accs, } } +vector +Accidental_placement::get_break_reminder_accidentals (vector const &elts, Grob *left) +{ + vector br; + vector ra; + vector ret; + + if (dynamic_cast (left)->break_status_dir () != RIGHT) + return vector (); + + 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; }