diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-04 02:54:32 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-04 02:54:32 +0000 |
commit | 58bb9f79366bb16ca30c4c26c71e3499db745663 (patch) | |
tree | 2d300ddafe848ca7f9c4d7b967e699059c43059c | |
parent | 24cfbab1f06ca3e89b084c2b4c586d19d7c7fd9f (diff) | |
download | ruby-58bb9f79366bb16ca30c4c26c71e3499db745663.tar.gz |
hash.c: set encoding
* hash.c (env_assoc): the encoding of the value should be the
locale, as well as other methods, [], fetch, values, etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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 |