+ HERE + L >= HERE + (UNTIL - HERE) = UNTIL
+
+ Hence all events after the one with L>0 are uninteresting, so we
+ ignore them.
+
+*/
+
+SCM
+Sequential_music_iterator::get_music (Moment until)const
+{
+ SCM s = SCM_EOL;
+ if (until < pending_moment ())
+ return s;
+
+ Sequential_music_iterator * me =
+ dynamic_cast<Sequential_music_iterator*> (clone ());
+ while (me->ok ())
+ {
+ SCM nm = me->iter_p_->get_music (until - me->here_mom_);
+ s = gh_append2 (nm, s);
+
+ Moment m = 0;
+ for (SCM i = nm; gh_pair_p(i); i = gh_cdr (i))
+ m = m >? unsmob_music (gh_car (i))->length_mom ();
+
+ if (m > Moment (0))
+ break ;
+ else
+ me->next_element ();
+ }
+ delete me;
+
+ return s;
+}
+/*
+ Skip events till UNTIL. We don't do any other side effects (such as
+ moving descending to child iterator contexts, because they might
+ depend on \context specs and \translator changes being executed
+
+ */