From 860f76c16fbfd69a1fc31f785a8f2b8e18c42111 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Sat, 26 Oct 2024 22:42:27 +0100 Subject: [PATCH] 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. --- bedstead.c | 280 ++++++++++++++++++++++++++--------------------------- 1 file changed, 140 insertions(+), 140 deletions(-) diff --git a/bedstead.c b/bedstead.c index 044fc33..9984adb 100644 --- a/bedstead.c +++ b/bedstead.c @@ -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 -- 2.30.2