summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-mruby/tools
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-11-30 19:52:22 +0900
committerKOBAYASHI Shuji <[email protected]>2019-11-30 19:52:22 +0900
commit49653b81ea978a5f02c4a6ce1ed53eb1cd0dbe7a (patch)
tree1e4702396e54d9d08747922ac53989a1396f7b5c /mrbgems/mruby-bin-mruby/tools
parent5eb08a0d1a936688ee8b928e693f0ed085831315 (diff)
downloadmruby-49653b81ea978a5f02c4a6ce1ed53eb1cd0dbe7a.tar.gz
mruby-49653b81ea978a5f02c4a6ce1ed53eb1cd0dbe7a.zip
Quit `mruby -v` immediately if no program is given for Ruby compatibility
Diffstat (limited to 'mrbgems/mruby-bin-mruby/tools')
-rw-r--r--mrbgems/mruby-bin-mruby/tools/mruby/mruby.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
index facfe335e..f3593aa48 100644
--- a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
+++ b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
@@ -14,6 +14,7 @@ struct _args {
mrb_bool mrbfile : 1;
mrb_bool check_syntax : 1;
mrb_bool verbose : 1;
+ mrb_bool version : 1;
mrb_bool debug : 1;
int argc;
char **argv;
@@ -180,7 +181,10 @@ parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args)
}
}
else if (strcmp(opt, "v") == 0) {
- if (!args->verbose) mrb_show_version(mrb);
+ if (!args->verbose) {
+ mrb_show_version(mrb);
+ args->version = TRUE;
+ }
args->verbose = TRUE;
}
else if (strcmp(opt, "version") == 0) {
@@ -203,7 +207,10 @@ parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args)
argc = opts->argc; argv = opts->argv;
if (args->cmdline == NULL) {
- if (*argv == NULL) args->rfp = stdin;
+ if (*argv == NULL) {
+ if (args->version) exit(EXIT_SUCCESS);
+ args->rfp = stdin;
+ }
else {
args->rfp = strcmp(argv[0], "-") == 0 ?
stdin : fopen(argv[0], args->mrbfile ? "rb" : "r");