Commit c5f0a65b authored by Behdad Esfahbod's avatar Behdad Esfahbod

Revert "Fix FcNameUnparseLangSet()" and redo it

This reverts commit 5c6d1ff2 and
fixes that bug using the new reverse-map I added in the previous
commit.
parent d354a321
......@@ -551,20 +551,27 @@ bail0:
FcBool
FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls)
{
int i;
int i, bit;
FcChar32 bits;
FcBool first = FcTrue;
for (i = 0; i < NUM_LANG_CHAR_SET; i++)
if (FcLangSetBitGet (ls, i))
{
if (!first)
if (!FcStrBufChar (buf, '|'))
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[fcLangCharSetIndicesInv[id]].lang))
return FcFalse;
if (!FcStrBufString (buf, fcLangCharSets[i].lang))
return FcFalse;
first = FcFalse;
}
first = FcFalse;
}
}
}
if (ls->extra)
{
FcStrList *list = FcStrListCreate (ls->extra);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment