X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Fgdc.c;h=7243c104b1730c7f42a9263bcfcf3038544d04a9;hp=59c95e17f2d607109f30afd81d05af7c1bdc3d85;hb=6641601a9dd7f34deeaa978899b3730b27635afb;hpb=205ea499dbbceba5201d997fbd8b6b1f7f29bd50 diff --git a/test/gdc.c b/test/gdc.c index 59c95e17..7243c104 100644 --- a/test/gdc.c +++ b/test/gdc.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2019-2020,2022 Thomas E. Dickey * * Copyright 1998-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -34,7 +34,7 @@ * modified 10-18-89 for curses (jrl) * 10-18-89 added signal handling * - * $Id: gdc.c,v 1.54 2020/02/02 23:34:34 tom Exp $ + * $Id: gdc.c,v 1.57 2022/12/04 00:40:11 tom Exp $ */ #include @@ -150,26 +150,27 @@ set(int t, int n) } static void -usage(void) +usage(int ok) { static const char *msg[] = { "Usage: gdc [options] [count]" ,"" + ,USAGE_COMMON ,"Options:" #if HAVE_USE_DEFAULT_COLORS - ," -d invoke use_default_colors" + ," -d invoke use_default_colors" #endif - ," -n redirect input to /dev/null" - ," -s scroll each number into place, rather than flipping" - ," -t hh:mm:ss specify starting time (default is ``now'')" + ," -n redirect input to /dev/null" + ," -s scroll each number into place, rather than flipping" + ," -t TIME specify starting time as hh:mm:ss (default is ``now'')" ,"" ,"If you specify a count, gdc runs for that number of seconds" }; unsigned j; for (j = 0; j < SIZEOF(msg); j++) fprintf(stderr, "%s\n", msg[j]); - ExitProgram(EXIT_FAILURE); + ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE); } static time_t @@ -183,14 +184,14 @@ parse_time(const char *value) if (sscanf(value, "%d:%d:%d%c", &hh, &mm, &ss, &c) != 3) { if (sscanf(value, "%02d%02d%02d%c", &hh, &mm, &ss, &c) != 3) { - usage(); + usage(FALSE); } } if ((hh < 0) || (hh >= 24) || (mm < 0) || (mm >= 60) || (ss < 0) || (ss >= 60)) { - usage(); + usage(FALSE); } /* adjust so that the localtime in the main loop will give usable time */ @@ -204,10 +205,13 @@ parse_time(const char *value) if (tm->tm_hour != hh) { fprintf(stderr, "Cannot find local time for %s!\n", value); - usage(); + usage(FALSE); } return result; } +/* *INDENT-OFF* */ +VERSION_COMMON() +/* *INDENT-ON* */ int main(int argc, char *argv[]) @@ -215,7 +219,7 @@ main(int argc, char *argv[]) time_t now; struct tm *tm; long t, a; - int i, j, s, k; + int i, j, s, k, ch; int count = 0; FILE *ofp = stdout; FILE *ifp = stdin; @@ -228,8 +232,8 @@ main(int argc, char *argv[]) setlocale(LC_ALL, ""); - while ((k = getopt(argc, argv, "dnst:")) != -1) { - switch (k) { + while ((ch = getopt(argc, argv, OPTS_COMMON "dnst:")) != -1) { + switch (ch) { #if HAVE_USE_DEFAULT_COLORS case 'd': d_option = TRUE; @@ -245,15 +249,19 @@ main(int argc, char *argv[]) case 't': starts = parse_time(optarg); break; + case OPTS_VERSION: + show_version(argv); + ExitProgram(EXIT_SUCCESS); default: - usage(); + usage(ch == OPTS_USAGE); + /* NOTREACHED */ } } if (optind < argc) { count = atoi(argv[optind++]); assert(count >= 0); if (optind < argc) - usage(); + usage(FALSE); } InitAndCatch({