MagickExport MagickBooleanType LoadFontConfigFonts(SplayTreeInfo *type_list,
ExceptionInfo *exception)
{
-#if !defined(FC_FULLNAME)
-#define FC_FULLNAME "fullname"
-#endif
-
char
extension[MaxTextExtent],
name[MaxTextExtent];
(void) ResetMagickMemory(type_info,0,sizeof(*type_info));
type_info->path=ConstantString("System Fonts");
type_info->signature=MagickSignature;
- (void) CopyMagickString(name,(const char *) family,MaxTextExtent);
- (void) ConcatenateMagickString(name," ",MaxTextExtent);
- status=FcPatternGetString(font_set->fonts[i],FC_STYLE,0,&style);
- if (status == FcResultMatch)
- (void) ConcatenateMagickString(name,(const char *) style,MaxTextExtent);
+ (void) CopyMagickString(name,"Unknown",MaxTextExtent);
status=FcPatternGetString(font_set->fonts[i],FC_FULLNAME,0,&fullname);
- if (status == FcResultMatch)
+ if ((status == FcResultMatch) && (fullname != (FcChar8 *) NULL))
(void) CopyMagickString(name,(const char *) fullname,MaxTextExtent);
+ else
+ {
+ if (family != (FcChar8 *) NULL)
+ (void) CopyMagickString(name,(const char *) family,MaxTextExtent);
+ status=FcPatternGetString(font_set->fonts[i],FC_STYLE,0,&style);
+ if ((status == FcResultMatch) && (style != (FcChar8 *) NULL) &&
+ (LocaleCompare((const char *) style,"Regular") != 0))
+ {
+ (void) ConcatenateMagickString(name," ",MaxTextExtent);
+ (void) ConcatenateMagickString(name,(const char *) style,
+ MaxTextExtent);
+ }
+ }
type_info->name=ConstantString(name);
(void) SubstituteString(&type_info->name," ","-");
(void) SubstituteString(&type_info->name,"-L-","-");