/*
- * $RCSId: xc/lib/fontconfig/src/fclang.c,v 1.7 2002/08/26 23:34:31 keithp Exp $
+ * fontconfig/src/fclang.c
*
* Copyright © 2002 Keith Packard
*
*/
#include "fcint.h"
+#include "fcftint.h"
typedef struct {
const FcChar8 lang[8];
FcLangSet *ls;
if (exclusiveLang)
- exclusiveCharset = FcCharSetForLang (exclusiveLang);
+ exclusiveCharset = FcLangGetCharSet (exclusiveLang);
ls = FcLangSetCreate ();
if (!ls)
return 0;
if (c1 != c2)
{
if (FcLangEnd (c1) && FcLangEnd (c2))
- result = FcLangDifferentCountry;
+ result = FcLangDifferentTerritory;
return result;
}
else if (!c1)
return FcLangEqual;
else if (c1 == '-')
- result = FcLangDifferentCountry;
+ result = FcLangDifferentTerritory;
}
}
}
const FcCharSet *
-FcCharSetForLang (const FcChar8 *lang)
+FcLangGetCharSet (const FcChar8 *lang)
{
int i;
int country = -1;
switch (FcLangCompare (lang, fcLangCharSets[i].lang)) {
case FcLangEqual:
return &fcLangCharSets[i].charset;
- case FcLangDifferentCountry:
+ case FcLangDifferentTerritory:
if (country == -1)
country = i;
default:
return &fcLangCharSets[country].charset;
}
+FcStrSet *
+FcGetLangs (void)
+{
+ FcStrSet *langs;
+ int i;
+
+ langs = FcStrSetCreate();
+ if (!langs)
+ return 0;
+
+ for (i = 0; i < NUM_LANG_CHAR_SET; i++)
+ FcStrSetAdd (langs, fcLangCharSets[i].lang);
+
+ return langs;
+}
+
FcLangSet *
FcLangSetCreate (void)
{
if ((lsa->map[i] & fcLangCountrySets[j][i]) &&
(lsb->map[i] & fcLangCountrySets[j][i]))
{
- best = FcLangDifferentCountry;
+ best = FcLangDifferentTerritory;
break;
}
if (lsa->extra)
*l_serialize = *l;
return l_serialize;
}
+
+FcStrSet *
+FcLangSetGetLangs (const FcLangSet *ls)
+{
+ FcStrSet *langs;
+ int i;
+
+ langs = FcStrSetCreate();
+ if (!langs)
+ return 0;
+
+ for (i = 0; i < NUM_LANG_CHAR_SET; i++)
+ if (FcLangSetBitGet (ls, i))
+ FcStrSetAdd (langs, fcLangCharSets[i].lang);
+
+ if (ls->extra)
+ {
+ FcStrList *list = FcStrListCreate (ls->extra);
+ FcChar8 *extra;
+
+ if (list)
+ {
+ while ((extra = FcStrListNext (list)))
+ FcStrSetAdd (langs, extra);
+
+ FcStrListDone (list);
+ }
+ }
+
+ return langs;
+}
+
#define __fclang__
#include "fcaliastail.h"
+#include "fcftaliastail.h"
#undef __fclang__