diff options
| -rw-r--r-- | text.c | 6 | ||||
| -rw-r--r-- | text.h | 2 |
2 files changed, 8 insertions, 0 deletions
@@ -1496,3 +1496,9 @@ Filerange text_range_new(size_t a, size_t b) { .end = MAX(a, b), }; } + +bool text_range_overlap(Filerange *r1, Filerange *r2) { + if (!text_range_valid(r1) || !text_range_valid(r2)) + return false; + return r1->start <= r2->end && r2->start <= r1->end; +} @@ -26,6 +26,8 @@ Filerange text_range_empty(void); 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); +/* test whether two ranges overlap */ +bool text_range_overlap(Filerange*, Filerange*); typedef struct Text Text; typedef struct Piece Piece; |
