Browse Source

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
this cases they are not used as control characters.
---
 st.c |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
master
Roberto E. Vargas Caballero 12 years ago
parent
commit
a7d7e29300
1 changed files with 10 additions and 10 deletions
  1. +10
    -10
      st.c

+ 10
- 10
st.c View File

@ -1663,7 +1663,7 @@ tputtab(bool forward) {
void void
tputc(char *c, int len) { tputc(char *c, int len) {
char ascii = *c;
uchar ascii = *c;
if(iofd != -1) if(iofd != -1)
write(iofd, c, len); write(iofd, c, len);
@ -1792,8 +1792,6 @@ tputc(char *c, int len) {
if(sel.bx != -1 && BETWEEN(term.c.y, sel.by, sel.ey)) if(sel.bx != -1 && BETWEEN(term.c.y, sel.by, sel.ey))
sel.bx = -1; sel.bx = -1;
switch(ascii) { switch(ascii) {
case '\0': /* padding character, do nothing */
break;
case '\t': case '\t':
tputtab(1); tputtab(1);
break; break;
@ -1818,13 +1816,15 @@ tputc(char *c, int len) {
term.esc = ESC_START; term.esc = ESC_START;
break; break;
default: 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_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;
}
} }
} }
} }


Loading…
Cancel
Save