diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | hash.c | 2 | ||||
-rw-r--r-- | test/ruby/test_env.rb | 2 |
3 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Thu Aug 4 11:54:30 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * hash.c (env_assoc): the encoding of the value should be the + locale, as well as other methods, [], fetch, values, etc. + Wed Aug 3 21:31:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * parse.y (reg_fragment_enc_error): compile_error is different @@ -3899,7 +3899,7 @@ env_assoc(VALUE env, VALUE key) s = env_name(key); e = getenv(s); - if (e) return rb_assoc_new(key, rb_tainted_str_new2(e)); + if (e) return rb_assoc_new(key, env_str_new2(e)); return Qnil; } diff --git a/test/ruby/test_env.rb b/test/ruby/test_env.rb index 17323ccf95..77e83863c5 100644 --- a/test/ruby/test_env.rb +++ b/test/ruby/test_env.rb @@ -319,6 +319,8 @@ class TestEnv < Test::Unit::TestCase assert_equal("foo", v) end assert_invalid_env {|var| ENV.assoc(var)} + assert_predicate(v, :tainted?) + assert_equal(Encoding.find("locale"), v.encoding) end def test_has_value2 |