+
+ /*
+ * Type 1: Check for FontInfo dictionary information
+ * Code from g2@magestudios.net (Gerard Escalante)
+ */
+
+ if (FT_Get_PS_Font_Info(face, &psfontinfo) == 0)
+ {
+ if (strcasecmp("thin", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_THIN;
+ else if (strcasecmp("extralight", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_EXTRALIGHT;
+ else if (strcasecmp("ultralight", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_ULTRALIGHT;
+ else if (strcasecmp("light", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_LIGHT;
+ else if (strcasecmp("regular", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_REGULAR;
+ else if (strcasecmp("normal", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_NORMAL;
+ else if (strcasecmp("medium", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_MEDIUM;
+ else if (strcasecmp("demibold", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_DEMIBOLD;
+ else if (strcasecmp("semibold", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_SEMIBOLD;
+ else if (strcasecmp("extrabold", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_EXTRABOLD;
+ else if (strcasecmp("ultrabold", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_EXTRABOLD;
+ else if (strcasecmp("bold", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_BOLD;
+ else if (strcasecmp("black", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_BLACK;
+ else if (strcasecmp("heavy", psfontinfo.weight) == 0)
+ weight = FC_WEIGHT_BLACK;
+
+ if (psfontinfo.italic_angle < 0)
+ slant = FC_SLANT_ITALIC;
+ else if (psfontinfo.italic_angle >= 0)
+ slant = FC_SLANT_ROMAN;
+ }