-// No edit found, make one - except when we are at zero position!
- if(!edit && position != 0) {
- if (length() == position) {
- edit = last; // we do not need any edit to extend past the last one
- }
- else if (!last || length() < position) {
-
- // Even when track is completely empty or split is beyond last edit, return correct edit
- Edit *empty = create_edit();
- if (last)
- empty->startproject = length(); // end of last edit
- else
- empty->startproject = 0; // empty track
- empty->length = position - empty->startproject;
- insert_after(last, empty);
- edit = empty;
- }
- else {
- // now we are now surely in situation where we have
- // a) broken edit list or b) negative position... report error!
- printf("ERROR!\n");
- printf("Trying to insert edit at position, but failed: %ji\n", position);
- printf("Dump is here:\n");
- track->dump(stdout);
- return 0;
- }
- }