From: Behdad Esfahbod Date: Wed, 22 Jul 2009 23:25:24 +0000 (-0400) Subject: Fix FcNameUnparseLangSet() X-Git-Tag: 2.7.1~7 X-Git-Url: https://git.wh0rd.org/?p=fontconfig.git;a=commitdiff_plain;h=5c6d1ff23bda4386984a1d6e4c024958f8f5547c Fix FcNameUnparseLangSet() Was broken since ffd6668b469508177c4baf7745ae42aee5b00322 --- diff --git a/src/fclang.c b/src/fclang.c index fe4674c..9d1858d 100644 --- a/src/fclang.c +++ b/src/fclang.c @@ -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);