diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-05 20:39:03 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-05 20:39:03 +0000 |
commit | 311d499f5e34c9ad65687d241f65c654393ad73b (patch) | |
tree | cadbae7f91be14f7947bb6372034888aa9d91aef /string.c | |
parent | ba5b713682bb47244324da2dcd5c879da9288319 (diff) |
merge revision(s) 61513: [Backport #14257]
string.c: chomp rs at the end
* string.c (rb_str_enumerate_lines): should chomp record separator
only, but not a newline, at the end of the receiver as well as
middle, if the separator is given.
[ruby-core:84552] [Bug #14257]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@61628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -8012,7 +8012,12 @@ rb_str_enumerate_lines(int argc, VALUE *argv, VALUE str, VALUE ary) if (subptr != pend) { if (chomp) { - pend = chomp_newline(subptr, pend, enc); + if (rsnewline) { + pend = chomp_newline(subptr, pend, enc); + } + else if (memcmp(pend - rslen, rsptr, rslen) == 0) { + pend -= rslen; + } } line = rb_str_subseq(str, subptr - ptr, pend - subptr); ENUM_ELEM(ary, line); |