/****************************************************************************
- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+ * Copyright 2020,2021 Thomas E. Dickey *
+ * Copyright 1998-2011,2015 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 *
#define USE_TERMLIB 1
#include <build.priv.h>
-MODULE_ID("$Id: make_keys.c,v 1.18 2010/05/22 17:48:21 tom Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.23 2021/08/18 20:55:25 tom Exp $")
#include <names.c>
-#define UNKNOWN (unsigned) (SIZEOF(strnames) + SIZEOF(strfnames))
+static unsigned
+unknown(void)
+{
+ static unsigned result = 0;
+
+ if (result == 0) {
+ unsigned n;
+ for (n = 0; strnames[n] != 0; n++) {
+ ++result;
+ }
+ for (n = 0; strfnames[n] != 0; n++) {
+ ++result;
+ }
+ }
+ return result;
+}
static unsigned
lookup(const char *name)
}
}
}
- return found ? n : UNKNOWN;
+ return found ? n : unknown();
}
static void
char buffer[BUFSIZ];
char from[256];
char to[256];
+ unsigned ignore = unknown();
unsigned maxlen = 16;
int scanned;
- while (fgets(buffer, sizeof(buffer), ifp) != 0) {
+ while (fgets(buffer, (int) sizeof(buffer), ifp) != 0) {
if (*buffer == '#')
continue;
scanned = sscanf(buffer, "%255s %255s", to, from);
if (scanned == 2) {
unsigned code = lookup(from);
- if (code == UNKNOWN)
+ if (code == ignore)
continue;
if (strlen(from) > maxlen)
maxlen = (unsigned) strlen(from);
- fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n",
+ fprintf(ofp, "\t{ %4u, %-*.*s },\t/* %s */\n",
code,
(int) maxlen, (int) maxlen,
to,
{
static const char *prefix[] =
{
- "#ifndef NCU_KEYS_H",
- "#define NCU_KEYS_H 1",
+ "#ifndef _INIT_KEYTRY_H",
+ "#define _INIT_KEYTRY_H 1",
"",
"/* This file was generated by MAKE_KEYS */",
"",
+ "#include <tic.h>",
+ "",
"#if BROKEN_LINKER",
"static",
"#endif",
{
"\t{ 0, 0} };",
"",
- "#endif /* NCU_KEYS_H */",
+ "#endif /* _INIT_KEYTRY_H */",
0
};