diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2014-10-25 15:23:45 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2014-10-25 15:32:49 +0200 |
| commit | 3a615515935a9c140d4ff47ee4a46266aa405d01 (patch) | |
| tree | a45393fdaf975e67486b2c1c204f50a7252d4450 /text.c | |
| parent | c42e9887aac08eeb96ccbe58453969497b5ea0ee (diff) | |
| download | vis-3a615515935a9c140d4ff47ee4a46266aa405d01.tar.gz vis-3a615515935a9c140d4ff47ee4a46266aa405d01.tar.xz | |
Introduce text_range_size
Diffstat (limited to 'text.c')
| -rw-r--r-- | text.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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 }; } |
