青木@横浜です。

すでに既知の話なのかもしれませんが(私が見落としてるのかも)。

ruby の CVS の 2002.02.28 頃のものでは問題なかったのですが、
最近の CVS のもので問題がおきます。

確認した環境は、Windows 2000 Pro、Cygwin 2002.04.05 頃のもの。
(Default Text File Type:Unix。最近は、setup.exe の動作がおかしいような気がして
Cygwin のアップデートしていませんが。)

autoconf && ./configure --enable-shared とかしてできる config.h で、

#define FILE_READPTR _p

をコメントすると問題が出なくなります。で、これをコメントしなかった場合、
make test の結果が、以下になります。

| script_tmp:2: undefined method `rint' for #<Object:0xa049718>(NoMethodError)
| ./miniruby: No Ruby script found in input (LoadError)
| ./miniruby: No Ruby script found in input (LoadError)
| not ok while/until 2 -- /cygdrive/s/work/ruby/20020507bad/ruby/sample/test.rb:243
| not ok system 5 -- /cygdrive/s/work/ruby/20020507bad/ruby/sample/test.rb:1171
| not ok system 6 -- /cygdrive/s/work/ruby/20020507bad/ruby/sample/test.rb:1181
| not ok system 7 -- /cygdrive/s/work/ruby/20020507bad/ruby/sample/test.rb:1182
| not ok system 8 -- /cygdrive/s/work/ruby/20020507bad/ruby/sample/test.rb:1200
| test failed
| make: *** [test] Error 1

具体的に言うと、gets で取得される1行分に改行コードの次の文字も含まれて
しまいます。たとえば、

Ruby
Perl
Python

という入力の場合

"Ruby\nP"
"erl\nP"
"ython"

という結果が gets で返ってきます。

# うちだけの問題なのかな。
# FILE 構造体の中身とか見ていろいろやっているらしい箇所は個人的に見たくないので、
# これ以上の報告はできませんが(^^;

-- 
青木大輔 <dai / y7.net>