]> git.wh0rd.org - fontconfig.git/blobdiff - src/fccharset.c
FcFontList broken when presented a charset - was comparing inclusion in the
[fontconfig.git] / src / fccharset.c
index 1c0ebdd38c3eca47ad136637c9ccc7fa114e6adc..d87a720a5f4b31efd6bfd81efc503145377599f1 100644 (file)
@@ -596,6 +596,9 @@ FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b)
     {
        an = a->numbers[ai];
        bn = b->numbers[bi];
+       /*
+        * Check matching pages
+        */
        if (an == bn)
        {
            FcChar32    *am = a->leaves[ai]->map;
@@ -604,6 +607,9 @@ FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b)
            if (am != bm)
            {
                int     i = 256/32;
+               /*
+                * Does am have any bits not in bm?
+                */
                while (i--)
                    if (*am++ & ~*bm++)
                        return FcFalse;
@@ -611,6 +617,9 @@ FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b)
            ai++;
            bi++;
        }
+       /*
+        * Does a have any pages not in b?
+        */
        else if (an < bn)
            return FcFalse;
        else
@@ -618,6 +627,9 @@ FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b)
            int     low = bi + 1;
            int     high = b->num - 1;
 
+           /*
+            * Search for page 'an' in 'b'
+            */
            while (low <= high)
            {
                int mid = (low + high) >> 1;
@@ -637,6 +649,9 @@ FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b)
                bi++;
        }
     }
+    /*
+     * did we look at every page?
+     */
     return ai >= a->num;
 }