From 60ced1399411d34dbc78fabc5135287b40cb9390 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Thu, 24 Mar 2016 23:47:17 +1000 Subject: [PATCH] Make linenoiseClearScreen() public --- linenoise.c | 16 +++++++++------- linenoise.h | 5 +++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/linenoise.c b/linenoise.c index 064fce3..e34ef00 100644 --- a/linenoise.c +++ b/linenoise.c @@ -293,9 +293,9 @@ static void fd_printf(int fd, const char *format, ...) IGNORE_RC(write(fd, buf, n)); } -static void clearScreen(struct current *current) +void linenoiseClearScreen(void) { - fd_printf(current->fd, "\x1b[H\x1b[2J"); + fd_printf(STDOUT_FILENO, "\x1b[H\x1b[2J"); } static void cursorToLeft(struct current *current) @@ -632,17 +632,19 @@ static void disableRawMode(struct current *current) SetConsoleMode(current->inh, orig_consolemode); } -static void clearScreen(struct current *current) +void linenoiseClearScreen(void) { + HANDLE fh = GetStdHandle(STD_OUTPUT_HANDLE); + COORD topleft = { 0, 0 }; DWORD n; - FillConsoleOutputCharacter(current->outh, ' ', + FillConsoleOutputCharacter(fh, ' ', current->cols * current->rows, topleft, &n); - FillConsoleOutputAttribute(current->outh, + FillConsoleOutputAttribute(fh, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN, current->cols * current->rows, topleft, &n); - SetConsoleCursorPosition(current->outh, topleft); + SetConsoleCursorPosition(fh, topleft); } static void cursorToLeft(struct current *current) @@ -1430,7 +1432,7 @@ history_navigation: } break; case ctrl('L'): /* Ctrl+L, clear screen */ - clearScreen(current); + linenoiseClearScreen(); /* Force recalc of window size for serial terminals */ current->cols = 0; refreshLine(current->prompt, current); diff --git a/linenoise.h b/linenoise.h index c9b9f66..ed5d81f 100644 --- a/linenoise.h +++ b/linenoise.h @@ -70,6 +70,11 @@ void linenoiseAddCompletion(linenoiseCompletions *, const char *); */ char *linenoise(const char *prompt); +/** + * Clear the screen. + */ +void linenoiseClearScreen(void); + /* * Adds a copy of the given line of the command history. */ -- 2.44.0