diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2015-07-24 23:40:31 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2015-07-25 00:55:19 +0200 |
| commit | 5b9b15333670e49e708c71baaa824943bc1796ba (patch) | |
| tree | 84956e9e0a7d9b739bf6395d4e0b13829ba86078 | |
| parent | e57b57e47266c1ac2fded9e84e8bf59cc8fadd7f (diff) | |
| download | vis-5b9b15333670e49e708c71baaa824943bc1796ba.tar.gz vis-5b9b15333670e49e708c71baaa824943bc1796ba.tar.xz | |
text: handle marks set to 0 and text_size(...)
| -rw-r--r-- | text.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -1434,6 +1434,10 @@ size_t text_lineno_by_pos(Text *txt, size_t pos) { } Mark text_mark_set(Text *txt, size_t pos) { + if (pos == 0) + return (Mark)&txt->begin; + if (pos == txt->size) + return (Mark)&txt->end; Location loc = piece_get_extern(txt, pos); if (!loc.piece) return NULL; @@ -1445,6 +1449,10 @@ size_t text_mark_get(Text *txt, Mark mark) { if (!mark) return EPOS; + if (mark == (Mark)&txt->begin) + return 0; + if (mark == (Mark)&txt->end) + return txt->size; for (Piece *p = txt->begin.next; p->next; p = p->next) { if (p->data <= mark && mark < p->data + p->len) |
