tRemove repeated initialisation of term.esc - st - [fork] customized build of s… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 53105cf74fde46229912275c073f8c0f219b05bb | |
parent aa35bbd7a16c6c210a7574a8c45bbe939d5b2922 | |
Author: Roberto E. Vargas Caballero <[email protected]> | |
Date: Sat, 26 Apr 2014 01:45:10 +0200 | |
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. | |
Diffstat: | |
M st.c | 24 ++++++------------------ | |
1 file changed, 6 insertions(+), 18 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -2503,10 +2503,10 @@ tputc(char *c, int len) { | |
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"; | |
t@@ -2517,15 +2517,14 @@ tputc(char *c, int len) { | |
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 */ | |
t@@ -2534,29 +2533,26 @@ tputc(char *c, int len) { | |
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) { | |
t@@ -2564,46 +2560,38 @@ tputc(char *c, int len) { | |
} 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 … | |
(uchar) ascii, isprint(ascii)? ascii:'… | |
- term.esc = 0; | |
break; | |
} | |
} | |
+ term.esc = 0; | |
/* | |
* All characters which form part of a sequence are not | |
* printed |