INT21_BufferedInput

whitnl73 at juno.com whitnl73 at juno.com
Sun Aug 24 17:24:50 CDT 2003


Good day!

This actually works now, at least as near as dos (6.22) debug.exe can
tell.

Regards,

Lawson

ChangeLog:
	* dlls/winedos/int21.c: Lawson Whitney <whitnl73 at juno.com>
	Simplify INT21_bufferedInput

diff -urN was/dlls/winedos/int21.c is/dlls/winedos/int21.c
--- was/dlls/winedos/int21.c	Sun Aug 24 09:58:05 2003
+++ is/dlls/winedos/int21.c	Sun Aug 24 18:08:31 2003
@@ -734,32 +734,13 @@
  */
 static WORD INT21_BufferedInput( CONTEXT86 *context, BYTE *ptr, WORD capacity )
 {
-    BYTE length = 0;
-
+    DWORD count;
     /*
      * Return immediately if capacity is zero.
      */
     if (capacity == 0)
         return 0;
 
-    while(TRUE)
-    {
-        BYTE ascii;
-        BYTE scan;
-
-        DOSVM_Int16ReadChar( &ascii, &scan, context );
-        TRACE("ascii %c scan %c", ascii, scan);
-        if (ascii == '\r' || ascii == '\n')
-        {
-            /*
-             * FIXME: What should be echoed here?
-             */
-            DOSVM_PutChar( '\r' );
-            DOSVM_PutChar( '\n' );
-            ptr[length] = '\r';
-            return length + 1;
-        }
-
         /*
          * FIXME: This function is supposed to support
          *        DOS editing keys...
@@ -770,13 +751,11 @@
          * capacity, DOS rejects all further characters up to,
          * but not including, the terminating carriage return.
          */
-        if (ascii != 0 && length < capacity-1)
-        {
-            DOSVM_PutChar( ascii );
-            ptr[length] = ascii;
-            length++;
-        }
-    }
+
+    ReadFile( GetStdHandle(STD_INPUT_HANDLE), ptr, capacity, &count, NULL );
+    ptr[count-1] = '\r';
+    return count;
+    
 }
 
 



________________________________________________________________
The best thing to hit the internet in years - Juno SpeedBand!
Surf the web up to FIVE TIMES FASTER!
Only $14.95/ month - visit www.juno.com to sign up today!



More information about the wine-patches mailing list