I am still having problems with: "mkfontscale" not properly handling weights.

The attached patch helps.

However, I still get these errors on my Type1 directory:

[EMAIL PROTECTED] Type1]# mkfontscale -e /usr/X11R6/lib/X11/fonts/encodings -f 50
Unknown Type 1 weight "Compact"
Couldn't determine weight for aqct____.pfb
Unknown Type 1 weight "Poster"
Couldn't determine weight for bdps____.pfb
Unknown Type 1 weight "Poster"
Couldn't determine weight for bdpsc___.pfb
[EMAIL PROTECTED] Type1]#

Note that: Compact & Poster are NOT weights but rather, 'Additional
Styles'.  The XLFDs for these fonts have additional errors:

aqct____.pfb -adobe-antique olive-medium-r-normal--0-0-0-0-p-0-<encoding>
bdps____.pfb -adobe-bodoni-medium-r-normal--0-0-0-0-p-0-<encoding>
bdpsc___.pfb -adobe-bodoni-medium-r-normal--0-0-0-0-p-0-<encoding>

Correct (I hope):

aqct____.pfb -adobe-antique olive-medium-r-normal-compact-0-0-0-0-p-0-<encoding>
bdps____.pfb -adobe-bodoni-medium-r-normal-poster-0-0-0-0-p-0-<encoding>
bdpsc___.pfb -adobe-bodoni-medium-r-compressed-poster-0-0-0-0-p-0-<encoding>

This problem appears to be in FreeType. :-(

--
JRT






diff -Naur xc.old/programs/mkfontscale/mkfontscale.c 
xc/programs/mkfontscale/mkfontscale.c
--- xc.old/programs/mkfontscale/mkfontscale.c   2003-07-07 08:34:29.000000000 -0700
+++ xc/programs/mkfontscale/mkfontscale.c       2003-07-14 13:45:05.000000000 -0700
@@ -407,13 +407,13 @@
         return "thin";
     if(strcmp(weight, "Light") == 0)
         return "light";
-    if(strcmp(weight, "Regular") == 0)
-        return "medium";
+    if(strcmp(weight, "Book") == 0)
+        return "book";
     if(strcmp(weight, "Normal") == 0)
         return "medium";
-    if(strcmp(weight, "Medium") == 0)
+    if(strcmp(weight, "Regular") == 0)
         return "medium";
-    if(strcmp(weight, "Book") == 0)
+    if(strcmp(weight, "Medium") == 0)
         return "medium";
     if(strcmp(weight, "Roman") == 0) /* Some URW++ fonts do that! */
         return "medium";
@@ -421,11 +421,24 @@
         return "semibold";
     if(strcmp(weight, "DemiBold") == 0)
         return "semibold";
-    else if(strcmp(weight, "Bold") == 0)
+    if(strcmp(weight, "Demibold") == 0)
+        return "semibold";
+    if(strcmp(weight, "Semi") == 0)
+        return "semibold";
+    if(strcmp(weight, "SemiBold") == 0)
+        return "semibold";
+    if(strcmp(weight, "Semibold") == 0)
+        return "semibold";
+    if(strcmp(weight, "Bold") == 0)
         return "bold";
-    else if(strcmp(weight, "Black") == 0)
+    if(strcmp(weight, "ExtraBold") == 0)
+        return "extrabold";
+    if(strcmp(weight, "Extra Bold") == 0)
+        return "extrabold";
+    if(strcmp(weight, "Black") == 0)
         return "black";
-    else {
+
+    {
         fprintf(stderr, "Unknown Type 1 weight \"%s\"\n", weight);
         return NULL;
     }

Reply via email to