diff options
| author | Jens Schweikhardt <schweikh@schweikhardt.net> | 2025-08-24 00:52:56 +0200 |
|---|---|---|
| committer | Jens Schweikhardt <schweikh@schweikhardt.net> | 2025-08-24 00:52:56 +0200 |
| commit | 6cb6fe4059881a47885a4e5888022734ca33387d (patch) | |
| tree | 26b66bafe024f0dbf2520533dc9cdb26942fc1d1 | |
| parent | 197564826d1aac72e116c24491d7965a7c3244de (diff) | |
Complete letterlike symbols. Fix some Greek Extended. More fixing needed.
| -rw-r--r-- | README.md | 30 | ||||
| -rw-r--r-- | gallant.bdf | 2640 | ||||
| -rw-r--r-- | gallant.fnt | bin | 178644 -> 182536 bytes | |||
| -rw-r--r-- | gallant.hex | 170 | ||||
| -rw-r--r-- | gallant.src | 2266 | ||||
| -rw-r--r-- | srctohex.c | 54 | ||||
| -rw-r--r-- | txttopng.c | 14 |
7 files changed, 4672 insertions, 502 deletions
@@ -2,11 +2,12 @@ This is the Gallant font, as used by the Sun Microsystems SPARCstation console, extended with glyphs for many Unicode blocks. It is a raster -font with a 22x12 pixel character cell, descent 5 and ascent 17. +font with a 22x12 pixel character cell, descent 5 and ascent 17, +originally part of BSD. The starting point was the `gallant.hex` file as found on FreeBSD 14, which contained 502 glyphs at the time. This project currently provides -more than 4000 glyphs. Major additions: +more than 4300 glyphs. Major additions: * Greek * Cyrillic @@ -16,7 +17,7 @@ more than 4000 glyphs. Major additions: * Tons of arrows * Tons of mathematical symbols * Pixel-perfect box drawing -* Currency symbols +* Currency and letterlike symbols * More punctuation * Just enough Katakana to say コンニチハ * Powerline glyphs in the *Private Use Area* at U+e0a0 @@ -58,7 +59,7 @@ none are present. |U+20A0 - U+20CF|[Currency Symbols](https://www.unicode.org/charts/PDF/U20A0.pdf) |Complete | |U+20D0 - U+20FF|[Combining Diacritical Marks for Symbols](https://www.unicode.org/charts/PDF/U20D0.pdf)|Complete | |U+2100 - U+214F|[Letterlike Symbols](https://www.unicode.org/charts/PDF/U2100.pdf) |Partial | -|U+2150 - U+218F|[Number Forms](https://www.unicode.org/charts/PDF/U2150.pdf) |TODO | +|U+2150 - U+218F|[Number Forms](https://www.unicode.org/charts/PDF/U2150.pdf) |Complete | |U+2190 - U+21FF|[Arrows](https://www.unicode.org/charts/PDF/U2190.pdf) |Complete | |U+2200 - U+22FF|[Mathematical Operators](https://www.unicode.org/charts/PDF/U2200.pdf) |Complete | |U+2300 - U+23FF|[Miscellaneous Technical](https://www.unicode.org/charts/PDF/U2300.pdf) |Complete | @@ -126,9 +127,28 @@ You may also drop the font files into directory `/usr/share/vt/fonts` and add `allscreens_flags="-f gallant"` to your `/etc/rc.conf`. This way all console terminals use the font after boot. +## History + +The oldest reference to the Gallant font I could find was in a Copyright +notice in [NetBSD's +gallant12x22.h](https://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/dev/wsfont/gallant12x22.h) +which reads: + +``` +/* + * [...] + * This code is derived from software contributed to the Computer Systems + * Engineering Group at Lawrence Berkeley Laboratory and to the University + * of California at Berkeley by Jef Poskanzer. + * [...] + * Derived from: @(#)gallant19.h 8.1 (Berkeley) 6/11/93 + */ +``` + + ## Remarks -* Codepoints 0 through 31 slightly differ from the Unicode standard. +* Codepoints 0 through 31 differ from the Unicode standard. They were left unmodified to not change their intended use on SPARC hardware. ## TODO diff --git a/gallant.bdf b/gallant.bdf index 4dd92a3..f73ef55 100644 --- a/gallant.bdf +++ b/gallant.bdf @@ -22,7 +22,7 @@ FONT_ASCENT 17 FONT_DESCENT 5 DEFAULT_CHAR 65533 ENDPROPERTIES -CHARS 4259 +CHARS 4335 STARTCHAR U+0000 ENCODING 0 SWIDTH 500 0 @@ -43823,8 +43823,8 @@ BITMAP 7100 8e00 0300 -e300 -1580 +7300 +8580 6580 0480 08c0 @@ -44602,9 +44602,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +28e0 +c000 f0f0 6060 6060 @@ -44631,9 +44631,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +88e0 +6000 f0f0 6060 6060 @@ -45066,9 +45066,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +28e0 +c000 1f80 0600 0600 @@ -45095,9 +45095,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +88e0 +6000 1f80 0600 0600 @@ -45791,9 +45791,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +88e0 +6000 f070 6020 3040 @@ -46226,9 +46226,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +28e0 +c000 0f00 11c0 20c0 @@ -46255,9 +46255,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +88e0 +6000 0f00 11c0 20c0 @@ -46984,8 +46984,8 @@ BITMAP 1800 1800 0b00 -7300 -8580 +e300 +1580 6580 0480 08c0 @@ -47013,8 +47013,8 @@ BITMAP 1800 1800 0b00 -e300 -1580 +7300 +8580 6580 0480 08c0 @@ -47042,8 +47042,8 @@ BITMAP 1800 1800 1300 -7300 -8580 +e300 +1580 6580 0480 08c0 @@ -47071,8 +47071,8 @@ BITMAP 1800 1800 1300 -e300 -1580 +7300 +8580 6580 0480 08c0 @@ -47100,8 +47100,8 @@ BITMAP 7100 8e00 0300 -7300 -8580 +e300 +1580 6580 0480 08c0 @@ -47129,8 +47129,8 @@ BITMAP 7100 8e00 0300 -e300 -1580 +7300 +8580 6580 0480 08c0 @@ -47156,9 +47156,9 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0000 0e00 0100 +0100 0600 0000 2780 @@ -47185,9 +47185,9 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0000 0700 0800 +0800 0600 0000 2780 @@ -47215,9 +47215,9 @@ BITMAP 0000 0000 0000 -70c0 +7300 0980 -3300 +30c0 0000 2780 79c0 @@ -47273,9 +47273,9 @@ BITMAP 0000 0000 0000 -0000 -0000 -0000 +70c0 +0980 +3300 0000 2780 79c0 @@ -47302,9 +47302,9 @@ BITMAP 0000 0000 0000 -0000 -0000 -0000 +38c0 +4180 +3300 0000 2780 79c0 @@ -47386,9 +47386,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e000 +1000 +6000 f0f0 6060 6060 @@ -47404,9 +47404,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1f99 @@ -47415,9 +47415,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +7000 +8000 +6000 f0f0 6060 6060 @@ -47433,9 +47433,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1f9a @@ -47444,9 +47444,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -e200 +e600 1300 -6100 +6180 f0f0 6060 6060 @@ -47462,9 +47462,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1f9b @@ -47473,9 +47473,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +7600 +8300 +6180 f0f0 6060 6060 @@ -47491,9 +47491,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1f9c @@ -47502,9 +47502,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e180 +1300 +6600 f0f0 6060 6060 @@ -47520,9 +47520,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1f9d @@ -47531,9 +47531,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +7180 +8300 +6600 f0f0 6060 6060 @@ -47549,9 +47549,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1f9e @@ -47560,9 +47560,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +28e0 +6000 f0f0 6060 6060 @@ -47578,9 +47578,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1f9f @@ -47589,9 +47589,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +88e0 +6000 f0f0 6060 6060 @@ -47607,9 +47607,9 @@ f0f0 6060 f0f0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1fa0 @@ -47620,9 +47620,9 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0000 0e00 0100 +0100 0600 0000 6060 @@ -47649,9 +47649,9 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0000 0700 0800 +0800 0600 0000 6060 @@ -47678,8 +47678,8 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0080 -38c0 +3880 +04c0 04c0 1840 0000 @@ -47707,8 +47707,8 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0080 -1cc0 +1c80 +20c0 20c0 1840 0000 @@ -47736,8 +47736,8 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0040 -38c0 +3840 +04c0 04c0 1880 0000 @@ -47765,8 +47765,8 @@ BBX 12 22 0 -5 BITMAP 0000 0000 -0040 -1cc0 +1c40 +20c0 20c0 1880 0000 @@ -47850,10 +47850,10 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 -0f00 +0710 +e8e0 +1000 +6f00 11c0 20c0 2060 @@ -47880,9 +47880,9 @@ DWIDTH 12 0 BBX 12 22 0 -5 BITMAP 0000 -0000 -0000 -0f00 +e000 +8000 +6f00 11c0 20c0 2060 @@ -47897,9 +47897,9 @@ BITMAP 4920 79e0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1faa @@ -47926,9 +47926,9 @@ e200 4920 79e0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1fab @@ -47937,9 +47937,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +7600 +8300 +6180 0f00 11c0 20c0 @@ -47955,9 +47955,9 @@ BITMAP 4920 79e0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1fac @@ -47966,9 +47966,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e180 +1300 +6600 0f00 11c0 20c0 @@ -47984,9 +47984,9 @@ BITMAP 4920 79e0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1fad @@ -47995,9 +47995,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +7180 +8300 +6600 0f00 11c0 20c0 @@ -48013,9 +48013,9 @@ BITMAP 4920 79e0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1fae @@ -48024,9 +48024,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +28e0 +c000 0f00 11c0 20c0 @@ -48042,9 +48042,9 @@ BITMAP 4920 79e0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1faf @@ -48053,9 +48053,9 @@ SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -0000 -0000 -0000 +e710 +88e0 +6000 0f00 11c0 20c0 @@ -48071,9 +48071,9 @@ BITMAP 4920 79e0 0000 -0000 -0000 -0000 +0060 +0060 +0070 0000 ENDCHAR STARTCHAR U+1fb0 @@ -56747,64 +56747,6 @@ BITMAP 0000 0000 ENDCHAR -STARTCHAR U+210e -ENCODING 8462 -SWIDTH 500 0 -DWIDTH 12 0 -BBX 12 22 0 -5 -BITMAP -0000 -0000 -0c00 -0c00 -0c00 -1800 -1800 -1b80 -37c0 -38c0 -30c0 -6180 -6180 -6180 -c300 -c300 -c380 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR U+210f -ENCODING 8463 -SWIDTH 500 0 -DWIDTH 12 0 -BBX 12 22 0 -5 -BITMAP -0000 -0000 -0c00 -0c00 -0f80 -f800 -1800 -1b80 -37c0 -38c0 -30c0 -6180 -6180 -6180 -c300 -c300 -c380 -0000 -0000 -0000 -0000 -0000 -ENDCHAR STARTCHAR U+2109 ENCODING 8457 SWIDTH 500 0 @@ -56950,6 +56892,122 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+210e +ENCODING 8462 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0c00 +0c00 +0c00 +1800 +1800 +1b80 +37c0 +38c0 +30c0 +6180 +6180 +6180 +c300 +c300 +c380 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+210f +ENCODING 8463 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0c00 +0c00 +0f80 +f800 +1800 +1b80 +37c0 +38c0 +30c0 +6180 +6180 +6180 +c300 +c300 +c380 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2110 +ENCODING 8464 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +07e0 +3cc0 +70c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +0080 +1980 +1f00 +0c00 +0000 +ENDCHAR +STARTCHAR U+2114 +ENCODING 8468 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +cc00 +cc00 +ffe0 +cc00 +cc00 +cc00 +cde0 +ce70 +cc30 +cc30 +cc30 +cc30 +cc30 +ce70 +cde0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+2115 ENCODING 8469 SWIDTH 500 0 @@ -57327,6 +57385,35 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+2125 +ENCODING 8485 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +7fc0 +4180 +0300 +0600 +0c00 +1f80 +0300 +0600 +0c00 +1f80 +01c0 +00c0 +40c0 +6080 +3f00 +1e00 +0000 +ENDCHAR STARTCHAR U+2126 ENCODING 8486 SWIDTH 500 0 @@ -57385,6 +57472,35 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+2128 +ENCODING 8488 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0f80 +11c0 +20e0 +4060 +0060 +0060 +00e0 +11c0 +0fc0 +10e0 +0060 +0060 +0060 +6060 +b060 +3040 +1f80 +0f00 +0000 +0000 +ENDCHAR STARTCHAR U+2129 ENCODING 8489 SWIDTH 500 0 @@ -57472,6 +57588,35 @@ e0f0 0000 0000 ENDCHAR +STARTCHAR U+212d +ENCODING 8493 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f10 +39e0 +7300 +6300 +e600 +e600 +e600 +e380 +e1c0 +e0c0 +e100 +7000 +7c20 +3fc0 +0f00 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+212e ENCODING 8494 SWIDTH 500 0 @@ -57530,6 +57675,64 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+2133 +ENCODING 8499 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0c30 +1450 +2ca0 +2ca0 +2ca0 +5960 +5960 +5960 +5960 +b2c0 +b2c0 +b2d0 +b2d0 +98e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2134 +ENCODING 8500 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0780 +0c40 +18a0 +30a0 +6070 +e020 +6040 +6080 +3100 +1e00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+2135 ENCODING 8501 SWIDTH 500 0 @@ -57539,20 +57742,107 @@ BITMAP 0000 0000 0000 +c180 +c1c0 +e0e0 +7060 +3820 +3c40 +4e80 +c700 +e380 +e1c0 +70e0 +3870 +3830 +e030 0000 0000 0000 0000 -e1e0 -6060 -3060 -18c0 -3cc0 -6780 -6300 -c180 -c0c0 -f0e0 +0000 +ENDCHAR +STARTCHAR U+2136 +ENCODING 8502 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +c000 +ff80 +7fc0 +00c0 +0040 +0040 +0040 +0040 +0040 +0040 +0040 +0040 +7fe0 +ffc0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2137 +ENCODING 8503 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +6000 +7800 +3e00 +0700 +0100 +0100 +0100 +0100 +0100 +0180 +02c0 +04e0 +3c60 +7820 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2138 +ENCODING 8504 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +c000 +ff80 +7fc0 +0080 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +0300 +0300 0000 0000 0000 @@ -57599,13 +57889,14 @@ BITMAP 0000 0000 0000 -0000 0f90 3fd0 7060 c0d0 8190 8010 +8010 +8010 8030 4060 3fc0 @@ -57615,7 +57906,6 @@ c0d0 0000 0000 0000 -0000 ENDCHAR STARTCHAR U+213b ENCODING 8507 @@ -57791,6 +58081,35 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+2141 +ENCODING 8513 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f00 +3180 +60c0 +60c0 +6060 +7c60 +0060 +0060 +0060 +0060 +60c0 +60c0 +3180 +1f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+2142 ENCODING 8514 SWIDTH 500 0 @@ -57801,7 +58120,7 @@ BITMAP 0000 0000 7fc0 -00c0 +7fc0 00c0 00c0 00c0 @@ -57841,7 +58160,7 @@ BITMAP 00c0 00c0 00c0 -00c0 +7fc0 7fc0 0000 0000 @@ -57907,6 +58226,122 @@ f800 0000 0000 ENDCHAR +STARTCHAR U+2146 +ENCODING 8518 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +01e0 +0120 +0120 +0120 +0120 +0e40 +3240 +4240 +4240 +4240 +8480 +8480 +8480 +8480 +7f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2147 +ENCODING 8519 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0f80 +1260 +2410 +4820 +4fe0 +4800 +9000 +9000 +5180 +3e00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2148 +ENCODING 8520 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0780 +0480 +0780 +0000 +0000 +0f00 +0900 +0900 +0900 +1200 +1200 +1200 +1e00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2149 +ENCODING 8521 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +03c0 +0240 +03c0 +0000 +0000 +0780 +0480 +0480 +0480 +0900 +0900 +0900 +0900 +1200 +2400 +7800 +0000 +0000 +ENDCHAR STARTCHAR U+214a ENCODING 8522 SWIDTH 500 0 @@ -58052,6 +58487,1775 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+214f +ENCODING 8527 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +4440 +aaa0 +aaa0 +aaa0 +aaa0 +aaa0 +4440 +6660 +9990 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2150 +ENCODING 8528 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +0600 +0c00 +1bf0 +3030 +6060 +4060 +00c0 +00c0 +0180 +0180 +0300 +0000 +ENDCHAR +STARTCHAR U+2151 +ENCODING 8529 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +0600 +0c00 +19e0 +3330 +6330 +4330 +01f0 +0030 +0060 +00c0 +0300 +0000 +ENDCHAR +STARTCHAR U+2152 +ENCODING 8530 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +0600 +0c00 +1800 +3000 +79e0 +3b30 +3b30 +1b30 +1b30 +1b30 +1b30 +1b30 +3de0 +ENDCHAR +STARTCHAR U+2153 +ENCODING 8531 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +07e0 +0f30 +1830 +3030 +61e0 +4030 +0030 +0330 +01e0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2154 +ENCODING 8532 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +3800 +7c00 +6c00 +4c00 +1820 +3060 +60c0 +7d80 +7f00 +07e0 +0f30 +1830 +3030 +61e0 +4030 +0030 +0330 +01e0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2155 +ENCODING 8533 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +07f0 +0ff0 +1b00 +3300 +63e0 +4030 +0030 +0330 +01e0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2156 +ENCODING 8534 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +3800 +7c00 +6c00 +4c00 +1820 +3060 +60c0 +7d80 +7f00 +07f0 +0ff0 +1b00 +3300 +63e0 +4030 +0030 +0330 +01e0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2157 +ENCODING 8535 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +3c00 +6600 +0600 +0600 +3c20 +0660 +06c0 +6780 +3f00 +07f0 +0ff0 +1b00 +3300 +63e0 +4030 +0030 +0330 +01e0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2158 +ENCODING 8536 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0400 +0c00 +1c00 +1c00 +2c20 +4c60 +7ec0 +0d80 +0f00 +07f0 +0ff0 +1b00 +3300 +63e0 +4030 +0030 +0330 +01e0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2159 +ENCODING 8537 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +0660 +0d80 +1b00 +3600 +67c0 +4660 +0660 +0660 +03c0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+215a +ENCODING 8538 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +fc00 +fc00 +c000 +c000 +f820 +0c60 +0cc0 +cd80 +7b00 +0660 +0d80 +1b00 +3600 +67c0 +4660 +0660 +0660 +03c0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+215b +ENCODING 8539 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +07c0 +0e60 +1e60 +3660 +63c0 +4660 +0660 +0660 +03c0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+215c +ENCODING 8540 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +3c00 +6600 +0600 +0600 +3c20 +0660 +06c0 +6780 +3d00 +07c0 +0e60 +1e60 +3660 +63c0 +4660 +0660 +0660 +03c0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+215d +ENCODING 8541 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +7e00 +7e00 +6000 +6000 +7c20 +0660 +06c0 +6780 +3f00 +07c0 +0e60 +1e60 +3660 +63c0 +4660 +0660 +0660 +03c0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+215e +ENCODING 8542 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +7e00 +0600 +0c20 +0c60 +18c0 +1980 +3300 +3600 +6c00 +1bc0 +3660 +6660 +4660 +03c0 +0660 +0660 +0660 +03c0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+215f +ENCODING 8543 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +1800 +3800 +3800 +1800 +1820 +1860 +18c0 +1980 +3f00 +0600 +0c00 +1800 +3000 +6000 +4000 +0000 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2160 +ENCODING 8544 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f00 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +1f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2161 +ENCODING 8545 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +3fc0 +0900 +0900 +0900 +0900 +0900 +0900 +0900 +0900 +0900 +0900 +0900 +0900 +3fc0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2162 +ENCODING 8546 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +ffe0 +2480 +2480 +2480 +2480 +2480 +2480 +2480 +2480 +2480 +2480 +2480 +2480 +ffe0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2163 +ENCODING 8547 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +fef0 +2820 +2820 +2820 +2440 +2440 +2440 +2280 +2280 +2280 +2100 +2100 +2100 +ffc0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2164 +ENCODING 8548 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f9f0 +2040 +2040 +2040 +1080 +1080 +1080 +0900 +0900 +0900 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2165 +ENCODING 8549 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +e3f0 +4140 +4140 +4140 +2240 +2240 +2240 +1440 +1440 +1440 +0840 +0840 +0840 +3ff0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2166 +ENCODING 8550 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +e7f0 +42a0 +42a0 +42a0 +42a0 +24a0 +24a0 +24a0 +24a0 +18a0 +18a0 +18a0 +18a0 +3df0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2167 +ENCODING 8551 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +dff0 +8aa0 +8aa0 +8aa0 +8aa0 +52a0 +52a0 +52a0 +52a0 +22a0 +22a0 +22a0 +22a0 +77f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2168 +ENCODING 8552 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +fef0 +2440 +2440 +2280 +2280 +2280 +2100 +2100 +2280 +2280 +2280 +2440 +2440 +fef0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2169 +ENCODING 8553 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +7bc0 +1100 +1100 +0a00 +0a00 +0a00 +0400 +0400 +0a00 +0a00 +0a00 +1100 +1100 +7bc0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+216a +ENCODING 8554 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f7f0 +2240 +2240 +1440 +1440 +1440 +0840 +0840 +1440 +1440 +1440 +2240 +2240 +f7f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+216b +ENCODING 8555 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +eff0 +4520 +4520 +2920 +2920 +2920 +1120 +1120 +2920 +2920 +2920 +4520 +4520 +eff0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+216c +ENCODING 8556 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +7800 +3000 +3000 +3000 +3000 +3000 +3000 +3000 +3000 +3000 +3000 +3020 +3020 +7fe0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+216d +ENCODING 8557 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0fc0 +1060 +2020 +2000 +6000 +6000 +6000 +6000 +6000 +6000 +2000 +3020 +1840 +0f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+216e +ENCODING 8558 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +ff00 +61c0 +60c0 +6060 +6060 +6060 +6060 +6060 +6060 +6060 +6060 +6040 +6180 +fe00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+216f +ENCODING 8559 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +e070 +60e0 +70e0 +70e0 +70e0 +5960 +5960 +5960 +4d60 +4e60 +4e60 +4460 +4460 +e4f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2170 +ENCODING 8560 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0400 +0400 +0000 +0000 +0c00 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0e00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2171 +ENCODING 8561 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1080 +1080 +0000 +0000 +3180 +1080 +1080 +1080 +1080 +1080 +1080 +1080 +1080 +39c0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2172 +ENCODING 8562 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +4440 +4440 +0000 +0000 +ccc0 +4440 +4440 +4440 +4440 +4440 +4440 +4440 +4440 +eee0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2173 +ENCODING 8563 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +4000 +4000 +0000 +0000 +dc70 +4820 +4820 +4440 +4440 +4440 +4280 +4280 +4280 +e7c0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2174 +ENCODING 8564 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +70e0 +2040 +2040 +1080 +1080 +0900 +0900 +0600 +0600 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2175 +ENCODING 8565 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0020 +0020 +0000 +0000 +e3e0 +4120 +4120 +2220 +2220 +2220 +1420 +1420 +1420 +3e70 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2176 +ENCODING 8566 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +00a0 +00a0 +0000 +0000 +c7e0 +82a0 +82a0 +44a0 +44a0 +44a0 +28a0 +28a0 +28a0 +7df0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2177 +ENCODING 8567 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +02a0 +02a0 +0000 +0000 +dfe0 +8aa0 +8aa0 +8aa0 +52a0 +52a0 +52a0 +22a0 +22a0 +77f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2178 +ENCODING 8568 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +2000 +2000 +0000 +0000 +6ee0 +2440 +2280 +2280 +2100 +2100 +2280 +2280 +2440 +7ee0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2179 +ENCODING 8569 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +71c0 +2080 +1100 +0a00 +0400 +0400 +0a00 +1100 +2080 +71c0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+217a +ENCODING 8570 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0040 +0040 +0000 +0000 +77c0 +2240 +1440 +1440 +0840 +0840 +1440 +1440 +2240 +77e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+217b +ENCODING 8571 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +00a0 +00a0 +0000 +0000 +efe0 +44a0 +28a0 +28a0 +10a0 +10a0 +28a0 +28a0 +44a0 +eff0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+217c +ENCODING 8572 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +1e00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+217d +ENCODING 8573 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +1f80 +31c0 +20c0 +6000 +6000 +6000 +6000 +7040 +30c0 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+217e +ENCODING 8574 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0060 +00e0 +0060 +0060 +0060 +0f60 +31e0 +20e0 +6060 +6060 +6060 +6060 +70e0 +3960 +1e70 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+217f +ENCODING 8575 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +ddc0 +6ee0 +6660 +6660 +6660 +6660 +6660 +6660 +6660 +ef70 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2180 +ENCODING 8576 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f80 +36e0 +4660 +c630 +c630 +c630 +c630 +c630 +c630 +c630 +c630 +6620 +76c0 +1f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2181 +ENCODING 8577 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +ff00 +61c0 +60c0 +7860 +6660 +6360 +6360 +6360 +6360 +6660 +7860 +6040 +6180 +fe00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2182 +ENCODING 8578 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f80 +36e0 +4660 +c630 +cf30 +d6b0 +d6b0 +d6b0 +d6b0 +cf30 +c630 +6620 +76c0 +1f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2183 +ENCODING 8579 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +3f00 +6080 +4040 +0040 +0060 +0060 +0060 +0060 +0060 +0060 +0040 +40c0 +2180 +1f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2184 +ENCODING 8580 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +1f80 +38c0 +3040 +0060 +0060 +0060 +0060 +20e0 +30c0 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2185 +ENCODING 8581 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0fc0 +1060 +2020 +2000 +6000 +6000 +6000 +6000 +6000 +6000 +2000 +3020 +1860 +0fe0 +0060 +0060 +0060 +0060 +0000 +ENDCHAR +STARTCHAR U+2186 +ENCODING 8582 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +4620 +6660 +36c0 +1f80 +0f00 +0600 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2187 +ENCODING 8583 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +ff00 +61c0 +78c0 +6460 +6260 +7260 +6a60 +6a60 +7260 +6260 +6460 +7840 +6180 +fe00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2188 +ENCODING 8584 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f80 +36e0 +4660 +9fb0 +a650 +af50 +a950 +a950 +af50 +a650 +9f90 +6620 +76c0 +1f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+2189 +ENCODING 8585 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +3c00 +6600 +6600 +6600 +6620 +6660 +66c0 +6780 +3f00 +07e0 +0f30 +1830 +3030 +61e0 +4030 +0030 +0330 +01e0 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+218a +ENCODING 8586 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +7fe0 +7fe0 +40c0 +0180 +0300 +0600 +0c00 +1800 +3000 +3000 +3000 +3020 +3860 +1fc0 +0f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+218b +ENCODING 8587 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0f80 +1fc0 +2060 +6020 +6000 +6000 +7000 +3f00 +3e00 +7000 +6000 +6020 +7040 +3f80 +1f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+2190 ENCODING 8592 SWIDTH 500 0 diff --git a/gallant.fnt b/gallant.fnt Binary files differindex d2d3f61..d73088b 100644 --- a/gallant.fnt +++ b/gallant.fnt diff --git a/gallant.hex b/gallant.hex index ae49ee0..6d31335 100644 --- a/gallant.hex +++ b/gallant.hex @@ -1510,7 +1510,7 @@ 1f0c:0800180018001300e30015806580048008c008c008401fe01060102020302030707000000000000000000000 1f0d:0800180018001300730085806580048008c008c008401fe01060102020302030707000000000000000000000 1f0e:000071008e000300e30015806580048008c008c008401fe01060102020302030707000000000000000000000 -1f0f:000071008e000300e30015806580048008c008c008401fe01060102020302030707000000000000000000000 +1f0f:000071008e000300730085806580048008c008c008401fe01060102020302030707000000000000000000000 1f10:000000000e0001000100060000000f801fc0206060003f003f00600060203fc01f0000000000000000000000 1f11:00000000070008000800060000000f801fc0206060003f003f00600060203fc01f0000000000000000000000 1f12:00000000708008c008c0304000000f801fc0206060003f003f00600060203fc01f0000000000000000000000 @@ -1537,8 +1537,8 @@ 1f2b:720083006100f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 1f2c:e10013006200f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 1f2d:710083006200f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f2e:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f2f:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2e:e71028e0c000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2f:e71088e06000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 1f30:000000000e0001000100060000001e00060006000600060006000600060006001f8000000000000000000000 1f31:00000000070008000800060000001e00060006000600060006000600060006001f8000000000000000000000 1f32:00000000708008c008c0304000001e00060006000600060006000600060006001f8000000000000000000000 @@ -1553,8 +1553,8 @@ 1f3b:7200830061001f800600060006000600060006000600060006000600060006001f8000000000000000000000 1f3c:e100130062001f800600060006000600060006000600060006000600060006001f8000000000000000000000 1f3d:7100830062001f800600060006000600060006000600060006000600060006001f8000000000000000000000 -1f3e:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 -1f3f:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3e:e71028e0c0001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3f:e71088e060001f800600060006000600060006000600060006000600060006001f8000000000000000000000 1f40:000000000e0001000100060000000f8011c020e06060606060606060704038801f0000000000000000000000 1f41:00000000070008000800060000000f8011c020e06060606060606060704038801f0000000000000000000000 1f42:00000000708008c008c0304000000f8011c020e06060606060606060704038801f0000000000000000000000 @@ -1578,7 +1578,7 @@ 1f59:700080006000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 1f5b:720083006100f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 1f5d:710083006200f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 -1f5f:000000000000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 +1f5f:e71088e06000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 1f60:000000000e0001000100060000006060c030c630c630c630c630c63066207fc0198000000000000000000000 1f61:00000000070008000800060000006060c030c630c630c630c630c63066207fc0198000000000000000000000 1f62:00000000708008c008c0304000006060c030c630c630c630c630c63066207fc0198000000000000000000000 @@ -1593,8 +1593,8 @@ 1f6b:7200830061000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 1f6c:e100130062000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 1f6d:7100830062000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1f6e:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1f6f:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6e:e71028e0c0000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6f:e71088e060000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 1f70:000000000c0006000300000000001f9031d060e060e060c060c060c061e072603c3000000000000000000000 1f71:00000000030006000c00000000001f9031d060e060e060c060c060c061e072603c3000000000000000000000 1f72:0000000000000c000600030000000f801fc0206060003f003f00600060203fc01f0000000000000000000000 @@ -1619,44 +1619,44 @@ 1f87:1c402380000007000800060000001f9031d060e060e060c060c060c061e072603c3000000600060007000000 1f88:00000000e000160066000b000b0009001180118010803fc020c0204040604060e0f000000040004000600000 1f89:000000007000860066000b000b0009001180118010803fc020c0204040604060e0f000000040004000600000 -1f8a:1000180018000b00730085806580048008c008c008401fe01060102020302030707000000040004000600000 -1f8b:1000180018000b00e30015806580048008c008c008401fe01060102020302030707000000040004000600000 -1f8c:0800180018001300730085806580048008c008c008401fe01060102020302030707000000040004000600000 -1f8d:0800180018001300e30015806580048008c008c008401fe01060102020302030707000000040004000600000 -1f8e:000071008e000300730085806580048008c008c008401fe01060102020302030707000000040004000600000 -1f8f:000071008e000300e30015806580048008c008c008401fe01060102020302030707000000060006000700000 -1f90:0000000000000e00010006000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 -1f91:0000000000000700080006000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 -1f92:00000000000070c0098033000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 +1f8a:1000180018000b00e30015806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8b:1000180018000b00730085806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8c:0800180018001300e30015806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8d:0800180018001300730085806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8e:000071008e000300e30015806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8f:000071008e000300730085806580048008c008c008401fe01060102020302030707000000060006000700000 +1f90:000000000e000100010006000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 +1f91:0000000007000800080006000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 +1f92:0000000000007300098030c00000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 1f93:0000000000003b00418030c00000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 -1f94:0000000000000000000000000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 -1f95:0000000000000000000000000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 +1f94:00000000000070c0098033000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 +1f95:00000000000038c0418033000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 1f96:1c40238000000e00010006000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 1f97:1c40238000000700080006000000278079c030c030c030c030c030c030c030c078c000c030c030c038c001e0 -1f98:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f99:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f9a:e20013006100f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f9b:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f9c:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f9d:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f9e:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1f9f:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 -1fa0:0000000000000e000100060000006060c030c630c630c630c630c63066207fc0198000000600060007000000 -1fa1:00000000000007000800060000006060c030c630c630c630c630c63066207fc0198000000600060007000000 -1fa2:00000000008038c004c0184000006060c030c630c630c630c630c63066207fc0198000000600060007000000 -1fa3:0000000000801cc020c0184000006060c030c630c630c630c630c63066207fc0198000000600060007000000 -1fa4:00000000004038c004c0188000006060c030c630c630c630c630c63066207fc0198000000600060007000000 -1fa5:0000000000401cc020c0188000006060c030c630c630c630c630c63066207fc0198000000600060007000000 +1f98:e00010006000f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1f99:700080006000f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1f9a:e60013006180f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1f9b:760083006180f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1f9c:e18013006600f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1f9d:718083006600f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1f9e:e71028e06000f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1f9f:e71088e06000f0f0606060606060606060607fe0606060606060606060606060f0f000000060006000700000 +1fa0:000000000e0001000100060000006060c030c630c630c630c630c63066207fc0198000000600060007000000 +1fa1:00000000070008000800060000006060c030c630c630c630c630c63066207fc0198000000600060007000000 +1fa2:00000000388004c004c0184000006060c030c630c630c630c630c63066207fc0198000000600060007000000 +1fa3:000000001c8020c020c0184000006060c030c630c630c630c630c63066207fc0198000000600060007000000 +1fa4:00000000384004c004c0188000006060c030c630c630c630c630c63066207fc0198000000600060007000000 +1fa5:000000001c4020c020c0188000006060c030c630c630c630c630c63066207fc0198000000600060007000000 1fa6:1c40238000000e000100060000006060c030c630c630c630c630c63066207fc0198000000600060007000000 1fa7:1c402380000007000800060000006060c030c630c630c630c630c63066207fc0198000000600060007000000 -1fa8:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1fa9:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1faa:e200130061000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1fab:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1fac:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1fad:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1fae:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 -1faf:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1fa8:0710e8e010006f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1fa9:0000e00080006f0011c020c0206060606060606060602040304018800900492079e000000060006000700000 +1faa:e200130061000f0011c020c0206060606060606060602040304018800900492079e000000060006000700000 +1fab:7600830061800f0011c020c0206060606060606060602040304018800900492079e000000060006000700000 +1fac:e180130066000f0011c020c0206060606060606060602040304018800900492079e000000060006000700000 +1fad:7180830066000f0011c020c0206060606060606060602040304018800900492079e000000060006000700000 +1fae:e71028e0c0000f0011c020c0206060606060606060602040304018800900492079e000000060006000700000 +1faf:e71088e060000f0011c020c0206060606060606060602040304018800900492079e000000060006000700000 1fb0:00000000000000000000000000001f9031d060e060e060c060c060c061e072603c3000000000000000000000 1fb1:00000000000000000000000000001f9031d060e060e060c060c060c061e072603c3000000000000000000000 1fb2:00000000000000000000000000001f9031d060e060e060c060c060c061e072603c3000000600060007000000 @@ -1956,13 +1956,15 @@ 2106:00007c00c600c000c000c020c060c6c07d80030006300e301e30363066304630063003e00000000000000000 2107:00000000000000000000000000000f801fc0206060003f003f00600060203fc01f0000000000000000000000 2108:0000000000003f00608040400040086008600fe0086008600060404040c021801f0000000000000000000000 -210e:000000000c000c000c00180018001b8037c038c030c0618061806180c300c300c38000000000000000000000 -210f:000000000c000c000f80f80018001b8037c038c030c0618061806180c300c300c38000000000000000000000 2109:6000900090006ff00c100c100c000c000c200fe00c200c000c000c000c000c001e0000000000000000000000 210a:0000000000000000000000000f9018f03060306060c060c060c023801f8003e01f006300630066003e001c00 210b:00000000000078708c908c906ce00d601ac01cc018c038c0598091809190919060e000000000000000000000 210c:0000000000001c6033c061806000c000c700d980e0c07060706038301c300c306830b060006000c079009e00 210d:00000000000079e0492049204920492049204f2049204920492049204920492079e000000000000000000000 +210e:000000000c000c000c00180018001b8037c038c030c0618061806180c300c300c38000000000000000000000 +210f:000000000c000c000f80f80018001b8037c038c030c0618061806180c300c300c38000000000000000000000 +2110:00000000000007e03cc070c000c000c000c000c000c000c000c000c000c000c000c0008019801f000c000000 +2114:00000000cc00cc00ffe0cc00cc00cc00cde0ce70cc30cc30cc30cc30cc30ce70cde000000000000000000000 2115:0000000000007820482064206420522052204920492044a044a042604260412041e000000000000000000000 2116:00000000000087008200c200c260a290a290929092908a908a60860086f08200c30000000000000000000000 2117:0000000000000f00108020402f4059a059a059a05f20582058203840204010800f0000000000000000000000 @@ -1976,31 +1978,105 @@ 2122:00007d1011b01150111011101110000000000000000000000000000000000000000000000000000000000000 2123:f0001e000200e2e064403480348038801900190019001e001e002e0024002400440040004000000000000000 2124:0000000000007fe07fe002400240048004800900090012001200240024007fe07fe000000000000000000000 +2125:000000000000000000007fc04180030006000c001f80030006000c001f8001c000c040c060803f001e000000 2126:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 2127:00000000000079e049200900118020c0204060606060606060606040304038800f0000000000000000000000 +2128:000000000f8011c020e040600060006000e011c00fc010e00060006000606060b06030401f800f0000000000 2129:00000000000000000000000000001f8006000600060006000600060006000600078000000000000000000000 212a:000000000000f0e06180630066006c00780078007c006e006700638061c060e0f07000000000000000000000 212b:06000f0019800f0006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +212d:0000000000000f1039e073006300e600e600e600e380e1c0e0c0e10070007c203fc00f000000000000000000 212e:00000000000000000e00318060c060c0e0e0ffe0e000e000e0006040604031800e0000000000000000000000 2132:00000000000003c00180018001800180018021803f80218001800180418041807fc000000000000000000000 -2135:0000000000000000000000000000e1e06060306018c03cc067806300c180c0c0f0e000000000000000000000 +2133:0000000000000c3014502ca02ca02ca05960596059605960b2c0b2c0b2d0b2d098e000000000000000000000 +2134:000000000000000000000000000007800c4018a030a06070e0206040608031001e0000000000000000000000 +2135:000000000000c180c1c0e0e0706038203c404e80c700e380e1c070e038703830e03000000000000000000000 +2136:000000000000c000ff807fc000c0004000400040004000400040004000407fe0ffc000000000000000000000 +2137:000000000000600078003e00070001000100010001000100018002c004e03c60782000000000000000000000 +2138:000000000000c000ff807fc00080018001800180018001800180018001800300030000000000000000000000 2139:000000000000000006000f000f00060000003f000f000f000f000f000f000f003fc000000000000000000000 -213a:0000000000000000000000000f903fd07060c0d081908010803040603fc00f80000000000000000000000000 +213a:000000000000000000000f903fd07060c0d08190801080108010803040603fc00f8000000000000000000000 213b:00000000000000000000000000000000f80080008000e91088a094409c40a2a0a31000000000000000000000 213c:0000000000000000000000000000ffe0248024802480248024802480249024903c6000000000000000000000 213d:00000000000000000000000000000000f020902048402480250013001200090009001480248024801f000000 213e:0000000000007fe0482048204800480048004800480048004800480048004800780000000000000000000000 213f:000000000000fff0909090909090909090909090909090909090909090909090f0f000000000000000000000 2140:0000000000007fe04800240012000900048002400240048009001200240048007fe000000000000000000000 -2142:0000000000007fc000c000c000c000c000c000c000c000c000c000c000c000c000c000000000000000000000 -2143:00000000000000c000c000c000c000c000c000c000c000c000c000c000c000c07fc000000000000000000000 +2141:0000000000001f00318060c060c060607c60006000600060006060c060c031801f0000000000000000000000 +2142:0000000000007fc07fc000c000c000c000c000c000c000c000c000c000c000c000c000000000000000000000 +2143:00000000000000c000c000c000c000c000c000c000c000c000c000c000c07fc07fc000000000000000000000 2144:0000000000000600060006000600060006000f000f001980198030c030c06060606000000000000000000000 2145:0000000000003e00258024402420242048204820482048209040904090809700f80000000000000000000000 +2146:0000000001e001200120012001200e40324042404240424084808480848084807f8000000000000000000000 +2147:00000000000000000000000000000f801260241048204fe048009000900051803e0000000000000000000000 +2148:0000000000000000078004800780000000000f000900090009001200120012001e0000000000000000000000 +2149:000000000000000003c0024003c0000000000780048004800480090009000900090012002400780000000000 214a:0000000000000c000c007f804c404c204c204c200c400f800c000c000c000fe00fe000000000000000000000 214b:0000000067807fc01860386078606c600ee007c007801f003180318031801f000e0000000000000000000000 214c:000000000180e240242024202410241024107f20a4a0a440a4a07f2024202400240024002400240024001800 214d:000038006c006c006c00c620fe60c6c0c780030007e00e301e0031e060304030063003e00000000000000000 214e:000000000000000000000000000003c001800180018011801f801180018021803fc000000000000000000000 +214f:000000000000000000000000000000004440aaa0aaa0aaa0aaa0aaa044406660999000000000000000000000 +2150:000018003800380018001820186018c019803f0006000c001bf030306060406000c000c00180018003000000 +2151:000018003800380018001820186018c019803f0006000c0019e033306330433001f00030006000c003000000 +2152:18003800380018001820186018c019803f0006000c001800300079e03b303b301b301b301b301b301b303de0 +2153:000018003800380018001820186018c019803f0007e00f301830303061e040300030033001e0000000000000 +2154:000038007c006c004c001820306060c07d807f0007e00f301830303061e040300030033001e0000000000000 +2155:000018003800380018001820186018c019803f0007f00ff01b00330063e040300030033001e0000000000000 +2156:000038007c006c004c001820306060c07d807f0007f00ff01b00330063e040300030033001e0000000000000 +2157:00003c006600060006003c20066006c067803f0007f00ff01b00330063e040300030033001e0000000000000 +2158:000004000c001c001c002c204c607ec00d800f0007f00ff01b00330063e040300030033001e0000000000000 +2159:000018003800380018001820186018c019803f0006600d801b00360067c046600660066003c0000000000000 +215a:0000fc00fc00c000c000f8200c600cc0cd807b0006600d801b00360067c046600660066003c0000000000000 +215b:000018003800380018001820186018c019803f0007c00e601e60366063c046600660066003c0000000000000 +215c:00003c006600060006003c20066006c067803d0007c00e601e60366063c046600660066003c0000000000000 +215d:00007e007e00600060007c20066006c067803f0007c00e601e60366063c046600660066003c0000000000000 +215e:00007e0006000c200c6018c01980330036006c001bc036606660466003c006600660066003c0000000000000 +215f:000018003800380018001820186018c019803f0006000c001800300060004000000000000000000000000000 +2160:0000000000001f000400040004000400040004000400040004000400040004001f0000000000000000000000 +2161:0000000000003fc00900090009000900090009000900090009000900090009003fc000000000000000000000 +2162:000000000000ffe0248024802480248024802480248024802480248024802480ffe000000000000000000000 +2163:000000000000fef0282028202820244024402440228022802280210021002100ffc000000000000000000000 +2164:000000000000f9f02040204020401080108010800900090009000600060006001f8000000000000000000000 +2165:000000000000e3f04140414041402240224022401440144014400840084008403ff000000000000000000000 +2166:000000000000e7f042a042a042a042a024a024a024a024a018a018a018a018a03df000000000000000000000 +2167:000000000000dff08aa08aa08aa08aa052a052a052a052a022a022a022a022a077f000000000000000000000 +2168:000000000000fef0244024402280228022802100210022802280228024402440fef000000000000000000000 +2169:0000000000007bc0110011000a000a000a00040004000a000a000a00110011007bc000000000000000000000 +216a:000000000000f7f0224022401440144014400840084014401440144022402240f7f000000000000000000000 +216b:000000000000eff0452045202920292029201120112029202920292045204520eff000000000000000000000 +216c:00000000000078003000300030003000300030003000300030003000302030207fe000000000000000000000 +216d:0000000000000fc01060202020006000600060006000600060002000302018400f8000000000000000000000 +216e:000000000000ff0061c060c06060606060606060606060606060606060406180fe0000000000000000000000 +216f:000000000000e07060e070e070e070e05960596059604d604e604e6044604460e4f000000000000000000000 +2170:00000000000004000400000000000c00040004000400040004000400040004000e0000000000000000000000 +2171:000000000000108010800000000031801080108010801080108010801080108039c000000000000000000000 +2172:0000000000004440444000000000ccc044404440444044404440444044404440eee000000000000000000000 +2173:0000000000004000400000000000dc7048204820444044404440428042804280e7c000000000000000000000 +2174:000000000000000000000000000070e0204020401080108009000900060006000f0000000000000000000000 +2175:0000000000000020002000000000e3e0412041202220222022201420142014203e7000000000000000000000 +2176:00000000000000a000a000000000c7e082a082a044a044a044a028a028a028a07df000000000000000000000 +2177:00000000000002a002a000000000dfe08aa08aa08aa052a052a052a022a022a077f000000000000000000000 +2178:00000000000020002000000000006ee0244022802280210021002280228024407ee000000000000000000000 +2179:000000000000000000000000000071c0208011000a00040004000a001100208071c000000000000000000000 +217a:000000000000004000400000000077c02240144014400840084014401440224077e000000000000000000000 +217b:00000000000000a000a000000000efe044a028a028a010a010a028a028a044a0eff000000000000000000000 +217c:000000001e0006000600060006000600060006000600060006000600060006001f8000000000000000000000 +217d:00000000000000000000000000001f8031c020c06000600060006000704030c01f8000000000000000000000 +217e:00000000006000e00060006000600f6031e020e0606060606060606070e039601e7000000000000000000000 +217f:0000000000000000000000000000ddc06ee06660666066606660666066606660ef7000000000000000000000 +2180:0000000000000f8036e04660c630c630c630c630c630c630c630c630662076c01f0000000000000000000000 +2181:000000000000ff0061c060c07860666063606360636063606660786060406180fe0000000000000000000000 +2182:0000000000000f8036e04660c630cf30d6b0d6b0d6b0d6b0cf30c630662076c01f0000000000000000000000 +2183:0000000000003f00608040400040006000600060006000600060004040c021801f0000000000000000000000 +2184:00000000000000000000000000001f8038c03040006000600060006020e030c01f8000000000000000000000 +2185:0000000000000fc01060202020006000600060006000600060002000302018600fe000600060006000600000 +2186:000000000000060006000600060006000600060006004620666036c01f800f00060000000000000000000000 +2187:000000000000ff0061c078c06460626072606a606a6072606260646078406180fe0000000000000000000000 +2188:0000000000000f8036e046609fb0a650af50a950a950af50a6509f90662076c01f0000000000000000000000 +2189:00003c006600660066006620666066c067803f0007e00f301830303061e040300030033001e0000000000000 +218a:000000007fe07fe040c00180030006000c001800300030003000302038601fc00f8000000000000000000000 +218b:000000000f801fc0206060206000600070003f003e0070006000602070403f801f0000000000000000000000 2190:0000000000000000000000000c00180030007fe07fe0300018000c0000000000000000000000000000000000 2191:0000000006000f001f8036c06660060006000600060006000600060006000600060000000000000000000000 2192:0000000000000000000000000300018000c07fe07fe000c00180030000000000000000000000000000000000 diff --git a/gallant.src b/gallant.src index f99ce5a..00a01c3 100644 --- a/gallant.src +++ b/gallant.src @@ -36243,8 +36243,8 @@ STARTCHAR U+1f0f GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 21 | ███ █ | 20 |█ ███ | 19 | ██ | -18 |███ ██ | -17 | █ █ ██ | +18 | ███ ██ | +17 |█ █ ██ | 16 | ██ █ ██ | 15 | █ █ | 14 | █ ██ | @@ -36887,9 +36887,9 @@ STARTCHAR U+1f2d GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 01 | | ENDCHAR STARTCHAR U+1f2e GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 | █ █ ███ | +20 |██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -36911,9 +36911,9 @@ STARTCHAR U+1f2e GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 01 | | ENDCHAR STARTCHAR U+1f2f GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 |█ █ ███ | +20 | ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -37271,9 +37271,9 @@ STARTCHAR U+1f3d GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 01 | | ENDCHAR STARTCHAR U+1f3e GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 | █ █ ███ | +20 |██ | 19 | ██████ | 18 | ██ | 17 | ██ | @@ -37295,9 +37295,9 @@ STARTCHAR U+1f3e GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 01 | | ENDCHAR STARTCHAR U+1f3f GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 |█ █ ███ | +20 | ██ | 19 | ██████ | 18 | ██ | 17 | ██ | @@ -37871,9 +37871,9 @@ STARTCHAR U+1f5d GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 01 | | ENDCHAR STARTCHAR U+1f5f GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 |█ █ ███ | +20 | ██ | 19 |████ ███| 18 | ██ █ | 17 | ██ █ | @@ -38231,9 +38231,9 @@ STARTCHAR U+1f6d GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 01 | | ENDCHAR STARTCHAR U+1f6e GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 | █ █ ███ | +20 |██ | 19 | ████ | 18 | █ ███ | 17 | █ ██ | @@ -38255,9 +38255,9 @@ STARTCHAR U+1f6e GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 01 | | ENDCHAR STARTCHAR U+1f6f GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 |█ █ ███ | +20 | ██ | 19 | ████ | 18 | █ ███ | 17 | █ ██ | @@ -38859,8 +38859,8 @@ STARTCHAR U+1f8a GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMM 21 | ██ | 20 | ██ | 19 | █ ██ | -18 | ███ ██ | -17 |█ █ ██ | +18 |███ ██ | +17 | █ █ ██ | 16 | ██ █ ██ | 15 | █ █ | 14 | █ ██ | @@ -38883,8 +38883,8 @@ STARTCHAR U+1f8b GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMM 21 | ██ | 20 | ██ | 19 | █ ██ | -18 |███ ██ | -17 | █ █ ██ | +18 | ███ ██ | +17 |█ █ ██ | 16 | ██ █ ██ | 15 | █ █ | 14 | █ ██ | @@ -38907,8 +38907,8 @@ STARTCHAR U+1f8c GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMME 21 | ██ | 20 | ██ | 19 | █ ██ | -18 | ███ ██ | -17 |█ █ ██ | +18 |███ ██ | +17 | █ █ ██ | 16 | ██ █ ██ | 15 | █ █ | 14 | █ ██ | @@ -38931,8 +38931,8 @@ STARTCHAR U+1f8d GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMME 21 | ██ | 20 | ██ | 19 | █ ██ | -18 |███ ██ | -17 | █ █ ██ | +18 | ███ ██ | +17 |█ █ ██ | 16 | ██ █ ██ | 15 | █ █ | 14 | █ ██ | @@ -38955,8 +38955,8 @@ STARTCHAR U+1f8e GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSG 21 | ███ █ | 20 |█ ███ | 19 | ██ | -18 | ███ ██ | -17 |█ █ ██ | +18 |███ ██ | +17 | █ █ ██ | 16 | ██ █ ██ | 15 | █ █ | 14 | █ ██ | @@ -38979,8 +38979,8 @@ STARTCHAR U+1f8f GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSG 21 | ███ █ | 20 |█ ███ | 19 | ██ | -18 |███ ██ | -17 | █ █ ██ | +18 | ███ ██ | +17 |█ █ ██ | 16 | ██ █ ██ | 15 | █ █ | 14 | █ ██ | @@ -39001,9 +39001,9 @@ ENDCHAR STARTCHAR U+1f90 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 22 | | 21 | | -20 | | 19 | ███ | 18 | █ | +18 | █ | 17 | ██ | 16 | | 15 | █ ████ | @@ -39025,9 +39025,9 @@ ENDCHAR STARTCHAR U+1f91 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 22 | | 21 | | -20 | | 19 | ███ | 18 | █ | +18 | █ | 17 | ██ | 16 | | 15 | █ ████ | @@ -39050,9 +39050,9 @@ STARTCHAR U+1f92 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 22 | | 21 | | 20 | | -19 | ███ ██ | +19 | ███ ██ | 18 | █ ██ | -17 | ██ ██ | +17 | ██ ██ | 16 | | 15 | █ ████ | 14 | ████ ███ | @@ -39098,9 +39098,9 @@ STARTCHAR U+1f94 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 22 | | 21 | | 20 | | -19 | | -18 | | -17 | | +19 | ███ ██ | +18 | █ ██ | +17 | ██ ██ | 16 | | 15 | █ ████ | 14 | ████ ███ | @@ -39121,10 +39121,10 @@ ENDCHAR STARTCHAR U+1f95 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 22 | | 21 | | -20 | | -19 | | -18 | | 17 | | +19 | ███ ██ | +18 | █ ██ | +17 | ██ ██ | 16 | | 15 | █ ████ | 14 | ████ ███ | @@ -39191,9 +39191,9 @@ STARTCHAR U+1f97 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAM 01 | ████ | ENDCHAR STARTCHAR U+1f98 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 |███ | +21 | █ | +20 | ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39209,15 +39209,15 @@ STARTCHAR U+1f98 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1f99 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 | ███ | +21 |█ | +20 | ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39233,15 +39233,15 @@ STARTCHAR U+1f99 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1f9a GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI -22 |███ █ | +22 |███ ██ | 21 | █ ██ | -20 | ██ █ | +20 | ██ ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39257,15 +39257,15 @@ STARTCHAR U+1f9a GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMEN 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1f9b GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 | ███ ██ | +21 |█ ██ | +20 | ██ ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39281,15 +39281,15 @@ STARTCHAR U+1f9b GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMEN 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1f9c GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 |███ ██ | +21 | █ ██ | +20 | ██ ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39305,15 +39305,15 @@ STARTCHAR U+1f9c GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1f9d GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 | ███ ██ | +21 |█ ██ | +20 | ██ ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39329,15 +39329,15 @@ STARTCHAR U+1f9d GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1f9e GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 | █ █ ███ | +20 | ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39353,15 +39353,15 @@ STARTCHAR U+1f9e GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEG 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1f9f GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 |█ █ ███ | +20 | ██ | 19 |████ ████| 18 | ██ ██ | 17 | ██ ██ | @@ -39377,17 +39377,17 @@ STARTCHAR U+1f9f GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEG 07 | ██ ██ | 06 |████ ████| 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1fa0 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 22 | | 21 | | -20 | | 19 | ███ | 18 | █ | +18 | █ | 17 | ██ | 16 | | 15 | ██ ██ | @@ -39409,9 +39409,9 @@ ENDCHAR STARTCHAR U+1fa1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 22 | | 21 | | -20 | | 19 | ███ | 18 | █ | +18 | █ | 17 | ██ | 16 | | 15 | ██ ██ | @@ -39432,9 +39432,9 @@ STARTCHAR U+1fa1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI ENDCHAR STARTCHAR U+1fa2 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 22 | | -21 | | -20 | █ | -19 | ███ ██ | +20 | | +19 | ███ █ | +18 | █ ██ | 18 | █ ██ | 17 | ██ █ | 16 | | @@ -39456,9 +39456,9 @@ STARTCHAR U+1fa2 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI ENDCHAR STARTCHAR U+1fa3 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 22 | | -21 | | -20 | █ | -19 | ███ ██ | +20 | | +19 | ███ █ | +18 | █ ██ | 18 | █ ██ | 17 | ██ █ | 16 | | @@ -39480,9 +39480,9 @@ STARTCHAR U+1fa3 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI ENDCHAR STARTCHAR U+1fa4 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 22 | | -21 | | -20 | █ | -19 | ███ ██ | +20 | | +19 | ███ █ | +18 | █ ██ | 18 | █ ██ | 17 | ██ █ | 16 | | @@ -39504,9 +39504,9 @@ STARTCHAR U+1fa4 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI ENDCHAR STARTCHAR U+1fa5 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 22 | | -21 | | -20 | █ | -19 | ███ ██ | +20 | | +19 | ███ █ | +18 | █ ██ | 18 | █ ██ | 17 | ██ █ | 16 | | @@ -39575,10 +39575,10 @@ STARTCHAR U+1fa7 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGR 01 | | ENDCHAR STARTCHAR U+1fa8 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI -22 | | -21 | | -20 | | -19 | ████ | +22 | ███ █| +21 |███ █ ███ | +20 | █ | +19 | ██ ████ | 18 | █ ███ | 17 | █ ██ | 16 | █ ██ | @@ -39600,9 +39600,9 @@ STARTCHAR U+1fa8 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI ENDCHAR STARTCHAR U+1fa9 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 22 | | -21 | | -20 | | -19 | ████ | +21 |███ | +20 |█ | +19 | ██ ████ | 18 | █ ███ | 17 | █ ██ | 16 | █ ██ | @@ -39617,9 +39617,9 @@ STARTCHAR U+1fa9 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 07 | █ █ █ █ | 06 | ████ ████ | 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1faa GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI @@ -39641,15 +39641,15 @@ STARTCHAR U+1faa GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMM 07 | █ █ █ █ | 06 | ████ ████ | 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1fab GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +19 | ███ ██ | +18 |█ ██ | +17 | ██ ██ | 19 | ████ | 18 | █ ███ | 17 | █ ██ | @@ -39665,15 +39665,15 @@ STARTCHAR U+1fab GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMM 07 | █ █ █ █ | 06 | ████ ████ | 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1fac GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +19 |███ ██ | +18 | █ ██ | +17 | ██ ██ | 19 | ████ | 18 | █ ███ | 17 | █ ██ | @@ -39689,15 +39689,15 @@ STARTCHAR U+1fac GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMME 07 | █ █ █ █ | 06 | ████ ████ | 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1fad GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +19 | ███ ██ | +18 |█ ██ | +17 | ██ ██ | 19 | ████ | 18 | █ ███ | 17 | █ ██ | @@ -39713,15 +39713,15 @@ STARTCHAR U+1fad GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMME 07 | █ █ █ █ | 06 | ████ ████ | 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1fae GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 | █ █ ███ | +20 |██ | 19 | ████ | 18 | █ ███ | 17 | █ ██ | @@ -39737,15 +39737,15 @@ STARTCHAR U+1fae GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSG 07 | █ █ █ █ | 06 | ████ ████ | 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1faf GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -22 | | -21 | | -20 | | +22 |███ ███ █| +21 |█ █ ███ | +20 | ██ | 19 | ████ | 18 | █ ███ | 17 | █ ██ | @@ -39761,9 +39761,9 @@ STARTCHAR U+1faf GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSG 07 | █ █ █ █ | 06 | ████ ████ | 05 | | -04 | | -03 | | -02 | | +04 | ██ | +03 | ██ | +02 | ███| 01 | | ENDCHAR STARTCHAR U+1fb0 GREEK SMALL LETTER ALPHA WITH VRACHY @@ -46942,54 +46942,6 @@ STARTCHAR U+2108 SCRUPLE 02 | | 01 | | ENDCHAR -STARTCHAR U+210e PLANCK CONSTANT -22 | | -21 | | -20 | ██ | -19 | ██ | -18 | ██ | -17 | ██ | -16 | ██ | -15 | ██ ███ | -14 | ██ █████ | -13 | ███ ██ | -12 | ██ ██ | -11 | ██ ██ | -10 | ██ ██ | -09 | ██ ██ | -08 |██ ██ | -07 |██ ██ | -06 |██ ███ | -05 | | -04 | | -03 | | -02 | | -01 | | -ENDCHAR -STARTCHAR U+210f PLANCK CONSTANT OVER TWO PI -22 | | -21 | | -20 | ██ | -19 | ██ | -18 | █████ | -17 |█████ | -16 | ██ | -15 | ██ ███ | -14 | ██ █████ | -13 | ███ ██ | -12 | ██ ██ | -11 | ██ ██ | -10 | ██ ██ | -09 | ██ ██ | -08 |██ ██ | -07 |██ ██ | -06 |██ ███ | -05 | | -04 | | -03 | | -02 | | -01 | | -ENDCHAR STARTCHAR U+2109 DEGREE FAHRENHEIT 22 | ██ | 21 |█ █ | @@ -47110,6 +47062,102 @@ STARTCHAR U+210d DOUBLE-STRUCK CAPITAL H 02 | | 01 | | ENDCHAR +STARTCHAR U+210e PLANCK CONSTANT +22 | | +21 | | +20 | ██ | +19 | ██ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ ███ | +14 | ██ █████ | +13 | ███ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 |██ ██ | +07 |██ ██ | +06 |██ ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+210f PLANCK CONSTANT OVER TWO PI +22 | | +21 | | +20 | ██ | +19 | ██ | +18 | █████ | +17 |█████ | +16 | ██ | +15 | ██ ███ | +14 | ██ █████ | +13 | ███ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 |██ ██ | +07 |██ ██ | +06 |██ ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2110 SCRIPT CAPITAL I +22 | | +21 | | +20 | | +19 | ██████ | +18 | ████ ██ | +17 | ███ ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██ | +05 | █ | +04 | ██ ██ | +03 | █████ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+2114 L B BAR SYMBOL +22 | | +21 | | +20 |██ ██ | +19 |██ ██ | +18 |███████████ | +17 |██ ██ | +16 |██ ██ | +15 |██ ██ | +14 |██ ██ ████ | +13 |██ ███ ███| +12 |██ ██ ██| +11 |██ ██ ██| +10 |██ ██ ██| +09 |██ ██ ██| +08 |██ ██ ██| +07 |██ ███ ███| +06 |██ ██ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+2115 DOUBLE-STRUCK CAPITAL N 22 | | 21 | | @@ -47422,6 +47470,30 @@ STARTCHAR U+2124 DOUBLE-STRUCK CAPITAL Z 02 | | 01 | | ENDCHAR +STARTCHAR U+2125 OUNCE SIGN +22 | | +21 | | +20 | | +19 | | +18 | | +17 | █████████ | +16 | █ ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██████ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██████ | +07 | ███ | +06 | ██ | +05 | █ ██ | +04 | ██ █ | +03 | ██████ | +02 | ████ | +01 | | +ENDCHAR STARTCHAR U+2126 OHM SIGN 22 | | 21 | | @@ -47470,6 +47542,30 @@ STARTCHAR U+2127 INVERTED OHM SIGN 02 | | 01 | | ENDCHAR +STARTCHAR U+2128 BLACK-LETTER CAPITAL Z +22 | | +21 | | +20 | █████ | +19 | █ ███ | +18 | █ ███ | +17 | █ ██ | +16 | ██ | +15 | ██ | +14 | ███ | +13 | █ ███ | +12 | ██████ | +11 | █ ███ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ ██ | +06 |█ ██ ██ | +05 | ██ █ | +04 | ██████ | +03 | ████ | +02 | | +01 | | +ENDCHAR STARTCHAR U+2129 TURNED GREEK SMALL LETTER IOTA 22 | | 21 | | @@ -47542,6 +47638,30 @@ STARTCHAR U+212b ANGSTROM SIGN 02 | | 01 | | ENDCHAR +STARTCHAR U+212d BLACK-LETTER CAPITAL C +22 | | +21 | | +20 | | +19 | ████ █| +18 | ███ ████ | +17 | ███ ██ | +16 | ██ ██ | +15 |███ ██ | +14 |███ ██ | +13 |███ ██ | +12 |███ ███ | +11 |███ ███ | +10 |███ ██ | +09 |███ █ | +08 | ███ | +07 | █████ █ | +06 | ████████ | +05 | ████ | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+212e ESTIMATED SYMBOL 22 | | 21 | | @@ -47590,7 +47710,31 @@ STARTCHAR U+2132 TURNED CAPITAL F 02 | | 01 | | ENDCHAR -STARTCHAR U+2135 ALEF SYMBOL +STARTCHAR U+2133 SCRIPT CAPITAL M +22 | | +21 | | +20 | | +19 | ██ ██| +18 | █ █ █ █| +17 | █ ██ █ █ | +16 | █ ██ █ █ | +15 | █ ██ █ █ | +14 | █ ██ █ ██ | +13 | █ ██ █ ██ | +12 | █ ██ █ ██ | +11 | █ ██ █ ██ | +10 |█ ██ █ ██ | +09 |█ ██ █ ██ | +08 |█ ██ █ ██ █| +07 |█ ██ █ ██ █| +06 |█ ██ ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2134 SCRIPT SMALL O 22 | | 21 | | 20 | | @@ -47598,16 +47742,112 @@ STARTCHAR U+2135 ALEF SYMBOL 18 | | 17 | | 16 | | -15 |███ ████ | -14 | ██ ██ | -13 | ██ ██ | -12 | ██ ██ | -11 | ████ ██ | -10 | ██ ████ | -09 | ██ ██ | -08 |██ ██ | -07 |██ ██ | -06 |████ ███ | +15 | ████ | +14 | ██ █ | +13 | ██ █ █ | +12 | ██ █ █ | +11 | ██ ███| +10 |███ █ | +09 | ██ █ | +08 | ██ █ | +07 | ██ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2135 ALEF SYMBOL +22 | | +21 | | +20 | | +19 |██ ██ | +18 |██ ███ | +17 |███ ███ | +16 | ███ ██ | +15 | ███ █ | +14 | ████ █ | +13 | █ ███ █ | +12 |██ ███ | +11 |███ ███ | +10 |███ ███ | +09 | ███ ███ | +08 | ███ ███| +07 | ███ ██| +06 |███ ██| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2136 BET SYMBOL +22 | | +21 | | +20 | | +19 |██ | +18 |█████████ | +17 | █████████ | +16 | ██ | +15 | █ | +14 | █ | +13 | █ | +12 | █ | +11 | █ | +10 | █ | +09 | █ | +08 | █ | +07 | ██████████ | +06 |██████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2137 GIMEL SYMBOL +22 | | +21 | | +20 | | +19 | ██ | +18 | ████ | +17 | █████ | +16 | ███ | +15 | █ | +14 | █ | +13 | █ | +12 | █ | +11 | █ | +10 | ██ | +09 | █ ██ | +08 | █ ███ | +07 | ████ ██ | +06 | ████ █ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2138 DALET SYMBOL +22 | | +21 | | +20 | | +19 |██ | +18 |█████████ | +17 | █████████ | +16 | █ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██ | 05 | | 04 | | 03 | | @@ -47644,18 +47884,18 @@ STARTCHAR U+213a ROTATED CAPITAL Q 20 | | 19 | | 18 | | -17 | | -16 | █████ █| -15 | ████████ █| -14 | ███ ██ | -13 |██ ██ █| -12 |█ ██ █| +17 | █████ █| +16 | ████████ █| +15 | ███ ██ | +14 |██ ██ █| +13 |█ ██ █| +12 |█ █| 11 |█ █| -10 |█ ██| -09 | █ ██ | -08 | ████████ | -07 | █████ | -06 | | +10 |█ █| +09 |█ ██| +08 | █ ██ | +07 | ████████ | +06 | █████ | 05 | | 04 | | 03 | | @@ -47806,12 +48046,36 @@ STARTCHAR U+2140 DOUBLE-STRUCK N-ARY SUMMATION 02 | | 01 | | ENDCHAR +STARTCHAR U+2141 TURNED SANS-SERIF CAPITAL G +22 | | +21 | | +20 | | +19 | █████ | +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | █████ ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+2142 TURNED SANS-SERIF CAPITAL L 22 | | 21 | | 20 | | 19 | █████████ | -18 | ██ | +18 | █████████ | 17 | ██ | 16 | ██ | 15 | ██ | @@ -47846,7 +48110,7 @@ STARTCHAR U+2143 REVERSED SANS-SERIF CAPITAL L 10 | ██ | 09 | ██ | 08 | ██ | -07 | ██ | +07 | █████████ | 06 | █████████ | 05 | | 04 | | @@ -47902,6 +48166,102 @@ STARTCHAR U+2145 DOUBLE-STRUCK ITALIC CAPITAL D 02 | | 01 | | ENDCHAR +STARTCHAR U+2146 DOUBLE-STRUCK ITALIC SMALL D +22 | | +21 | | +20 | ████ | +19 | █ █ | +18 | █ █ | +17 | █ █ | +16 | █ █ | +15 | ███ █ | +14 | ██ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ | +10 |█ █ █ | +09 |█ █ █ | +08 |█ █ █ | +07 |█ █ █ | +06 | ████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2147 DOUBLE-STRUCK ITALIC SMALL E +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | █████ | +14 | █ █ ██ | +13 | █ █ █| +12 | █ █ █ | +11 | █ ███████ | +10 | █ █ | +09 |█ █ | +08 |█ █ | +07 | █ █ ██ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2148 DOUBLE-STRUCK ITALIC SMALL I +22 | | +21 | | +20 | | +19 | | +18 | ████ | +17 | █ █ | +16 | ████ | +15 | | +14 | | +13 | ████ | +12 | █ █ | +11 | █ █ | +10 | █ █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2149 DOUBLE-STRUCK ITALIC SMALL J +22 | | +21 | | +20 | | +19 | | +18 | ████ | +17 | █ █ | +16 | ████ | +15 | | +14 | | +13 | ████ | +12 | █ █ | +11 | █ █ | +10 | █ █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 | █ █ | +05 | █ █ | +04 | █ █ | +03 | ████ | +02 | | +01 | | +ENDCHAR STARTCHAR U+214a PROPERTY LINE 22 | | 21 | | @@ -48022,6 +48382,1470 @@ STARTCHAR U+214e TURNED SMALL F 02 | | 01 | | ENDCHAR +STARTCHAR U+214f SYMBOL FOR SAMARITAN SOURCE +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | | +14 | █ █ █ | +13 |█ █ █ █ █ █ | +12 |█ █ █ █ █ █ | +11 |█ █ █ █ █ █ | +10 |█ █ █ █ █ █ | +09 |█ █ █ █ █ █ | +08 | █ █ █ | +07 | ██ ██ ██ | +06 |█ ██ ██ █| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2150 VULGAR FRACTION ONE SEVENTH +22 | | +21 | ██ | +20 | ███ | +19 | ███ | +18 | ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████ | +12 | ██ | +11 | ██ | +10 | ██ ██████| +09 | ██ ██| +08 | ██ ██ | +07 | █ ██ | +06 | ██ | +05 | ██ | +04 | ██ | +03 | ██ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+2151 VULGAR FRACTION ONE NINTH +22 | | +21 | ██ | +20 | ███ | +19 | ███ | +18 | ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████ | +12 | ██ | +11 | ██ | +10 | ██ ████ | +09 | ██ ██ ██| +08 | ██ ██ ██| +07 | █ ██ ██| +06 | █████| +05 | ██| +04 | ██ | +03 | ██ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+2152 VULGAR FRACTION ONE TENTH +22 | ██ | +21 | ███ | +20 | ███ | +19 | ██ | +18 | ██ █ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██████ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ████ ████ | +08 | ███ ██ ██| +07 | ███ ██ ██| +06 | ██ ██ ██| +05 | ██ ██ ██| +04 | ██ ██ ██| +03 | ██ ██ ██| +02 | ██ ██ ██| +01 | ████ ████ | +ENDCHAR +STARTCHAR U+2153 VULGAR FRACTION ONE THIRD +22 | | +21 | ██ | +20 | ███ | +19 | ███ | +18 | ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████ | +12 | ██████ | +11 | ████ ██| +10 | ██ ██| +09 | ██ ██| +08 | ██ ████ | +07 | █ ██| +06 | ██| +05 | ██ ██| +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2154 VULGAR FRACTION TWO THIRDS +22 | | +21 | ███ | +20 | █████ | +19 | ██ ██ | +18 | █ ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | █████ ██ | +13 | ███████ | +12 | ██████ | +11 | ████ ██| +10 | ██ ██| +09 | ██ ██| +08 | ██ ████ | +07 | █ ██| +06 | ██| +05 | ██ ██| +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2155 VULGAR FRACTION ONE FIFTH +22 | | +21 | ██ | +20 | ███ | +19 | ███ | +18 | ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████ | +12 | ███████| +11 | ████████| +10 | ██ ██ | +09 | ██ ██ | +08 | ██ █████ | +07 | █ ██| +06 | ██| +05 | ██ ██| +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2156 VULGAR FRACTION TWO FIFTHS +22 | | +21 | ███ | +20 | █████ | +19 | ██ ██ | +18 | █ ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | █████ ██ | +13 | ███████ | +12 | ███████| +11 | ████████| +10 | ██ ██ | +09 | ██ ██ | +08 | ██ █████ | +07 | █ ██| +06 | ██| +05 | ██ ██| +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2157 VULGAR FRACTION THREE FIFTHS +22 | | +21 | ████ | +20 | ██ ██ | +19 | ██ | +18 | ██ | +17 | ████ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ████ | +13 | ██████ | +12 | ███████| +11 | ████████| +10 | ██ ██ | +09 | ██ ██ | +08 | ██ █████ | +07 | █ ██| +06 | ██| +05 | ██ ██| +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2158 VULGAR FRACTION FOUR FIFTHS +22 | | +21 | █ | +20 | ██ | +19 | ███ | +18 | ███ | +17 | █ ██ █ | +16 | █ ██ ██ | +15 | ██████ ██ | +14 | ██ ██ | +13 | ████ | +12 | ███████| +11 | ████████| +10 | ██ ██ | +09 | ██ ██ | +08 | ██ █████ | +07 | █ ██| +06 | ██| +05 | ██ ██| +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2159 VULGAR FRACTION ONE SIXTH +22 | | +21 | ██ | +20 | ███ | +19 | ███ | +18 | ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ █████ | +07 | █ ██ ██ | +06 | ██ ██ | +05 | ██ ██ | +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+215a VULGAR FRACTION FIVE SIXTHS +22 | | +21 |██████ | +20 |██████ | +19 |██ | +18 |██ | +17 |█████ █ | +16 | ██ ██ | +15 | ██ ██ | +14 |██ ██ ██ | +13 | ████ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ █████ | +07 | █ ██ ██ | +06 | ██ ██ | +05 | ██ ██ | +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+215b VULGAR FRACTION ONE EIGHTH +22 | | +21 | ██ | +20 | ███ | +19 | ███ | +18 | ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████ | +12 | █████ | +11 | ███ ██ | +10 | ████ ██ | +09 | ██ ██ ██ | +08 | ██ ████ | +07 | █ ██ ██ | +06 | ██ ██ | +05 | ██ ██ | +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+215c VULGAR FRACTION THREE EIGHTHS +22 | | +21 | ████ | +20 | ██ ██ | +19 | ██ | +18 | ██ | +17 | ████ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ████ | +13 | ████ █ | +12 | █████ | +11 | ███ ██ | +10 | ████ ██ | +09 | ██ ██ ██ | +08 | ██ ████ | +07 | █ ██ ██ | +06 | ██ ██ | +05 | ██ ██ | +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+215d VULGAR FRACTION FIVE EIGHTHS +22 | | +21 | ██████ | +20 | ██████ | +19 | ██ | +18 | ██ | +17 | █████ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ████ | +13 | ██████ | +12 | █████ | +11 | ███ ██ | +10 | ████ ██ | +09 | ██ ██ ██ | +08 | ██ ████ | +07 | █ ██ ██ | +06 | ██ ██ | +05 | ██ ██ | +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+215e VULGAR FRACTION SEVEN EIGHTHS +22 | | +21 | ██████ | +20 | ██ | +19 | ██ █ | +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ████ | +11 | ██ ██ ██ | +10 | ██ ██ ██ | +09 | █ ██ ██ | +08 | ████ | +07 | ██ ██ | +06 | ██ ██ | +05 | ██ ██ | +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+215f FRACTION NUMERATOR ONE +22 | | +21 | ██ | +20 | ███ | +19 | ███ | +18 | ██ | +17 | ██ █ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | █ | +06 | | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2160 ROMAN NUMERAL ONE +22 | | +21 | | +20 | | +19 | █████ | +18 | █ | +17 | █ | +16 | █ | +15 | █ | +14 | █ | +13 | █ | +12 | █ | +11 | █ | +10 | █ | +09 | █ | +08 | █ | +07 | █ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2161 ROMAN NUMERAL TWO +22 | | +21 | | +20 | | +19 | ████████ | +18 | █ █ | +17 | █ █ | +16 | █ █ | +15 | █ █ | +14 | █ █ | +13 | █ █ | +12 | █ █ | +11 | █ █ | +10 | █ █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 | ████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2162 ROMAN NUMERAL THREE +22 | | +21 | | +20 | | +19 |███████████ | +18 | █ █ █ | +17 | █ █ █ | +16 | █ █ █ | +15 | █ █ █ | +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 |███████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2163 ROMAN NUMERAL FOUR +22 | | +21 | | +20 | | +19 |███████ ████| +18 | █ █ █ | +17 | █ █ █ | +16 | █ █ █ | +15 | █ █ █ | +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 |██████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2164 ROMAN NUMERAL FIVE +22 | | +21 | | +20 | | +19 |█████ █████| +18 | █ █ | +17 | █ █ | +16 | █ █ | +15 | █ █ | +14 | █ █ | +13 | █ █ | +12 | █ █ | +11 | █ █ | +10 | █ █ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2165 ROMAN NUMERAL SIX +22 | | +21 | | +20 | | +19 |███ ██████| +18 | █ █ █ | +17 | █ █ █ | +16 | █ █ █ | +15 | █ █ █ | +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 | ██████████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2166 ROMAN NUMERAL SEVEN +22 | | +21 | | +20 | | +19 |███ ███████| +18 | █ █ █ █ | +17 | █ █ █ █ | +16 | █ █ █ █ | +15 | █ █ █ █ | +14 | █ █ █ █ | +13 | █ █ █ █ | +12 | █ █ █ █ | +11 | █ █ █ █ | +10 | ██ █ █ | +09 | ██ █ █ | +08 | ██ █ █ | +07 | ██ █ █ | +06 | ████ █████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2167 ROMAN NUMERAL EIGHT +22 | | +21 | | +20 | | +19 |██ █████████| +18 |█ █ █ █ █ | +17 |█ █ █ █ █ | +16 |█ █ █ █ █ | +15 |█ █ █ █ █ | +14 | █ █ █ █ █ | +13 | █ █ █ █ █ | +12 | █ █ █ █ █ | +11 | █ █ █ █ █ | +10 | █ █ █ █ | +09 | █ █ █ █ | +08 | █ █ █ █ | +07 | █ █ █ █ | +06 | ███ ███████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2168 ROMAN NUMERAL NINE +22 | | +21 | | +20 | | +19 |███████ ████| +18 | █ █ █ | +17 | █ █ █ | +16 | █ █ █ | +15 | █ █ █ | +14 | █ █ █ | +13 | █ █ | +12 | █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 |███████ ████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2169 ROMAN NUMERAL TEN +22 | | +21 | | +20 | | +19 | ████ ████ | +18 | █ █ | +17 | █ █ | +16 | █ █ | +15 | █ █ | +14 | █ █ | +13 | █ | +12 | █ | +11 | █ █ | +10 | █ █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+216a ROMAN NUMERAL ELEVEN +22 | | +21 | | +20 | | +19 |████ ███████| +18 | █ █ █ | +17 | █ █ █ | +16 | █ █ █ | +15 | █ █ █ | +14 | █ █ █ | +13 | █ █ | +12 | █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 |████ ███████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+216b ROMAN NUMERAL TWELVE +22 | | +21 | | +20 | | +19 |███ ████████| +18 | █ █ █ █ | +17 | █ █ █ █ | +16 | █ █ █ █ | +15 | █ █ █ █ | +14 | █ █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ █ | +10 | █ █ █ █ | +09 | █ █ █ █ | +08 | █ █ █ █ | +07 | █ █ █ █ | +06 |███ ████████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+216c ROMAN NUMERAL FIFTY +22 | | +21 | | +20 | | +19 | ████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ █ | +07 | ██ █ | +06 | ██████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+216d ROMAN NUMERAL ONE HUNDRED +22 | | +21 | | +20 | | +19 | ██████ | +18 | █ ██ | +17 | █ █ | +16 | █ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | █ | +08 | ██ █ | +07 | ██ █ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+216e ROMAN NUMERAL FIVE HUNDRED +22 | | +21 | | +20 | | +19 |████████ | +18 | ██ ███ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ █ | +07 | ██ ██ | +06 |███████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+216f ROMAN NUMERAL ONE THOUSAND +22 | | +21 | | +20 | | +19 |███ ███| +18 | ██ ███ | +17 | ███ ███ | +16 | ███ ███ | +15 | ███ ███ | +14 | █ ██ █ ██ | +13 | █ ██ █ ██ | +12 | █ ██ █ ██ | +11 | █ ██ █ ██ | +10 | █ ███ ██ | +09 | █ ███ ██ | +08 | █ █ ██ | +07 | █ █ ██ | +06 |███ █ ████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2170 SMALL ROMAN NUMERAL ONE +22 | | +21 | | +20 | | +19 | █ | +18 | █ | +17 | | +16 | | +15 | ██ | +14 | █ | +13 | █ | +12 | █ | +11 | █ | +10 | █ | +09 | █ | +08 | █ | +07 | █ | +06 | ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2171 SMALL ROMAN NUMERAL TWO +22 | | +21 | | +20 | | +19 | █ █ | +18 | █ █ | +17 | | +16 | | +15 | ██ ██ | +14 | █ █ | +13 | █ █ | +12 | █ █ | +11 | █ █ | +10 | █ █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 | ███ ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2172 SMALL ROMAN NUMERAL THREE +22 | | +21 | | +20 | | +19 | █ █ █ | +18 | █ █ █ | +17 | | +16 | | +15 |██ ██ ██ | +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 |███ ███ ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2173 SMALL ROMAN NUMERAL FOUR +22 | | +21 | | +20 | | +19 | █ | +18 | █ | +17 | | +16 | | +15 |██ ███ ███| +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 |███ █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2174 SMALL ROMAN NUMERAL FIVE +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | ███ ███ | +14 | █ █ | +13 | █ █ | +12 | █ █ | +11 | █ █ | +10 | █ █ | +09 | █ █ | +08 | ██ | +07 | ██ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2175 SMALL ROMAN NUMERAL SIX +22 | | +21 | | +20 | | +19 | █ | +18 | █ | +17 | | +16 | | +15 |███ █████ | +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 | █████ ███| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2176 SMALL ROMAN NUMERAL SEVEN +22 | | +21 | | +20 | | +19 | █ █ | +18 | █ █ | +17 | | +16 | | +15 |██ ██████ | +14 |█ █ █ █ | +13 |█ █ █ █ | +12 | █ █ █ █ | +11 | █ █ █ █ | +10 | █ █ █ █ | +09 | █ █ █ █ | +08 | █ █ █ █ | +07 | █ █ █ █ | +06 | █████ █████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2177 SMALL ROMAN NUMERAL EIGHT +22 | | +21 | | +20 | | +19 | █ █ █ | +18 | █ █ █ | +17 | | +16 | | +15 |██ ████████ | +14 |█ █ █ █ █ | +13 |█ █ █ █ █ | +12 |█ █ █ █ █ | +11 | █ █ █ █ █ | +10 | █ █ █ █ █ | +09 | █ █ █ █ █ | +08 | █ █ █ █ | +07 | █ █ █ █ | +06 | ███ ███████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2178 SMALL ROMAN NUMERAL NINE +22 | | +21 | | +20 | | +19 | █ | +18 | █ | +17 | | +16 | | +15 | ██ ███ ███ | +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ | +10 | █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 | ██████ ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2179 SMALL ROMAN NUMERAL TEN +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | ███ ███ | +14 | █ █ | +13 | █ █ | +12 | █ █ | +11 | █ | +10 | █ | +09 | █ █ | +08 | █ █ | +07 | █ █ | +06 | ███ ███ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+217a SMALL ROMAN NUMERAL ELEVEN +22 | | +21 | | +20 | | +19 | █ | +18 | █ | +17 | | +16 | | +15 | ███ █████ | +14 | █ █ █ | +13 | █ █ █ | +12 | █ █ █ | +11 | █ █ | +10 | █ █ | +09 | █ █ █ | +08 | █ █ █ | +07 | █ █ █ | +06 | ███ ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+217b SMALL ROMAN NUMERAL TWELVE +22 | | +21 | | +20 | | +19 | █ █ | +18 | █ █ | +17 | | +16 | | +15 |███ ███████ | +14 | █ █ █ █ | +13 | █ █ █ █ | +12 | █ █ █ █ | +11 | █ █ █ | +10 | █ █ █ | +09 | █ █ █ █ | +08 | █ █ █ █ | +07 | █ █ █ █ | +06 |███ ████████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+217c SMALL ROMAN NUMERAL FIFTY +22 | | +21 | | +20 | ████ | +19 | ██ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+217d SMALL ROMAN NUMERAL ONE HUNDRED +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | ██████ | +14 | ██ ███ | +13 | █ ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ███ █ | +07 | ██ ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+217e SMALL ROMAN NUMERAL FIVE HUNDRED +22 | | +21 | | +20 | ██ | +19 | ███ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ████ ██ | +14 | ██ ████ | +13 | █ ███ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ███ ███ | +07 | ███ █ ██ | +06 | ████ ███| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+217f SMALL ROMAN NUMERAL ONE THOUSAND +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 |██ ███ ███ | +14 | ██ ███ ███ | +13 | ██ ██ ██ | +12 | ██ ██ ██ | +11 | ██ ██ ██ | +10 | ██ ██ ██ | +09 | ██ ██ ██ | +08 | ██ ██ ██ | +07 | ██ ██ ██ | +06 |███ ████ ███| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2180 ROMAN NUMERAL ONE THOUSAND C D +22 | | +21 | | +20 | | +19 | █████ | +18 | ██ ██ ███ | +17 | █ ██ ██ | +16 |██ ██ ██| +15 |██ ██ ██| +14 |██ ██ ██| +13 |██ ██ ██| +12 |██ ██ ██| +11 |██ ██ ██| +10 |██ ██ ██| +09 |██ ██ ██| +08 | ██ ██ █ | +07 | ███ ██ ██ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2181 ROMAN NUMERAL FIVE THOUSAND +22 | | +21 | | +20 | | +19 |████████ | +18 | ██ ███ | +17 | ██ ██ | +16 | ████ ██ | +15 | ██ ██ ██ | +14 | ██ ██ ██ | +13 | ██ ██ ██ | +12 | ██ ██ ██ | +11 | ██ ██ ██ | +10 | ██ ██ ██ | +09 | ████ ██ | +08 | ██ █ | +07 | ██ ██ | +06 |███████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2182 ROMAN NUMERAL TEN THOUSAND +22 | | +21 | | +20 | | +19 | █████ | +18 | ██ ██ ███ | +17 | █ ██ ██ | +16 |██ ██ ██| +15 |██ ████ ██| +14 |██ █ ██ █ ██| +13 |██ █ ██ █ ██| +12 |██ █ ██ █ ██| +11 |██ █ ██ █ ██| +10 |██ ████ ██| +09 |██ ██ ██| +08 | ██ ██ █ | +07 | ███ ██ ██ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2183 ROMAN NUMERAL REVERSED ONE HUNDRED +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ █ | +17 | █ █ | +16 | █ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | █ | +08 | █ ██ | +07 | █ ██ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2184 LATIN SMALL LETTER REVERSED C +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | ██████ | +14 | ███ ██ | +13 | ██ █ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | █ ███ | +07 | ██ ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2185 ROMAN NUMERAL SIX LATE FORM +22 | | +21 | | +20 | | +19 | ██████ | +18 | █ ██ | +17 | █ █ | +16 | █ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | █ | +08 | ██ █ | +07 | ██ ██ | +06 | ███████ | +05 | ██ | +04 | ██ | +03 | ██ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+2186 ROMAN NUMERAL FIFTY EARLY FORM +22 | | +21 | | +20 | | +19 | ██ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | █ ██ █ | +10 | ██ ██ ██ | +09 | ██ ██ ██ | +08 | ██████ | +07 | ████ | +06 | ██ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2187 +22 | | +21 | | +20 | | +19 |████████ | +18 | ██ ███ | +17 | ████ ██ | +16 | ██ █ ██ | +15 | ██ █ ██ | +14 | ███ █ ██ | +13 | ██ █ █ ██ | +12 | ██ █ █ ██ | +11 | ███ █ ██ | +10 | ██ █ ██ | +09 | ██ █ ██ | +08 | ████ █ | +07 | ██ ██ | +06 |███████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2188 +22 | | +21 | | +20 | | +19 | █████ | +18 | ██ ██ ███ | +17 | █ ██ ██ | +16 |█ ██████ ██| +15 |█ █ ██ █ █| +14 |█ █ ████ █ █| +13 |█ █ █ █ █ █| +12 |█ █ █ █ █ █| +11 |█ █ ████ █ █| +10 |█ █ ██ █ █| +09 |█ ██████ █| +08 | ██ ██ █ | +07 | ███ ██ ██ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+2189 +22 | | +21 | ████ | +20 | ██ ██ | +19 | ██ ██ | +18 | ██ ██ | +17 | ██ ██ █ | +16 | ██ ██ ██ | +15 | ██ ██ ██ | +14 | ██ ████ | +13 | ██████ | +12 | ██████ | +11 | ████ ██| +10 | ██ ██| +09 | ██ ██| +08 | ██ ████ | +07 | █ ██| +06 | ██| +05 | ██ ██| +04 | ████ | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+218a TURNED DIGIT TWO +22 | | +21 | | +20 | ██████████ | +19 | ██████████ | +18 | █ ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ █ | +08 | ███ ██ | +07 | ███████ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+218b TURNED DIGIT THREE +22 | | +21 | | +20 | █████ | +19 | ███████ | +18 | █ ██ | +17 | ██ █ | +16 | ██ | +15 | ██ | +14 | ███ | +13 | ██████ | +12 | █████ | +11 | ███ | +10 | ██ | +09 | ██ █ | +08 | ███ █ | +07 | ███████ | +06 | █████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+2190 LEFTWARDS ARROW 22 | | 21 | | @@ -7,6 +7,8 @@ */ #include <stdio.h> #include <stdlib.h> +#include <stdbool.h> +#include <string.h> #include <stdarg.h> #include <locale.h> #include <unistd.h> @@ -16,6 +18,7 @@ #define PixelHeight 22 #define LINE_MAX_WCHAR 1024 #define FULL_BLOCK 0x2588 +#define MAX_GLYPHS 131072 #define STARTCHAR 1 #define BITMAP 2 @@ -27,20 +30,27 @@ void errx(const char *aFormat, ...); int parse_startchar(const wchar_t *aLine); void parse_bitmap(const wchar_t *aLine, int aWidth); void parse_endchar(const wchar_t *aLine); +bool seen(unsigned int aCodepoint); +bool lookup_codepoint(unsigned int aCodepoint); +int compare_codepoints(const void *aFirst, const void *aSecond); +void *xmalloc(size_t aSize); int gWidth = PixelWidth; int gHeight = PixelHeight; int gLineNr = 0; unsigned int gCodepoint = 0; +unsigned int *gSeen = NULL; +size_t gGlyphs = 0; int main(int aArgc, char **aArgv) { if (!setlocale(LC_CTYPE, "")) { fprintf(stderr, "Can't set the locale. Check LANG, LC_CTYPE, LC_ALL.\n"); exit(EXIT_FAILURE); } + gSeen = xmalloc(MAX_GLYPHS * sizeof *gSeen); + memset(gSeen, 0, MAX_GLYPHS * sizeof *gSeen); int expect = STARTCHAR; int bitmaps = 0; - int glyphs = 0; int width = 1; parse_options(aArgc, aArgv); printf("# Width: %d\n# Height: %d\n", gWidth, gHeight); @@ -64,7 +74,7 @@ int main(int aArgc, char **aArgv) { parse_endchar(wbuf); expect = STARTCHAR; bitmaps = 0; - ++glyphs; + ++gGlyphs; break; default: break; @@ -72,7 +82,7 @@ int main(int aArgc, char **aArgv) { } if (expect != STARTCHAR) errx("line %d, glyph U+%04x: incomplete glyph due to early end-of-file\n", gLineNr, gCodepoint); - fprintf(stderr, "found %d glyphs\n", glyphs); + fprintf(stderr, "found %zu glyphs\n", gGlyphs); return EXIT_SUCCESS; } @@ -80,6 +90,8 @@ int main(int aArgc, char **aArgv) { // int parse_startchar(const wchar_t *aLine) { if (swscanf(aLine, L"STARTCHAR U+%x", &gCodepoint) == 1) { + if (seen(gCodepoint)) + errx("line %d: glyph U+%04x multiply defined\n", gLineNr, gCodepoint); printf("%04x:", gCodepoint); return wcwidth((wchar_t) gCodepoint); } @@ -87,6 +99,33 @@ int parse_startchar(const wchar_t *aLine) { return 0; } +// Has this codepoint been seen already? +// +bool seen(unsigned int aCodepoint) { + if (gGlyphs == 0) + return false; + if (lookup_codepoint(aCodepoint)) + return true; + if (aCodepoint < gSeen[gGlyphs - 1]) + errx("line %d: unsorted input: codepoint U+%04x follows U+%04x\n", gLineNr, aCodepoint, gSeen[gGlyphs - 1]); + gSeen[gGlyphs] = aCodepoint; + return false; +} + +// Return pointer to glyph data or of the replacement character. +// +bool lookup_codepoint(unsigned int aCodepoint) { + const unsigned int *p = bsearch(&aCodepoint, gSeen, gGlyphs, sizeof *gSeen, compare_codepoints); + return p != NULL; +} + +// Compare callback for qsort and bsearch. +// +int compare_codepoints(const void *aFirst, const void *aSecond) { + const int *first = aFirst, *second = aSecond; + return *first - *second; +} + // Parse a |BITMAP| directive. // void parse_bitmap(const wchar_t *aLine, int aWidth) { @@ -163,7 +202,14 @@ void parse_options(int aArgc, char **aArgv) { } } - +// Allocate memory and exit on failure. +// +void *xmalloc(size_t aSize) { + void *const mem = malloc(aSize); + if (mem == NULL) + errx("failed to allocate %zu bytes\n", aSize); + return mem; +} // Output usage message and exit with status. // @@ -232,7 +232,7 @@ void load_text(void) { column = 0; } else - fprintf(stderr, "ignoring width=-1 character U+%04x in row %d\n", wc, gRows + 1); + fprintf(stderr, "ignoring width=-1 character U+%04x in row %u\n", wc, gRows + 1); break; case 0: /* Combining character, zero width space, ... */ @@ -251,7 +251,7 @@ void load_text(void) { } } gTextChars = wchars; - printf("found %zu codepoints in %s, %d rows, max %d colums\n", gTextChars, gTextFilename, gRows, gColumns); + printf("found %zu codepoints in %s, %u rows, max %u colums\n", gTextChars, gTextFilename, gRows, gColumns); slurp_text(fp); fclose(fp); } @@ -293,7 +293,7 @@ void fb_save_png(void) { png_write_end(png_ptr, NULL); png_destroy_write_struct(&png_ptr, &info_ptr); fclose(fp); - printf("wrote WxH = %dx%d image to %s\n", gWidth * gColumns, gHeight * gRows, gPngFilename); + printf("wrote WxH = %ux%u image to %s\n", gWidth * gColumns, gHeight * gRows, gPngFilename); } // Allocate frame buffer to hold the pixels. White on black, unless inverted. @@ -317,7 +317,7 @@ void load_font(void) { parse_font_dimensions(fp); gGlyphs = count_glyphs(fp); - fprintf(stderr, "found %d glyphs, width %d, height %d in %s\n", gGlyphs, gWidth, gHeight, gFontFilename); + fprintf(stderr, "found %u glyphs, width %u, height %u in %s\n", gGlyphs, gWidth, gHeight, gFontFilename); if (gGlyphs < 2) errx("that's not a font, it would seem\n"); gGlyphset = xmalloc(gGlyphs * sizeof *gGlyphset); @@ -332,14 +332,14 @@ void parse_font_dimensions(FILE *aFile) { char line[MAX_LINE] = { 0 }; for (int i = 1; i <= 2; ++i) { if (fgets(line, sizeof line, aFile) != NULL) { - if (sscanf(line, " # Width: %d", &gWidth) != 1) - if (sscanf(line, " # Height: %d", &gHeight) != 1) + if (sscanf(line, " # Width: %u", &gWidth) != 1) + if (sscanf(line, " # Height: %u", &gHeight) != 1) errx("line %d in %s must be '# Width or Height: number'\n", i, gFontFilename); } else errx("could not read line %d in %s\n", i, gFontFilename); } - if (gWidth <= 0 || gHeight <= 0) + if (gWidth == 0 || gHeight == 0) errx("could not parse width or height at the start of %s\n", gFontFilename); gBytes = (gWidth + 7) / 8; gDblBytes = (2 * gWidth + 7) / 8; |
