{
eina_stringshare_del(fdesc->name);
eina_stringshare_del(fdesc->fallbacks);
+ eina_stringshare_del(fdesc->lang);
free(fdesc);
}
}
end = strchr(name, ':');
if (!end)
- fdesc->name = eina_stringshare_add(name);
+ eina_stringshare_replace(&(fdesc->name), name);
else
- fdesc->name = eina_stringshare_add_length(name, end - name);
+ eina_stringshare_replace_length(&(fdesc->name), name, end - name);
while (end)
{
}
else if (!strncmp(name, ":lang=", 6))
{
- /* FIXME: handle lang. */
+ const char *tmp = name + 6;
+ eina_stringshare_replace_length(&(fdesc->lang), tmp, tend - tmp);
}
}
}
}
}
+ if (fdesc->lang)
+ FcPatternAddString (p_nm, FC_LANG, (FcChar8 *) fdesc->lang);
+
FcConfigSubstitute(NULL, p_nm, FcMatchPattern);
FcDefaultSubstitute(p_nm);