なかだです。

At Tue, 23 Dec 2003 18:15:46 +0900,
Tanaka Akira wrote:
> したがって、Ruby としては、そういう危ないのをユーザに指示されたからと
> いって呼んでいいのか、というところが問題なわけです。
> 
> 私としては、Ruby では配列の境界を越えてアクセスすることが出来ないのと
> 同様に、正しくない ungetc は出来るべきでないと思います。

単にseekするだけでは、その後でreadしたときにSEGVしてしまいまし
た。やはり、読み込まれていないストリームに対しては、例外にする
しかないかも知れません。


Index: io.c =================================================================== RCS file: /cvs/ruby/src/ruby/io.c,v retrieving revision 1.241 diff -u -2 -p -r1.241 io.c --- io.c 10 Dec 2003 08:26:31 -0000 1.241 +++ io.c 23 Dec 2003 09:55:26 -0000 @@ -1315,4 +1315,6 @@ rb_io_ungetc(io, c) GetOpenFile(io, fptr); + if (!(fptr->mode & FMODE_RBUF)) + rb_raise(rb_eIOError, "unread stream"); rb_io_check_readable(fptr);
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