]> granicus.if.org Git - graphviz/commitdiff
partial fix for #1504
authorellson <devnull@localhost>
Thu, 30 Oct 2008 22:06:59 +0000 (22:06 +0000)
committerellson <devnull@localhost>
Thu, 30 Oct 2008 22:06:59 +0000 (22:06 +0000)
plugin/gd/gvtextlayout_gd.c

index 33b4658fd8d87c003c91a97cc118c38d56d5a23f..ed8d4921a9015139bdd12d4f640ea1bd56839ded 100644 (file)
@@ -97,7 +97,30 @@ char *gd_alternate_fontlist(char *font)
 }
 #endif                         /* HAVE_GD_FONTCONFIG */
 
-extern char* psfontResolve (PostscriptAlias* pa);
+/* gd_psfontResolve:
+ *  * Construct alias for postscript fontname.
+ *   * NB. Uses a static array - non-reentrant.
+ *    */
+
+#define ADD_ATTR(a) \
+  if (a) { \
+        strcat(buf, comma ? " " : ", "); \
+        comma = 1; \
+        strcat(buf, a); \
+  }
+
+char* gd_psfontResolve (PostscriptAlias* pa)
+{
+    static char buf[1024];
+    int comma=0;
+    strcpy(buf, pa->family);
+
+    ADD_ATTR(pa->weight);
+    ADD_ATTR(pa->stretch);
+    ADD_ATTR(pa->style);
+   
+    return buf;
+}
 
 static boolean gd_textlayout(textpara_t * para, char **fontpath)
 {
@@ -138,7 +161,7 @@ static boolean gd_textlayout(textpara_t * para, char **fontpath)
 #ifdef HAVE_GD_FONTCONFIG
        gdFTUseFontConfig(1);  /* tell gd that we really want to use fontconfig, 'cos it s not the default */
        if (para->postscript_alias)
-           fontlist = psfontResolve (para->postscript_alias);
+           fontlist = gd_psfontResolve (para->postscript_alias);
        else
            fontlist = para->fontname;
 #else