From: WATANABE Hirofumi Date: 1998-04-17T01:49:25+09:00 Subject: [ruby-dev:2382] Re: experimental release 1.1b9_11 わたなべです. さっそく flatten を使ってみたけど, p [[1,2],[3,4]].flatten [1,2] になってしまいます. ソース見たら, あそこを 1 にすればいいと いうのはわかったけど, もうちょっと簡単にして無駄な loop を減 らしました. あと file.c の #define の位置と ext/extmk.rb.in で m68k-human を考えてなかったのでその修正. --- array.c.orig Thu Apr 16 16:43:17 1998 +++ array.c Fri Apr 17 00:47:19 1998 @@ -1244,18 +1244,9 @@ ary_modify(ary); - for (;;) { - int lmod = 0; - - for (i=0; ilen; i++) { - if (TYPE(RARRAY(ary)->ptr[i]) == T_ARRAY) { - VALUE ary2 = RARRAY(ary)->ptr[i]; - - ary_replace(ary, i, RARRAY(ary2)->len, ary2); - i += RARRAY(ary2)->len - 1; - lmod++; - } + for (i=0; ilen; i++) { + VALUE ary2 = RARRAY(ary)->ptr[i]; + if (TYPE(ary2) == T_ARRAY) { + ary_replace(ary, i--, 1, ary2); + mod = 1; } - if (lmod == 0) break; - mod = lmod; } - if (mod == 0) return Qnil; --- file.c.orig Thu Apr 16 16:43:17 1998 +++ file.c Thu Apr 16 22:10:23 1998 @@ -1414,2 +1414,15 @@ +# ifndef LOCK_SH +# define LOCK_SH 1 +# endif +# ifndef LOCK_EX +# define LOCK_EX 2 +# endif +# ifndef LOCK_NB +# define LOCK_NB 4 +# endif +# ifndef LOCK_UN +# define LOCK_UN 8 +# endif + #if defined(THREAD) && defined(EWOULDBLOCK) @@ -1714,15 +1727,2 @@ rb_define_method(cFile, "flock", file_flock, 1); - -# ifndef LOCK_SH -# define LOCK_SH 1 -# endif -# ifndef LOCK_EX -# define LOCK_EX 2 -# endif -# ifndef LOCK_NB -# define LOCK_NB 4 -# endif -# ifndef LOCK_UN -# define LOCK_UN 8 -# endif --- ext/extmk.rb.in.orig Thu Apr 16 19:22:11 1998 +++ ext/extmk.rb.in Fri Apr 17 00:53:17 1998 @@ -69,3 +69,3 @@ -if /win32|djgpp|mingw32/i =~ PLATFORM +if /win32|djgpp|mingw32|m68k-human/i =~ PLATFORM $null = open("nul", "w")