+2002-07-15 Han-Wen <hanwen@cs.uu.nl>
+
+ * lily/paper-column.cc (before_line_breaking): urg. bugfix.
+
+ * lily/separating-line-group-engraver.cc (finalize): don't replace
+ right-items, but add to list. This fixes a bug when a staff ends
+ with cross-staff voice switching away.
+
2002-07-14 Han-Wen <hanwen@cs.uu.nl>
* input/mutopia/GNUmakefile: move mutopia/ to input/mutopia/
SCM c = me->get_grob_property ("bounded-by-me");
SCM *ptrptr = &c;
- while (gh_pair_p (c))
+ while (gh_pair_p (*ptrptr))
{
- Grob * g = unsmob_grob (gh_car (c));
+ Grob * g = unsmob_grob (gh_car (*ptrptr));
if (!g || !g->live ())
{
- *ptrptr = gh_cdr (c);
+ *ptrptr = gh_cdr (*ptrptr);
}
else
{
- ptrptr = SCM_CDRLOC (c);
+ ptrptr = SCM_CDRLOC (*ptrptr);
}
-
- if (gh_pair_p(c))
- c = gh_cdr (c);
}
me->set_grob_property ("bounded-by-me", c);
Separating_line_group_engraver::finalize ()
{
SCM ccol = get_property ("currentCommandColumn");
+ Grob *column = unsmob_grob (ccol);
+
sep_span_p_->set_bound (RIGHT, unsmob_grob (ccol));
typeset_grob (sep_span_p_);
sep_span_p_ =0;
for (int i= 0 ; i < last_spacings_.note_spacings_.size(); i++)
{
- last_spacings_.note_spacings_[i]->set_grob_property ("right-items", gh_cons (ccol, SCM_EOL));
+ Pointer_group_interface::add_grob (last_spacings_.note_spacings_[i],
+ ly_symbol2scm ("right-items" ),
+ column);
}
-
+
if(last_spacings_.staff_spacing_
- && last_spacings_.staff_spacing_->column_l () == unsmob_grob (ccol))
+ && last_spacings_.staff_spacing_->column_l () == column)
{
last_spacings_.staff_spacing_->suicide ();
}