[ruby-core:102006] [Ruby master Bug#17517] File.expand_path returns us-ascii when both arguments are ascii compat
From:
zn@...
Date:
2021-01-12 00:50:32 UTC
List:
ruby-core #102006
Issue #17517 has been updated by znz (Kazuhiro NISHIYAMA).
Original problem is `__FILE__` and `__dir__` are us-ascii only when loaded by `relative_require`.
```
% cat hoge.rb
p __FILE__.encoding
p __dir__.encoding
% cat require_relative.rb
require_relative 'hoge'
% ruby require_relative.rb
#<Encoding:US-ASCII>
#<Encoding:US-ASCII>
% cat require.rb
require './hoge'
% ruby require.rb
#<Encoding:UTF-8>
#<Encoding:UTF-8>
```
----------------------------------------
Bug #17517: File.expand_path returns us-ascii when both arguments are ascii compat
https://bugs.ruby-lang.org/issues/17517#change-89851
* Author: znz (Kazuhiro NISHIYAMA)
* Status: Open
* Priority: Normal
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
Is this intentional?
```ruby
p __dir__.encoding #=> #<Encoding:UTF-8>
p 'hoge'.encoding #=> #<Encoding:UTF-8>
p File.expand_path('hoge', __dir__).encoding #=> #<Encoding:US-ASCII>
```
```
% docker run -it --rm ghcr.io/ruby/all-ruby env ALL_RUBY_SINCE=ruby-1.9 ./all-ruby -e 'p File.expand_path("hoge".encode("utf-8"), "/".encode("utf-8")).encoding'
ruby-1.9.0-0 -e:1:in `encode': transcoding not supported (from ASCII-8BIT to UTF-8) (ArgumentError)
from -e:1:in `<main>'
exit 1
ruby-1.9.0-1 #<Encoding:ASCII-8BIT>
ruby-1.9.0-2 #<Encoding:US-ASCII>
...
ruby-1.9.1-p129 #<Encoding:US-ASCII>
ruby-1.9.1-p243 #<Encoding:UTF-8>
...
ruby-1.9.2-preview1 #<Encoding:UTF-8>
ruby-1.9.2-preview3 #<Encoding:US-ASCII>
...
ruby-3.0.0 #<Encoding:US-ASCII>
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>