diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2017-09-15 14:26:17 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2017-09-20 13:13:35 -0700 |
commit | a79f367c3f8b238fecced75e02c956e565af2597 (patch) | |
tree | 28719ec09afac681e53a8570e95c311ac73f942f /src | |
parent | 5bbdffd2c2efcf684ae787bfad9d154b2fe05fb4 (diff) |
Fix range comparision operators implementation
Diffstat (limited to 'src')
-rw-r--r-- | src/fcrange.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/fcrange.c b/src/fcrange.c index f70226c5..8689930e 100644 --- a/src/fcrange.c +++ b/src/fcrange.c @@ -96,9 +96,6 @@ FcRangePromote (double v, FcValuePromotionBuffer *vbuf) FcBool FcRangeIsInRange (const FcRange *a, const FcRange *b) { - if (!a || !b) - return FcFalse; - return a->begin >= b->begin && a->end <= b->end; } @@ -107,20 +104,22 @@ FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) { switch ((int) op) { case FcOpEqual: + return a->begin == b->begin && a->end == b->end; case FcOpContains: case FcOpListing: return FcRangeIsInRange (a, b); case FcOpNotEqual: + return a->begin != b->begin || a->end != b->end; case FcOpNotContains: return !FcRangeIsInRange (a, b); case FcOpLess: - return a->begin < b->begin; + return a->end < b->begin; case FcOpLessEqual: - return a->begin <= b->begin; + return a->end <= b->begin; case FcOpMore: - return a->end > b->end; + return a->begin > b->end; case FcOpMoreEqual: - return a->end >= b->end; + return a->begin >= b->end; default: break; } |