diff --git a/lib/modules/Stdio.pmod/Readline.pike b/lib/modules/Stdio.pmod/Readline.pike index 7e8c561682f83d8c3917c636a0097a992cd811cd..f1e353650fa606a31a51278d567c7ff6eca3ff75 100644 --- a/lib/modules/Stdio.pmod/Readline.pike +++ b/lib/modules/Stdio.pmod/Readline.pike @@ -1,4 +1,4 @@ -// $Id: Readline.pike,v 1.6 1999/03/23 18:01:48 marcus Exp $ +// $Id: Readline.pike,v 1.7 1999/03/23 18:30:06 marcus Exp $ class OutputController { @@ -333,7 +333,7 @@ class InputController return set_enabled(0); } - void run_blocking() + int run_blocking() { disable(); string data = prefix; @@ -343,12 +343,12 @@ class InputController { prefix = process_input(data); if (!enabled) - return; + return 0; data = prefix+infd->read(1024, 1); prefix = ""; if(!data || !sizeof(data)) { disable(); - return; + return -1; } } } @@ -956,9 +956,9 @@ string read() newline_func = read_newline; readtext = ""; output_controller->enable(); - input_controller->run_blocking(); + int res = input_controller->run_blocking(); set_nonblocking(oldnl); - return readtext; + return (res>=0 || sizeof(readtext)) && readtext; } void enable_history(object(History)|int hist)