From 5b9b15333670e49e708c71baaa824943bc1796ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Fri, 24 Jul 2015 23:40:31 +0200 Subject: text: handle marks set to 0 and text_size(...) --- text.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/text.c b/text.c index df8eb21..9a1bd42 100644 --- a/text.c +++ b/text.c @@ -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) -- cgit v1.2.3