/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
+ * Copyright 2020 Thomas E. Dickey *
+ * Copyright 1998-2006,2008 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************/
/*
- * $Id: keynames.c,v 1.8 2006/04/01 19:03:18 tom Exp $
+ * $Id: keynames.c,v 1.10 2020/02/02 23:34:34 tom Exp $
*/
#include <test.priv.h>
+static void
+usage(void)
+{
+ fprintf(stderr, "Usage: keynames [-m] [-s]\n");
+ ExitProgram(EXIT_FAILURE);
+}
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int n;
+ bool do_setup = FALSE;
+ bool do_meta = FALSE;
+
+ setlocale(LC_ALL, "");
- /*
- * Get the terminfo entry into memory, and tell ncurses that we want to
- * use function keys. That will make it add any user-defined keys that
- * appear in the terminfo.
- */
- newterm(getenv("TERM"), stderr, stdin);
- keypad(stdscr, TRUE);
- endwin();
+ while ((n = getopt(argc, argv, "ms")) != -1) {
+ switch (n) {
+ case 'm':
+ do_meta = TRUE;
+ break;
+ case 's':
+ do_setup = TRUE;
+ break;
+ default:
+ usage();
+ /* NOTREACHED */
+ }
+ }
+
+ if (do_setup) {
+ /*
+ * Get the terminfo entry into memory, and tell ncurses that we want to
+ * use function keys. That will make it add any user-defined keys that
+ * appear in the terminfo.
+ */
+ newterm(getenv("TERM"), stderr, stdin);
+ keypad(stdscr, TRUE);
+ if (do_meta)
+ meta(stdscr, TRUE);
+ endwin();
+ }
for (n = -1; n < KEY_MAX + 512; n++) {
const char *result = keyname(n);