Introduction
Introduction Statistics Contact Development Disclaimer Help
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
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.