diff options
Diffstat (limited to '')
-rw-r--r-- | term.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/term.c b/term.c index 18eeb66..e77ab67 100644 --- a/term.c +++ b/term.c @@ -248,6 +248,8 @@ enum CSI { EL, DL = 'M', DCH = 'P', + SU = 'S', + SD = 'T', ECH = 'X', VPA = 'd', SM = 'h', @@ -331,6 +333,9 @@ static char updateCSI(wchar_t ch) { clear(cell(y, cols - i), cell(y, cols - 1)); } + break; case SU: scrollUp(MIN((n ? ps[0] : 1), scroll.bot - scroll.top)); + break; case SD: scrollDown(MIN((n ? ps[0] : 1), scroll.bot - scroll.top)); + break; case SM: { switch (ps[0]) { break; case IRM: insert = true; @@ -347,6 +352,7 @@ static char updateCSI(wchar_t ch) { break; case SGR: updateSGR(ps, p + 1); break; case DECSTBM: { + // FIXME: Prevent bot < top. scroll.top = (n > 0 ? ps[0] - 1 : 0); scroll.bot = (n > 1 ? ps[1] - 1 : rows - 1); } |