diff options
Diffstat (limited to 'lib/common/FdGetLine.cpp')
-rw-r--r-- | lib/common/FdGetLine.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/common/FdGetLine.cpp b/lib/common/FdGetLine.cpp index dee02604..9b53288b 100644 --- a/lib/common/FdGetLine.cpp +++ b/lib/common/FdGetLine.cpp @@ -10,7 +10,10 @@ #include "Box.h" #include <sys/types.h> -#include <unistd.h> + +#ifdef HAVE_UNISTD_H + #include <unistd.h> +#endif #include "FdGetLine.h" #include "CommonException.h" @@ -117,7 +120,21 @@ std::string FdGetLine::GetLine(bool Preprocess) // Read more in? if(!foundLineEnd && mBufferBegin >= mBytesInBuffer && !mPendingEOF) { +#ifdef WIN32 + int bytes; + + if (mFileHandle == _fileno(stdin)) + { + bytes = console_read(mBuffer, sizeof(mBuffer)); + } + else + { + bytes = ::read(mFileHandle, mBuffer, + sizeof(mBuffer)); + } +#else // !WIN32 int bytes = ::read(mFileHandle, mBuffer, sizeof(mBuffer)); +#endif // WIN32 // Error? if(bytes == -1) |