ruby-changes:19271
From: naruse <ko1@a...>
Date: Wed, 20 Apr 2011 14:43:34 +0900 (JST)
Subject: [ruby-changes:19271] Ruby:r31310 (trunk): * string.c (rb_str_each_line): check string's length when compare
naruse 2011-04-20 14:43:27 +0900 (Wed, 20 Apr 2011) New Revision: 31310 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31310 Log: * string.c (rb_str_each_line): check string's length when compare separator and string. [ruby-core:35815] fixes #4586 Modified files: trunk/ChangeLog trunk/string.c Index: ChangeLog =================================================================== --- ChangeLog (revision 31309) +++ ChangeLog (revision 31310) @@ -1,3 +1,8 @@ +Wed Apr 20 14:41:28 2011 NARUSE, Yui <naruse@r...> + + * string.c (rb_str_each_line): check string's length when compare + separator and string. [ruby-core:35815] fixes #4586 + Wed Apr 20 00:02:13 2011 Nobuyoshi Nakada <nobu@r...> * misc/ruby-mode.el (ruby-parse-partial): use position of open paren. Index: string.c =================================================================== --- string.c (revision 31309) +++ string.c (revision 31310) @@ -6051,7 +6051,8 @@ p -= n; } if (c == newline && - (rslen <= 1 || memcmp(RSTRING_PTR(rs), p, rslen) == 0)) { + (rslen <= 1 || + (pend - p >= rslen && memcmp(RSTRING_PTR(rs), p, rslen) == 0))) { line = rb_str_new5(str, s, p - s + (rslen ? rslen : n)); OBJ_INFECT(line, str); rb_enc_cr_str_copy_for_substr(line, str); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/