tIgnore all control characters not handled - st - [fork] customized build of st… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit a7d7e29300acade90f2025f0b85fa5eae06edb24 | |
parent 375b6e5b175ce0a01d47288e94e9c4a8acc3939a | |
Author: Roberto E. Vargas Caballero <[email protected]> | |
Date: Wed, 26 Sep 2012 20:53:46 +0200 | |
Ignore all control characters not handled | |
Taken from vt100 programmer manual: | |
Control characters have values of \000 - \037, and \177. The control | |
characters recognized by the VT100 are shown in Table 3-10. All | |
other control codes cause no action to be taken. | |
We have to take attention when we are using alternate charset, because in | |
tthis cases they are not used as control characters. | |
--- | |
st.c | 20 ++++++++++---------- | |
1 file changed, 10 insertions(+), 10 deletions(-) | |
Diffstat: | |
M st.c | 20 ++++++++++---------- | |
1 file changed, 10 insertions(+), 10 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -1663,7 +1663,7 @@ tputtab(bool forward) { | |
void | |
tputc(char *c, int len) { | |
- char ascii = *c; | |
+ uchar ascii = *c; | |
if(iofd != -1) | |
write(iofd, c, len); | |
t@@ -1792,8 +1792,6 @@ tputc(char *c, int len) { | |
if(sel.bx != -1 && BETWEEN(term.c.y, sel.by, sel.ey)) | |
sel.bx = -1; | |
switch(ascii) { | |
- case '\0': /* padding character, do nothing */ | |
- break; | |
case '\t': | |
tputtab(1); | |
break; | |
t@@ -1818,13 +1816,15 @@ tputc(char *c, int len) { | |
term.esc = ESC_START; | |
break; | |
default: | |
- if(IS_SET(MODE_WRAP) && term.c.state & CURSOR_WRAPNEXT) | |
- tnewline(1); /* always go to first col */ | |
- tsetchar(c); | |
- if(term.c.x+1 < term.col) | |
- tmoveto(term.c.x+1, term.c.y); | |
- else | |
- term.c.state |= CURSOR_WRAPNEXT; | |
+ if(ascii >= '\020' || term.c.attr.mode & ATTR_GFX) { | |
+ if(IS_SET(MODE_WRAP) && term.c.state & CURSOR_… | |
+ tnewline(1); /* always go to first col… | |
+ tsetchar(c); | |
+ if(term.c.x+1 < term.col) | |
+ tmoveto(term.c.x+1, term.c.y); | |
+ else | |
+ term.c.state |= CURSOR_WRAPNEXT; | |
+ } | |
} | |
} | |
} |