X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fconsole.cpp;h=a7417edcee8f186263c965363f4942d9b1f82768;hp=d50d72df89a5b8b3e353e5612feb8175703f4a93;hb=cc541830f00cc3238edb82ff2e14e8b9060645b6;hpb=609c9a508cfdc7b42c46c4f21d17639204165a00 diff --git a/source/io/console.cpp b/source/io/console.cpp index d50d72d..a7417ed 100644 --- a/source/io/console.cpp +++ b/source/io/console.cpp @@ -18,9 +18,16 @@ Console::Console(Stream s): void Console::set_block(bool b) { + adjust_mode(mode, M_NONBLOCK, !b); sys_set_blocking(handle, b); } +void Console::set_inherit(bool i) +{ + adjust_mode(mode, M_INHERIT, i); + sys_set_inherit(handle, i); +} + unsigned Console::do_write(const char *buf, unsigned len) { check_access(M_WRITE); @@ -39,6 +46,12 @@ unsigned Console::do_read(char *buf, unsigned len) return ret; } +const Handle &Console::get_handle(Mode m) +{ + check_access(m); + return handle; +} + Console &Console::instance(Stream s) { static Console in(CIN);