From 011c58f759f9bfa89b3b2fa653e84afeb9a6138e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sun, 27 Dec 2020 12:29:44 +0100 Subject: [PATCH] box-drawing: mixed LIGHT/HEAVY variants of UP AND HORIZONTAL * U+2535 * U+2536 * U+2537 * U+2538 * U+2539 * U+253A --- box-drawing.c | 60 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/box-drawing.c b/box-drawing.c index 682a6403..28142c92 100644 --- a/box-drawing.c +++ b/box-drawing.c @@ -394,6 +394,54 @@ draw_box_drawings_light_up_and_horizontal(uint8_t *buf, int width, int height, i vline_middle_up(thickness(1, dpi)); } +static void +draw_box_drawings_left_heavy_and_right_up_light(uint8_t *buf, int width, int height, int stride, int dpi) +{ + _hline_middle_left(thickness(1, dpi), thickness(2, dpi)); + hline_middle_right(thickness(1, dpi)); + vline_middle_up(thickness(1, dpi)); +} + +static void +draw_box_drawings_right_heavy_and_left_up_light(uint8_t *buf, int width, int height, int stride, int dpi) +{ + hline_middle_left(thickness(1, dpi)); + _hline_middle_right(thickness(1, dpi), thickness(2, dpi)); + vline_middle_up(thickness(1, dpi)); +} + +static void +draw_box_drawings_up_light_and_horizontal_heavy(uint8_t *buf, int width, int height, int stride, int dpi) +{ + hline_middle_left(thickness(2, dpi)); + hline_middle_right(thickness(2, dpi)); + vline_middle_up(thickness(1, dpi)); +} + +static void +draw_box_drawings_up_heavy_and_horizontal_light(uint8_t *buf, int width, int height, int stride, int dpi) +{ + hline_middle_left(thickness(1, dpi)); + hline_middle_right(thickness(1, dpi)); + _vline_middle_up(thickness(2, dpi), thickness(1, dpi)); +} + +static void +draw_box_drawings_right_light_and_left_up_heavy(uint8_t *buf, int width, int height, int stride, int dpi) +{ + hline_middle_left(thickness(2, dpi)); + hline_middle_right(thickness(1, dpi)); + vline_middle_up(thickness(2, dpi)); +} + +static void +draw_box_drawings_left_light_and_right_up_heavy(uint8_t *buf, int width, int height, int stride, int dpi) +{ + hline_middle_left(thickness(1, dpi)); + hline_middle_right(thickness(2, dpi)); + vline_middle_up(thickness(2, dpi)); +} + static void draw_box_drawings_heavy_up_and_horizontal(uint8_t *buf, int width, int height, int stride, int dpi) { @@ -483,15 +531,15 @@ draw_glyph(wchar_t wc, uint8_t *buf, int width, int height, int stride, int dpi) case 0x2532: draw_box_drawings_left_light_and_right_down_heavy(buf, width, height, stride, dpi); break; case 0x2533: draw_box_drawings_heavy_down_and_horizontal(buf, width, height, stride, dpi); break; case 0x2534: draw_box_drawings_light_up_and_horizontal(buf, width, height, stride, dpi); break; + case 0x2535: draw_box_drawings_left_heavy_and_right_up_light(buf, width, height, stride, dpi); break; + case 0x2536: draw_box_drawings_right_heavy_and_left_up_light(buf, width, height, stride, dpi); break; + case 0x2537: draw_box_drawings_up_light_and_horizontal_heavy(buf, width, height, stride, dpi); break; + case 0x2538: draw_box_drawings_up_heavy_and_horizontal_light(buf, width, height, stride, dpi); break; + case 0x2539: draw_box_drawings_right_light_and_left_up_heavy(buf, width, height, stride, dpi); break; + case 0x253a: draw_box_drawings_left_light_and_right_up_heavy(buf, width, height, stride, dpi); break; case 0x253b: draw_box_drawings_heavy_up_and_horizontal(buf, width, height, stride, dpi); break; case 0x253c: draw_box_drawings_light_vertical_and_horizontal(buf, width, height, stride, dpi); break; - case 0x2535: - case 0x2536: - case 0x2537: - case 0x2538: - case 0x2539: - case 0x253a: case 0x253d: case 0x253e: case 0x253f: