+ Real limit = ly_scm2double (s);
+
+ if (slope > limit)
+ {
+ Real staff_space = Staff_symbol_referencer::staff_space ((Grob*)me);
+ Direction dir = (Direction)ly_scm2int (me->get_property ("direction"));
+ Direction d = (Direction) (- dir * (sign (dy)));
+ SCM a = me->get_property ("attachment-offset");
+ Drul_array<Offset> o;
+ o[LEFT] = ly_scm2offset (index_get_cell (a, LEFT));
+ o[RIGHT] = ly_scm2offset (index_get_cell (a, RIGHT));
+ o[d][Y_AXIS] -= (limit - slope) * dx * dir / staff_space;
+
+ o[d][Y_AXIS] *= get_grob_direction (me);
+
+ me->set_property ("attachment-offset",
+ scm_cons (ly_offset2scm (o[LEFT]),
+ ly_offset2scm (o[RIGHT])));
+ }
+ }
+
+}
+
+/*
+ Set 'attachment grob property, and return it.
+*/
+SCM
+Slur::set_extremities (Grob *me)
+{
+ if (!get_grob_direction (me))
+ set_grob_direction (me, get_default_dir (me));
+
+ SCM att = me->get_property ("attachment");
+ /*
+ */
+ if (!ly_c_pair_p (att))
+ {
+ programming_error ("attachment is not a cons?!");
+ att = scm_cons (SCM_EOL, SCM_EOL);
+ me->set_property ("attachment", att);
+ }
+