- return ret;
-}
-
-unsigned Console::do_read(char *buf, unsigned len)
-{
- if(!(mode&M_READ))
- throw InvalidState("Console is not readable");
-
-#ifdef WIN32
- DWORD ret;
- if(!ReadFile(handle, buf, len, &ret, 0))
- throw SystemError("Reading from console failed", GetLastError());
-#else
- int ret = ::read(handle, buf, len);
- if(ret==-1)
- {
- if(errno==EAGAIN)
- return 0;
- else
- throw SystemError("Reading from console failed", errno);
- }
- else if(ret==0)
- eof_flag = true;
-#endif