X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=st.c;h=49df79204dc1cc570e2d13475fdd1c444f542b64;hb=704d12442e85ded011f71c95e90534ebacc81692;hp=297eb3f812c3a54efd80ab59ece742c722aadcf7;hpb=7f1e02e4dbb6e6f033797a09a7deea4fe29f2ca6;p=st.git diff --git a/st.c b/st.c index 297eb3f..49df792 100644 --- a/st.c +++ b/st.c @@ -1228,6 +1228,7 @@ ttynew(void) { opt_io, strerror(errno)); } } + break; } } @@ -1673,6 +1674,7 @@ tdefcolor(int *attr, int *npar, int l) { default: fprintf(stderr, "erresc(38): gfx attr %d unknown\n", attr[*npar]); + break; } return idx; @@ -2298,7 +2300,7 @@ techo(char *buf, int len) { for(; len > 0; buf++, len--) { char c = *buf; - if(c < 0x20 || c == 0177) { /* control code */ + if(BETWEEN(c, 0x00, 0x1f) || c == 0x7f) { /* control code */ if(c != '\n' && c != '\r' && c != '\t') { c ^= '\x40'; tputc("^", 1); @@ -2387,6 +2389,7 @@ tputc(char *c, int len) { * strhandle(); */ } + break; } return; } @@ -2452,10 +2455,6 @@ tputc(char *c, int len) { csiparse(); csihandle(); } - } else if(term.esc & ESC_STR_END) { - term.esc = 0; - if(ascii == '\\') - strhandle(); } else if(term.esc & ESC_ALTCHARSET) { tdeftran(ascii); tselcs(); @@ -2545,13 +2544,16 @@ tputc(char *c, int len) { tcursor(CURSOR_LOAD); term.esc = 0; break; - case '\\': /* ST -- Stop */ + case '\\': /* ST -- String Terminator */ + if(term.esc & ESC_STR_END) + strhandle(); term.esc = 0; break; default: fprintf(stderr, "erresc: unknown sequence ESC 0x%02X '%c'\n", (uchar) ascii, isprint(ascii)? ascii:'.'); term.esc = 0; + break; } } /*