]> git.wh0rd.org - fontconfig.git/commitdiff
[fcmatch] Use larger multipliers to enforce order
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 1 Jan 2009 00:35:27 +0000 (19:35 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Sat, 14 Feb 2009 00:54:05 +0000 (16:54 -0800)
Previously the matcher multiplied comparison results by 100 and added
index value to it.  With long lists of families (lots of aliases),
reaching 100 is not that hard.  That could result in a non-match early
in the list to be preferred over a match late in the list.  Changing
the multiplier from 100 to 1000 should fix that.

To keep things relatively in order, the lang multiplier is changed
from 1000 to 10000.

src/fcmatch.c

index ac63fbef6e9c3d1bb392041d0990c1cb8f54b23e..4d20a61fc9b7f09d702f4bb8641b69dee8ff9386 100644 (file)
@@ -328,7 +328,7 @@ FcCompareValueList (FcObject         object,
                *result = FcResultTypeMismatch;
                return FcFalse;
            }
-           v = v * 100 + j;
+           v = v * 1000 + j;
            if (v < best)
            {
                if (bestValue)
@@ -768,7 +768,7 @@ FcFontSetSort (FcConfig         *config,
            }
        }
        if (!satisfies)
-           nodeps[f]->score[MATCH_LANG_INDEX] = 1000.0;
+           nodeps[f]->score[MATCH_LANG_INDEX] = 10000.0;
     }
 
     /*