Issue #20190 has been updated by naruse (Yui NARUSE).
Backport changed from 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED, 3.3: REQUIRED to 3.0:
REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED, 3.3: DONE
ruby_3_3 ce372be903e5f3597f1dc83cb558f165850b3bee merged revision(s)
ade56737e2273847426214035c0ff2340b43799a.
----------------------------------------
Bug #20190: `invalid_encoding_string << number` should be valid encoding in some
case, but does not
https://bugs.ruby-lang.org/issues/20190#change-107358
* Author: tompng (tomoya ishida)
* Status: Closed
* ruby -v: ruby 3.4.0dev (2024-01-09T07:07:19Z master db476cc71c) [x86_64-linux]
* Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED, 3.3: DONE
----------------------------------------
In some encoding, appending ascii char might change invalid encoding string to valid. But
it does not.
~~~ruby
# encoding: utf-8
valid = '表'.encode('sjis')
valid.bytes
# => [0x95, 0x5c]
s = valid.byteslice(0, 1)
p s.valid_encoding? #=> false
s << 0x5c
p s == valid #=> true
p s.valid_encoding? #=> should be true, but false
~~~
pull request:
https://github.com/ruby/ruby/pull/9553
--
https://bugs.ruby-lang.org/