Author: jmorlan
Date: Sun Aug  2 20:56:05 2009
New Revision: 42345

URL: http://svn.reactos.org/svn/reactos?rev=42345&view=rev
Log:
ReadFile: When reading from a console handle with processed input mode enabled, 
simulate EOF if the first character read is ^Z (Bug 4745)

Modified:
    trunk/reactos/dll/win32/kernel32/file/rw.c

Modified: trunk/reactos/dll/win32/kernel32/file/rw.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/file/rw.c?rev=42345&r1=42344&r2=42345&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/file/rw.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/file/rw.c [iso-8859-1] Sun Aug  2 20:56:05 
2009
@@ -148,11 +148,22 @@
 
    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)


Reply via email to