山本です。

bccwin32 のテキストモード (fopen(.., "r")) では、単に "\r" を削る動作をするようです。
("\r\n" を "\n" に変換するのではなく、単独の "\r" も削る)
これが bccwin32 のバグなのか、テキストモードの挙動が環境依存なのかはわかりません。

とりあえず下のようにしてみると、

>  2) Failure:
>test_foreach(TestCSV) [e:/ruby-cvs/ruby/test/csv/test_csv.rb:1731]:
><[["1", "2", "3"], ["4", "5", "6"]]> expected but was
><[["1", "2", "34", "5", "6"]]>.

は消えましたが、これが修正といえるのかはわかりません・・・

Index: csv.rb
===================================================================
RCS file: /ruby/ruby/lib/csv.rb,v
retrieving revision 1.9
diff -u -w -b -p -r1.9 csv.rb
--- csv.rb	20 May 2004 17:24:04 -0000	1.9
+++ csv.rb	23 May 2004 03:37:03 -0000
@@ -22,7 +22,7 @@ class CSV
   end
 
   def CSV.foreach(path, rs = nil, &block)
-    open_reader(path, 'r', ',', rs, &block)
+    open_reader(path, 'rb', ',', rs, &block)
   end
 
   # Open a CSV formatted file for reading.