]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 21 Oct 2012 13:29:22 +0000 (13:29 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 21 Oct 2012 13:29:22 +0000 (13:29 +0000)
MagickCore/type.c

index d68ccf20ff67e623ce7dbb3a9443a8c631b0d804..65b86a9322e791b3ca1249af282e9a10a19b97a8 100644 (file)
@@ -622,10 +622,6 @@ MagickExport char **GetTypeList(const char *pattern,size_t *number_fonts,
 MagickExport MagickBooleanType LoadFontConfigFonts(SplayTreeInfo *type_list,
   ExceptionInfo *exception)
 {
-#if !defined(FC_FULLNAME)
-#define FC_FULLNAME "fullname"
-#endif
-
   char
     extension[MaxTextExtent],
     name[MaxTextExtent];
@@ -705,14 +701,23 @@ MagickExport MagickBooleanType LoadFontConfigFonts(SplayTreeInfo *type_list,
     (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-","-");