From 3a615515935a9c140d4ff47ee4a46266aa405d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sat, 25 Oct 2014 15:23:45 +0200 Subject: Introduce text_range_size --- text.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'text.c') diff --git a/text.c b/text.c index 40d09f0..e477c2d 100644 --- a/text.c +++ b/text.c @@ -606,7 +606,7 @@ bool text_save(Text *txt, const char *filename) { bool text_range_save(Text *txt, Filerange *range, const char *filename) { int fd = -1; size_t bufsize = strlen(filename) + 10; - size_t size = range->end - range->start; + size_t size = text_range_size(range); char *tmpname = malloc(bufsize); if (!tmpname) return false; @@ -669,8 +669,7 @@ ssize_t text_write(Text *txt, int fd) { } ssize_t text_range_write(Text *txt, Filerange *range, int fd) { - size_t size = range->end - range->start; - size_t rem = size; + size_t size = text_range_size(range), rem = size; for (Iterator it = text_iterator_get(txt, range->start); rem > 0 && text_iterator_valid(&it); text_iterator_next(&it)) { @@ -1257,6 +1256,10 @@ bool text_range_valid(Filerange *r) { return r->start != EPOS && r->end != EPOS && r->start <= r->end; } +size_t text_range_size(Filerange *r) { + return text_range_valid(r) ? r-> end - r->start : 0; +} + Filerange text_range_empty(void) { return (Filerange){ .start = EPOS, .end = EPOS }; } -- cgit v1.2.3