diff --git a/test/keynames.c b/test/keynames.c
index 26cfa87..cae260f 100644
--- a/test/keynames.c
+++ b/test/keynames.c
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright 2020,2022 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            *
@@ -26,37 +27,57 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: keynames.c,v 1.9 2008/10/11 20:22:37 tom Exp $
+ * $Id: keynames.c,v 1.13 2022/12/04 00:40:11 tom Exp $
  */
 
 #include <test.priv.h>
 
 static void
-usage(void)
+usage(int ok)
 {
-    fprintf(stderr, "Usage: keynames [-m] [-s]\n");
-    ExitProgram(EXIT_FAILURE);
+    static const char *msg[] =
+    {
+	"Usage: keynames"
+	,""
+	,USAGE_COMMON
+	,"Options:"
+	," -m       call meta(TRUE) in initialization"
+	," -s       call newterm, etc., to complete initialization"
+    };
+    size_t n;
+
+    for (n = 0; n < SIZEOF(msg); n++)
+	fprintf(stderr, "%s\n", msg[n]);
+
+    ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
 }
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
 
 int
 main(int argc, char *argv[])
 {
+    int ch;
     int n;
     bool do_setup = FALSE;
     bool do_meta = FALSE;
 
     setlocale(LC_ALL, "");
 
-    while ((n = getopt(argc, argv, "ms")) != -1) {
-	switch (n) {
+    while ((ch = getopt(argc, argv, OPTS_COMMON "ms")) != -1) {
+	switch (ch) {
 	case 'm':
 	    do_meta = TRUE;
 	    break;
 	case 's':
 	    do_setup = TRUE;
 	    break;
+	case OPTS_VERSION:
+	    show_version(argv);
+	    ExitProgram(EXIT_SUCCESS);
 	default:
-	    usage();
+	    usage(ch == OPTS_USAGE);
 	    /* NOTREACHED */
 	}
     }
