aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--st/st.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/st/st.c b/st/st.c
index e9fea17..6f40e35 100644
--- a/st/st.c
+++ b/st/st.c
@@ -965,6 +965,9 @@ tsetdirt(int top, int bot)
{
int i;
+ if (term.row <= 0)
+ return;
+
LIMIT(top, 0, term.row-1);
LIMIT(bot, 0, term.row-1);
@@ -1420,14 +1423,14 @@ tsetattr(const int *attr, int l)
if ((idx = tdefcolor(attr, &i, l)) >= 0)
term.c.attr.fg = idx;
break;
- case 39:
+ case 39: /* set foreground color to default */
term.c.attr.fg = defaultfg;
break;
case 48:
if ((idx = tdefcolor(attr, &i, l)) >= 0)
term.c.attr.bg = idx;
break;
- case 49:
+ case 49: /* set background color to default */
term.c.attr.bg = defaultbg;
break;
case 58:
@@ -1532,7 +1535,7 @@ tsetmode(int priv, int set, const int *args, int narg)
case 1006: /* 1006: extended reporting mode */
xsetmode(set, MODE_MOUSESGR);
break;
- case 1034:
+ case 1034: /* 1034: enable 8-bit mode for keyboard input */
xsetmode(set, MODE_8BIT);
break;
case 1049: /* swap screen & set/restore cursor as xterm */
@@ -1540,8 +1543,8 @@ tsetmode(int priv, int set, const int *args, int narg)
break;
tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
/* FALLTHROUGH */
- case 47: /* swap screen */
- case 1047:
+ case 47: /* swap screen buffer */
+ case 1047: /* swap screen buffer */
if (!allowaltscreen)
break;
alt = IS_SET(MODE_ALTSCREEN);
@@ -1554,7 +1557,7 @@ tsetmode(int priv, int set, const int *args, int narg)
if (*args != 1049)
break;
/* FALLTHROUGH */
- case 1048:
+ case 1048: /* save/restore cursor (like DECSC/DECRC) */
tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
break;
case 2004: /* 2004: bracketed paste mode */
@@ -1913,7 +1916,7 @@ strhandle(void)
if (narg > 1)
xsettitle(strescseq.args[1]);
return;
- case 52:
+ case 52: /* manipulate selection data */
if (narg > 2 && allowwindowops) {
dec = base64dec(strescseq.args[2]);
if (dec) {
@@ -1924,9 +1927,9 @@ strhandle(void)
}
}
return;
- case 10:
- case 11:
- case 12:
+ case 10: /* set dynamic VT100 text foreground color */
+ case 11: /* set dynamic VT100 text background color */
+ case 12: /* set dynamic text cursor color */
if (narg < 2)
break;
p = strescseq.args[1];
@@ -1967,9 +1970,9 @@ strhandle(void)
tfulldirt();
}
return;
- case 110:
- case 111:
- case 112:
+ case 110: /* reset dynamic VT100 text foreground color */
+ case 111: /* reset dynamic VT100 text background color */
+ case 112: /* reset dynamic text cursor color */
if (narg != 1)
break;
if ((j = par - 110) < 0 || j >= LEN(osc_table))
@@ -2358,6 +2361,7 @@ eschandle(uchar ascii)
resettitle();
xloadcols();
xsetmode(0, MODE_HIDE);
+ xsetmode(0, MODE_BRCKTPASTE);
break;
case '=': /* DECPAM -- Application keypad */
xsetmode(1, MODE_APPKEYPAD);