From: Koji Arai Date: 2000-02-03T22:52:34+09:00 Subject: [ruby-dev:9065] Re: no bang method returns original string 新井です。 >>> From: matz@netlab.co.jp (Yukihiro Matsumoto) >>> Date: 02 Feb 2000 11:34:19 +0900 >>> Subject: [ruby-dev:9058] Re: no bang method returns original string > まつもと ゆきひろです > あいや、しまった。理由は純粋に過去の合意を忘れていただけのこ > とです。戻します(1.5.xも)。 ちょっと、間違ってました(1.4.4 2000-02-02)。 Index: string.c =================================================================== RCS file: /home/cvs/ruby/string.c,v retrieving revision 1.4.2.7 diff -u -p -u -r1.4.2.7 string.c --- string.c 2000/02/02 08:09:40 1.4.2.7 +++ string.c 2000/02/03 13:44:50 @@ -1151,7 +1151,7 @@ rb_str_gsub(argc, argv, str) { str = rb_str_dup(str); - rb_str_gsub_bang(argc, argv, dup); + rb_str_gsub_bang(argc, argv, str); return str; } 今日、random()のないマシンでコンパイルできないことに気が付い たのでついでにパッチ。(1.5のrandom.cと一緒でよかった?) Index: random.c =================================================================== RCS file: /home/cvs/ruby/random.c,v retrieving revision 1.4.2.3 diff -u -p -u -r1.4.2.3 random.c --- random.c 2000/01/17 08:24:10 1.4.2.3 +++ random.c 2000/02/03 13:44:46 @@ -76,8 +76,8 @@ void srand48 _((long)); #endif /* not HAVE_DRAND48 */ -#ifdef HAVE_RANDOM static int first = 1; +#ifdef HAVE_RANDOM static char state[256]; #endif @@ -91,12 +91,12 @@ rand_init(seed) #ifdef HAVE_RANDOM if (first == 1) { initstate(1, state, sizeof state); - first = 0; } else { setstate(state); } #endif + first = 0; SRANDOM(seed); old = saved_seed; @@ -134,8 +134,6 @@ rb_f_rand(obj, vmax) VALUE obj, vmax; { long val, max; - - static initialized = 0; if (first) { struct timeval tv; > パッチ感謝します。いつもありがとう。 ruby の存在にいつもいつも感謝しています。:-) -- 新井康司 (Koji Arai)