From: sof Date: Fri, 13 May 2005 16:58:02 +0000 (+0000) Subject: [project @ 2005-05-13 16:58:02 by sof] X-Git-Tag: cmm-merge2~73 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=62b27fd48f6169a2f5be0337607bfffdd07a206d;hp=2cedb18441a5e7287d0361d5673f776e7bf9c6be;p=ghc-base.git [project @ 2005-05-13 16:58:02 by sof] flush_input_console__(): if the fd isn't connected to a console, treat flush as a NOP. Merge to STABLE. --- diff --git a/cbits/consUtils.c b/cbits/consUtils.c index bb9e154..e0294b2 100644 --- a/cbits/consUtils.c +++ b/cbits/consUtils.c @@ -67,8 +67,17 @@ get_console_echo__(int fd) int flush_input_console__(int fd) { - HANDLE h; - if ( (h = (HANDLE)_get_osfhandle(fd)) != INVALID_HANDLE_VALUE ) { + 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; }