term: scrolling: calling function must clamp scroll amount

This commit is contained in:
Daniel Eklöf 2020-05-19 18:47:38 +02:00
parent dea36de7e3
commit 550667a9ea
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 16 additions and 8 deletions

16
csi.c
View file

@ -650,13 +650,21 @@ csi_dispatch(struct terminal *term, uint8_t final)
break;
}
case 'S':
term_scroll(term, vt_param_get(term, 0, 1));
case 'S': {
int amount = min(
vt_param_get(term, 0, 1),
term->scroll_region.end - term->scroll_region.start);
term_scroll(term, amount);
break;
}
case 'T':
term_scroll_reverse(term, vt_param_get(term, 0, 1));
case 'T': {
int amount = min(
vt_param_get(term, 0, 1),
term->scroll_region.end - term->scroll_region.start);
term_scroll_reverse(term, amount);
break;
}
case 'X': {
/* Erase chars */