From 625fdbbafaf3842753bff02b349eaaf9554d846d Mon Sep 17 00:00:00 2001
From: Andre Noll <maan@systemlinux.org>
Date: Sat, 6 Apr 2013 18:59:12 +0000
Subject: [PATCH] Don't check return value of command line parsers
 unnecessarily.

All gengetopt parsers except the one for para_client are generated
without the --no-handle-error option, i.e. these parsers exit on errors.
Hence it is pointless to check return values.
---
 afh_recv.c  |  6 ++----
 audioc.c    | 11 +++--------
 audiod.c    |  3 +--
 dccp_recv.c |  9 ++++-----
 fade.c      |  3 +--
 filter.c    |  6 ++----
 gui.c       |  8 ++------
 http_recv.c |  6 ++----
 play.c      |  3 +--
 recv.c      |  3 +--
 udp_recv.c  | 12 +++---------
 11 files changed, 22 insertions(+), 48 deletions(-)

diff --git a/afh_recv.c b/afh_recv.c
index 774ae88c..96f0d7ec 100644
--- a/afh_recv.c
+++ b/afh_recv.c
@@ -70,10 +70,8 @@ static void *afh_recv_parse_config(int argc, char **argv)
 {
 	struct afh_recv_args_info *tmp = para_calloc(sizeof(*tmp));
 
-	if (!afh_recv_cmdline_parser(argc, argv, tmp))
-		return tmp;
-	free(tmp);
-	return NULL;
+	afh_recv_cmdline_parser(argc, argv, tmp);
+	return tmp;
 }
 
 static void afh_recv_free_config(void *conf)
diff --git a/audioc.c b/audioc.c
index 42b4628b..b0f822b7 100644
--- a/audioc.c
+++ b/audioc.c
@@ -281,12 +281,11 @@ static char *configfile_exists(void)
  */
 int main(int argc, char *argv[])
 {
-	int ret = -E_AUDIOC_SYNTAX, fd;
+	int ret, fd;
 	char *cf, *buf = NULL, *args = NULL;
 	size_t bufsize;
 
-	if (audioc_cmdline_parser(argc, argv, &conf))
-		goto out;
+	audioc_cmdline_parser(argc, argv, &conf);
 	HANDLE_VERSION_FLAG("audioc", conf);
 	cf = configfile_exists();
 	if (cf) {
@@ -298,12 +297,8 @@ int main(int argc, char *argv[])
 			.print_errors = 1,
 
 		};
-		ret = audioc_cmdline_parser_config_file(cf, &conf, &params);
+		audioc_cmdline_parser_config_file(cf, &conf, &params);
 		free(cf);
-		if (ret) {
-			fprintf(stderr, "parse error in config file\n");
-			exit(EXIT_FAILURE);
-		}
 	}
 	loglevel = get_loglevel_by_name(conf.loglevel_arg);
 	if (conf.socket_given)
diff --git a/audiod.c b/audiod.c
index d2c66f2b..4100d414 100644
--- a/audiod.c
+++ b/audiod.c
@@ -1350,8 +1350,7 @@ int main(int argc, char *argv[])
 	};
 
 	valid_fd_012();
-	if (audiod_cmdline_parser_ext(argc, argv, &conf, &params))
-		exit(EXIT_FAILURE);
+	audiod_cmdline_parser_ext(argc, argv, &conf, &params);
 	HANDLE_VERSION_FLAG("audiod", conf);
 	/* init receivers/filters/writers early to make help work */
 	recv_init();
diff --git a/dccp_recv.c b/dccp_recv.c
index 1f9df189..875d8384 100644
--- a/dccp_recv.c
+++ b/dccp_recv.c
@@ -107,11 +107,10 @@ static void *dccp_recv_parse_config(int argc, char **argv)
 {
 	struct dccp_recv_args_info *tmp = para_calloc(sizeof(*tmp));
 
-	if (!dccp_recv_cmdline_parser(argc, argv, tmp) &&
-	    dccp_recv_ccid_support_check(tmp))
-		return tmp;
-	free(tmp);
-	return NULL;
+	dccp_recv_cmdline_parser(argc, argv, tmp);
+	if (!dccp_recv_ccid_support_check(tmp))
+		exit(EXIT_FAILURE);
+	return tmp;
 }
 
 static void dccp_recv_pre_select(struct sched *s, struct task *t)
diff --git a/fade.c b/fade.c
index fee8f8ca..d2ab8287 100644
--- a/fade.c
+++ b/fade.c
@@ -292,8 +292,7 @@ int main(int argc, char *argv[])
 	struct mixer *m;
 	struct mixer_handle *h = NULL;
 
