Separate flags for copying left column and top row

Having a way to specify that the half-brackets extend upwards but not
leftwards avoids all the rendering problems they were previously
suffering from.  And I've spotted the VT100 scan-line characters,
which should be extended to the left but not upwards.  Since the
middle scan-line is unified with a line-drawing character, they really
need to extend leftwards for symmetry, but extending scan-line 1
upwards would be a disaster.

So now there are two flags, JOIN_U and JOIN_L, to specify joining in
each direction.  I've renamed the both-directions flag as JOIN,
because it's not just specific to line-drawing any more.  I might
eventually want a JOIN_D to suppress hinting of the bottom edge of the
character, but I need to do some testing first.
This commit is contained in:
Ben Harris 2024-10-26 22:42:27 +01:00
parent 8974fd292c
commit 860f76c16f

View File

@ -211,7 +211,9 @@ static struct glyph {
#define SEP6 (SEP | MOS6)
#define SEP4 (SEP | MOS4)
#define IS_ALIAS 0x08
#define LINE 0x10
#define JOIN_L 0x10 /* Copy left column leftwards to join to adjacent character. */
#define JOIN_U 0x20 /* Copy top row upwards ditto. */
#define JOIN (JOIN_L | JOIN_U)
} glyphs[] = {
/*
* The first batch of glyphs comes from the code tables at the end of
@ -1774,8 +1776,8 @@ static struct glyph {
{"\00\00\01\01\01\01\37\00\00", U(231F) }, /* bottom right corner */
{"\00\00\02\05\04\04\04\04\04", 0x2320, "integraltp" },
{"\00\00\10\24\04\04\04\04\04", 0xf111, "integraltp.rtlm" },
{"\04\04\04\04\04\24\10\00\00", 0x2321, "integralbt", LINE },
{"\04\04\04\04\04\05\02\00\00", 0xf112, "integralbt.rtlm", LINE },
{"\04\04\04\04\04\24\10\00\00", 0x2321, "integralbt", JOIN_U },
{"\04\04\04\04\04\05\02\00\00", 0xf112, "integralbt.rtlm", JOIN_U },
{"\02\02\04\10\04\02\02\00\00", 0x2329, "angleleft" },
{"\10\10\04\02\04\10\10\00\00", 0x232a, "angleright" },
{"\00\37\04\04\04\37\00\00\00", U(2336) }, /* APL I-beam */
@ -1832,33 +1834,33 @@ static struct glyph {
{"\00\00\37\00\25\00\00\00\00", U(2393) }, /* directcurrent */
{"\37\21\21\21\21\21\37\00\00", U(2395) }, /* APL quad */
{"\02\04\10\10\10\10\10\10\10", U(239B) }, /* long parenleft top */
{"\10\10\10\10\10\10\10\10\10", U(239C), LINE }, /* long parenleft middle */
{"\10\10\10\10\10\04\02\00\00", U(239D), LINE }, /* long parenleft bottom */
{"\10\10\10\10\10\10\10\10\10", U(239C), JOIN_U }, /* long parenleft middle */
{"\10\10\10\10\10\04\02\00\00", U(239D), JOIN_U }, /* long parenleft bottom */
{"\10\04\02\02\02\02\02\02\02", U(239E) }, /* long parenright top */
{"\02\02\02\02\02\02\02\02\02", U(239F), LINE }, /* long parenright middle */
{"\02\02\02\02\02\04\10\00\00", U(23A0), LINE }, /* long parenright bottom */
{"\02\02\02\02\02\02\02\02\02", U(239F), JOIN_U }, /* long parenright middle */
{"\02\02\02\02\02\04\10\00\00", U(23A0), JOIN_U }, /* long parenright bottom */
{"\17\10\10\10\10\10\10\10\10", U(23A1) }, /* long bracketleft top */
{"\10\10\10\10\10\10\10\10\10", U(23A2), LINE }, /* long bracketleft mid */
{"\10\10\10\10\10\10\17\00\00", U(23A3), LINE }, /* long bracketleft bot */
{"\10\10\10\10\10\10\10\10\10", U(23A2), JOIN_U }, /* long bracketleft mid */
{"\10\10\10\10\10\10\17\00\00", U(23A3), JOIN_U }, /* long bracketleft bot */
{"\36\02\02\02\02\02\02\02\02", U(23A4) }, /* long bracketright top */
{"\02\02\02\02\02\02\02\02\02", U(23A5), LINE }, /* long bracketright mid */
{"\02\02\02\02\02\02\36\00\00", U(23A6), LINE }, /* long bracketright bot */
{"\02\02\02\02\02\02\02\02\02", U(23A5), JOIN_U }, /* long bracketright mid */
{"\02\02\02\02\02\02\36\00\00", U(23A6), JOIN_U }, /* long bracketright bot */
{"\03\04\04\04\04\04\04\04\04", U(23A7) }, /* long braceleft top */
{"\04\04\04\10\04\04\04\04\04", U(23A8), LINE }, /* long braceleft middle */
{"\04\04\04\04\04\04\03\00\00", U(23A9), LINE }, /* long braceleft bottom */
{"\04\04\04\04\04\04\04\04\04", U(23AA), LINE }, /* long brace extension */
{"\04\04\04\10\04\04\04\04\04", U(23A8), JOIN_U }, /* long braceleft middle */
{"\04\04\04\04\04\04\03\00\00", U(23A9), JOIN_U }, /* long braceleft bottom */
{"\04\04\04\04\04\04\04\04\04", U(23AA), JOIN_U }, /* long brace extension */
{"\30\04\04\04\04\04\04\04\04", U(23AB) }, /* long braceright top */
{"\04\04\04\02\04\04\04\04\04", U(23AC), LINE }, /* long braceright middle */
{"\04\04\04\04\04\04\30\00\00", U(23AD), LINE }, /* long braceright bottom */
{"\04\04\04\04\04\04\04\04\04", U(23AE), LINE }, /* integral extension */
{"\04\04\04\02\04\04\04\04\04", U(23AC), JOIN_U }, /* long braceright middle */
{"\04\04\04\04\04\04\30\00\00", U(23AD), JOIN_U }, /* long braceright bottom */
{"\04\04\04\04\04\04\04\04\04", U(23AE), JOIN_U }, /* integral extension */
{"\03\04\04\04\04\04\04\04\30", U(23B0) }, /* two-level brace / */
{"\30\04\04\04\04\04\04\04\03", U(23B1) }, /* two-level brace \ */
{"\37\20\10\10\04\04\02\02\01", U(23B2) }, /* summation top */
{"\01\02\02\04\04\10\10\20\37", U(23B3) }, /* summation bottom */
{"\37\00\00\00\00\00\00\00\00", U(23BA) }, /* horizontal scan 1 */
{"\00\00\37\00\00\00\00\00\00", U(23BB) }, /* horizontal scan 3 */
{"\00\00\00\00\00\00\37\00\00", U(23BC) }, /* horizontal scan 7 */
{"\00\00\00\00\00\00\00\00\37", U(23BD) }, /* horizontal scan 9 */
{"\01\02\02\04\04\10\10\20\37", U(23B3), JOIN_U }, /* summation bottom */
{"\37\00\00\00\00\00\00\00\00", U(23BA), JOIN_L }, /* horizontal scan 1 */
{"\00\00\37\00\00\00\00\00\00", U(23BB), JOIN_L }, /* horizontal scan 3 */
{"\00\00\00\00\00\00\37\00\00", U(23BC), JOIN_L }, /* horizontal scan 7 */
{"\00\00\00\00\00\00\00\00\37", U(23BD), JOIN_L }, /* horizontal scan 9 */
{"\04\04\37\00\16\00\04\00\00", U(23DA) }, /* earth */
/* Control pictures */
@ -1902,129 +1904,129 @@ static struct glyph {
{"\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", 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\37\00\00\00\00", 0x2500, "SF100000", JOIN },
{"\00\00\00\37\37\37\00\00\00", U(2501), JOIN },
{"\04\04\04\04\04\04\04\04\04", 0x2502, "SF110000", JOIN },
{"\16\16\16\16\16\16\16\16\16", U(2503), JOIN },
{"\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", 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\07\04\04\04\04", 0x250c, "SF010000", JOIN },
{"\00\00\00\07\07\07\04\04\04", U(250D), JOIN },
{"\00\00\00\00\17\16\16\16\16", U(250E), JOIN },
{"\00\00\00\17\17\17\16\16\16", U(250F), JOIN },
{"\00\00\00\00\34\04\04\04\04", 0x2510, "SF030000", JOIN },
{"\00\00\00\34\34\34\04\04\04", U(2511), JOIN },
{"\00\00\00\00\36\16\16\16\16", U(2512), JOIN },
{"\00\00\00\36\36\36\16\16\16", U(2513), JOIN },
{"\04\04\04\04\07\00\00\00\00", 0x2514, "SF020000", JOIN },
{"\04\04\04\07\07\07\00\00\00", U(2515), JOIN },
{"\16\16\16\16\17\00\00\00\00", U(2516), JOIN },
{"\16\16\16\17\17\17\00\00\00", U(2517), JOIN },
{"\04\04\04\04\34\00\00\00\00", 0x2518, "SF040000", JOIN },
{"\04\04\04\34\34\34\00\00\00", U(2519), JOIN },
{"\16\16\16\16\36\00\00\00\00", U(251A), JOIN },
{"\16\16\16\36\36\36\00\00\00", U(251B), JOIN },
{"\04\04\04\04\07\04\04\04\04", 0x251c, "SF080000", JOIN },
{"\04\04\04\07\07\07\04\04\04", U(251D), JOIN },
{"\16\16\16\16\17\04\04\04\04", U(251E), JOIN },
{"\04\04\04\04\17\16\16\16\16", U(251F), JOIN },
{"\16\16\16\16\17\16\16\16\16", U(2520), JOIN },
{"\16\16\16\17\17\17\04\04\04", U(2521), JOIN },
{"\04\04\04\17\17\17\16\16\16", U(2522), JOIN },
{"\16\16\16\17\17\17\16\16\16", U(2523), JOIN },
{"\04\04\04\04\34\04\04\04\04", 0x2524, "SF090000", JOIN },
{"\04\04\04\34\34\34\04\04\04", U(2525), JOIN },
{"\16\16\16\16\36\04\04\04\04", U(2526), JOIN },
{"\04\04\04\04\36\16\16\16\16", U(2527), JOIN },
{"\16\16\16\16\36\16\16\16\16", U(2528), JOIN },
{"\16\16\16\36\36\36\04\04\04", U(2529), JOIN },
{"\04\04\04\36\36\36\16\16\16", U(252A), JOIN },
{"\16\16\16\36\36\36\16\16\16", U(252B), JOIN },
{"\00\00\00\00\37\04\04\04\04", 0x252c, "SF060000", JOIN },
{"\00\00\00\34\37\34\04\04\04", U(252D), JOIN },
{"\00\00\00\07\37\07\04\04\04", U(252E), JOIN },
{"\00\00\00\37\37\37\04\04\04", U(252F), JOIN },
{"\00\00\00\00\37\16\16\16\16", U(2530), JOIN },
{"\00\00\00\36\37\36\16\16\16", U(2531), JOIN },
{"\00\00\00\17\37\17\16\16\16", U(2532), JOIN },
{"\00\00\00\37\37\37\16\16\16", U(2533), JOIN },
{"\04\04\04\04\37\00\00\00\00", 0x2534, "SF070000", JOIN },
{"\04\04\04\34\37\34\00\00\00", U(2535), JOIN },
{"\04\04\04\07\37\07\00\00\00", U(2536), JOIN },
{"\04\04\04\37\37\37\00\00\00", U(2537), JOIN },
{"\16\16\16\16\37\00\00\00\00", U(2538), JOIN },
{"\16\16\16\36\37\36\00\00\00", U(2539), JOIN },
{"\16\16\16\17\37\17\00\00\00", U(253A), JOIN },
{"\16\16\16\37\37\37\00\00\00", U(253B), JOIN },
{"\04\04\04\04\37\04\04\04\04", 0x253c, "SF050000", JOIN },
{"\04\04\04\34\37\34\04\04\04", U(253D), JOIN },
{"\04\04\04\07\37\07\04\04\04", U(253E), JOIN },
{"\04\04\04\37\37\37\04\04\04", U(253F), JOIN },
{"\16\16\16\16\37\04\04\04\04", U(2540), JOIN },
{"\04\04\04\04\37\16\16\16\16", U(2541), JOIN },
{"\16\16\16\16\37\16\16\16\16", U(2542), JOIN },
{"\16\16\16\36\37\36\04\04\04", U(2543), JOIN },
{"\16\16\16\17\37\17\04\04\04", U(2544), JOIN },
{"\04\04\04\36\37\36\16\16\16", U(2545), JOIN },
{"\04\04\04\17\37\17\16\16\16", U(2546), JOIN },
{"\16\16\16\37\37\37\04\04\04", U(2547), JOIN },
{"\04\04\04\37\37\37\16\16\16", U(2548), JOIN },
{"\16\16\16\36\37\36\16\16\16", U(2549), JOIN },
{"\16\16\16\17\37\17\16\16\16", U(254A), JOIN },
{"\16\16\16\37\37\37\16\16\16", U(254B), JOIN },
{"\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", 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 },
{"\00\00\00\37\00\37\00\00\00", 0x2550, "SF430000", JOIN },
{"\12\12\12\12\12\12\12\12\12", 0x2551, "SF240000", JOIN },
{"\00\00\00\07\04\07\04\04\04", 0x2552, "SF510000", JOIN },
{"\00\00\00\00\17\12\12\12\12", 0x2553, "SF520000", JOIN },
{"\00\00\00\17\10\13\12\12\12", 0x2554, "SF390000", JOIN },
{"\00\00\00\34\04\34\04\04\04", 0x2555, "SF220000", JOIN },
{"\00\00\00\00\36\12\12\12\12", 0x2556, "SF210000", JOIN },
{"\00\00\00\36\02\32\12\12\12", 0x2557, "SF250000", JOIN },
{"\04\04\04\07\04\07\00\00\00", 0x2558, "SF500000", JOIN },
{"\12\12\12\12\17\00\00\00\00", 0x2559, "SF490000", JOIN },
{"\12\12\12\13\10\17\00\00\00", 0x255a, "SF380000", JOIN },
{"\04\04\04\34\04\34\00\00\00", 0x255b, "SF280000", JOIN },
{"\12\12\12\12\36\00\00\00\00", 0x255c, "SF270000", JOIN },
{"\12\12\12\32\02\36\00\00\00", 0x255d, "SF260000", JOIN },
{"\04\04\04\07\04\07\04\04\04", 0x255e, "SF360000", JOIN },
{"\12\12\12\12\13\12\12\12\12", 0x255f, "SF370000", JOIN },
{"\12\12\12\13\10\13\12\12\12", 0x2560, "SF420000", JOIN },
{"\04\04\04\34\04\34\04\04\04", 0x2561, "SF190000", JOIN },
{"\12\12\12\12\32\12\12\12\12", 0x2562, "SF200000", JOIN },
{"\12\12\12\32\02\32\12\12\12", 0x2563, "SF230000", JOIN },
{"\00\00\00\37\00\37\04\04\04", 0x2564, "SF470000", JOIN },
{"\00\00\00\00\37\12\12\12\12", 0x2565, "SF480000", JOIN },
{"\00\00\00\37\00\33\12\12\12", 0x2566, "SF410000", JOIN },
{"\04\04\04\37\00\37\00\00\00", 0x2567, "SF450000", JOIN },
{"\12\12\12\12\37\00\00\00\00", 0x2568, "SF460000", JOIN },
{"\12\12\12\33\00\37\00\00\00", 0x2569, "SF400000", JOIN },
{"\04\04\04\37\04\37\04\04\04", 0x256a, "SF540000", JOIN },
{"\12\12\12\12\37\12\12\12\12", 0x256b, "SF530000", JOIN },
{"\12\12\12\33\00\33\12\12\12", 0x256c, "SF440000", JOIN },
{"\00\00\00\00\03\04\04\04\04", U(256D), JOIN },
{"\00\00\00\00\30\04\04\04\04", U(256E), JOIN },
{"\04\04\04\04\30\00\00\00\00", U(256F), JOIN },
{"\04\04\04\04\03\00\00\00\00", U(2570), JOIN },
{"\00\00\00\00\34\00\00\00\00", U(2574), JOIN },
{"\04\04\04\04\04\00\00\00\00", U(2575), JOIN },
{"\00\00\00\00\07\00\00\00\00", U(2576), JOIN },
{"\00\00\00\00\04\04\04\04\04", U(2577), JOIN },
{"\00\00\00\34\34\34\00\00\00", U(2578), JOIN },
{"\16\16\16\16\16\00\00\00\00", U(2579), JOIN },
{"\00\00\00\07\07\07\00\00\00", U(257A), JOIN },
{"\00\00\00\00\16\16\16\16\16", U(257B), JOIN },
{"\00\00\00\07\37\07\00\00\00", U(257C), JOIN },
{"\04\04\04\04\16\16\16\16\16", U(257D), JOIN },
{"\00\00\00\34\37\34\00\00\00", U(257E), JOIN },
{"\16\16\16\16\16\04\04\04\04", U(257F), JOIN },
/* Block elements */
{{0x03}, 0x2580, "upblock", MOS4 }, {{0x3}, 0xf1e3, "upblock.sep4", SEP4 },
@ -2631,11 +2633,9 @@ getpix(char const data[YSIZE - 1], int x, int y, unsigned flags)
* 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;
}
/* Line-drawing characters repeat top row and/or left column. */
if ((flags & JOIN_L) && x == 0) x = 1;
if ((flags & JOIN_U) && y == 0) y = 1;
if (x < 1 || x >= XSIZE || y < 1 || y >= YSIZE)
return 0;
else