* zic.c (duplicate_options): New function. (main): Use it. --- zic.c | 73 +++++++++++++++++++---------------------------------------- 1 file changed, 23 insertions(+), 50 deletions(-)
diff --git a/zic.c b/zic.c
index 67bcaa43..34e7d91c 100644
--- a/zic.c
+++ b/zic.c
@@ -708,6 +708,13 @@ close_file(FILE *stream, char const *dir, char const *name,
}
}
+ATTRIBUTE_NORETURN static void
+duplicate_options(char const *opt)
+{
+ fprintf(stderr, _("%s: More than one %s option specified\n"), progname, opt);
+ exit(EXIT_FAILURE);
+}
+
ATTRIBUTE_NORETURN static void
usage(FILE *stream, int status)
{
@@ -1063,73 +1070,39 @@ main(int argc, char **argv)
error(_("invalid option: -b '%s'"), optarg);
break;
case 'd':
- if (directory == NULL)
- directory = optarg;
- else {
- fprintf(stderr,
- _("%s: More than one -d option"
- " specified\n"),
- progname);
- return EXIT_FAILURE;
- }
+ if (directory)
+ duplicate_options("-d");
+ directory = optarg;
break;
case 'l':
- if (lcltime == NULL)
- lcltime = optarg;
- else {
- fprintf(stderr,
- _("%s: More than one -l option"
- " specified\n"),
- progname);
- return EXIT_FAILURE;
- }
+ if (lcltime)
+ duplicate_options("-l");
+ lcltime = optarg;
break;
case 'p':
- if (psxrules == NULL)
- psxrules = optarg;
- else {
- fprintf(stderr,
- _("%s: More than one -p option"
- " specified\n"),
- progname);
- return EXIT_FAILURE;
- }
+ if (psxrules)
+ duplicate_options("-p");
+ psxrules = optarg;
break;
case 't':
- if (tzdefault != NULL) {
- fprintf(stderr,
- _("%s: More than one -t option"
- " specified\n"),
- progname);
- return EXIT_FAILURE;
- }
+ if (tzdefault)
+ duplicate_options("-t");
tzdefault = optarg;
break;
case 'y':
warning(_("-y ignored"));
break;
case 'L':
- if (leapsec == NULL)
- leapsec = optarg;
- else {
- fprintf(stderr,
- _("%s: More than one -L option"
- " specified\n"),
- progname);
- return EXIT_FAILURE;
- }
+ if (leapsec)
+ duplicate_options("-L");
+ leapsec = optarg;
break;
case 'v':
noise = true;
break;
case 'r':
- if (timerange_given) {
- fprintf(stderr,
- _("%s: More than one -r option"
- " specified\n"),
- progname);
- return EXIT_FAILURE;
- }
+ if (timerange_given)
+ duplicate_options("-r");
if (! timerange_option(optarg)) {
fprintf(stderr,
_("%s: invalid time range: %s\n"),
--
2.48.1
