diff options
Diffstat (limited to 'src/lib/evas/canvas/evas_font_dir.c')
-rw-r--r-- | src/lib/evas/canvas/evas_font_dir.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/evas/canvas/evas_font_dir.c b/src/lib/evas/canvas/evas_font_dir.c index f73b77dab1..e4006ab611 100644 --- a/src/lib/evas/canvas/evas_font_dir.c +++ b/src/lib/evas/canvas/evas_font_dir.c @@ -537,7 +537,8 @@ evas_font_desc_cmp(const Evas_Font_Description *a, /* FIXME: Do actual comparison, i.e less than and bigger than. */ return !((a->name == b->name) && (a->weight == b->weight) && (a->slant == b->slant) && (a->width == b->width) && - (a->spacing == b->spacing) && (a->lang == b->lang)); + (a->spacing == b->spacing) && (a->lang == b->lang) && + (a->fallbacks == b->fallbacks)); } const char * @@ -873,10 +874,11 @@ evas_font_load(const Eina_List *font_paths, int hinting, Evas_Font_Description * /* Handle font fallbacks */ if (fdesc->fallbacks) { - while (1) + const char *start, *end; + start = fdesc->fallbacks; + + while (start) { - const char *start, *end; - start = fdesc->fallbacks; end = strchr(start, ','); if (end) { @@ -884,6 +886,7 @@ evas_font_load(const Eina_List *font_paths, int hinting, Evas_Font_Description * strncpy(tmp, start, end - start); tmp[end - start] = 0; FcPatternAddString (p_nm, FC_FAMILY, (FcChar8*) tmp); + start = end + 1; } else { |