all repos — st @ 53105cf74fde46229912275c073f8c0f219b05bb

st (suckless terminal) config

Remove repeated initialisation of term.esc

Once a sequence is completed term.esc must return to 0, so
instead of repeating this expression in all the cases is
better put it at the end of the block.
Roberto E. Vargas Caballero k0ga@shike2.com
commit

53105cf74fde46229912275c073f8c0f219b05bb

parent

aa35bbd7a16c6c210a7574a8c45bbe939d5b2922

1 files changed, 6 insertions(+), 18 deletions(-)

jump to
M st.cst.c

@@ -2503,10 +2503,10 @@ term.esc = 0;

csiparse(); csihandle(); } + return; } else if(term.esc & ESC_ALTCHARSET) { tdeftran(ascii); tselcs(); - term.esc = 0; } else if(term.esc & ESC_TEST) { if(ascii == '8') { /* DEC screen alignment test. */ char E[UTF_SIZ] = "E";

@@ -2517,15 +2517,14 @@ for(y = 0; y < term.row; ++y)

tsetchar(E, &term.c.attr, x, y); } } - term.esc = 0; } else { switch(ascii) { case '[': term.esc |= ESC_CSI; - break; + return; case '#': term.esc |= ESC_TEST; - break; + return; case 'P': /* DCS -- Device Control String */ case '_': /* APC -- Application Program Command */ case '^': /* PM -- Privacy Message */

@@ -2534,29 +2533,26 @@ case 'k': /* old title set compatibility */

strreset(); strescseq.type = ascii; term.esc |= ESC_STR; - break; + return; case '(': /* set primary charset G0 */ case ')': /* set secondary charset G1 */ case '*': /* set tertiary charset G2 */ case '+': /* set quaternary charset G3 */ term.icharset = ascii - '('; term.esc |= ESC_ALTCHARSET; - break; + return; case 'D': /* IND -- Linefeed */ if(term.c.y == term.bot) { tscrollup(term.top, 1); } else { tmoveto(term.c.x, term.c.y+1); } - term.esc = 0; break; case 'E': /* NEL -- Next line */ tnewline(1); /* always go to first col */ - term.esc = 0; break; case 'H': /* HTS -- Horizontal tab stop */ term.tabs[term.c.x] = 1; - term.esc = 0; break; case 'M': /* RI -- Reverse index */ if(term.c.y == term.top) {

@@ -2564,46 +2560,38 @@ tscrolldown(term.top, 1);

} else { tmoveto(term.c.x, term.c.y-1); } - term.esc = 0; break; case 'Z': /* DECID -- Identify Terminal */ ttywrite(VT102ID, sizeof(VT102ID) - 1); - term.esc = 0; break; case 'c': /* RIS -- Reset to inital state */ treset(); - term.esc = 0; xresettitle(); xloadcols(); break; case '=': /* DECPAM -- Application keypad */ term.mode |= MODE_APPKEYPAD; - term.esc = 0; break; case '>': /* DECPNM -- Normal keypad */ term.mode &= ~MODE_APPKEYPAD; - term.esc = 0; break; case '7': /* DECSC -- Save Cursor */ tcursor(CURSOR_SAVE); - term.esc = 0; break; case '8': /* DECRC -- Restore Cursor */ tcursor(CURSOR_LOAD); - term.esc = 0; break; case '\\': /* ST -- String Terminator */ if(term.esc & ESC_STR_END) strhandle(); - term.esc = 0; break; default: fprintf(stderr, "erresc: unknown sequence ESC 0x%02X '%c'\n", (uchar) ascii, isprint(ascii)? ascii:'.'); - term.esc = 0; break; } } + term.esc = 0; /* * All characters which form part of a sequence are not * printed