diff --git a/src/hd-rum-translator/hd-rum-translator.cpp b/src/hd-rum-translator/hd-rum-translator.cpp index 92cd839fd..a4f02153e 100644 --- a/src/hd-rum-translator/hd-rum-translator.cpp +++ b/src/hd-rum-translator/hd-rum-translator.cpp @@ -544,8 +544,11 @@ struct cmdline_parameters { /** * @todo * Use rather getopt() than manual parsing. + * @retval -1 failure + * @retval 0 success + * @retval 1 help shown */ -static bool parse_fmt(int argc, char **argv, struct cmdline_parameters *parsed) +static int parse_fmt(int argc, char **argv, struct cmdline_parameters *parsed) { int start_index = 1; @@ -559,7 +562,7 @@ static bool parse_fmt(int argc, char **argv, struct cmdline_parameters *parsed) } } else if(strcmp(argv[start_index], "--capabilities") == 0) { print_capabilities(NULL, false); - return false; + return 1; } else if(strcmp(argv[start_index], "--blend") == 0) { parsed->out_conf.mode = BLEND; } else if(strcmp(argv[start_index], "--conference") == 0) { @@ -570,19 +573,19 @@ static bool parse_fmt(int argc, char **argv, struct cmdline_parameters *parsed) parsed->capture_filter = argv[++start_index]; } else if(strcmp(argv[start_index], "-h") == 0 || strcmp(argv[start_index], "--help") == 0) { usage(argv[0]); - return false; + return 1; } else if(strcmp(argv[start_index], "-v") == 0) { - return false; + return 1; } else if(strcmp(argv[start_index], "--verbose") == 0) { parsed->verbose = true; } else if(strcmp(argv[start_index], "--param") == 0 && start_index < argc - 1) { if (!parse_params(argv[++start_index])) { - return false; + return -1; } } else { LOG(LOG_LEVEL_FATAL) << MOD_NAME << "Unknown global parameter: " << argv[start_index] << "\n\n"; usage(argv[0]); - return false; + return -1; } start_index++; } @@ -590,7 +593,7 @@ static bool parse_fmt(int argc, char **argv, struct cmdline_parameters *parsed) if (argc < start_index + 2) { LOG(LOG_LEVEL_FATAL) << MOD_NAME << "Missing mandatory parameters!\n\n"; usage(argv[0]); - return false; + return -1; } parsed->bufsize = argv[start_index]; @@ -612,7 +615,7 @@ static bool parse_fmt(int argc, char **argv, struct cmdline_parameters *parsed) if(i == argc - 1 || argv[i + 1][0] == '-') { fprintf(stderr, "Error: option '-%c' requires an argument\n", argv[i][1]); - exit(EXIT_FAIL_USAGE); + return -1; } parsed->host_count -= 1; // because option argument (mandatory) will be counted as a host @@ -675,7 +678,7 @@ static bool parse_fmt(int argc, char **argv, struct cmdline_parameters *parsed) } } - return true; + return 0; } static string format_port_list(struct hd_rum_translator_state *s) @@ -747,10 +750,10 @@ int main(int argc, char **argv) signal(SIGABRT, signal_handler); #endif - bool ret = parse_fmt(argc, argv, ¶ms); + int ret = parse_fmt(argc, argv, ¶ms); - if (ret == false) { - EXIT(EXIT_SUCCESS); + if (ret != 0) { + EXIT(ret < 0 ? EXIT_FAILURE : EXIT_SUCCESS); } if (params.verbose) {