diff options
| author | Masaki Muranaka <[email protected]> | 2013-04-07 11:55:02 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2013-04-07 11:55:02 +0900 |
| commit | 48aa61a5e291b95af18f996ca14bc8e2120b3ca0 (patch) | |
| tree | 3924b44302b2498a97f8534cf590f6451585e524 /tools | |
| parent | 3286fb511e2694e8eb50ecd80beaf7e1db1a0e21 (diff) | |
| download | mruby-48aa61a5e291b95af18f996ca14bc8e2120b3ca0.tar.gz mruby-48aa61a5e291b95af18f996ca14bc8e2120b3ca0.zip | |
Support $0 variable.
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/mruby/mruby.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/mruby/mruby.c b/tools/mruby/mruby.c index c52eb5e7b..f554ff4df 100644 --- a/tools/mruby/mruby.c +++ b/tools/mruby/mruby.c @@ -268,6 +268,7 @@ main(int argc, char **argv) } else { mrbc_context *c = mrbc_context_new(mrb); + mrb_sym zero_sym = mrb_intern2(mrb, "$0", 2); mrb_value v; if (args.verbose) @@ -276,13 +277,18 @@ main(int argc, char **argv) c->no_exec = 1; if (args.rfp) { - mrbc_filename(mrb, c, args.cmdline ? args.cmdline : "-"); + char *cmdline; + cmdline = args.cmdline ? args.cmdline : "-"; + mrbc_filename(mrb, c, cmdline); + mrb_gv_set(mrb, zero_sym, mrb_str_new_cstr(mrb, cmdline)); v = mrb_load_file_cxt(mrb, args.rfp, c); } else { mrbc_filename(mrb, c, "-e"); + mrb_gv_set(mrb, zero_sym, mrb_str_new(mrb, "-e", 2)); v = mrb_load_string_cxt(mrb, args.cmdline, c); } + mrbc_context_free(mrb, c); if (mrb->exc) { if (!mrb_undef_p(v)) { |
