summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-mruby
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-04-26 19:00:49 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-04-26 19:00:49 +0900
commitf22535045ac351945552437e1ff646741bad3268 (patch)
treedf652960ad8d35756ce2837453d21c6e1d986700 /mrbgems/mruby-bin-mruby
parent14bd07f83110e39bf258662f2bc0fac903bd0547 (diff)
downloadmruby-f22535045ac351945552437e1ff646741bad3268.tar.gz
mruby-f22535045ac351945552437e1ff646741bad3268.zip
mruby.c: specify file names for libraries set by `-r`; fix #5427
Diffstat (limited to 'mrbgems/mruby-bin-mruby')
-rw-r--r--mrbgems/mruby-bin-mruby/tools/mruby/mruby.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
index 5c49b6d94..b189aca69 100644
--- a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
+++ b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
@@ -272,7 +272,6 @@ main(int argc, char **argv)
mrb_value ARGV;
mrbc_context *c;
mrb_value v;
- mrb_sym zero_sym;
if (mrb == NULL) {
fprintf(stderr, "%s: Invalid mrb_state, exiting mruby\n", *argv);
@@ -304,17 +303,14 @@ main(int argc, char **argv)
c->no_exec = TRUE;
/* Set $0 */
- zero_sym = mrb_intern_lit(mrb, "$0");
+ const char *cmdline;
if (args.rfp) {
- const 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"));
+ cmdline = "-e";
}
+ mrb_gv_set(mrb, mrb_intern_lit(mrb, "$0"), mrb_str_new_cstr(mrb, cmdline));
/* Load libraries */
for (i = 0; i < args.libc; i++) {
@@ -326,6 +322,7 @@ main(int argc, char **argv)
cleanup(mrb, &args);
return EXIT_FAILURE;
}
+ mrbc_filename(mrb, c, args.libv[i]);
if (args.mrbfile) {
v = mrb_load_irep_file_cxt(mrb, lfp, c);
}
@@ -339,6 +336,9 @@ main(int argc, char **argv)
mrbc_cleanup_local_variables(mrb, c);
}
+ /* set program file name */
+ mrbc_filename(mrb, c, cmdline);
+
/* Load program */
if (args.mrbfile) {
v = mrb_load_irep_file_cxt(mrb, args.rfp, c);