Backport #5452
String#squeeze[!] with negated out-of-order sequence behaves like no argument was passed
| Status: | Assigned | Start date: | 10/16/2011 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | core | |||
| Target version: | - |
Description
See the examples below:
String#squeeze!
$ ruby -e 'p "-subbookkeeper-".squeeze!("b-e")'
"-subookkeper-"
$ ruby -e 'p "-subbookkeeper-".squeeze!("^b-e")'
"-subbokeeper-"
$ ruby -e 'p "-subbookkeeper-".squeeze!("e-b")'
nil
$ ruby -e 'p "-subbookkeeper-".squeeze!("^e-b")'
"-subokeper-"
^^^ This looks like a bug
$ ruby -e 'p "-subbookkeeper-".squeeze!'
"-subokeper-"
String#squeeze
$ ruby -e 'p "-subbookkeeper-".squeeze("e-b")'
"-subbookkeeper-"
$ ruby -e 'p "-subbookkeeper-".squeeze("^e-b")'
"-subokeper-"
^^^ And so does this
$ ruby -e 'p "-subbookkeeper-".squeeze'
"-subokeper-"
Thanks,
Brian
History
Updated by nobu (Nobuyoshi Nakada) 7 months ago
It raises an exception in 1.9.
$ ruby -e 'p "-subbookkeeper-".squeeze("^e-b")'
-e:1:in `squeeze': invalid range "e-b" in string transliteration (ArgumentError)
from -e:1:in `<main>'And 1.8 has no future to introduce any behavior changes.
Updated by nobu (Nobuyoshi Nakada) 7 months ago
- Status changed from Open to Rejected
Updated by nahi (Hiroshi Nakamura) 7 months ago
- Category set to core
- Status changed from Rejected to Open
- Assignee set to shyouhei (Shyouhei Urabe)
- Target version set to Ruby 1.8.7
Updated by naruse (Yui NARUSE) 7 months ago
- Tracker changed from Bug to Backport
- Project changed from Ruby 1.8 to Backport87
- Category changed from core to core
- Status changed from Open to Assigned
- Target version deleted (
Ruby 1.8.7)