From d8e749c0f473f7c39ca1aaea094281fdee5dbb3a Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Mon, 20 Nov 2017 11:28:53 +0100 Subject: [PATCH] terminfo_clear_screen --- src/terminal/screen.c | 6 ++++++ src/terminal/terminfo.c | 6 ++++++ src/terminal/terminfo.h | 1 + 3 files changed, 13 insertions(+) diff --git a/src/terminal/screen.c b/src/terminal/screen.c index fd74724e..a789386b 100644 --- a/src/terminal/screen.c +++ b/src/terminal/screen.c @@ -1393,6 +1393,12 @@ erase_screen(struct terminal *term) want_draw(); } +#ifdef CONFIG_TERMINFO + if (get_cmd_opt_bool("terminfo")) { + char *text = terminfo_clear_screen(); + hard_write(term->fdout, text, strlen(text)); + } else +#endif hard_write(term->fdout, "\033[2J\033[1;1H", 10); if (term->master) done_draw(); } diff --git a/src/terminal/terminfo.c b/src/terminal/terminfo.c index 1347a5cd..2427ab5b 100644 --- a/src/terminal/terminfo.c +++ b/src/terminal/terminfo.c @@ -25,6 +25,12 @@ terminfo_setupterm(char *term, int fildes) return setupterm(term, fildes, NULL); } +char * +terminfo_clear_screen(void) +{ + return tiparm(clear_screen); +} + char * terminfo_set_bold(int arg) { diff --git a/src/terminal/terminfo.h b/src/terminal/terminfo.h index 295caa24..62fa7c8f 100644 --- a/src/terminal/terminfo.h +++ b/src/terminal/terminfo.h @@ -2,6 +2,7 @@ #define EL__TERMINAL_TERMINFO_H int terminfo_setupterm(char *term, int fildes); +char *terminfo_clear_screen(void); char *terminfo_set_bold(int arg); char *terminfo_set_italics(int arg); char *terminfo_set_underline(int arg);