summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-mruby/tools
diff options
context:
space:
mode:
authoriTitou <[email protected]>2014-04-21 16:37:04 +0200
committeriTitou <[email protected]>2014-04-21 16:37:52 +0200
commit6676bd61a796abfdb9154d52dfe48229ec31d702 (patch)
treebc0d51b753d199f587ee4e1c58698a3c592d33c5 /mrbgems/mruby-bin-mruby/tools
parentdb6e8682654ec71d7aca7b3d03119e9440a7f5b1 (diff)
downloadmruby-6676bd61a796abfdb9154d52dfe48229ec31d702.tar.gz
mruby-6676bd61a796abfdb9154d52dfe48229ec31d702.zip
Also set $0 for binary files
Diffstat (limited to 'mrbgems/mruby-bin-mruby/tools')
-rw-r--r--mrbgems/mruby-bin-mruby/tools/mruby/mruby.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
index 01e38ef84..f60fd1974 100644
--- a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
+++ b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
@@ -178,6 +178,7 @@ main(int argc, char **argv)
mrb_value ARGV;
mrbc_context *c;
mrb_value v;
+ mrb_sym zero_sym;
if (mrb == NULL) {
fputs("Invalid mrb_state, exiting mruby\n", stderr);
@@ -202,25 +203,31 @@ main(int argc, char **argv)
c->dump_result = TRUE;
if (args.check_syntax)
c->no_exec = TRUE;
+
+ /* Set $0 */
+ zero_sym = mrb_intern_lit(mrb, "$0");
+ if (args.rfp) {
+ char *cmdline;
+ cmdline = args.cmdline ? args.cmdline : "-";
+ mrbc_filename(mrb, c, cmdline);
+ mrb_gv_set(mrb, zero_sym, mrb_str_new_cstr(mrb, cmdline));
+ }
+ else {
+ mrbc_filename(mrb, c, "-e");
+ mrb_gv_set(mrb, zero_sym, mrb_str_new_lit(mrb, "-e"));
+ }
+
+ /* Load program */
if (args.mrbfile) {
v = mrb_load_irep_file_cxt(mrb, args.rfp, c);
}
+ else if (args.rfp) {
+ v = mrb_load_file_cxt(mrb, args.rfp, c);
+ }
else {
- mrb_sym zero_sym = mrb_intern_lit(mrb, "$0");
-
- if (args.rfp) {
- 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_lit(mrb, "-e"));
- v = mrb_load_string_cxt(mrb, args.cmdline, c);
- }
+ v = mrb_load_string_cxt(mrb, args.cmdline, c);
}
+
mrbc_context_free(mrb, c);
if (mrb->exc) {
if (!mrb_undef_p(v)) {