diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-11-25 21:56:27 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-11-25 21:56:27 +0900 |
| commit | f9bd414350be17f2a5bb88f346902096615227cd (patch) | |
| tree | 9f928a105328c57a6ff1d4d72c493c64fca5c55f /mrbgems/mruby-bin-mruby | |
| parent | a89d15cddef567297d347e6d857ac849a56edc20 (diff) | |
| download | mruby-f9bd414350be17f2a5bb88f346902096615227cd.tar.gz mruby-f9bd414350be17f2a5bb88f346902096615227cd.zip | |
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"]
```
Diffstat (limited to 'mrbgems/mruby-bin-mruby')
| -rw-r--r-- | mrbgems/mruby-bin-mruby/bintest/mruby.rb | 5 | ||||
| -rw-r--r-- | mrbgems/mruby-bin-mruby/tools/mruby/mruby.c | 2 |
2 files changed, 6 insertions, 1 deletions
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 ? |
