Actions
Bug #10781
closedstdout flushing and loops
Description
I'm making a little program that has a shell like command prompt. Something like:
$ cmd
Cmd out
$ more
More out
$
I tried the following code, but the second prompt does not get flushed to my terminal after entering an initial command:
begin
$stdout.write("$ ")
$stdout.flush
$stdout.puts($stdin.gets.inspect)
end until $stdin.closed? || $stdin.eof?
My output looks like:
$ input
"input\n"
more
$ "more\n"
But if I write my code like the following, my prompt works but I can't wrap my prompter in a method:
$stdout.print('$ ')
$stdout.flush
begin
$stdout.puts($stdin.gets.inspect)
$stdout.print('$ ')
$stdout.flush
end until $stdin.closed? || $stdin.eof?
end
What exactly is the problem here? I've tried a 1.8 and 1.9.3p547.
Actions
Like0
Like0Like0