Backport #5452

String#squeeze[!] with negated out-of-order sequence behaves like no argument was passed

Added by brixen (Brian Ford) 7 months ago. Updated 7 months ago.

[ruby-core:40163]
Status:Assigned Start date:10/16/2011
Priority:Normal Due date:
Assignee:shyouhei (Shyouhei Urabe) % 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
It's fixed by #1953 and r25576 by Matz. I re-open this for making sure Shyouhei can decide whether it's backportable or not.

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)

Also available in: Atom PDF