Note what the various Unicode-range and code-page bits in 'OS/2' mean

I haven't actually checked whether they're right, though.
This commit is contained in:
Ben Harris 2024-11-22 14:17:55 +00:00
parent c798bea1f3
commit e06dad5579

View File

@ -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);