[#67346] Future of test suites for Ruby — Charles Oliver Nutter <headius@...>

I'll try to be brief so we can discuss all this. tl;dr: RubySpec is

19 messages 2015/01/05

[ruby-core:67794] [ruby-trunk - Bug #10781] [Open] stdout flushing and loops

From: nolan@...
Date: 2015-01-24 19:49:23 UTC
List: ruby-core #67794
Issue #10781 has been reported by Nolan Eakins.

----------------------------------------
Bug #10781: stdout flushing and loops
https://bugs.ruby-lang.org/issues/10781

* Author: Nolan Eakins
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 1.9.3p547
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
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.



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next