summaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/mrbc/mrbc.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/mrbc/mrbc.c b/tools/mrbc/mrbc.c
index 5382b90a8..3c6352f80 100644
--- a/tools/mrbc/mrbc.c
+++ b/tools/mrbc/mrbc.c
@@ -77,8 +77,11 @@ parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args)
for (argc--,argv++; argc > 0; argc--,argv++) {
if (**argv == '-') {
- if (strlen(*argv) <= 1)
- return -1;
+ if (strlen(*argv) == 1) {
+ args->filename = infile = "-";
+ args->rfp = stdin;
+ break;
+ }
switch ((*argv)[1]) {
case 'o':
@@ -134,9 +137,14 @@ parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args)
if (args->check_syntax)
return 0;
- if (outfile == NULL)
- outfile = get_outfilename(infile, args->ext);
-
+ if (outfile == NULL) {
+ if (strcmp("-", infile) == 0) {
+ outfile = infile;
+ }
+ else {
+ outfile = get_outfilename(infile, args->ext);
+ }
+ }
if (strcmp("-", outfile) == 0) {
args->wfp = stdout;
}