From 4f9b6f9f4edc2bd5cc438e5f08a7a5bae5d295d7 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Sat, 3 Sep 2016 10:04:01 +1000 Subject: [PATCH] Fix compilation on Windows Reported-by: Jenson@Win32 Signed-off-by: Steve Bennett --- linenoise.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/linenoise.c b/linenoise.c index de4f58d..aed0e02 100644 --- a/linenoise.c +++ b/linenoise.c @@ -634,17 +634,22 @@ static void disableRawMode(struct current *current) void linenoiseClearScreen(void) { - HANDLE fh = GetStdHandle(STD_OUTPUT_HANDLE); + /* XXX: This is ugly. Should just have the caller pass a handle */ + struct current current; - COORD topleft = { 0, 0 }; - DWORD n; + current.outh = GetStdHandle(STD_OUTPUT_HANDLE); - FillConsoleOutputCharacter(fh, ' ', - current->cols * current->rows, topleft, &n); - FillConsoleOutputAttribute(fh, - FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN, - current->cols * current->rows, topleft, &n); - SetConsoleCursorPosition(fh, topleft); + if (getWindowSize(¤t) == 0) { + COORD topleft = { 0, 0 }; + DWORD n; + + FillConsoleOutputCharacter(current.outh, ' ', + current.cols * current.rows, topleft, &n); + FillConsoleOutputAttribute(current.outh, + FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN, + current.cols * current.rows, topleft, &n); + SetConsoleCursorPosition(current.outh, topleft); + } } static void cursorToLeft(struct current *current) -- 2.44.0