#define SEP6 (SEP | MOS6)
#define SEP4 (SEP | MOS4)
#define IS_ALIAS 0x08
+#define LINE 0x10
} glyphs[] = {
/*
* The first batch of glyphs comes from the code tables at the end of
{"\16\21\10\04\04\00\04\00\00", U(2426) }, /* pictorial SUB */
/* Box drawing */
- {"\00\00\00\00\37\00\00\00\00", 0x2500, "SF100000" },
- {"\00\00\00\37\37\37\00\00\00", U(2501) },
- {"\04\04\04\04\04\04\04\04\04", 0x2502, "SF110000" },
- {"\16\16\16\16\16\16\16\16\16", U(2503) },
+ {"\00\00\00\00\37\00\00\00\00", 0x2500, "SF100000", LINE },
+ {"\00\00\00\37\37\37\00\00\00", U(2501), LINE },
+ {"\04\04\04\04\04\04\04\04\04", 0x2502, "SF110000", LINE },
+ {"\16\16\16\16\16\16\16\16\16", U(2503), LINE },
{"\00\00\00\00\25\00\00\00\00", U(2504) },
{"\00\00\00\25\25\25\00\00\00", U(2505) },
{"\04\04\00\04\04\04\00\04\04", U(2506) },
{"\16\16\00\16\16\16\00\16\16", U(2507) },
{"\04\00\04\04\00\04\00\04\04", U(250A) },
{"\16\00\16\16\00\16\00\16\16", U(250B) },
- {"\00\00\00\00\07\04\04\04\04", 0x250c, "SF010000" },
- {"\00\00\00\07\07\07\04\04\04", U(250D) },
- {"\00\00\00\00\17\16\16\16\16", U(250E) },
- {"\00\00\00\17\17\17\16\16\16", U(250F) },
- {"\00\00\00\00\34\04\04\04\04", 0x2510, "SF030000" },
- {"\00\00\00\34\34\34\04\04\04", U(2511) },
- {"\00\00\00\00\36\16\16\16\16", U(2512) },
- {"\00\00\00\36\36\36\16\16\16", U(2513) },
- {"\04\04\04\04\07\00\00\00\00", 0x2514, "SF020000" },
- {"\04\04\04\07\07\07\00\00\00", U(2515) },
- {"\16\16\16\16\17\00\00\00\00", U(2516) },
- {"\16\16\16\17\17\17\00\00\00", U(2517) },
- {"\04\04\04\04\34\00\00\00\00", 0x2518, "SF040000" },
- {"\04\04\04\34\34\34\00\00\00", U(2519) },
- {"\16\16\16\16\36\00\00\00\00", U(251A) },
- {"\16\16\16\36\36\36\00\00\00", U(251B) },
- {"\04\04\04\04\07\04\04\04\04", 0x251c, "SF080000" },
- {"\04\04\04\07\07\07\04\04\04", U(251D) },
- {"\16\16\16\16\17\04\04\04\04", U(251E) },
- {"\04\04\04\04\17\16\16\16\16", U(251F) },
- {"\16\16\16\16\17\16\16\16\16", U(2520) },
- {"\16\16\16\17\17\17\04\04\04", U(2521) },
- {"\04\04\04\17\17\17\16\16\16", U(2522) },
- {"\16\16\16\17\17\17\16\16\16", U(2523) },
- {"\04\04\04\04\34\04\04\04\04", 0x2524, "SF090000" },
- {"\04\04\04\34\34\34\04\04\04", U(2525) },
- {"\16\16\16\16\36\04\04\04\04", U(2526) },
- {"\04\04\04\04\36\16\16\16\16", U(2527) },
- {"\16\16\16\16\36\16\16\16\16", U(2528) },
- {"\16\16\16\36\36\36\04\04\04", U(2529) },
- {"\04\04\04\36\36\36\16\16\16", U(252A) },
- {"\16\16\16\36\36\36\16\16\16", U(252B) },
- {"\00\00\00\00\37\04\04\04\04", 0x252c, "SF060000" },
- {"\00\00\00\34\37\34\04\04\04", U(252D) },
- {"\00\00\00\07\37\07\04\04\04", U(252E) },
- {"\00\00\00\37\37\37\04\04\04", U(252F) },
- {"\00\00\00\00\37\16\16\16\16", U(2530) },
- {"\00\00\00\36\37\36\16\16\16", U(2531) },
- {"\00\00\00\17\37\17\16\16\16", U(2532) },
- {"\00\00\00\37\37\37\16\16\16", U(2533) },
- {"\04\04\04\04\37\00\00\00\00", 0x2534, "SF070000" },
- {"\04\04\04\34\37\34\00\00\00", U(2535) },
- {"\04\04\04\07\37\07\00\00\00", U(2536) },
- {"\04\04\04\37\37\37\00\00\00", U(2537) },
- {"\16\16\16\16\37\00\00\00\00", U(2538) },
- {"\16\16\16\36\37\36\00\00\00", U(2539) },
- {"\16\16\16\17\37\17\00\00\00", U(253A) },
- {"\16\16\16\37\37\37\00\00\00", U(253B) },
- {"\04\04\04\04\37\04\04\04\04", 0x253c, "SF050000" },
- {"\04\04\04\34\37\34\04\04\04", U(253D) },
- {"\04\04\04\07\37\07\04\04\04", U(253E) },
- {"\04\04\04\37\37\37\04\04\04", U(253F) },
- {"\16\16\16\16\37\04\04\04\04", U(2540) },
- {"\04\04\04\04\37\16\16\16\16", U(2541) },
- {"\16\16\16\16\37\16\16\16\16", U(2542) },
- {"\16\16\16\36\37\36\04\04\04", U(2543) },
- {"\16\16\16\17\37\17\04\04\04", U(2544) },
- {"\04\04\04\36\37\36\16\16\16", U(2545) },
- {"\04\04\04\17\37\17\16\16\16", U(2546) },
- {"\16\16\16\37\37\37\04\04\04", U(2547) },
- {"\04\04\04\37\37\37\16\16\16", U(2548) },
- {"\16\16\16\36\37\36\16\16\16", U(2549) },
- {"\16\16\16\17\37\17\16\16\16", U(254A) },
- {"\16\16\16\37\37\37\16\16\16", U(254B) },
+ {"\00\00\00\00\07\04\04\04\04", 0x250c, "SF010000", LINE },
+ {"\00\00\00\07\07\07\04\04\04", U(250D), LINE },
+ {"\00\00\00\00\17\16\16\16\16", U(250E), LINE },
+ {"\00\00\00\17\17\17\16\16\16", U(250F), LINE },
+ {"\00\00\00\00\34\04\04\04\04", 0x2510, "SF030000", LINE },
+ {"\00\00\00\34\34\34\04\04\04", U(2511), LINE },
+ {"\00\00\00\00\36\16\16\16\16", U(2512), LINE },
+ {"\00\00\00\36\36\36\16\16\16", U(2513), LINE },
+ {"\04\04\04\04\07\00\00\00\00", 0x2514, "SF020000", LINE },
+ {"\04\04\04\07\07\07\00\00\00", U(2515), LINE },
+ {"\16\16\16\16\17\00\00\00\00", U(2516), LINE },
+ {"\16\16\16\17\17\17\00\00\00", U(2517), LINE },
+ {"\04\04\04\04\34\00\00\00\00", 0x2518, "SF040000", LINE },
+ {"\04\04\04\34\34\34\00\00\00", U(2519), LINE },
+ {"\16\16\16\16\36\00\00\00\00", U(251A), LINE },
+ {"\16\16\16\36\36\36\00\00\00", U(251B), LINE },
+ {"\04\04\04\04\07\04\04\04\04", 0x251c, "SF080000", LINE },
+ {"\04\04\04\07\07\07\04\04\04", U(251D), LINE },
+ {"\16\16\16\16\17\04\04\04\04", U(251E), LINE },
+ {"\04\04\04\04\17\16\16\16\16", U(251F), LINE },
+ {"\16\16\16\16\17\16\16\16\16", U(2520), LINE },
+ {"\16\16\16\17\17\17\04\04\04", U(2521), LINE },
+ {"\04\04\04\17\17\17\16\16\16", U(2522), LINE },
+ {"\16\16\16\17\17\17\16\16\16", U(2523), LINE },
+ {"\04\04\04\04\34\04\04\04\04", 0x2524, "SF090000", LINE },
+ {"\04\04\04\34\34\34\04\04\04", U(2525), LINE },
+ {"\16\16\16\16\36\04\04\04\04", U(2526), LINE },
+ {"\04\04\04\04\36\16\16\16\16", U(2527), LINE },
+ {"\16\16\16\16\36\16\16\16\16", U(2528), LINE },
+ {"\16\16\16\36\36\36\04\04\04", U(2529), LINE },
+ {"\04\04\04\36\36\36\16\16\16", U(252A), LINE },
+ {"\16\16\16\36\36\36\16\16\16", U(252B), LINE },
+ {"\00\00\00\00\37\04\04\04\04", 0x252c, "SF060000", LINE },
+ {"\00\00\00\34\37\34\04\04\04", U(252D), LINE },
+ {"\00\00\00\07\37\07\04\04\04", U(252E), LINE },
+ {"\00\00\00\37\37\37\04\04\04", U(252F), LINE },
+ {"\00\00\00\00\37\16\16\16\16", U(2530), LINE },
+ {"\00\00\00\36\37\36\16\16\16", U(2531), LINE },
+ {"\00\00\00\17\37\17\16\16\16", U(2532), LINE },
+ {"\00\00\00\37\37\37\16\16\16", U(2533), LINE },
+ {"\04\04\04\04\37\00\00\00\00", 0x2534, "SF070000", LINE },
+ {"\04\04\04\34\37\34\00\00\00", U(2535), LINE },
+ {"\04\04\04\07\37\07\00\00\00", U(2536), LINE },
+ {"\04\04\04\37\37\37\00\00\00", U(2537), LINE },
+ {"\16\16\16\16\37\00\00\00\00", U(2538), LINE },
+ {"\16\16\16\36\37\36\00\00\00", U(2539), LINE },
+ {"\16\16\16\17\37\17\00\00\00", U(253A), LINE },
+ {"\16\16\16\37\37\37\00\00\00", U(253B), LINE },
+ {"\04\04\04\04\37\04\04\04\04", 0x253c, "SF050000", LINE },
+ {"\04\04\04\34\37\34\04\04\04", U(253D), LINE },
+ {"\04\04\04\07\37\07\04\04\04", U(253E), LINE },
+ {"\04\04\04\37\37\37\04\04\04", U(253F), LINE },
+ {"\16\16\16\16\37\04\04\04\04", U(2540), LINE },
+ {"\04\04\04\04\37\16\16\16\16", U(2541), LINE },
+ {"\16\16\16\16\37\16\16\16\16", U(2542), LINE },
+ {"\16\16\16\36\37\36\04\04\04", U(2543), LINE },
+ {"\16\16\16\17\37\17\04\04\04", U(2544), LINE },
+ {"\04\04\04\36\37\36\16\16\16", U(2545), LINE },
+ {"\04\04\04\17\37\17\16\16\16", U(2546), LINE },
+ {"\16\16\16\37\37\37\04\04\04", U(2547), LINE },
+ {"\04\04\04\37\37\37\16\16\16", U(2548), LINE },
+ {"\16\16\16\36\37\36\16\16\16", U(2549), LINE },
+ {"\16\16\16\17\37\17\16\16\16", U(254A), LINE },
+ {"\16\16\16\37\37\37\16\16\16", U(254B), LINE },
{"\00\00\00\00\33\00\00\00\00", U(254C) },
{"\00\00\00\33\33\33\00\00\00", U(254D) },
{"\04\04\04\04\00\04\04\04\04", U(254E) },
{"\16\16\16\16\00\16\16\16\16", U(254F) },
- {"\00\00\00\37\00\37\00\00\00", 0x2550, "SF430000" },
- {"\12\12\12\12\12\12\12\12\12", 0x2551, "SF240000" },
- {"\00\00\00\07\04\07\04\04\04", 0x2552, "SF510000" },
- {"\00\00\00\00\17\12\12\12\12", 0x2553, "SF520000" },
- {"\00\00\00\17\10\13\12\12\12", 0x2554, "SF390000" },
- {"\00\00\00\34\04\34\04\04\04", 0x2555, "SF220000" },
- {"\00\00\00\00\36\12\12\12\12", 0x2556, "SF210000" },
- {"\00\00\00\36\02\32\12\12\12", 0x2557, "SF250000" },
- {"\04\04\04\07\04\07\00\00\00", 0x2558, "SF500000" },
- {"\12\12\12\12\17\00\00\00\00", 0x2559, "SF490000" },
- {"\12\12\12\13\10\17\00\00\00", 0x255a, "SF380000" },
- {"\04\04\04\34\04\34\00\00\00", 0x255b, "SF280000" },
- {"\12\12\12\12\36\00\00\00\00", 0x255c, "SF270000" },
- {"\12\12\12\32\02\36\00\00\00", 0x255d, "SF260000" },
- {"\04\04\04\07\04\07\04\04\04", 0x255e, "SF360000" },
- {"\12\12\12\12\13\12\12\12\12", 0x255f, "SF370000" },
- {"\12\12\12\13\10\13\12\12\12", 0x2560, "SF420000" },
- {"\04\04\04\34\04\34\04\04\04", 0x2561, "SF190000" },
- {"\12\12\12\12\32\12\12\12\12", 0x2562, "SF200000" },
- {"\12\12\12\32\02\32\12\12\12", 0x2563, "SF230000" },
- {"\00\00\00\37\00\37\04\04\04", 0x2564, "SF470000" },
- {"\00\00\00\00\37\12\12\12\12", 0x2565, "SF480000" },
- {"\00\00\00\37\00\33\12\12\12", 0x2566, "SF410000" },
- {"\04\04\04\37\00\37\00\00\00", 0x2567, "SF450000" },
- {"\12\12\12\12\37\00\00\00\00", 0x2568, "SF460000" },
- {"\12\12\12\33\00\37\00\00\00", 0x2569, "SF400000" },
- {"\04\04\04\37\04\37\04\04\04", 0x256a, "SF540000" },
- {"\12\12\12\12\37\12\12\12\12", 0x256b, "SF530000" },
- {"\12\12\12\33\00\33\12\12\12", 0x256c, "SF440000" },
- {"\00\00\00\00\03\04\04\04\04", U(256D) },
- {"\00\00\00\00\30\04\04\04\04", U(256E) },
- {"\04\04\04\04\30\00\00\00\00", U(256F) },
- {"\04\04\04\04\03\00\00\00\00", U(2570) },
- {"\00\00\00\00\34\00\00\00\00", U(2574) },
- {"\04\04\04\04\04\00\00\00\00", U(2575) },
- {"\00\00\00\00\07\00\00\00\00", U(2576) },
- {"\00\00\00\00\04\04\04\04\04", U(2577) },
- {"\00\00\00\34\34\34\00\00\00", U(2578) },
- {"\16\16\16\16\16\00\00\00\00", U(2579) },
- {"\00\00\00\07\07\07\00\00\00", U(257A) },
- {"\00\00\00\00\16\16\16\16\16", U(257B) },
- {"\00\00\00\07\37\07\00\00\00", U(257C) },
- {"\04\04\04\04\16\16\16\16\16", U(257D) },
- {"\00\00\00\34\37\34\00\00\00", U(257E) },
- {"\16\16\16\16\16\04\04\04\04", U(257F) },
+ {"\00\00\00\37\00\37\00\00\00", 0x2550, "SF430000", LINE },
+ {"\12\12\12\12\12\12\12\12\12", 0x2551, "SF240000", LINE },
+ {"\00\00\00\07\04\07\04\04\04", 0x2552, "SF510000", LINE },
+ {"\00\00\00\00\17\12\12\12\12", 0x2553, "SF520000", LINE },
+ {"\00\00\00\17\10\13\12\12\12", 0x2554, "SF390000", LINE },
+ {"\00\00\00\34\04\34\04\04\04", 0x2555, "SF220000", LINE },
+ {"\00\00\00\00\36\12\12\12\12", 0x2556, "SF210000", LINE },
+ {"\00\00\00\36\02\32\12\12\12", 0x2557, "SF250000", LINE },
+ {"\04\04\04\07\04\07\00\00\00", 0x2558, "SF500000", LINE },
+ {"\12\12\12\12\17\00\00\00\00", 0x2559, "SF490000", LINE },
+ {"\12\12\12\13\10\17\00\00\00", 0x255a, "SF380000", LINE },
+ {"\04\04\04\34\04\34\00\00\00", 0x255b, "SF280000", LINE },
+ {"\12\12\12\12\36\00\00\00\00", 0x255c, "SF270000", LINE },
+ {"\12\12\12\32\02\36\00\00\00", 0x255d, "SF260000", LINE },
+ {"\04\04\04\07\04\07\04\04\04", 0x255e, "SF360000", LINE },
+ {"\12\12\12\12\13\12\12\12\12", 0x255f, "SF370000", LINE },
+ {"\12\12\12\13\10\13\12\12\12", 0x2560, "SF420000", LINE },
+ {"\04\04\04\34\04\34\04\04\04", 0x2561, "SF190000", LINE },
+ {"\12\12\12\12\32\12\12\12\12", 0x2562, "SF200000", LINE },
+ {"\12\12\12\32\02\32\12\12\12", 0x2563, "SF230000", LINE },
+ {"\00\00\00\37\00\37\04\04\04", 0x2564, "SF470000", LINE },
+ {"\00\00\00\00\37\12\12\12\12", 0x2565, "SF480000", LINE },
+ {"\00\00\00\37\00\33\12\12\12", 0x2566, "SF410000", LINE },
+ {"\04\04\04\37\00\37\00\00\00", 0x2567, "SF450000", LINE },
+ {"\12\12\12\12\37\00\00\00\00", 0x2568, "SF460000", LINE },
+ {"\12\12\12\33\00\37\00\00\00", 0x2569, "SF400000", LINE },
+ {"\04\04\04\37\04\37\04\04\04", 0x256a, "SF540000", LINE },
+ {"\12\12\12\12\37\12\12\12\12", 0x256b, "SF530000", LINE },
+ {"\12\12\12\33\00\33\12\12\12", 0x256c, "SF440000", LINE },
+ {"\00\00\00\00\03\04\04\04\04", U(256D), LINE },
+ {"\00\00\00\00\30\04\04\04\04", U(256E), LINE },
+ {"\04\04\04\04\30\00\00\00\00", U(256F), LINE },
+ {"\04\04\04\04\03\00\00\00\00", U(2570), LINE },
+ {"\00\00\00\00\34\00\00\00\00", U(2574), LINE },
+ {"\04\04\04\04\04\00\00\00\00", U(2575), LINE },
+ {"\00\00\00\00\07\00\00\00\00", U(2576), LINE },
+ {"\00\00\00\00\04\04\04\04\04", U(2577), LINE },
+ {"\00\00\00\34\34\34\00\00\00", U(2578), LINE },
+ {"\16\16\16\16\16\00\00\00\00", U(2579), LINE },
+ {"\00\00\00\07\07\07\00\00\00", U(257A), LINE },
+ {"\00\00\00\00\16\16\16\16\16", U(257B), LINE },
+ {"\00\00\00\07\37\07\00\00\00", U(257C), LINE },
+ {"\04\04\04\04\16\16\16\16\16", U(257D), LINE },
+ {"\00\00\00\34\37\34\00\00\00", U(257E), LINE },
+ {"\16\16\16\16\16\04\04\04\04", U(257F), LINE },
/* Block elements */
{{0x03}, 0x2580, "upblock", MOS4 }, {{0x3}, 0xf1e3, "upblock.sep4", SEP4 },
* Like the top row, the left column of the character cell
* always reads as 0.
*/
+ if (flags & LINE) {
+ /* Line-drawing characters repeat top row and left column. */
+ if (x == 0) x = 1;
+ if (y == 0) y = 1;
+ }
if (x < 1 || x >= XSIZE || y < 1 || y >= YSIZE)
return 0;
else