vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit dfa87d8aedfc6ff857d31c1b1ab0ed95df30f71a parent 398d08cde836f2a333d30cebcbe556a70a5c3c99 Author: Marc André Tanner <mat@brain-dump.org> Date: Wed, 22 Jul 2015 08:45:02 +0200 text: introduce text_range_new Diffstat:
| M | text.c | | | 7 | +++++++ |
| M | text.h | | | 3 | +++ |
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/text.c b/text.c @@ -1489,3 +1489,10 @@ Filerange text_range_union(Filerange *r1, Filerange *r2) { .end = MAX(r1->end, r2->end), }; } + +Filerange text_range_new(size_t a, size_t b) { + return (Filerange) { + .start = MIN(a, b), + .end = MAX(a, b), + }; +} diff --git a/text.h b/text.h @@ -15,6 +15,7 @@ typedef struct { size_t start, end; /* range in bytes from start of the file */ } Filerange; + /* test whether the given range is valid (start <= end) */ bool text_range_valid(Filerange*); /* get the size of the range (end-start) or zero if invalid */ @@ -23,6 +24,8 @@ size_t text_range_size(Filerange*); Filerange text_range_empty(void); /* merge two ranges into a new one which contains both of them */ Filerange text_range_union(Filerange*, Filerange*); +/* create new range [min(a,b), max(a,b)] */ +Filerange text_range_new(size_t a, size_t b); typedef struct Text Text; typedef struct Piece Piece;