diff options
author | Lars Kanis <kanis@comcard.de> | 2020-12-07 18:00:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-08 02:00:39 +0900 |
commit | ca76337a00244635faa331afd04f4b75161ce6fb (patch) | |
tree | 7fae6bdb4c21e81656b2c6399c26752f075bcce5 /spec/ruby/core/env/values_at_spec.rb | |
parent | 94b6933d1c6f4c8698319fbcac9dcecc9033b4b9 (diff) |
Windows: Read ENV names and values as UTF-8 encoded Strings (#3818)
* Windows: Read ENV names and values as UTF-8 encoded Strings
Implements issue #12650: fix https://bugs.ruby-lang.org/issues/12650
This also removes the special encoding for ENV['PATH'] and some
complexity in the code that is unnecessary now.
* Windows: Improve readablity of getenv() encoding
getenv() did use the expected codepage as an implicit parameter of the macro.
This is mis-leading since include/ruby/win32.h has a different definition.
Using the "cp" variable explicit (like the other function calls) makes it
more readable and consistent.
* Windows: Change external C-API macros getenv() and execv() to use UTF-8
They used to process and return strings with locale encoding,
but since all ruby-internal spawn and environment functions use UTF-8,
it makes sense to change the C-API equally.
Notes
Notes:
Merged-By: nurse <naruse@airemix.jp>
Diffstat (limited to 'spec/ruby/core/env/values_at_spec.rb')
-rw-r--r-- | spec/ruby/core/env/values_at_spec.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/spec/ruby/core/env/values_at_spec.rb b/spec/ruby/core/env/values_at_spec.rb index ee970e5f65..87c8c7f663 100644 --- a/spec/ruby/core/env/values_at_spec.rb +++ b/spec/ruby/core/env/values_at_spec.rb @@ -28,7 +28,8 @@ describe "ENV.values_at" do end it "uses the locale encoding" do - ENV.values_at(ENV.keys.first).first.encoding.should == Encoding.find('locale') + encoding = platform_is(:windows) ? Encoding::UTF_8 : Encoding.find('locale') + ENV.values_at(ENV.keys.first).first.encoding.should == encoding end it "raises TypeError when a key is not coercible to String" do |