diff options
| -rw-r--r-- | tools/mruby/mruby.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/tools/mruby/mruby.c b/tools/mruby/mruby.c index 8e214c037..154f266d1 100644 --- a/tools/mruby/mruby.c +++ b/tools/mruby/mruby.c @@ -107,10 +107,12 @@ parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args) } - if (args->rfp == NULL && args->cmdline == NULL && - (*argv == NULL || (args->rfp = fopen(*argv, args->mrbfile ? "rb" : "r")) == NULL)) { - printf("%s: Cannot open program file. (%s)\n", *origargv, *argv); - return 0; + if (args->rfp == NULL && args->cmdline == NULL) { + if (*argv == NULL) args->rfp = stdin; + else if ((args->rfp = fopen(*argv, args->mrbfile ? "rb" : "r")) == NULL) { + printf("%s: Cannot open program file. (%s)\n", *origargv, *argv); + return 0; + } } args->argv = mrb_realloc(mrb, args->argv, sizeof(char*) * (argc + 1)); memcpy(args->argv, argv, (argc+1) * sizeof(char*)); |
