]> git.lizzy.rs Git - linenoise.git/commitdiff
Fix compilation on Windows
authorSteve Bennett <steveb@workware.net.au>
Sat, 3 Sep 2016 00:04:01 +0000 (10:04 +1000)
committerSteve Bennett <steveb@workware.net.au>
Sat, 3 Sep 2016 00:06:13 +0000 (10:06 +1000)
Reported-by: Jenson@Win32 <jenson.shixf@gmail.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
linenoise.c

index de4f58dcda70c800459de510f96f75779b744e2f..aed0e0223924b3d97dabf7fdacdc31c4cba11105 100644 (file)
@@ -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(&current) == 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)