Bug #10781
Updated by nobu (Nobuyoshi Nakada) over 10 years ago
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: ~~~ruby ~~~ 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: ~~~ruby ~~~ $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.