summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2017-09-15 14:26:17 -0400
committerBehdad Esfahbod <behdad@behdad.org>2017-09-20 13:13:35 -0700
commita79f367c3f8b238fecced75e02c956e565af2597 (patch)
tree28719ec09afac681e53a8570e95c311ac73f942f /src
parent5bbdffd2c2efcf684ae787bfad9d154b2fe05fb4 (diff)
Fix range comparision operators implementation
Diffstat (limited to 'src')
-rw-r--r--src/fcrange.c13
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;
}