chiark / gitweb /
Set the 'OS/2' fsWidthClass field correctly for extended font.
authorBen Harris <bjh21@bjh21.me.uk>
Mon, 1 Sep 2014 17:23:21 +0000 (18:23 +0100)
committerBen Harris <bjh21@bjh21.me.uk>
Mon, 1 Sep 2014 17:23:21 +0000 (18:23 +0100)
In consequence, arrange a better mechanism for varying settings between
font versions.

bedstead.c

index 7a71bb8008c59e24da284fe60ec51541c7e384ec..28e2e92f2e225a39c63339f03b176f56c31b9379 100644 (file)
 #define XSIZE 6
 #define YSIZE 10
 
+/*
+ * Design parameters.  These can vary between fonts in the Bedstead family.
+ */
+
+struct param {
+       char const * fontname;
+       char const * fullname;
+       int xpix;
+       int ttfwidth;
+};
+
+struct param default_param = {
+       "Bedstead", "Bedstead",
+       100,            /* xpix */
+       5,              /* ttfwidth */
+};
+
+struct param extended_param = {
+       "Bedstead-Extended", "Bedstead Extended",
+       124,            /* xpix */
+       7,              /* ttfwidth */
+};
+
+struct param *param = &default_param;
+
 /* Size of pixels in font design units (usually 1000/em) */
-int XPIX = 100;
-#define XPIX_EXTENDED 124;
+#define XPIX (param->xpix)
 #define YPIX 100
 
 /* Position of diagonal lines within pixels */
 #define XQTR (XPIX/4)
 #define YQTR (YPIX/4)
 
-/* Metadata */
-char const * FONTNAME = "Bedstead";
-#define FONTNAME_EXTENDED "Bedstead-Extended";
-char const * FULLNAME = "Bedstead";
-#define FULLNAME_EXTENDED "Bedstead Extended";
-
 void doprologue(void);
 void dochar(char const data[YSIZE], unsigned flags);
 
@@ -1100,9 +1118,7 @@ main(int argc, char **argv)
 
        while (argc > 1) {
                if (strcmp(argv[1], "--extended") == 0) {
-                       XPIX = XPIX_EXTENDED;
-                       FONTNAME = FONTNAME_EXTENDED;
-                       FULLNAME = FULLNAME_EXTENDED;
+                       param = &extended_param;
                        argv++; argc--;
                } else if (strcmp(argv[1], "--") == 0) {
                        argv++; argc--;
@@ -1144,8 +1160,8 @@ main(int argc, char **argv)
                if (glyphs[i].unicode == -1)
                        extraglyphs++;
        printf("SplineFontDB: 3.0\n");
-       printf("FontName: %s\n", FONTNAME);
-       printf("FullName: %s\n", FULLNAME);
+       printf("FontName: %s\n", param->fontname);
+       printf("FullName: %s\n", param->fullname);
        printf("FamilyName: Bedstead\n");
        printf("Weight: Medium\n");
        printf("Copyright: Copyright 2009-2014 Ben Harris and others\n");
@@ -1155,6 +1171,7 @@ main(int argc, char **argv)
        printf("UnderlineWidth: %d\n", YPIX);
        printf("Ascent: %d\n", 8 * YPIX);
        printf("Descent: %d\n", 2 * YPIX);
+       printf("TTFWidth: %d\n", param->ttfwidth);
        printf("LayerCount: 2\n");
        printf("Layer: 0 0 \"Back\" 1\n");
        printf("Layer: 1 0 \"Fore\" 0\n");