(cm, offset)
| 574 | } |
| 575 | } |
| 576 | function move(cm, offset) { |
| 577 | pointer += offset; |
| 578 | if (pointer > head) { |
| 579 | pointer = head; |
| 580 | } else if (pointer < tail) { |
| 581 | pointer = tail; |
| 582 | } |
| 583 | var mark = buffer[(size + pointer) % size]; |
| 584 | // skip marks that are temporarily removed from text buffer |
| 585 | if (mark && !mark.find()) { |
| 586 | var inc = offset > 0 ? 1 : -1; |
| 587 | var newCur; |
| 588 | var oldCur = cm.getCursor(); |
| 589 | do { |
| 590 | pointer += inc; |
| 591 | mark = buffer[(size + pointer) % size]; |
| 592 | // skip marks that are the same as current position |
| 593 | if (mark && |
| 594 | (newCur = mark.find()) && |
| 595 | !cursorEqual(oldCur, newCur)) { |
| 596 | break; |
| 597 | } |
| 598 | } while (pointer < head && pointer > tail); |
| 599 | } |
| 600 | return mark; |
| 601 | } |
| 602 | function find(cm, offset) { |
| 603 | var oldPointer = pointer; |
| 604 | var mark = move(cm, offset); |
no test coverage detected