Evas font: added support for ':lang=' and fixed a possibly mem leak.

SVN revision: 61941
This commit is contained in:
Tom Hacohen 2011-08-01 08:21:12 +00:00
parent bd556d9c14
commit f3e76c661d
2 changed files with 9 additions and 3 deletions

View File

@ -406,6 +406,7 @@ evas_font_desc_unref(Evas_Font_Description *fdesc)
{
eina_stringshare_del(fdesc->name);
eina_stringshare_del(fdesc->fallbacks);
eina_stringshare_del(fdesc->lang);
free(fdesc);
}
}
@ -458,9 +459,9 @@ evas_font_name_parse(Evas_Font_Description *fdesc, const char *name)
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)
{
@ -484,7 +485,8 @@ evas_font_name_parse(Evas_Font_Description *fdesc, const char *name)
}
else if (!strncmp(name, ":lang=", 6))
{
/* FIXME: handle lang. */
const char *tmp = name + 6;
eina_stringshare_replace_length(&(fdesc->lang), tmp, tend - tmp);
}
}
}
@ -733,6 +735,9 @@ evas_font_load(Evas *evas, Evas_Font_Description *fdesc, const char *source, Eva
}
}
if (fdesc->lang)
FcPatternAddString (p_nm, FC_LANG, (FcChar8 *) fdesc->lang);
FcConfigSubstitute(NULL, p_nm, FcMatchPattern);
FcDefaultSubstitute(p_nm);

View File

@ -638,6 +638,7 @@ struct _Evas_Font_Description
/* We assume everywhere this is stringshared */
const char *name;
const char *fallbacks;
const char *lang;
Evas_Font_Slant slant;
Evas_Font_Weight weight;