* 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
This commit is contained in:
nobu 2016-08-04 02:54:32 +00:00
Родитель 18cf70ebf6
Коммит 9e1b9b9c8f
3 изменённых файлов: 8 добавлений и 1 удалений

Просмотреть файл

@ -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

2
hash.c
Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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