notcurses-info: use wviz throughout for broken unicode implementations

pull/1995/head
nick black 3 years ago
parent 023dd01740
commit 4561ed6a69

@ -44,10 +44,28 @@ tinfo_debug_style(struct ncplane* n, const char* name, int style, char ch){
ncplane_putchar(n, 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 static int
braille_viz(struct ncplane* n, wchar_t l, const wchar_t* egcs, wchar_t r, 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* 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); ncplane_printf(n, "%s%lc", indent, l);
for(int i = 0 ; i < 64 ; ++i){ for(int i = 0 ; i < 64 ; ++i){
if(ncplane_putwc(n, egcs[i]) <= 0){ 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]); ncplane_putwc(n, bounds[1]);
if(trailer){ if(trailer){
ncplane_putstr(n, trailer); wviz(n, trailer);
} }
ncplane_putchar(n, '\n'); ncplane_putchar(n, '\n');
return 0; return 0;
@ -111,24 +129,6 @@ sex_viz(struct ncplane* n, const wchar_t* sex, wchar_t r, const wchar_t* post){
return 0; 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 static void
triviz(struct ncplane* n, const wchar_t* w1, const wchar_t* w2, const wchar_t* w3, 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, 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 static void
vertviz(struct ncplane* n, wchar_t l, wchar_t li, wchar_t ri, wchar_t r, 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){ if(ncplane_putwc(n, l) <= 0){
ncplane_putchar(n, ' '); 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){ if(ncplane_putwc(n, r) <= 0){
ncplane_putchar(n, ' '); ncplane_putchar(n, ' ');
} }
ncplane_putstr(n, trail); wviz(n, trail);
ncplane_putchar(n, '\n'); ncplane_putchar(n, '\n');
} }
@ -198,43 +198,43 @@ unicodedumper(struct ncplane* n, const char* indent){
// all NCHALFBLOCKS are contained within NCQUADBLOCKS // all NCHALFBLOCKS are contained within NCQUADBLOCKS
ncplane_printf(n, "%s%ls⎧", indent, NCQUADBLOCKS); ncplane_printf(n, "%s%ls⎧", indent, NCQUADBLOCKS);
sex_viz(n, NCSEXBLOCKS, L'', L"♠♥🯰🯱🯲🯳🯴🯵🯶🯷🯸🯹\u2157\u2158\u2159\u215a\u215b"); 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); 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"); 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); ncplane_printf(n, "%s╾", indent);
triviz(n, NCWHITESQUARESW, NCWHITECIRCLESW, NCDIAGONALSW, &NCDIAGONALSW[4], triviz(n, NCWHITESQUARESW, NCWHITECIRCLESW, NCDIAGONALSW, &NCDIAGONALSW[4],
NCCIRCULARARCSW, NCWHITETRIANGLESW, NCSHADETRIANGLESW, NCBLACKTRIANGLESW, NCCIRCULARARCSW, NCWHITETRIANGLESW, NCSHADETRIANGLESW, NCBLACKTRIANGLESW,
NCBOXLIGHTW, &NCBOXLIGHTW[4], NCBOXHEAVYW, &NCBOXHEAVYW[4], NCBOXROUNDW, NCBOXLIGHTW, &NCBOXLIGHTW[4], NCBOXHEAVYW, &NCBOXHEAVYW[4], NCBOXROUNDW,
&NCBOXROUNDW[4], NCBOXDOUBLEW, &NCBOXDOUBLEW[4], NCBOXOUTERW, &NCBOXOUTERW[4], &NCBOXROUNDW[4], NCBOXDOUBLEW, &NCBOXDOUBLEW[4], NCBOXOUTERW, &NCBOXOUTERW[4],
L"⩘▵△▹▷▿▽◃◁", NCARROWW); L"⩘▵△▹▷▿▽◃◁", NCARROWW);
vertviz(n, L'', NCEIGHTHSR[2], NCEIGHTHSL[2], L'', "├─╨╫╨─┤┇"); vertviz(n, L'', NCEIGHTHSR[2], NCEIGHTHSL[2], L'', L"├─╨╫╨─┤┇");
ncplane_printf(n, "%s╽╲ ", indent); ncplane_printf(n, "%s╽╲ ", indent);
triviz(n, &NCWHITESQUARESW[2], &NCWHITECIRCLESW[2], &NCDIAGONALSW[2], &NCDIAGONALSW[6], triviz(n, &NCWHITESQUARESW[2], &NCWHITECIRCLESW[2], &NCDIAGONALSW[2], &NCDIAGONALSW[6],
&NCCIRCULARARCSW[2], &NCWHITETRIANGLESW[2], &NCSHADETRIANGLESW[2], &NCBLACKTRIANGLESW[2], &NCCIRCULARARCSW[2], &NCWHITETRIANGLESW[2], &NCSHADETRIANGLESW[2], &NCBLACKTRIANGLESW[2],
&NCBOXLIGHTW[2], &NCBOXLIGHTW[5], &NCBOXHEAVYW[2], &NCBOXHEAVYW[5], &NCBOXROUNDW[2], &NCBOXLIGHTW[2], &NCBOXLIGHTW[5], &NCBOXHEAVYW[2], &NCBOXHEAVYW[5], &NCBOXROUNDW[2],
&NCBOXROUNDW[5], &NCBOXDOUBLEW[2], &NCBOXDOUBLEW[5], &NCBOXOUTERW[2], &NCBOXOUTERW[5], &NCBOXROUNDW[5], &NCBOXDOUBLEW[2], &NCBOXDOUBLEW[5], &NCBOXOUTERW[2], &NCBOXOUTERW[5],
L"⩗▴⏶⯅▲▸⏵⯈▶", L"▾⏷⯆▼◂⏴⯇◀"); 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], 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], 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], 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], braille_viz(n, L'', &NCBRAILLEEGCS[192], L'', indent, L"⎪⎪", NCEIGHTHSR[7], NCEIGHTHSL[7],
"│╭╮│╔═╝║"); L"│╭╮│╔═╝║");
legacy_viz(n, indent, L"▔🭶🭷🭸🭹🭺🭻▁", NCANGLESBR, NCANGLESBL); legacy_viz(n, indent, L"▔🭶🭷🭸🭹🭺🭻▁", NCANGLESBR, NCANGLESBL);
wviz(n, NCDIGITSSUBW); wviz(n, NCDIGITSSUBW);
ncplane_printf(n, ""); wviz(n, L"");
wviz(n, NCEIGHTHSB); wviz(n, NCEIGHTHSB);
ncplane_printf(n, " ⎞⎪🭨🭪⎪╰╯││║╔═╝"); wviz(n, L" ⎞⎪🭨🭪⎪╰╯││║╔═╝");
ncplane_putchar(n, '\n'); ncplane_putchar(n, '\n');
legacy_viz(n, indent, L"▏🭰🭱🭲🭳🭴🭵▕", NCANGLESTR, NCANGLESTL); legacy_viz(n, indent, L"▏🭰🭱🭲🭳🭴🭵▕", NCANGLESTR, NCANGLESTL);
wviz(n, NCDIGITSSUPERW); wviz(n, NCDIGITSSUPERW);
ncplane_printf(n, ""); wviz(n, L"");
wviz(n, NCEIGHTHST); wviz(n, NCEIGHTHST);
ncplane_printf(n, " ⎠⎩🭪🭨⎭⧒⧑╰╯╚╝❨❩"); wviz(n, L" ⎠⎩🭪🭨⎭⧒⧑╰╯╚╝❨❩");
ncplane_putchar(n, '\n'); ncplane_putchar(n, '\n');
int y, x; int y, x;
ncplane_cursor_yx(n, &y, &x); ncplane_cursor_yx(n, &y, &x);

Loading…
Cancel
Save