Add support for scroll up escape sequence (CSI S) and use it when

possible instead of sending individual line feeds.
This commit is contained in:
nicm
2017-02-08 17:31:09 +00:00
parent 13a0b6bb3f
commit e100d465da
5 changed files with 71 additions and 4 deletions

4
tmux.h
View File

@ -241,6 +241,7 @@ enum tty_code_code {
TTYC_ICH1, /* insert_character, ic */
TTYC_IL, /* parm_insert_line, IL */
TTYC_IL1, /* insert_line, il */
TTYC_INDN, /* parm_index, indn */
TTYC_INVIS, /* enter_secure_mode, mk */
TTYC_IS1, /* init_1string, i1 */
TTYC_IS2, /* init_2string, i2 */
@ -663,6 +664,7 @@ struct screen_write_ctx {
struct screen_write_collect_item *item;
struct screen_write_collect_line *list;
u_int scrolled;
u_int cells;
u_int written;
@ -1658,6 +1660,7 @@ void tty_cmd_erasecharacter(struct tty *, const struct tty_ctx *);
void tty_cmd_insertcharacter(struct tty *, const struct tty_ctx *);
void tty_cmd_insertline(struct tty *, const struct tty_ctx *);
void tty_cmd_linefeed(struct tty *, const struct tty_ctx *);
void tty_cmd_scrollup(struct tty *, const struct tty_ctx *);
void tty_cmd_reverseindex(struct tty *, const struct tty_ctx *);
void tty_cmd_setselection(struct tty *, const struct tty_ctx *);
void tty_cmd_rawstring(struct tty *, const struct tty_ctx *);
@ -1984,6 +1987,7 @@ void screen_write_cursormove(struct screen_write_ctx *, u_int, u_int);
void screen_write_reverseindex(struct screen_write_ctx *);
void screen_write_scrollregion(struct screen_write_ctx *, u_int, u_int);
void screen_write_linefeed(struct screen_write_ctx *, int);
void screen_write_scrollup(struct screen_write_ctx *, u_int);
void screen_write_carriagereturn(struct screen_write_ctx *);
void screen_write_clearendofscreen(struct screen_write_ctx *, u_int);
void screen_write_clearstartofscreen(struct screen_write_ctx *, u_int);