From: hanachin@... Date: 2017-09-20T23:48:51+00:00 Subject: [ruby-core:82911] [Ruby trunk Bug#13925] string.split(pattern, 1) should return [self.dup], but it returns [self] 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: