From: "H.Yamamoto" Date: 2005-01-11T11:12:32+09:00 Subject: [ruby-dev:25459] Re: DATA.read skips some characters 山本です。 >|| 残りのサイズを計算するときに、すでにバッファに読んでいる分をそ >|| のまま使うようにするとどうでしょうか。 >| >|以下のテストスクリプトで試してみましたが、このパッチで直るよ >|うです。 > >じゃあ、コミットしてください。> なかださん。 まだ検証中なのですが、これは io_unread の lseek がファイル上の位置を バイト数で数えるのに対し、io_unread はバッファ中の文字数を元に 位置を戻そうとするので「バイト数!=文字数」な CR+LF 環境で位置がずれる という問題ですよね。(ファイル上では CR+LF だがバッファ内では LF) すると、rb_io_check_writable なんかも io_unread を呼んでいるので、 位置がずれたりしないでしょうか。