From e57b57e47266c1ac2fded9e84e8bf59cc8fadd7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Fri, 24 Jul 2015 21:47:55 +0200 Subject: text: add text_range_overlap --- text.c | 6 ++++++ text.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/text.c b/text.c index ab8a846..df8eb21 100644 --- a/text.c +++ b/text.c @@ -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; +} diff --git a/text.h b/text.h index e5f1670..65ac053 100644 --- a/text.h +++ b/text.h @@ -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; -- cgit v1.2.3