all repos — st @ a7d7e29300acade90f2025f0b85fa5eae06edb24

st (suckless terminal) config

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(-)
Roberto E. Vargas Caballero k0ga@shike2.com
commit

a7d7e29300acade90f2025f0b85fa5eae06edb24

parent

375b6e5b175ce0a01d47288e94e9c4a8acc3939a

1 files changed, 10 insertions(+), 10 deletions(-)

jump to
M st.cst.c

@@ -1663,7 +1663,7 @@ }

void tputc(char *c, int len) { - char ascii = *c; + uchar ascii = *c; if(iofd != -1) write(iofd, c, len);

@@ -1792,8 +1792,6 @@ } else {

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;

@@ -1818,13 +1816,15 @@ csireset();

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_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; + } } } }