diff --git a/src/entry/main.c b/src/entry/main.c index 833f6ad..5d71a68 100644 --- a/src/entry/main.c +++ b/src/entry/main.c @@ -249,9 +249,19 @@ int criterion_handle_args(int argc, char *argv[], bool handle_unknown_arg) { case 'p': criterion_options.pattern = optarg; break; #endif case 'q': quiet = true; break; - case 't': quiet = true; criterion_add_output("tap", DEF(optarg, "-")); break; - case 'x': quiet = true; criterion_add_output("xml", DEF(optarg, "-")); break; - case 'n': quiet = true; criterion_add_output("json", DEF(optarg, "-")); break; + + { + const char *provider; + case 't': provider = "tap"; goto provider_def; + case 'x': provider = "xml"; goto provider_def; + case 'n': provider = "json"; goto provider_def; + + provider_def: {} + const char *path = DEF(optarg, "-"); + quiet = !strcmp(path, "-"); + criterion_add_output(provider, path); + } break; + case 'l': do_list_tests = true; break; case 'v': do_print_version = true; break; case 'h': do_print_usage = true; break; @@ -266,7 +276,7 @@ int criterion_handle_args(int argc, char *argv[], bool handle_unknown_arg) { break; } - quiet = true; + quiet = !strcmp(path, "-"); criterion_add_output(arg, path); } break; case '?':