From: Tadayoshi Funaba Date: 1999-06-12T02:14:39+09:00 Subject: [ruby-dev:7107] Re: Etc.group ふなばです。 >>> Fri, 11 Jun 1999 15:19:48 +0900 の刻に 「matz」、すなわち >>> matz@netlab.co.jp(Yukihiro Matsumoto) 氏曰く matz> |Etc.group を普通のメソッドとして呼び出しつづけるとコアダンプします。 matz> |1.2.x でも同様のよう。 matz> あ、確かに。修正します。でもここは例外よりはQnilを返すように matz> した方がよさそうですね。 あ、そうそう。僕もそう思ったんですが、とりあえず、Etc.passwd のほうの 仕様に合せたんです。 というわけで、Etc.passwd も、そうしていただけるといいなと思います。 --- ext/etc/etc.c.orig Fri Jun 11 15:29:59 1999 +++ ext/etc/etc.c Fri Jun 11 23:27:00 1999 @@ -125,7 +125,7 @@ etc_passwd(obj) VALUE obj; { -#if defined(HAVE_GETPWENT) +#ifdef HAVE_GETPWENT struct passwd *pw; if (rb_iterator_p()) { @@ -136,12 +136,11 @@ endpwent(); return obj; } - pw = getpwent(); - if (pw == 0) rb_raise(rb_eRuntimeError, "can't fetch next -- /etc/passwd"); - return setup_passwd(pw); -#else - return Qnil; + if (pw = getpwent()) { + return setup_passwd(pw); + } #endif + return Qnil; } #ifdef HAVE_GETGRENT 0.step(72,3){|i|$><<'J huhesartc kRaeunrbo,yt'[i%25..i%25]} ふなば ただよし