summaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-05-18 14:51:27 +0900
committerYukihiro Matsumoto <[email protected]>2012-05-18 14:51:27 +0900
commitf7406435f371c6607e80e58777e76efd08d32dd0 (patch)
tree26ad3d5f77b007a5107499011985d1262378e0ac /tools
parentf81ddf902529b408fd7c12e187c7db4f100f7702 (diff)
downloadmruby-f7406435f371c6607e80e58777e76efd08d32dd0.tar.gz
mruby-f7406435f371c6607e80e58777e76efd08d32dd0.zip
mruby should read from stdin when no argument given
Diffstat (limited to 'tools')
-rw-r--r--tools/mruby/mruby.c10
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*));