summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootstraptest/test_env.rb12
-rw-r--r--hash.c2
-rw-r--r--version.h2
3 files changed, 14 insertions, 2 deletions
diff --git a/bootstraptest/test_env.rb b/bootstraptest/test_env.rb
new file mode 100644
index 0000000000..7d1b45b75e
--- /dev/null
+++ b/bootstraptest/test_env.rb
@@ -0,0 +1,12 @@
+assert_equal "true", %q{
+ ENV["ENVTEST"] = "\u{e9 3042 d76c}"
+ env = ENV["ENVTEST"]
+ env.valid_encoding?
+}
+
+# different encoding is used for PATH
+assert_equal "true", %q{
+ ENV["PATH"] = "\u{e9 3042 d76c}"
+ env = ENV["PATH"]
+ env.valid_encoding?
+}
diff --git a/hash.c b/hash.c
index b434671336..0a9a5ee261 100644
--- a/hash.c
+++ b/hash.c
@@ -3262,7 +3262,7 @@ env_enc_str_new(const char *ptr, long len, rb_encoding *enc)
rb_encoding *utf8 = rb_utf8_encoding();
VALUE str = rb_enc_str_new(NULL, 0, (internal ? internal : enc));
if (NIL_P(rb_str_cat_conv_enc_opts(str, 0, ptr, len, utf8, ecflags, Qnil))) {
- rb_str_initialize(str, ptr, len, utf8);
+ rb_str_initialize(str, ptr, len, NULL);
}
#else
VALUE str = rb_external_str_new_with_enc(ptr, len, enc);
diff --git a/version.h b/version.h
index ab889d80ce..b01479fe1f 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.5.2"
#define RUBY_RELEASE_DATE "2018-10-09"
-#define RUBY_PATCHLEVEL 95
+#define RUBY_PATCHLEVEL 96
#define RUBY_RELEASE_YEAR 2018
#define RUBY_RELEASE_MONTH 10