X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=st.c;h=ba6973a9aa06c4a047ed6bd6873a498ff024ece9;hb=034dc71fb8227e8963f22b123f30962ec0b6bca7;hp=64e0aff7075f3a9b88e53e92e2d50330f3f0459a;hpb=02f3b37a2d354c74169f5ed038bb1cb6225d691a;p=st.git diff --git a/st.c b/st.c index 64e0aff..ba6973a 100644 --- a/st.c +++ b/st.c @@ -1789,32 +1789,48 @@ tputc(char *c, int len) { write(iofd, c, len); switch(ascii) { - case '\t': + case '\t': /* HT */ tputtab(1); return; - case '\b': + case '\b': /* BS */ tmoveto(term.c.x-1, term.c.y); return; - case '\r': + case '\r': /* CR */ tmoveto(0, term.c.y); return; - case '\f': - case '\v': - case '\n': + case '\f': /* LF */ + case '\v': /* VT */ + case '\n': /* LF */ /* go to first col if the mode is set */ tnewline(IS_SET(MODE_CRLF)); return; - case '\a': + case '\a': /* BEL */ if(term.esc & ESC_STR) break; - if(!(xw.state & WIN_FOCUSED)) xseturgency(1); return; - case '\033': + case '\033': /* ESC */ csireset(); term.esc = ESC_START; return; + case '\016': /* SO */ + term.c.attr.mode |= ATTR_GFX; + break; + case '\017': /* SI */ + term.c.attr.mode &= ~ATTR_GFX; + return; + case '\032': /* SUB */ + case '\030': /* CAN */ + csireset(); + return; + default: + /* case '\005': ENQ (IGNORED) */ + /* case '\000': NUL (IGNORED) */ + /* case '\021': XON (IGNORED) */ + /* case '\023': XOFF (IGNORED) */ + /* case 0177: DEL (IGNORED) */ + break; } if(term.esc & ESC_START) {