Issue #13925 has been updated by hanachin (Seiei Miyagi).

File partition_rpartition.patch added

There are same problem in partition and rpartition

I expect the s is "abc", but it is modified.

```rb
s = "abc"; s.partition("d").map(&:upcase!); s
# => "ABC"
```

I expect the s is "abc", but it is modified.

```rb
s = "abc"; s.rpartition("d").map(&:upcase!); s
# => "ABC"
```

If string is splitted, partition/rpartition returns the copy of a part of string.

```rb
s = "abc"; s.partition("b").map(&:upcase!); s
# => "abc"

s = "abc"; s.rpartition("b").map(&:upcase!); s
# => "abc"
```

----------------------------------------
Bug #13925: string.split(pattern, 1) should return [self.dup], but it returns [self]
https://bugs.ruby-lang.org/issues/13925#change-66810

* Author: tompng (tomoya ishida)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
```ruby
msg = 'abababababa'
msg.split('b', 4).map(&:upcase!) # won't overwrite msg
puts msg # abababababa (expected)
msg.split('b', 1).map(&:upcase!) # this overwrites msg
puts msg # ABABABABABA (abababababa is expected)
```

I wrote a patch for this.

---Files--------------------------------
split_limit_1.patch (352 Bytes)
partition_rpartition.patch (842 Bytes)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>