summaryrefslogtreecommitdiff
path: root/src/fclang.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2009-02-13 16:30:43 -0800
committerBehdad Esfahbod <behdad@behdad.org>2009-02-15 14:13:34 -0800
commitd62b85af21777582ad720efd9c319fde97b67d82 (patch)
tree53e33d6255bafe77da6ba52925757adff6c9ea99 /src/fclang.c
parentcdfb76585e7afbe739d00ed83a029ce1f909142f (diff)
[fclang] Implement FcLangSetGetLangs() (#18846)
Diffstat (limited to 'src/fclang.c')
-rw-r--r--src/fclang.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/fclang.c b/src/fclang.c
index 2553336..d5afd52 100644
--- a/src/fclang.c
+++ b/src/fclang.c
@@ -744,6 +744,38 @@ FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l)
*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"