From ee2e05e18d109e6e4e916e5a6314828c85160d96 Mon Sep 17 00:00:00 2001 From: Jeffrey Morlan Date: Sun, 2 Aug 2009 18:56:05 +0000 Subject: [PATCH] ReadFile: When reading from a console handle with processed input mode enabled, simulate EOF if the first character read is ^Z (Bug 4745) svn path=/trunk/; revision=42345 --- reactos/dll/win32/kernel32/file/rw.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/kernel32/file/rw.c b/reactos/dll/win32/kernel32/file/rw.c index ca546e7d642..93362f9de15 100644 --- a/reactos/dll/win32/kernel32/file/rw.c +++ b/reactos/dll/win32/kernel32/file/rw.c @@ -148,11 +148,22 @@ ReadFile(IN HANDLE hFile, if (IsConsoleHandle(hFile)) { - return ReadConsoleA(hFile, + if (ReadConsoleA(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, - NULL); + NULL)) + { + DWORD dwMode; + GetConsoleMode(hFile, &dwMode); + if ((dwMode & ENABLE_PROCESSED_INPUT) && *(char *)lpBuffer == 0x1a) + { + /* EOF character entered; simulate end-of-file */ + *lpNumberOfBytesRead = 0; + } + return TRUE; + } + return FALSE; } if (lpOverlapped != NULL)