Simplify tdeftrans - st - simple terminal (HTM) git clone https://git.parazyd.org/st (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 93661042a2a0cf6f3655360f5c52215c684a4211 (DIR) parent 18a05fdf4326ac1c7165de8cad0895b5c44fac83 (HTM) Author: Roberto E. Vargas Caballero <k0ga@shike2.com> Date: Sat, 7 Jun 2014 13:23:45 +0200 Simplify tdeftrans Diffstat: M st.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) --- (DIR) diff --git a/st.c b/st.c @@ -2315,19 +2315,14 @@ techo(char *buf, int len) { void tdeftran(char ascii) { - char c, (*bp)[2]; - static char tbl[][2] = { - {'0', CS_GRAPHIC0}, {'B', CS_USA}, - {0, 0} - }; - - for (bp = &tbl[0]; (c = (*bp)[0]) && c != ascii; ++bp) - /* nothing */; + static char cs[] = "0B"; + static int vcs[] = {CS_GRAPHIC0, CS_USA}; + char *p; - if (c == 0) + if((p = strchr(cs, ascii)) == NULL) fprintf(stderr, "esc unhandled charset: ESC ( %c\n", ascii); else - term.trantbl[term.icharset] = (*bp)[1]; + term.trantbl[term.icharset] = vcs[p - cs]; } void