/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
+ * Copyright (c) 2007-2008,2014 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: key_names.c,v 1.2 2007/06/09 22:32:34 tom Exp $
+ * $Id: key_names.c,v 1.5 2014/08/02 17:24:55 tom Exp $
*/
#include <test.priv.h>
#if USE_WIDEC_SUPPORT
+static void
+usage(void)
+{
+ fprintf(stderr, "Usage: key_names [-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, "");
+
+ 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 = key_name(n);
+ const char *result = key_name((wchar_t) n);
if (result != 0)
printf("%d(%5o):%s\n", n, n, result);
}