mruby.c: `-b` option should only affects the script.

Not the libraries loaded by `-r`. Instead, `.mrb` extension in the path
should determine whether they are compiled binary.
parent bf8e061c
...@@ -63,6 +63,16 @@ usage(const char *name) ...@@ -63,6 +63,16 @@ usage(const char *name)
printf(" %s\n", *p++); printf(" %s\n", *p++);
} }
static mrb_bool
mrb_extension_p(const char *path)
{
const char *e = rindex(path, '.');
if (e && e[1] == 'm' && e[2] == 'r' && e[3] == 'b' && e[4] == '\0') {
return TRUE;
}
return FALSE;
}
static void static void
options_init(struct options *opts, int argc, char **argv) options_init(struct options *opts, int argc, char **argv)
{ {
...@@ -323,7 +333,7 @@ main(int argc, char **argv) ...@@ -323,7 +333,7 @@ main(int argc, char **argv)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
mrbc_filename(mrb, c, args.libv[i]); mrbc_filename(mrb, c, args.libv[i]);
if (args.mrbfile) { if (mrb_extension_p(args.libv[i])) {
v = mrb_load_irep_file_cxt(mrb, lfp, c); v = mrb_load_irep_file_cxt(mrb, lfp, c);
} }
else { else {
...@@ -340,7 +350,7 @@ main(int argc, char **argv) ...@@ -340,7 +350,7 @@ main(int argc, char **argv)
mrbc_filename(mrb, c, cmdline); mrbc_filename(mrb, c, cmdline);
/* Load program */ /* Load program */
if (args.mrbfile) { if (args.mrbfile || mrb_extension_p(cmdline)) {
v = mrb_load_irep_file_cxt(mrb, args.rfp, c); v = mrb_load_irep_file_cxt(mrb, args.rfp, c);
} }
else if (args.rfp) { else if (args.rfp) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment