diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2014-09-13 23:00:19 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2014-09-13 23:00:19 +0200 |
| commit | 19c1ea602bde2e131bdc89f78786a2efced41d42 (patch) | |
| tree | 2ccc6d7a4d518d2c73fc296e90b349c791e483c5 /vis.c | |
| parent | 9da490af05b2aac772f0bdbb934dd313c1271749 (diff) | |
| download | vis-19c1ea602bde2e131bdc89f78786a2efced41d42.tar.gz vis-19c1ea602bde2e131bdc89f78786a2efced41d42.tar.xz | |
Introduce some helper functions dealing with Filerange
Diffstat (limited to 'vis.c')
| -rw-r--r-- | vis.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -831,16 +831,15 @@ static void action_do(Action *a) { c.range.start = c.range.end = pos; for (int i = 0; i < a->count; i++) { r = a->textobj->range(txt, pos); - // TODO range_valid? - if (r.start == EPOS || r.end == EPOS) + if (!text_range_valid(&r)) break; if (a->textobj->type == OUTER) { r.start--; r.end++; } - // TODO c.range = range_union(&c.range, &r); - c.range.start = MIN(c.range.start, r.start); - c.range.end = MAX(c.range.end, r.end); + + c.range = text_range_union(&c.range, &r); + if (i < a->count - 1) { if (a->textobj == &textobjs[TEXT_OBJ_LINE_UP]) { pos = c.range.start - 1; @@ -851,7 +850,7 @@ static void action_do(Action *a) { } } else if (mode == &vis_modes[VIS_MODE_VISUAL]) { c.range = window_selection_get(win); - if (c.range.start == EPOS || c.range.end == EPOS) + if (!text_range_valid(&c.range)) c.range.start = c.range.end = pos; } |
