summaryrefslogblamecommitdiffstats
path: root/source/t/xfig/xfig.3.2.4-urw-fonts.diff
blob: 396dead550e60db587a1191f12d70cc1e564579d (plain) (tree)























































































































































                                                                                                                      
--- u_fonts.c
+++ u_fonts.c	2005-10-06 18:55:22.000000000 +0200
@@ -21,7 +21,9 @@
 
 /* X11 font names */
 
-struct _xfstruct x_fontinfo[NUM_FONTS] = {
+struct _xfstruct x_fontinfo[NUM_FONTS];
+
+struct _xfstruct x_adobe_fontinfo[NUM_FONTS] = {
     {"-*-times-medium-r-normal--", (struct xfont*) NULL},
     {"-*-times-medium-i-normal--", (struct xfont*) NULL},
     {"-*-times-bold-r-normal--", (struct xfont*) NULL},
@@ -59,6 +61,44 @@
     {"-*-itc zapf dingbats-*-*-*--", (struct xfont*) NULL},
 };
 
+struct _xfstruct x_urw_fontinfo[NUM_FONTS] = {
+    {"-URW-*Nimbus Roman No9 L-medium-r-normal--", (struct xfont*) NULL},	/* Times-Roman */
+    {"-URW-*Nimbus Roman No9 L-medium-i-normal--", (struct xfont*) NULL},	/* Times-Italic */
+    {"-URW-*Nimbus Roman No9 L-bold-r-normal--", (struct xfont*) NULL},		/* Times-Bold */
+    {"-URW-*Nimbus Roman No9 L-bold-i-normal--", (struct xfont*) NULL},		/* Times-BoldItalic */
+    {"-URW-*Gothic L-medium-r-normal--", (struct xfont*) NULL},			/* AvantGarde-Book */
+    {"-URW-*Gothic L-medium-o-normal--", (struct xfont*) NULL},			/* AvantGarde-BookOblique */
+    {"-URW-*Gothic L-*bold-r-normal--", (struct xfont*) NULL},			/* AvantGarde-Demi */
+    {"-URW-*Gothic L-*bold-o-normal--", (struct xfont*) NULL},			/* AvantGarde-DemiOblique */
+    {"-URW-*Bookman L-medium-r-normal--", (struct xfont*) NULL},		/* Bookman-Light */
+    {"-URW-*Bookman L-medium-i-normal--", (struct xfont*) NULL},		/* Bookman-LightItalic */
+    {"-URW-*Bookman L-*bold-r-normal--", (struct xfont*) NULL},			/* Bookman-Demi */
+    {"-URW-*Bookman L-*bold-i-normal--", (struct xfont*) NULL},			/* Bookman-DemiItalic */
+    {"-URW-*Nimbus Mono L-medium-r-normal--", (struct xfont*) NULL},		/* Courier */
+    {"-URW-*Nimbus Mono L-medium-o-normal--", (struct xfont*) NULL},		/* Courier-Oblique */
+    {"-URW-*Nimbus Mono L-bold-r-normal--", (struct xfont*) NULL},		/* Courier-Bold */
+    {"-URW-*Nimbus Mono L-bold-o-normal--", (struct xfont*) NULL},		/* Courier-BoldOblique */
+    {"-URW-*Nimbus Sans L-medium-r-normal--", (struct xfont*) NULL},		/* Helvetica */
+    {"-URW-*Nimbus Sans L-medium-o-normal--", (struct xfont*) NULL},		/* Helvetica-Oblique */
+    {"-URW-*Nimbus Sans L-bold-r-normal--", (struct xfont*) NULL},		/* Helvetica-Bold */
+    {"-URW-*Nimbus Sans L-bold-o-normal--", (struct xfont*) NULL},		/* Helvetica-BoldOblique */
+    {"-URW-*Nimbus Sans L-medium-r-condensed--", (struct xfont*) NULL},		/* Helvetica-Narrow */
+    {"-URW-*Nimbus Sans L-medium-o-condensed--", (struct xfont*) NULL},		/* Helvetica-Narrow-Oblique */
+    {"-URW-*Nimbus Sans L-bold-r-condensed--", (struct xfont*) NULL},		/* Helvetica-Narrow-Bold */
+    {"-URW-*Nimbus Sans L-bold-o-condensed--", (struct xfont*) NULL},		/* Helvetica-Narrow-BoldOblique */
+    {"-URW-*Century Schoolbook L-medium-r-normal--", (struct xfont*) NULL},	/* NewCenturySchlbk-Roman */
+    {"-URW-*Century Schoolbook L-medium-i-normal--", (struct xfont*) NULL},	/* NewCenturySchlbk-Italic */
+    {"-URW-*Century Schoolbook L-bold-r-normal--", (struct xfont*) NULL},	/* NewCenturySchlbk-Bold */
+    {"-URW-*Century Schoolbook L-bold-i-normal--", (struct xfont*) NULL},	/* NewCenturySchlbk-BoldItalic */
+    {"-URW-*Palladio L-medium-r-normal--", (struct xfont*) NULL},		/* Palatino-Roman */
+    {"-URW-*Palladio L-medium-i-normal--", (struct xfont*) NULL},		/* Palatino-Italic */
+    {"-URW-*Palladio L-bold-r-normal--", (struct xfont*) NULL},			/* Palatino-Bold */
+    {"-URW-*Palladio L-bold-i-normal--", (struct xfont*) NULL},			/* Palatino-BoldItalic */
+    {"-URW-*Standard Symbols L-medium-r-normal--", (struct xfont*) NULL},	/* Symbol */
+    {"-URW-*Chancery L-medium-i-normal--", (struct xfont*) NULL},		/* ZapfChancery-MediumItalic */
+    {"-URW-*Dingbats-medium-r-normal--", (struct xfont*) NULL},			/* ZapfDingbats */
+};
+
 /* Use the following font names for any font that doesn't exist in the table above.
  * These come with the Open Group X distribution so they should be a common set.
  *
--- u_fonts.h
+++ u_fonts.h	2005-10-06 19:19:30.000000000 +0200
@@ -32,9 +32,6 @@
 
 extern int		psfontnum();
 extern int		latexfontnum();
-extern struct _xfstruct	x_fontinfo[], x_backup_fontinfo[];
-extern struct _fstruct	ps_fontinfo[];
-extern struct _fstruct	latex_fontinfo[];
 
 /* element of linked list for each font
    The head of list is for the different font NAMES,
@@ -61,5 +58,12 @@
 				 * sizes */
 };
 
