From: Ben Harris Date: Fri, 22 Nov 2024 14:17:55 +0000 (+0000) Subject: Note what the various Unicode-range and code-page bits in 'OS/2' mean X-Git-Tag: bedstead-3.246~3 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=e06dad55790d8ffb270c836927186efd8aedd771;p=bedstead.git Note what the various Unicode-range and code-page bits in 'OS/2' mean I haven't actually checked whether they're right, though. --- diff --git a/bedstead.c b/bedstead.c index 9cae918..cf9c46a 100644 --- a/bedstead.c +++ b/bedstead.c @@ -3039,7 +3039,45 @@ main(int argc, char **argv) TTXI("yStrikeoutPosition", 3 * YPIX); TTXI("sFamilyClass", 0x080a); /* Sans-serif / Matrix */ dopanose(); - /* XXX These were generated by FontForge and should be checked. */ + /* + * Unicode ranges that are considered "functional" in this + * font. XXX These are currently the ones chosen by FontForge + * and should be checked. XXX + * + * The set bits correspond with: + * 0: Basic Latin + * 1: Latin-1 Supplement + * 2: Latin Extended-A + * 3: Latin Extended-B + * 4: IPA Extensions + Phonetic Extensions + Supplement + * 5: Spacing Modifier Letters + * 7: Greek and Coptic + * 9: Cyrillic + Supplement + Extended-A + -B + * 11: Hebrew + * 29: Latin Extended Additional + -C + -D + * 31: General Punctuation + Supplemental Punctuation + * 32: Superscripts and Subscripts + * 33: Currency Symbols + * 35: Letterlike Symbols + * 36: Number Forms + * 37: Arrows + Supplemental Arrows-A + -B + Misc Symbols and Arrows + * 38: Mathematical Operators + Supp + Misc -A + -B + * 39: Miscellaneous Technical + * 40: Control Pictures + * 43: Box Drawing + * 44: Block Elements + * 45: Geometric Shapes + * 46: Miscellaneous Symbols + * 47: Dingbats + * 57: Non-Plane 0 (any at all, need not be "functional") + * 60: Private Use Area (plane 0) + * 62: Alphabetic Presentation Forms + * 68: Halfwidth and Fullwidth Forms + * 69: Specials + * 88: Byzantine Musical Symbols + Musical Symbols + Ancient Greek Musical Notation + * 89: Mathematical Alphanumeric Symbols + * 105: Shavian + */ TTXS("ulUnicodeRange1", "10100000 00000000 00001010 10111111"); TTXS("ulUnicodeRange2", "01010010 00000000 11111001 11111011"); TTXS("ulUnicodeRange3", "00000011 00000000 00000000 00110000"); @@ -3056,7 +3094,34 @@ main(int argc, char **argv) TTXI("sTypoLineGap", 0); TTXI("usWinAscent", ASCENT * YPIX); TTXI("usWinDescent", DESCENT * YPIX); - /* XXX These were generated by FontForge and should be checked. */ + /* + * Code ranges that are considered "functional" in this + * font. XXX These are currently the ones chosen by FontForge + * and should be checked. XXX + * + * The set bits correspond with: + * 0: CP1252 Latin 1 + * 1: CP1250 Latin 2: Eastern Europe + * 2: CP1251 Cyrillic + * 3: CP1253 Greek + * 4: CP1254 Turkish + * 5: CP1255 Hebrew + * 29: Macintosh Character Set (US Roman) + * 30: OEM Character Set + * 48: CP869 IBM Greek + * 49: CP866 MS-DOS Russian + * 50: CP865 MS-DOS Nordic + * 52: CP863 MS-DOS Canadian French + * 53: CP862 Hebrew + * 54: CP861 MS-DOS Icelandic + * 55: CP860 MS-DOS Portuguese + * 56: CP857 IBM Turkish + * 57: CP855 IBM Cyrillic; primarily Russian + * 58: CP852 Latin 2 + * 60: CP737 Greek; former 437 G + * 62: CP850 WE/Latin 1 + * 63: CP437 US + */ TTXS("ulCodePageRange1", "01100000 00000000 00000000 00111111"); TTXS("ulCodePageRange2", "11010111 11110111 00000000 00000000"); TTXI("sxHeight", XHEIGHT * YPIX);