From: nobu@... Date: 2005-01-11T22:02:21+09:00 Subject: [ruby-dev:25463] Re: DATA.read skips some characters なかだです。 At Tue, 11 Jan 2005 11:47:31 +0900, H.Yamamoto wrote in [ruby-dev:25460]: > むしろ、read(2) は常にバイナリモードで呼んで、 > バッファ内も改行文字の変換を行わず、取り出すときに > 初めてモードによって改行文字を変換したりしなかったり > すると、うまくいきそうな気がします。 cygwinのstdioはそういうアプローチを取っていたような気がします。 msvcrtの対応はlow ioとstdioレベルに跨ってしまっているのが厄介な ところで。 [ruby-talk:124350]でPythonのuniversal newlineが話題に上がってい ますが、どうせやるならそこまでやってしまったほうがいいような気 がします。ここのところあまり時間がなくて、実装はまだ途中なんで すが。 > (でもユーザが得られた文字数から io.seek(io.tell - s.length) > なんてしてしまうと・・・うーん) 元々text modeでのseekは矛盾を含んでいるので、どうしようもありま せん。M17N対応でIOでエンコーディングを変換するようになればもっ と当てにならなくなるので、気にならなくなるというかそういうコー ディングは避けられるようになるんじゃないでしょうか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