From f9bd414350be17f2a5bb88f346902096615227cd Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Mon, 25 Nov 2019 21:56:27 +0900 Subject: Fix `ARGV` value in `mruby` command (regression by #4827) #### Before this patch: ``` $ bin/mruby -e 'p ARGV' a b ["bin/mruby", "-e", "p ARGV", "a", "b"] ``` #### After this patch: ``` $ bin/mruby -e 'p ARGV' a b ["a", "b"] ``` --- mrbgems/mruby-bin-mruby/bintest/mruby.rb | 5 +++++ mrbgems/mruby-bin-mruby/tools/mruby/mruby.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'mrbgems/mruby-bin-mruby') diff --git a/mrbgems/mruby-bin-mruby/bintest/mruby.rb b/mrbgems/mruby-bin-mruby/bintest/mruby.rb index 8da51bac9..df0e991f7 100644 --- a/mrbgems/mruby-bin-mruby/bintest/mruby.rb +++ b/mrbgems/mruby-bin-mruby/bintest/mruby.rb @@ -39,6 +39,11 @@ assert '$0 value' do assert_equal '"-e"', `#{cmd('mruby')} -e #{shellquote('p $0')}`.chomp end +assert 'ARGV value' do + assert_mruby(%{["ab", "cde"]\n}, "", true, %w[-e p(ARGV) ab cde]) + assert_mruby("[]\n", "", true, %w[-e p(ARGV)]) +end + assert('float literal') do script, bin = Tempfile.new('test.rb'), Tempfile.new('test.mrb') File.write script.path, 'p [3.21, 2e308.infinite?, -2e308.infinite?]' diff --git a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c index 41354d3f2..38ebccddc 100644 --- a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +++ b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c @@ -189,8 +189,8 @@ parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args) } } + argc = opts->argc; argv = opts->argv; if (args->cmdline == NULL) { - argc = opts->argc; argv = opts->argv; if (*argv == NULL) args->rfp = stdin; else { args->rfp = strcmp(argv[0], "-") == 0 ? -- cgit v1.2.3