aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-04-16 20:40:19 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-04-16 20:50:07 +0900
commitf57e2d7296fbdf09041bdb237c7423a12ef06621 (patch)
treeba7f869eaf2c23d2bd87dc26b5b2ca0d4aa77b14
parent33aaa2aa15980f8ac0f330fc817f179e46daed55 (diff)
downloadruby-f57e2d7296fbdf09041bdb237c7423a12ef06621.tar.gz
Preserve encoding in error message for invalid env exec option
-rw-r--r--process.c2
-rw-r--r--test/ruby/test_process.rb3
2 files changed, 4 insertions, 1 deletions
diff --git a/process.c b/process.c
index f13ec82ba0..129a2e6706 100644
--- a/process.c
+++ b/process.c
@@ -2325,7 +2325,7 @@ check_exec_env_i(st_data_t st_key, st_data_t st_val, st_data_t arg)
k = StringValueCStr(key);
if (strchr(k, '='))
- rb_raise(rb_eArgError, "environment name contains a equal : %s", k);
+ rb_raise(rb_eArgError, "environment name contains a equal : %"PRIsVALUE, key);
if (!NIL_P(val))
StringValueCStr(val);
diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb
index e9c7ee62b2..7170e826d5 100644
--- a/test/ruby/test_process.rb
+++ b/test/ruby/test_process.rb
@@ -342,6 +342,9 @@ class TestProcess < Test::Unit::TestCase
assert_raise_with_message(ArgumentError, /fo=fo/) {
system({"fo=fo"=>"ha"}, *ENVCOMMAND)
}
+ assert_raise_with_message(ArgumentError, /\u{30c0}=\u{30e1}/) {
+ system({"\u{30c0}=\u{30e1}"=>"ha"}, *ENVCOMMAND)
+ }
end
def test_execopt_env_path