--- kbhit.c 2014-02-11 10:33:00.861816900 +0800 +++ kbhit_fix.c 2014-02-12 11:07:28.654462900 +0800 @@ -5,20 +5,19 @@ * PURPOSE: Checks for keyboard hits * PROGRAMERS: Ariadne, Russell * UPDATE HISTORY: * 28/12/98: Created * 27/9/08: An almost 100% working version of _kbhit() + * 12/2/14: FIX: Initial keyboard char not detected on first punch */ #include static CRITICAL_SECTION CriticalSection; volatile BOOL CriticalSectionInitialized=FALSE; /* - * FIXME Initial keyboard char not detected on first punch - * * @implemented */ int _kbhit(void) { @@ -69,11 +68,11 @@ { LeaveCriticalSection(&CriticalSection); return 0; } - if (!ReadConsoleInput(StdInputHandle, InputRecord, EventsRead, &NumberRead)) + if (!PeekConsoleInput(StdInputHandle, InputRecord, EventsRead, &NumberRead)) { free(InputRecord); LeaveCriticalSection(&CriticalSection); return 0; }