[fclang] Implement FcLangSetGetLangs() (#18846)
This commit is contained in:
parent
cdfb76585e
commit
d62b85af21
|
@ -123,6 +123,14 @@ function returns FcLangDiffentTerritory. If <parameter>ls</parameter>
|
|||
has no matching language, this function returns FcLangDifferentLang.
|
||||
@@
|
||||
|
||||
@RET@ FcStrSet *
|
||||
@FUNC@ FcLangSetGetLangs
|
||||
@TYPE1@ const FcLangSet * @ARG1@ ls
|
||||
@PURPOSE@ get the list of languages in the langset
|
||||
@DESC@
|
||||
Returns a string set of all languages in <parameter>langset</parameter>.
|
||||
@@
|
||||
|
||||
@RET@ FcStrSet *
|
||||
@FUNC@ FcGetLangs
|
||||
@TYPE1@ void
|
||||
|
|
|
@ -597,6 +597,9 @@ FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
|
|||
FcPublic FcChar32
|
||||
FcLangSetHash (const FcLangSet *ls);
|
||||
|
||||
FcPublic FcStrSet *
|
||||
FcLangSetGetLangs (const FcLangSet *ls);
|
||||
|
||||
/* fclist.c */
|
||||
FcPublic FcObjectSet *
|
||||
FcObjectSetCreate (void);
|
||||
|
|
32
src/fclang.c
32
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"
|
||||
|
|
Loading…
Reference in New Issue