From 5c6d1ff23bda4386984a1d6e4c024958f8f5547c Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 22 Jul 2009 19:25:24 -0400 Subject: [PATCH] Fix FcNameUnparseLangSet() Was broken since ffd6668b469508177c4baf7745ae42aee5b00322 --- src/fclang.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) 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); -- 2.39.2