{
FT_Face face;
FT_Error error;
- const char* name;
+ const char* name = 0;
FT_ULong charcode;
FT_UInt gindex;
SWFFONT* font;
font->layout->leading = -face->bbox.xMin;
font->layout->kerningcount = 0;
+ name = FT_Get_Postscript_Name(face);
if(name && *name)
- font->name = (U8*)strdup(FT_Get_Postscript_Name(face));
+ font->name = (U8*)strdup(name);
/* // Map Glyphs to Unicode, version 1 (quick and dirty):
int t;
#endif
+static int isSWF(const char*filename)
+{
+ FILE*fi = fopen(filename, "rb");
+ char a[8];
+ if(!fi) {
+ perror(filename);
+ return 0;
+ }
+ memset(a, 0, sizeof(a));
+ fread(a, 4, 1, fi);
+ fclose(fi);
+
+ if(!strncmp(a, "FWS", 3) || !strncmp(a, "CWS", 3)) {
+ return 1;
+ }
+ return 0;
+}
+
SWFFONT* swf_LoadFont(char*filename)
{
+ if(isSWF(filename)) {
+ return swf_ReadFont(filename);
+ }
#if defined(USE_FREETYPE)
return swf_LoadTrueTypeFont(filename);
#elif defined(HAVE_T1LIB)