void
tputc(char *c, int len) {
- char ascii = *c;
+ uchar ascii = *c;
if(iofd != -1)
write(iofd, c, 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;
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;
+ }
}
}
}