int mc_tty_normalize_lines_char (const char *ch) { char *str2; int res; struct mc_tty_lines_struct { const char *line; int line_code; } const lines_codes[] = { {"\342\224\230", ACS_LRCORNER}, /* ┌ */ {"\342\224\224", ACS_LLCORNER}, /* └ */ {"\342\224\220", ACS_URCORNER}, /* ┐ */ {"\342\224\214", ACS_ULCORNER}, /* ┘ */ {"\342\224\234", ACS_LTEE}, /* ├ */ {"\342\224\244", ACS_RTEE}, /* ┤ */ {"\342\224\254", ACS_TTEE}, /* ┬ */ {"\342\224\264", ACS_BTEE}, /* ┴ */ {"\342\224\200", ACS_HLINE}, /* ─ */ {"\342\224\202", ACS_VLINE}, /* │ */ {"\342\224\274", ACS_PLUS}, /* ┼ */ {"\342\225\235", ACS_LRCORNER | A_BOLD}, /* ╔ */ {"\342\225\232", ACS_LLCORNER | A_BOLD}, /* ╚ */ {"\342\225\227", ACS_URCORNER | A_BOLD}, /* ╗ */ {"\342\225\224", ACS_ULCORNER | A_BOLD}, /* ╝ */ {"\342\225\237", ACS_LTEE | A_BOLD}, /* ╟ */ {"\342\225\242", ACS_RTEE | A_BOLD}, /* ╢ */ {"\342\225\244", ACS_TTEE | A_BOLD}, /* ╤ */ {"\342\225\247", ACS_BTEE | A_BOLD}, /* ╧ */ {"\342\225\220", ACS_HLINE | A_BOLD}, /* ═ */ {"\342\225\221", ACS_VLINE | A_BOLD}, /* ║ */ {NULL, 0} }; if (ch == NULL) return (int) ' '; for (res = 0; lines_codes[res].line; res++) { if (strcmp (ch, lines_codes[res].line) == 0) return lines_codes[res].line_code; } str2 = mc_tty_normalize_from_utf8 (ch); res = g_utf8_get_char_validated (str2, -1); if (res < 0) res = (unsigned char) str2[0]; g_free (str2); return res; }
int mc_tty_normalize_lines_char (const char *str) { char *str2; int res; struct mc_tty_lines_struct { const char *line; int line_code; } const lines_codes[] = { {"\342\224\214", SLSMG_ULCORN_CHAR}, {"\342\224\220", SLSMG_URCORN_CHAR}, {"\342\224\224", SLSMG_LLCORN_CHAR}, {"\342\224\230", SLSMG_LRCORN_CHAR}, {"\342\224\234", SLSMG_LTEE_CHAR}, {"\342\224\244", SLSMG_RTEE_CHAR}, {"\342\224\254", SLSMG_UTEE_CHAR}, {"\342\224\264", SLSMG_DTEE_CHAR}, {"\342\224\200", SLSMG_HLINE_CHAR}, {"\342\224\202", SLSMG_VLINE_CHAR}, {"\342\224\274", SLSMG_PLUS_CHAR}, {NULL, 0} }; if (!str) return (int) ' '; for (res = 0; lines_codes[res].line; res++) { if (strcmp (str, lines_codes[res].line) == 0) return lines_codes[res].line_code; } str2 = mc_tty_normalize_from_utf8 (str); res = g_utf8_get_char_validated (str2, -1); if (res < 0) res = (unsigned char) str2[0]; g_free (str2); return res; }