- PCol * c= get_staff_info().command_pcol_l ();
- Paper_score *ps_l = score_l_->pscore_p_;
-
- for (int i =0; i < nobreak_item_p_arr_.size(); i++) {
- ps_l->typeset_item (nobreak_item_p_arr_[i], c);
-
- // should get rid of this.. .
- scoreline_l_->add_dependency (nobreak_item_p_arr_[i]);
- }
- nobreak_item_p_arr_.clear();
-
- for (int i=0; i < musical_item_p_arr_.size(); i++) {
- PCol* m = get_staff_info().musical_pcol_l ();
- Score_elem *elem_p = musical_item_p_arr_[i];
-
- scoreline_l_->add (elem_p);
- if (elem_p->spanner()) {
- ps_l->typeset_unbroken_spanner (elem_p->spanner());
- } else if (elem_p->item()) {
- ps_l->typeset_item (elem_p->item(), m);
- } else
- assert (false);
+ for (int i =0; i < elem_p_arr_.size(); i++)
+ {
+ Score_elem * elem_p = elem_p_arr_[i];
+ if (elem_p->spanner())
+ {
+ Spanner *s = elem_p->spanner ();
+ pscore_p_->typeset_unbroken_spanner (s);
+
+ /*
+ do something sensible if spanner not
+ spanned on 2 items.
+ */
+ Direction d = LEFT;
+ do {
+ if (!s->spanned_drul_[d])
+ s->set_bounds(d, command_column_l_);
+ } while ((d *= -1) != LEFT);
+
+ }
+ else
+ {
+ Item *item_p = elem_p->item();
+ pscore_p_->typeset_element (item_p);
+ if (!item_p->axis_group_l_a_[X_AXIS]) {
+ if (item_p->breakable_b_)
+ command_column_l_->add_element(item_p);
+ else
+ musical_column_l_->add_element(item_p);
+ }
+ }
+ scoreline_l_->add (elem_p);