+extern struct _xfstruct	x_fontinfo[];
+extern struct _xfstruct	x_urw_fontinfo[];
+extern struct _xfstruct	x_adobe_fontinfo[];
+extern struct _xfstruct	x_backup_fontinfo[];
+extern struct _fstruct	ps_fontinfo[];
+extern struct _fstruct	latex_fontinfo[];
+
 int		x_fontnum();
 #endif /* U_FONTS_H */
--- w_drawprim.c
+++ w_drawprim.c	2005-10-06 19:12:02.000000000 +0200
@@ -99,6 +99,22 @@
 		appres.buttonFont, appres.normalFont);
 	button_font = XLoadQueryFont(tool_d, appres.normalFont);
     }
+
+    /*
+     * Check for URW fonts, if not found use Adobe fonts
+     */
+    strcpy(template,x_urw_fontinfo[0].template);
+    strcat(template,"0-0-*-*-*-*-");
+    if (strstr(template,"ymbol") == NULL && strstr(template,"ingbats") == NULL)
+	strcat(template,"ISO8859-*");
+    else
+	strcat(template,"*-*");
+    if ((fontlist = XListFonts(tool_d, template, 1, &count)) == (char**)0)
+	memcpy(&x_fontinfo, &x_adobe_fontinfo, sizeof(struct _xfstruct) * NUM_FONTS);
+    else
+	memcpy(&x_fontinfo, &x_urw_fontinfo, sizeof(struct _xfstruct) * NUM_FONTS);
+    XFreeFontNames(fontlist); 
+
     /*
      * Now initialize the font structure for the X fonts corresponding to the
      * Postscript fonts for the canvas.	 OpenWindows can use any LaserWriter
@@ -119,8 +135,8 @@
 	    strcpy(template,x_fontinfo[0].template);  /* nope, check for font size 0 */
 	    strcat(template,"0-0-*-*-*-*-");
 	    /* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
-	    if (strstr(template,"symbol") == NULL &&
-		strstr(template,"zapf dingbats") == NULL)
+	    if (strstr(template,"ymbol") == NULL &&
+		strstr(template,"ingbats") == NULL)
 		    strcat(template,"ISO8859-*");
 	    else
 		strcat(template,"*-*");
@@ -139,8 +155,8 @@
 	    strcpy(template,x_fontinfo[f].template);
 	    strcat(template,"*-*-*-*-*-*-");
 	    /* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
-	    if (strstr(template,"symbol") == NULL &&
-		strstr(template,"zapf dingbats") == NULL)
+	    if (strstr(template,"ymbol") == NULL &&
+		strstr(template,"ingbats") == NULL)
 		    strcat(template,"ISO8859-*");
 	    else
 		strcat(template,"*-*");
@@ -287,8 +303,8 @@
 		/* attach pointsize to font name */
 		strcat(template,"%d-*-*-*-*-*-");
 		/* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
-		if (strstr(template,"symbol") == NULL &&
-		    strstr(template,"zapf dingbats") == NULL)
+		if (strstr(template,"ymbol") == NULL &&
+		    strstr(template,"ingbats") == NULL)
 			strcat(template,"ISO8859-*");
 	        else
 			strcat(template,"*-*");
@@ -299,8 +315,8 @@
 		strcpy(template,x_backup_fontinfo[fnum].template);
 		strcat(template,"%d-*-*-*-*-*-");
 		/* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
-		if (strstr(template,"symbol") == NULL &&
-		    strstr(template,"zapf dingbats") == NULL)
+		if (strstr(template,"ymbol") == NULL &&
+		    strstr(template,"ingbats") == NULL)
 			strcat(template,"ISO8859-*");
 	        else
 			strcat(template,"*-*");