vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit f9fdb727475ed13e8a200702f512fd59a7031fd7 parent b600d1d8eb039683c65e527ec78387c474d19c00 Author: Marc André Tanner <mat@brain-dump.org> Date: Wed, 3 May 2017 17:57:29 +0200 text: remove text_iterate macro Diffstat:
| M | text.c | | | 12 | +++++++++--- |
| M | text.h | | | 5 | ----- |
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/text.c b/text.c @@ -1520,7 +1520,9 @@ size_t text_bytes_get(Text *txt, size_t pos, size_t len, char *buf) { return 0; char *cur = buf; size_t rem = len; - text_iterate(txt, it, pos) { + for (Iterator it = text_iterator_get(txt, pos); + text_iterator_valid(&it); + text_iterator_next(&it)) { if (rem == 0) break; size_t piece_len = it.end - it.text; @@ -1553,7 +1555,9 @@ size_t text_size(Text *txt) { /* count the number of new lines '\n' in range [pos, pos+len) */ static size_t lines_count(Text *txt, size_t pos, size_t len) { size_t lines = 0; - text_iterate(txt, it, pos) { + for (Iterator it = text_iterator_get(txt, pos); + text_iterator_valid(&it); + text_iterator_next(&it)) { const char *start = it.text; while (len > 0 && start < it.end) { size_t n = MIN(len, (size_t)(it.end - start)); @@ -1576,7 +1580,9 @@ static size_t lines_count(Text *txt, size_t pos, size_t len) { /* skip n lines forward and return position afterwards */ static size_t lines_skip_forward(Text *txt, size_t pos, size_t lines, size_t *lines_skipped) { size_t lines_old = lines; - text_iterate(txt, it, pos) { + for (Iterator it = text_iterator_get(txt, pos); + text_iterator_valid(&it); + text_iterator_next(&it)) { const char *start = it.text; while (lines > 0 && start < it.end) { size_t n = it.end - start; diff --git a/text.h b/text.h @@ -357,11 +357,6 @@ ssize_t text_write_range(Text*, Filerange*, int fd); bool text_mmaped(Text*, const char *ptr); /** @} */ -#define text_iterate(txt, it, pos) \ - for (Iterator it = text_iterator_get((txt), (pos)); \ - text_iterator_valid(&it); \ - text_iterator_next(&it)) - /* get position of change denoted by index, where 0 indicates the most recent */ size_t text_history_get(Text*, size_t index);