/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 2005-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
/*
* Author: Thomas E. Dickey
*
- * $Id: demo_termcap.c,v 1.59 2020/02/02 23:34:34 tom Exp $
+ * $Id: demo_termcap.c,v 1.64 2022/12/10 23:22:09 tom Exp $
*
* A simple demo of the termcap interface.
*/
#endif
#endif
-static void failed(const char *) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *);
static void
failed(const char *msg)
#endif /* USE_CODE_LISTS */
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: demo_termcap [options] [terminal]",
- "",
- "If no options are given, print all (boolean, numeric, string)",
- "capabilities for the given terminal, using short names.",
- "",
- "Options:",
- " -a try all names, print capabilities found",
- " -b print boolean-capabilities",
- " -d LIST colon-separated list of databases to use",
- " -e NAME environment variable to set with -d option",
- " -i NAME terminal description to use as names for \"-a\" option, etc.",
- " -n print numeric-capabilities",
- " -q quiet (prints only counts)",
- " -r COUNT repeat for given count",
- " -s print string-capabilities",
- " -v print termcap-variables",
+ "Usage: demo_termcap [options] [terminal]"
+ ,""
+ ,"If no options are given, print all (boolean, numeric, string)"
+ ,"capabilities for the given terminal, using short names."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -a try all names, print capabilities found"
+ ," -b print boolean-capabilities"
+ ," -d LIST colon-separated list of databases to use"
+ ," -e NAME environment variable to set with -d option"
+ ," -i NAME terminal description to use as names for \"-a\" option, etc."
+ ," -n print numeric-capabilities"
+ ," -q quiet (prints only counts)"
+ ," -r COUNT repeat for given count"
+ ," -s print string-capabilities"
+ ," -v print termcap-variables"
#ifdef NCURSES_VERSION
- " -x print extended capabilities",
+ ," -x print extended capabilities"
#endif
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
+ int ch;
int n;
char *name;
bool a_opt = FALSE;
int repeat;
int r_opt = 1;
- while ((n = getopt(argc, argv, "abd:e:i:nqr:svxy")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "abd:e:i:nqr:svxy")) != -1) {
+ switch (ch) {
case 'a':
a_opt = TRUE;
break;
break;
case 'r':
if ((r_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 's':
s_opt = TRUE;
break;
#endif
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
failed("This program requires termcap");
}