- for (Locations::LocationList::const_iterator l = ll.begin(); l != ll.end(); ++l) {
- if ((*l)->is_mark ()) {
- if (strcmp (&argv[0]->s, (*l)->name().c_str()) == 0) {
- session->request_locate ((*l)->start (), false);
- return 0;
+ {
+ Location *cur_mark = 0;
+ for (Locations::LocationList::const_iterator l = ll.begin(); l != ll.end(); ++l) {
+ if ((*l)->is_mark ()) {
+ if (strcmp (&argv[0]->s, (*l)->name().c_str()) == 0) {
+ session->request_locate ((*l)->start (), false);
+ return 0;
+ } else if ((*l)->start () == session->transport_sample()) {
+ cur_mark = (*l);
+ }