From 4561ed6a69e9ceec0c5d7a2186f098b3f3af112a Mon Sep 17 00:00:00 2001 From: nick black Date: Tue, 27 Jul 2021 02:15:12 -0500 Subject: [PATCH] notcurses-info: use wviz throughout for broken unicode implementations --- src/info/main.c | 68 ++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/src/info/main.c b/src/info/main.c index 7810e6ba5..125ce1d14 100644 --- a/src/info/main.c +++ b/src/info/main.c @@ -44,10 +44,28 @@ tinfo_debug_style(struct ncplane* n, const char* name, int style, char ch){ ncplane_putchar(n, ch); } +static void +wviz(struct ncplane* n, const wchar_t* wp){ + for(const wchar_t* w = wp ; *w ; ++w){ + if(ncplane_putwc(n, *w) <= 0){ + ncplane_putchar(n, ' '); + } + } +} + +static void +wvizn(struct ncplane* n, const wchar_t* wp, int nnn){ + for(int nn = 0 ; nn < nnn ; ++nn){ + if(ncplane_putwc(n, wp[nn]) <= 0){ + ncplane_putchar(n, ' '); + } + } +} + static int braille_viz(struct ncplane* n, wchar_t l, const wchar_t* egcs, wchar_t r, const char* indent, const wchar_t* bounds, wchar_t r8, wchar_t l8, - const char* trailer){ + const wchar_t* trailer){ ncplane_printf(n, "%s%lc", indent, l); for(int i = 0 ; i < 64 ; ++i){ if(ncplane_putwc(n, egcs[i]) <= 0){ @@ -64,7 +82,7 @@ braille_viz(struct ncplane* n, wchar_t l, const wchar_t* egcs, wchar_t r, } ncplane_putwc(n, bounds[1]); if(trailer){ - ncplane_putstr(n, trailer); + wviz(n, trailer); } ncplane_putchar(n, '\n'); return 0; @@ -111,24 +129,6 @@ sex_viz(struct ncplane* n, const wchar_t* sex, wchar_t r, const wchar_t* post){ return 0; } -static void -wviz(struct ncplane* n, const wchar_t* wp){ - for(const wchar_t* w = wp ; *w ; ++w){ - if(ncplane_putwc(n, *w) <= 0){ - ncplane_putchar(n, ' '); - } - } -} - -static void -wvizn(struct ncplane* n, const wchar_t* wp, int nnn){ - for(int nn = 0 ; nn < nnn ; ++nn){ - if(ncplane_putwc(n, wp[nn]) <= 0){ - ncplane_putchar(n, ' '); - } - } -} - static void triviz(struct ncplane* n, const wchar_t* w1, const wchar_t* w2, const wchar_t* w3, const wchar_t* w4, const wchar_t* w5, const wchar_t* w6, @@ -175,7 +175,7 @@ triviz(struct ncplane* n, const wchar_t* w1, const wchar_t* w2, const wchar_t* w static void vertviz(struct ncplane* n, wchar_t l, wchar_t li, wchar_t ri, wchar_t r, - const char* trail){ + const wchar_t* trail){ if(ncplane_putwc(n, l) <= 0){ ncplane_putchar(n, ' '); } @@ -188,7 +188,7 @@ vertviz(struct ncplane* n, wchar_t l, wchar_t li, wchar_t ri, wchar_t r, if(ncplane_putwc(n, r) <= 0){ ncplane_putchar(n, ' '); } - ncplane_putstr(n, trail); + wviz(n, trail); ncplane_putchar(n, '\n'); } @@ -198,43 +198,43 @@ unicodedumper(struct ncplane* n, const char* indent){ // all NCHALFBLOCKS are contained within NCQUADBLOCKS ncplane_printf(n, "%s%ls⎧", indent, NCQUADBLOCKS); sex_viz(n, NCSEXBLOCKS, L'⎫', L"♠♥🯰🯱🯲🯳🯴🯵🯶🯷🯸🯹\u2157\u2158\u2159\u215a\u215b"); - vertviz(n, L'⎧', NCEIGHTHSR[0], NCEIGHTHSL[0], L'⎫', "┌╥─╥─╥┐🭩"); + vertviz(n, L'⎧', NCEIGHTHSR[0], NCEIGHTHSL[0], L'⎫', L"┌╥─╥─╥┐🭩"); ncplane_printf(n, "%s╲╿╱ ◨◧ ◪◩ ◖◗ ⫷⫸ ⎩", indent); sex_viz(n, &NCSEXBLOCKS[32], L'⎭', L"♦♣\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u215c\u215d\u215e\u215f\u2189"); - vertviz(n, L'⎪', NCEIGHTHSR[1], NCEIGHTHSL[1], L'⎪', "├╜╓╫╖╙┤🭫"); + vertviz(n, L'⎪', NCEIGHTHSR[1], NCEIGHTHSL[1], L'⎪', L"├╜╓╫╖╙┤🭫"); ncplane_printf(n, "%s╾╳╼ ", indent); triviz(n, NCWHITESQUARESW, NCWHITECIRCLESW, NCDIAGONALSW, &NCDIAGONALSW[4], NCCIRCULARARCSW, NCWHITETRIANGLESW, NCSHADETRIANGLESW, NCBLACKTRIANGLESW, NCBOXLIGHTW, &NCBOXLIGHTW[4], NCBOXHEAVYW, &NCBOXHEAVYW[4], NCBOXROUNDW, &NCBOXROUNDW[4], NCBOXDOUBLEW, &NCBOXDOUBLEW[4], NCBOXOUTERW, &NCBOXOUTERW[4], L"⩘▵△▹▷▿▽◃◁", NCARROWW); - vertviz(n, L'⎪', NCEIGHTHSR[2], NCEIGHTHSL[2], L'⎪', "├─╨╫╨─┤┇"); + vertviz(n, L'⎪', NCEIGHTHSR[2], NCEIGHTHSL[2], L'⎪', L"├─╨╫╨─┤┇"); ncplane_printf(n, "%s╱╽╲ ", indent); triviz(n, &NCWHITESQUARESW[2], &NCWHITECIRCLESW[2], &NCDIAGONALSW[2], &NCDIAGONALSW[6], &NCCIRCULARARCSW[2], &NCWHITETRIANGLESW[2], &NCSHADETRIANGLESW[2], &NCBLACKTRIANGLESW[2], &NCBOXLIGHTW[2], &NCBOXLIGHTW[5], &NCBOXHEAVYW[2], &NCBOXHEAVYW[5], &NCBOXROUNDW[2], &NCBOXROUNDW[5], &NCBOXDOUBLEW[2], &NCBOXDOUBLEW[5], &NCBOXOUTERW[2], &NCBOXOUTERW[5], L"⩗▴⏶⯅▲▸⏵⯈▶", L"▾⏷⯆▼◂⏴⯇◀"); - vertviz(n, L'⎪', NCEIGHTHSR[3], NCEIGHTHSL[3], L'⎪', "╞═╤╬╤═╡┋"); + vertviz(n, L'⎪', NCEIGHTHSR[3], NCEIGHTHSL[3], L'⎪', L"╞═╤╬╤═╡┋"); braille_viz(n, L'⎡', NCBRAILLEEGCS, L'⎤', indent, L"⎨⎬", NCEIGHTHSR[4], NCEIGHTHSL[4], - "╞╕╘╬╛╒╡┊"); + L"╞╕╘╬╛╒╡┊"); braille_viz(n, L'⎢', &NCBRAILLEEGCS[64], L'⎥', indent, L"⎪⎪", NCEIGHTHSR[5], NCEIGHTHSL[5], - "└┴─╨─┴┘╏"); + L"└┴─╨─┴┘╏"); braille_viz(n, L'⎢', &NCBRAILLEEGCS[128], L'⎥', indent, L"⎪⎪", NCEIGHTHSR[6], NCEIGHTHSL[6], - "╭──╮⟬⟭╔╗"); + L"╭──╮⟬⟭╔╗"); braille_viz(n, L'⎣', &NCBRAILLEEGCS[192], L'⎦', indent, L"⎪⎪", NCEIGHTHSR[7], NCEIGHTHSL[7], - "│╭╮│╔═╝║"); + L"│╭╮│╔═╝║"); legacy_viz(n, indent, L"▔🭶🭷🭸🭹🭺🭻▁", NCANGLESBR, NCANGLESBL); wviz(n, NCDIGITSSUBW); - ncplane_printf(n, " ⎛"); + wviz(n, L" ⎛"); wviz(n, NCEIGHTHSB); - ncplane_printf(n, " ⎞⎪🭨🭪⎪╰╯││║╔═╝"); + wviz(n, L" ⎞⎪🭨🭪⎪╰╯││║╔═╝"); ncplane_putchar(n, '\n'); legacy_viz(n, indent, L"▏🭰🭱🭲🭳🭴🭵▕", NCANGLESTR, NCANGLESTL); wviz(n, NCDIGITSSUPERW); - ncplane_printf(n, " ⎝"); + wviz(n, L" ⎝"); wviz(n, NCEIGHTHST); - ncplane_printf(n, " ⎠⎩🭪🭨⎭⧒⧑╰╯╚╝❨❩"); + wviz(n, L" ⎠⎩🭪🭨⎭⧒⧑╰╯╚╝❨❩"); ncplane_putchar(n, '\n'); int y, x; ncplane_cursor_yx(n, &y, &x);