diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2009-02-13 16:30:43 -0800 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2009-02-15 14:13:34 -0800 |
commit | d62b85af21777582ad720efd9c319fde97b67d82 (patch) | |
tree | 53e33d6255bafe77da6ba52925757adff6c9ea99 /src/fclang.c | |
parent | cdfb76585e7afbe739d00ed83a029ce1f909142f (diff) |
[fclang] Implement FcLangSetGetLangs() (#18846)
Diffstat (limited to 'src/fclang.c')
-rw-r--r-- | src/fclang.c | 32 |
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" |