From: Ben Harris Date: Mon, 1 Sep 2014 17:23:21 +0000 (+0100) Subject: Set the 'OS/2' fsWidthClass field correctly for extended font. X-Git-Tag: bedstead-001.001~7 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=b307c886cebf99f42907da8661a5a69b16dec028;p=bedstead.git Set the 'OS/2' fsWidthClass field correctly for extended font. In consequence, arrange a better mechanism for varying settings between font versions. --- diff --git a/bedstead.c b/bedstead.c index 7a71bb8..28e2e92 100644 --- a/bedstead.c +++ b/bedstead.c @@ -113,21 +113,39 @@ #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");