+MAKE_SCHEME_CALLBACK (Spanner, kill_zero_spanned_time, 1);
+SCM
+Spanner::kill_zero_spanned_time (SCM grob)
+{
+ Spanner *me = unsmob_spanner (grob);
+ Interval_t<Moment> moments = me->spanned_time ();
+ /*
+ Remove the line or hairpin at the start of the line. For
+ piano voice indicators, it makes no sense to have them at
+ the start of the line.
+
+ I'm not sure what the official rules for glissandi are, but
+ usually the 2nd note of the glissando is "exact", so when playing
+ from the start of the line, there is no need to glide.
+
+ From a typographical p.o.v. this makes sense, since the amount of
+ space left of a note at the start of a line is very small.
+
+ --hwn.
+
+ */
+ if (moments.length () == Moment (0, 0))
+ me->suicide ();
+
+ return SCM_UNSPECIFIED;
+}
+