aboutsummaryrefslogtreecommitdiff
path: root/fontconfig/src/fcstr.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-06-11 09:01:24 +0200
committermarha <marha@users.sourceforge.net>2012-06-11 09:01:24 +0200
commita660c10f0f261b390ada5c3a5d0543088830f070 (patch)
tree522977aa2a1be8687b1399e8afa2503daa58821b /fontconfig/src/fcstr.c
parent72ec0e3bb2d7fc6b77b2a75873792f781679da6a (diff)
parent080d1527a5358dd66ac927acbe0ec61cba7aa7e1 (diff)
downloadvcxsrv-a660c10f0f261b390ada5c3a5d0543088830f070.tar.gz
vcxsrv-a660c10f0f261b390ada5c3a5d0543088830f070.tar.bz2
vcxsrv-a660c10f0f261b390ada5c3a5d0543088830f070.zip
Merge remote-tracking branch 'origin/released'
Conflicts: mesalib/src/glsl/glcpp/.gitignore
Diffstat (limited to 'fontconfig/src/fcstr.c')
-rw-r--r--fontconfig/src/fcstr.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/fontconfig/src/fcstr.c b/fontconfig/src/fcstr.c
index e372af080..c446bcd8e 100644
--- a/fontconfig/src/fcstr.c
+++ b/fontconfig/src/fcstr.c
@@ -1177,6 +1177,50 @@ FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s)
}
FcBool
+FcStrSetAddLangs (FcStrSet *strs, const char *languages)
+{
+ const char *p = languages, *next;
+ FcChar8 lang[128] = {0}, *normalized_lang;
+ size_t len;
+ FcBool ret = FcFalse;
+
+ if (!languages)
+ return FcFalse;
+
+ while ((next = strchr (p, ':')))
+ {
+ len = next - p;
+ len = FC_MIN (len, 128);
+ strncpy ((char *) lang, p, len);
+ lang[len] = 0;
+ /* ignore an empty item */
+ if (*lang)
+ {
+ normalized_lang = FcLangNormalize ((const FcChar8 *) lang);
+ if (normalized_lang)
+ {
+ FcStrSetAdd (strs, normalized_lang);
+ free (normalized_lang);
+ ret = FcTrue;
+ }
+ }
+ p = next + 1;
+ }
+ if (*p)
+ {
+ normalized_lang = FcLangNormalize ((const FcChar8 *) p);
+ if (normalized_lang)
+ {
+ FcStrSetAdd (strs, normalized_lang);
+ free (normalized_lang);
+ ret = FcTrue;
+ }
+ }
+
+ return ret;
+}
+
+FcBool
FcStrSetDel (FcStrSet *set, const FcChar8 *s)
{
int i;