From: WATANABE Hirofumi Date: 1997-02-19T16:48:04+09:00 Subject: [ruby-list:2208] Re: [BUG] split(" ", limit) わたなべです. split(":", n) がまずいわけないですね. なんかださい方法ですが, char_sep != 0 のときは i = 0; にしちゃうのが簡単かな. --- string.c.orig Fri Feb 7 15:16:05 1997 +++ string.c Wed Feb 19 16:38:01 1997 @@ -1629,6 +1629,8 @@ rb_scan_args(argc, argv, "02", &spat, &limit); if (!NIL_P(limit)) { lim = NUM2INT(limit); + if (lim == 0) limit = Qnil; + else if (lim == 1) return ary_new3(1, str); i = 1; } @@ -1663,6 +1665,7 @@ char *ptr = str->ptr; int len = str->len; char *eptr = ptr + len; + i = 0; if (char_sep == ' ') { /* AWK emulation */ int skip = 1; @@ -1679,8 +1682,8 @@ } else { if (isspace(*ptr)) { - ary_push(result, str_substr(str, beg, end-beg)); if (!NIL_P(limit) && lim <= ++i) break; + ary_push(result, str_substr(str, beg, end-beg)); skip = 1; beg = end + 1; } @@ -1693,8 +1696,8 @@ else { for (end = beg = 0; ptr