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