From: Wakou Aoyama Date: 1999-07-16T07:35:57+09:00 Subject: [ruby-dev:7326] Re: Ruby 1.3.5 青山です。 Thu, Jul 15, 1999 at 06:49:00PM +0900 において WATANABE Hirofumi さん曰く: > 2. telnet.rb で sysread してるのに EOFError を見なくなった. > nif.rb で試したら logout 処理でこける. ああ、なぜか ECONNRESET と勘違いしてとめてしまっていました。ありがとう ございます。(ECONNRESET は telnet.rb で捕捉しない方が良いと思ったので すが、そうですね、EOFError でしたね。どう勘違いしたのだか。) また、見直してみると waitfor が EOF に達した場合 "" が返っていました。 これを gets, read 等にあわせて nil を返すようにしました。 in.coming に入れて置きました。よろしくお願いいたします。 (telnet.rb.gz.1 の方です。) それと、IO#read の length を省略した場合に EOF でも nil を返さないとい うバグを見付けました。(仕様では無いですよね?) --- io.c.org Fri Jul 16 06:43:14 1999 +++ io.c Fri Jul 16 06:43:42 1999 @@ -419,7 +419,7 @@ TRAP_END; if (n <= 0) { if (ferror(fptr->f)) rb_sys_fail(fptr->path); - return rb_str_new(0,0); + return Qnil; } bytes += n; if (bytes < siz) break; -- 青山 和光 Wakou Aoyama