# HG changeset patch # User Kenichi Handa # Date 1212200866 0 # Node ID 3ffecc48d8099ebd4d245e5bfbc8da972dc36c74 # Parent e18e11dca65b8bab6840c152040866a8b8c0f764 (ftfont_font_format): Don't use strcasestr. diff -r e18e11dca65b -r 3ffecc48d809 src/ftfont.c --- a/src/ftfont.c Sat May 31 02:24:12 2008 +0000 +++ b/src/ftfont.c Sat May 31 02:27:46 2008 +0000 @@ -1707,6 +1707,7 @@ ftfont_font_format (FcPattern *pattern) { FcChar8 *str; + int len; #ifdef FC_FONTFORMAT if (FcPatternGetString (pattern, FC_FONTFORMAT, 0, &str) != FcResultMatch) @@ -1722,14 +1723,19 @@ #else /* not FC_FONTFORMAT */ if (FcPatternGetString (pattern, FC_FILE, 0, &str) != FcResultMatch) return Qnil; - if (strcasestr ((char *) str, ".ttf") == 0) - return intern ("truetype"); - if (strcasestr ((char *) str, "pfb") == 0) - return intern ("type1"); - if (strcasestr ((char *) str, "pcf") == 0) - return intern ("pcf"); - if (strcasestr ((char *) str, "bdf") == 0) - return intern ("bdf"); + len = strlen ((char *) str); + if (len >= 4) + { + str += len - 4; + if (xstrcasecmp ((char *) str, ".ttf") == 0) + return intern ("truetype"); + if (xstrcasecmp ((char *) str, "pfb") == 0) + return intern ("type1"); + if (xstrcasecmp ((char *) str, "pcf") == 0) + return intern ("pcf"); + if (xstrcasecmp ((char *) str, "bdf") == 0) + return intern ("bdf"); + } #endif /* not FC_FONTFORMAT */ return intern ("unknown"); }