青山です。

トリガーが不明なのですが、io.c の変更で、状況により動作がかわるという
症状が発生しています。

NIFTY へのアクセスに使っている nif.rb ですが、次のようにして外部ファイ
ルを読み込む部分があります。

pad = open(pad_file)
while line = pad.gets
  #
end
pad.close

これが while ループを抜けなくなりました。仕様の変更かと思い、次のよう
にしたところOKでした。

while not pad.eof?
  line = pad.gets
  #
end

ところが、ローカルで試してみると以前のタイプのままでも動き、また、考え
てみると一々このように書くのも不便そうなので、バグっぽいなと。

次の部分を 1.1b9_28 に戻すと直ります。


--- io.c.org	Thu Jul  9 08:28:21 1998
+++ io.c	Thu Jul  9 08:28:59 1998
@@ -602,10 +602,7 @@
 	TRAP_BEG;
 	c = getc(f);
 	TRAP_END;
-	if (c == EOF) {
-	    if (errno == EINTR) continue;
-	    break;
-	}
+	if (c == EOF) break;
 	if ((*bp++ = c) == '\n') break;
 	if (bp == bpe) break;
     }


----------------------------------------------------------------------
ついでに。cgi-lib.rb ですが、$ test.rb > test.html なんていう時にオフ
ラインモードのメッセージが出ないのはちょっと不便だと思いますが、いかが
でしょうか?


--- cgi-lib.rb.org	Thu Jul  9 08:39:10 1998
+++ cgi-lib.rb	Thu Jul  9 08:39:22 1998
@@ -25,7 +25,7 @@
     words = Shellwords.shellwords(if not ARGV.empty? then
                          ARGV.join(' ')
                        else
-                         STDERR.print "(offline mode: enter name=value pairs on standard input)\n" if STDOUT.tty?
+                         STDERR.print "(offline mode: enter name=value pairs on standard input)\n"
                          readlines.join(' ').gsub(/\n/, '')
                        end.gsub(/\\=/, '%3D').gsub(/\\&/, '%26'))
 

もう一つついでに。lib の中の telnet.rb が古いままのようです。


青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>