make Control.Monad.Instances compilable by nhc98
[haskell-directory.git] / cbits / consUtils.c
index af29b59..e0294b2 100644 (file)
@@ -64,4 +64,26 @@ get_console_echo__(int fd)
     return -1;
 }
 
+int
+flush_input_console__(int fd)
+{
+    HANDLE h = (HANDLE)_get_osfhandle(fd);
+    
+    if ( h != INVALID_HANDLE_VALUE ) {
+       /* If the 'fd' isn't connected to a console; treat the flush
+        * operation as a NOP.
+        */
+       DWORD unused;
+       if ( !GetConsoleMode(h,&unused) &&
+            GetLastError() == ERROR_INVALID_HANDLE ) {
+           return 0;
+       }
+       if ( FlushConsoleInputBuffer(h) ) {
+           return 0;
+       }
+    }
+    /* ToDo: translate GetLastError() into something errno-friendly */
+    return -1;
+}
+
 #endif /* defined(mingw32_HOST_OS) || ... */