-	if (fade_cmdline_parser(argc, argv, &conf))
-		exit(EXIT_FAILURE);
+	fade_cmdline_parser(argc, argv, &conf);
 	HANDLE_VERSION_FLAG("fade", conf);
 	ret = configfile_exists();
 	if (!ret && conf.config_file_given) {
diff --git a/filter.c b/filter.c
index 40e3779e..84ad8577 100644
--- a/filter.c
+++ b/filter.c
@@ -65,8 +65,7 @@ static int parse_config(int argc, char *argv[])
 	static char *cf; /* config file */
 	struct stat statbuf;
 
-	if (filter_cmdline_parser(argc, argv, &conf))
-		return -E_FILTER_SYNTAX;
+	filter_cmdline_parser(argc, argv, &conf);
 	HANDLE_VERSION_FLAG("filter", conf);
 	if (conf.help_given || conf.detailed_help_given)
 		print_help_and_die();
@@ -84,8 +83,7 @@ static int parse_config(int argc, char *argv[])
 			.check_ambiguity = 0,
 			.print_errors = 1
 		};
-		if (filter_cmdline_parser_config_file(cf, &conf, &params))
-			return -E_FILTER_SYNTAX;
+		filter_cmdline_parser_config_file(cf, &conf, &params);
 	}
 	if (!conf.filter_given)
 		return -E_NO_FILTERS;
diff --git a/gui.c b/gui.c
index 096beb93..e157dd1a 100644
--- a/gui.c
+++ b/gui.c
@@ -1362,10 +1362,7 @@ static void com_reread_conf(void)
 	}
 	PARA_INFO_LOG("rereading command line options and config file");
 	gui_cmdline_parser_ext(_argc, _argv, &conf, &params);
-	if (gui_cmdline_parser_config_file(cf, &conf, &params) != 0) {
-		PARA_EMERG_LOG("errors in config file");
-		finish(EXIT_FAILURE);
-	}
+	gui_cmdline_parser_config_file(cf, &conf, &params);
 	PARA_NOTICE_LOG("config file reloaded");
 	if (check_key_map_args() < 0)
 		finish(EXIT_FAILURE);
@@ -1538,8 +1535,7 @@ int main(int argc, char *argv[])
 			.check_ambiguity = 0,
 			.print_errors = 1,
 		};
-		if (gui_cmdline_parser_config_file(cf, &conf, &params) != 0)
-			exit(EXIT_FAILURE);
+		gui_cmdline_parser_config_file(cf, &conf, &params);
 	}
 	loglevel = get_loglevel_by_name(conf.loglevel_arg);
 	if (check_key_map_args() < 0) {
diff --git a/http_recv.c b/http_recv.c
index f1d85930..8cb984ff 100644
--- a/http_recv.c
+++ b/http_recv.c
@@ -143,10 +143,8 @@ static void *http_recv_parse_config(int argc, char **argv)
 {
 	struct http_recv_args_info *tmp = para_calloc(sizeof(*tmp));
 
-	if (!http_recv_cmdline_parser(argc, argv, tmp))
-		return tmp;
-	free(tmp);
-	return NULL;
+	http_recv_cmdline_parser(argc, argv, tmp);
+	return tmp;
 }
 
 static int http_recv_open(struct receiver_node *rn)
diff --git a/play.c b/play.c
index 2cb0536d..83d28514 100644
--- a/play.c
+++ b/play.c
@@ -176,8 +176,7 @@ static void parse_config_or_die(int argc, char *argv[])
 		.print_errors = 1
 	};
 
-	if (play_cmdline_parser_ext(argc, argv, &conf, &params))
-		exit(EXIT_FAILURE);
+	play_cmdline_parser_ext(argc, argv, &conf, &params);
 	HANDLE_VERSION_FLAG("play", conf);
 	if (conf.help_given || conf.detailed_help_given)
 		print_help_and_die();
diff --git a/recv.c b/recv.c
index 1fb5e25e..b03c5714 100644
--- a/recv.c
+++ b/recv.c
@@ -54,8 +54,7 @@ __noreturn static void print_help_and_die(void)
 
 static void *parse_config(int argc, char *argv[], int *receiver_num)
 {
-	if (recv_cmdline_parser(argc, argv, &conf))
-		return NULL;
+	recv_cmdline_parser(argc, argv, &conf);
 	HANDLE_VERSION_FLAG("recv", conf);
 	if (conf.help_given || conf.detailed_help_given)
 		print_help_and_die();
diff --git a/udp_recv.c b/udp_recv.c
index f9c70ec8..cff55f2d 100644
--- a/udp_recv.c
+++ b/udp_recv.c
@@ -100,15 +100,9 @@ static void udp_recv_close(struct receiver_node *rn)
 
 static void *udp_recv_parse_config(int argc, char **argv)
 {
-	int ret;
-	struct udp_recv_args_info *tmp =
-		para_calloc(sizeof(struct udp_recv_args_info));
-
-	ret = udp_recv_cmdline_parser(argc, argv, tmp)? -E_UDP_SYNTAX : 1;
-	if (ret >= 0)
-		return tmp;
-	free(tmp);
-	return NULL;
+	struct udp_recv_args_info *tmp = para_calloc(sizeof(*tmp));
+	udp_recv_cmdline_parser(argc, argv, tmp);
+	return tmp;
 }
 
 /*
-- 
2.39.5