From 48aa61a5e291b95af18f996ca14bc8e2120b3ca0 Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Sun, 7 Apr 2013 11:55:02 +0900 Subject: Support $0 variable. --- tools/mruby/mruby.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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)) { -- cgit v1.2.3