]> git.wh0rd.org - fontconfig.git/commitdiff
Fix FcNameUnparseLangSet()
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 22 Jul 2009 23:25:24 +0000 (19:25 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 22 Jul 2009 23:25:24 +0000 (19:25 -0400)
Was broken since ffd6668b469508177c4baf7745ae42aee5b00322

src/fclang.c

index fe4674c4579ed90d60eb9d54e29875553f8ad4a0..9d1858de2031dd01afba970ed3e3ddee195c417f 100644 (file)
@@ -551,27 +551,20 @@ bail0:
 FcBool
 FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls)
 {
-    int                i, bit;
-    FcChar32   bits;
+    int                i;
     FcBool     first = FcTrue;
 
-    for (i = 0; i < NUM_LANG_SET_MAP; i++)
-    {
-       if ((bits = ls->map[i]))
-       {
-           for (bit = 0; bit <= 31; bit++)
-               if (bits & (1 << bit))
-               {
-                   int id = (i << 5) | bit;
-                   if (!first)
-                       if (!FcStrBufChar (buf, '|'))
-                           return FcFalse;
-                   if (!FcStrBufString (buf, fcLangCharSets[id].lang))
+    for (i = 0; i < NUM_LANG_CHAR_SET; i++)
+       if (FcLangSetBitGet (ls, i))
+           {
+               if (!first)
+                   if (!FcStrBufChar (buf, '|'))
                        return FcFalse;
-                   first = FcFalse;
-               }
-       }
-    }
+               if (!FcStrBufString (buf, fcLangCharSets[i].lang))
+                   return FcFalse;
+               first = FcFalse;
+           }
+
     if (ls->extra)
     {
        FcStrList   *list = FcStrListCreate (ls->extra);