diff options
| -rw-r--r-- | mrblib/string.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mrblib/string.rb b/mrblib/string.rb index 7add360a8..5510bf6de 100644 --- a/mrblib/string.rb +++ b/mrblib/string.rb @@ -11,11 +11,12 @@ class String # ISO 15.2.10.5.15 def each_line(&block) offset = 0 - while pos = self.index("\n", offset) - block.call(self[offset, pos + 1 - offset]) + this = dup + while pos = this.index("\n", offset) + block.call(this[offset, pos + 1 - offset]) offset = pos + 1 end - block.call(self[offset, self.size - offset]) if self.size > offset + block.call(this[offset, this.size - offset]) if this.size > offset self end |
