diff options
Diffstat (limited to 'source/os_specific/service_layers/osunixxf.c')
-rw-r--r-- | source/os_specific/service_layers/osunixxf.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source/os_specific/service_layers/osunixxf.c b/source/os_specific/service_layers/osunixxf.c index 4f9d1d0724d52..9a92c142f776f 100644 --- a/source/os_specific/service_layers/osunixxf.c +++ b/source/os_specific/service_layers/osunixxf.c @@ -353,7 +353,7 @@ AcpiOsGetLine ( UINT32 BufferLength, UINT32 *BytesRead) { - UINT8 Temp; + int Temp; UINT32 i; @@ -364,13 +364,17 @@ AcpiOsGetLine ( return (AE_BUFFER_OVERFLOW); } - scanf ("%1c", &Temp); + if ((Temp = getchar ()) == EOF) + { + return (AE_ERROR); + } + if (!Temp || Temp == '\n') { break; } - Buffer [i] = Temp; + Buffer [i] = (char) Temp; } /* Null terminate the buffer */ |