X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/20c4f122543b67c0cdcefd151eb38b3bee599c10..1926305318cf020e20732461293d3e8c1c201734:/st.c?ds=sidebyside diff --git a/st.c b/st.c index 9eebbe4..8f19018 100644 --- a/st.c +++ b/st.c @@ -86,8 +86,6 @@ char *argv0; #define TRUEBLUE(x) (((x) & 0xff) << 8) -#define VT102ID "\033[?6c" - enum glyph_attribute { ATTR_NULL = 0, ATTR_BOLD = 1, @@ -1965,7 +1963,7 @@ csihandle(void) { break; case 'c': /* DA -- Device Attributes */ if(csiescseq.arg[0] == 0) - ttywrite(VT102ID, sizeof(VT102ID) - 1); + ttywrite(vtiden, sizeof(vtiden) - 1); break; case 'C': /* CUF -- Cursor Forward */ case 'a': /* HPR -- Cursor Forward */ @@ -2311,13 +2309,13 @@ techo(char *buf, int len) { for(; len > 0; buf++, len--) { char c = *buf; - if(ISCONTROL(c)) { /* control code */ + if(ISCONTROL((uchar) c)) { /* control code */ if(c & 0x80) { c &= 0x7f; tputc("^", 1); tputc("[", 1); } else if(c != '\n' && c != '\r' && c != '\t') { - c ^= '\x40'; + c ^= 0x40; tputc("^", 1); } tputc(&c, 1); @@ -2433,7 +2431,7 @@ tcontrolcode(uchar ascii) { case 0x98: /* TODO: SOS */ break; case 0x9a: /* DECID -- Identify Terminal */ - ttywrite(VT102ID, sizeof(VT102ID) - 1); + ttywrite(vtiden, sizeof(vtiden) - 1); break; case 0x9b: /* TODO: CSI */ case 0x9c: /* TODO: ST */ @@ -2589,7 +2587,7 @@ tputc(char *c, int len) { } break; case 'Z': /* DECID -- Identify Terminal */ - ttywrite(VT102ID, sizeof(VT102ID) - 1); + ttywrite(vtiden, sizeof(vtiden) - 1); break; case 'c': /* RIS -- Reset to inital state */ treset(); @@ -2700,14 +2698,12 @@ tresize(int col, int row) { /* resize each row to new width, zero-pad if needed */ for(i = 0; i < minrow; i++) { - term.dirty[i] = 1; term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); term.alt[i] = xrealloc(term.alt[i], col * sizeof(Glyph)); } /* allocate any new rows */ for(/* i == minrow */; i < row; i++) { - term.dirty[i] = 1; term.line[i] = xmalloc(col * sizeof(Glyph)); term.alt[i] = xmalloc(col * sizeof(Glyph)); } @@ -2727,7 +2723,7 @@ tresize(int col, int row) { tsetscroll(0, row-1); /* make use of the LIMIT in tmoveto */ tmoveto(term.c.x, term.c.y); - /* Clearing both screens */ + /* Clearing both screens (it makes dirty all lines) */ orig = term.line; c = term.c; do { @@ -3874,8 +3870,8 @@ run(void) { void usage(void) { die("%s " VERSION " (c) 2010-2014 st engineers\n" \ - "usage: st [-a] [-v] [-c class] [-f font] [-g geometry] [-o file]" \ - " [-t title] [-w windowid] [-e command ...]\n", argv0); + "usage: st [-a] [-v] [-c class] [-f font] [-g geometry] [-o file]\n" + " [-i] [-t title] [-w windowid] [-e command ...]\n", argv0); } int