Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Make useful DEL in application mode
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
d8ff30b
..
0e228a7
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-86,8
+86,6
@@
char *argv0;
#define TRUEBLUE(x) (((x) & 0xff) << 8)
#define TRUEBLUE(x) (((x) & 0xff) << 8)
-#define VT102ID "\033[?6c"
-
enum glyph_attribute {
ATTR_NULL = 0,
ATTR_BOLD = 1,
enum glyph_attribute {
ATTR_NULL = 0,
ATTR_BOLD = 1,
@@
-1358,9
+1356,12
@@
treset(void) {
memset(term.trantbl, sizeof(term.trantbl), CS_USA);
term.charset = 0;
memset(term.trantbl, sizeof(term.trantbl), CS_USA);
term.charset = 0;
- tclearregion(0, 0, term.col-1, term.row-1);
- tmoveto(0, 0);
- tcursor(CURSOR_SAVE);
+ for(i = 0; i < 2; i++) {
+ tmoveto(0, 0);
+ tcursor(CURSOR_SAVE);
+ tclearregion(0, 0, term.col-1, term.row-1);
+ tswapscreen();
+ }
}
void
}
void
@@
-1965,7
+1966,7
@@
csihandle(void) {
break;
case 'c': /* DA -- Device Attributes */
if(csiescseq.arg[0] == 0)
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 <n> Forward */
case 'a': /* HPR -- Cursor <n> Forward */
break;
case 'C': /* CUF -- Cursor <n> Forward */
case 'a': /* HPR -- Cursor <n> Forward */
@@
-2433,7
+2434,7
@@
tcontrolcode(uchar ascii) {
case 0x98: /* TODO: SOS */
break;
case 0x9a: /* DECID -- Identify Terminal */
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 */
break;
case 0x9b: /* TODO: CSI */
case 0x9c: /* TODO: ST */
@@
-2589,7
+2590,7
@@
tputc(char *c, int len) {
}
break;
case 'Z': /* DECID -- Identify Terminal */
}
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();
break;
case 'c': /* RIS -- Reset to inital state */
treset();
@@
-2663,7
+2664,6
@@
tresize(int col, int row) {
int mincol = MIN(col, term.col);
int slide = term.c.y - row + 1;
bool *bp;
int mincol = MIN(col, term.col);
int slide = term.c.y - row + 1;
bool *bp;
- Line *orig;
TCursor c;
if(col < 1 || row < 1) {
TCursor c;
if(col < 1 || row < 1) {
@@
-2726,9
+2726,8
@@
tresize(int col, int row) {
/* make use of the LIMIT in tmoveto */
tmoveto(term.c.x, term.c.y);
/* Clearing both screens (it makes dirty all lines) */
/* make use of the LIMIT in tmoveto */
tmoveto(term.c.x, term.c.y);
/* Clearing both screens (it makes dirty all lines) */
- orig = term.line;
c = term.c;
c = term.c;
-
do
{
+
for(i = 0; i < 2; i++)
{
if(mincol < col && 0 < minrow) {
tclearregion(mincol, 0, col - 1, minrow - 1);
}
if(mincol < col && 0 < minrow) {
tclearregion(mincol, 0, col - 1, minrow - 1);
}
@@
-2737,7
+2736,7
@@
tresize(int col, int row) {
}
tswapscreen();
tcursor(CURSOR_LOAD);
}
tswapscreen();
tcursor(CURSOR_LOAD);
- }
while(orig != term.line);
+ }
term.c = c;
}
term.c = c;
}
@@
-3872,8
+3871,8
@@
run(void) {
void
usage(void) {
die("%s " VERSION " (c) 2010-2014 st engineers\n" \
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
}
int