ruby-changes:3332
From: ko1@a...
Date: 1 Jan 2008 14:17:09 +0900
Subject: [ruby-changes:3332] matz - Ruby:r14825 (trunk): * string.c (rb_str_substr): offset movement bug. a patch from
matz 2008-01-01 14:16:49 +0900 (Tue, 01 Jan 2008) New Revision: 14825 Modified files: trunk/ChangeLog trunk/string.c Log: * string.c (rb_str_substr): offset movement bug. a patch from Vincent Isambart <vincent.isambart at gmail.com> in [ruby-core:14647]. [ruby-core:14644] http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=14825&r2=14824&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14825&r2=14824&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 14824) +++ ChangeLog (revision 14825) @@ -1,3 +1,9 @@ +Tue Jan 1 14:15:04 2008 Yukihiro Matsumoto <matz@r...> + + * string.c (rb_str_substr): offset movement bug. a patch from + Vincent Isambart <vincent.isambart at gmail.com> in + [ruby-core:14647]. [ruby-core:14644] + Tue Jan 1 01:29:04 2008 Nobuyoshi Nakada <nobu@r...> * encoding.c (rb_to_encoding): raises for non-nil, non-encoding, Index: string.c =================================================================== --- string.c (revision 14824) +++ string.c (revision 14825) @@ -832,10 +832,10 @@ if (len > -beg) len = -beg; if (-beg * rb_enc_mbmaxlen(enc) < RSTRING_LEN(str) / 8) { beg = -beg; - while (len++ < beg && (e = rb_enc_prev_char(s, e, enc)) != 0); + while (beg-- > len && (e = rb_enc_prev_char(s, e, enc)) != 0); p = e; if (!p) return Qnil; - while (beg-- > 0 && (p = rb_enc_prev_char(s, p, enc)) != 0); + while (len-- > 0 && (p = rb_enc_prev_char(s, p, enc)) != 0); if (!p) return Qnil; len = e - p; goto sub; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml