Fix FcNameUnparseLangSet()

Was broken since ffd6668b46
This commit is contained in:
Behdad Esfahbod 2009-07-22 19:25:24 -04:00
parent d9741a7f1a
commit 5c6d1ff23b
1 changed files with 11 additions and 18 deletions

View File

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