]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/make_keys.c
ncurses 5.6 - patch 20080927
[ncurses.git] / ncurses / tinfo / make_keys.c
index 703ca5de0fea2f2d5ac41194978ebbd6d023a633..c084f87fb94375774cb1fdb4cac9497c2f9fe94b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2007,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            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 1997                        *
+ *  Author: Thomas E. Dickey                    1997-on                     *
  ****************************************************************************/
 
 /*
  * making the output show the indices into the TERMTYPE Strings array.  Doing
  * it that way lets us cut down on the size of the init_keytry() function.
  */
+
+#define USE_TERMLIB 1
 #include <curses.priv.h>
 
-MODULE_ID("$Id: make_keys.c,v 1.8 2000/03/12 02:55:50 Todd.C.Miller Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.14 2008/08/03 21:57:22 tom Exp $")
 
 #include <names.c>
 
 #define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames))
 
-static size_t lookup(const char *name)
+static size_t
+lookup(const char *name)
 {
-       size_t n;
-       bool found = FALSE;
-       for (n = 0; strnames[n] != 0; n++) {
-               if (!strcmp(name, strnames[n])) {
-                       found = TRUE;
-                       break;
-               }
+    size_t n;
+    bool found = FALSE;
+    for (n = 0; strnames[n] != 0; n++) {
+       if (!strcmp(name, strnames[n])) {
+           found = TRUE;
+           break;
        }
-       if (!found) {
-               for (n = 0; strfnames[n] != 0; n++) {
-                       if (!strcmp(name, strfnames[n])) {
-                               found = TRUE;
-                               break;
-                       }
-               }
+    }
+    if (!found) {
+       for (n = 0; strfnames[n] != 0; n++) {
+           if (!strcmp(name, strfnames[n])) {
+               found = TRUE;
+               break;
+           }
        }
-       return found ? n : UNKNOWN;
+    }
+    return found ? n : UNKNOWN;
 }
 
-static void make_keys(FILE *ifp, FILE *ofp)
+static void
+make_keys(FILE *ifp, FILE *ofp)
 {
-       char buffer[BUFSIZ];
-       char from[BUFSIZ];
-       char to[BUFSIZ];
-       int maxlen = 16;
+    char buffer[BUFSIZ];
+    char from[256];
+    char to[256];
+    int maxlen = 16;
+    int scanned;
+
+    while (fgets(buffer, sizeof(buffer), ifp) != 0) {
+       if (*buffer == '#')
+           continue;
+
+       to[sizeof(to) - 1] = '\0';
+       from[sizeof(from) - 1] = '\0';
 
-       while (fgets(buffer, sizeof(buffer), ifp) != 0) {
-               if (*buffer == '#')
-                       continue;
-               if (sscanf(buffer, "%s %s", to, from) == 2) {
-                       int code = lookup(from);
-                       if (code == UNKNOWN)
-                               continue;
-                       if ((int)strlen(from) > maxlen)
-                               maxlen = strlen(from);
-                       fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n",
-                               code,
-                               maxlen, maxlen,
-                               to,
-                               from);
-               }
+       scanned = sscanf(buffer, "%255s %255s", to, from);
+       if (scanned == 2) {
+           int code = lookup(from);
+           if (code == UNKNOWN)
+               continue;
+           if ((int) strlen(from) > maxlen)
+               maxlen = strlen(from);
+           fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n",
+                   code,
+                   maxlen, maxlen,
+                   to,
+                   from);
        }
+    }
 }
 
-static void write_list(FILE *ofp, const char **list)
+static void
+write_list(FILE *ofp, const char **list)
 {
-       while (*list != 0)
-               fprintf(ofp, "%s\n", *list++);
+    while (*list != 0)
+       fprintf(ofp, "%s\n", *list++);
 }
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
-       static const char *prefix[] = {
-               "#ifndef NCU_KEYS_H",
-               "#define NCU_KEYS_H 1",
-               "",
-               "/* This file was generated by MAKE_KEYS */",
-               "",
-               "#if BROKEN_LINKER",
-               "static",
-               "#endif",
-               "struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
-               0
-       };
-       static const char *suffix[] = {
-               "\t{ 0, 0} };",
-               "",
-               "#endif /* NCU_KEYS_H */",
-               0
-       };
+    static const char *prefix[] =
+    {
+       "#ifndef NCU_KEYS_H",
+       "#define NCU_KEYS_H 1",
+       "",
+       "/* This file was generated by MAKE_KEYS */",
+       "",
+       "#if BROKEN_LINKER",
+       "static",
+       "#endif",
+       "const struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
+       0
+    };
+    static const char *suffix[] =
+    {
+       "\t{ 0, 0} };",
+       "",
+       "#endif /* NCU_KEYS_H */",
+       0
+    };
 
-       write_list(stdout, prefix);
-       if (argc > 1) {
-               int n;
-               for (n = 1; n < argc; n++) {
-                       FILE *fp = fopen(argv[n], "r");
-                       if (fp != 0) {
-                               make_keys(fp, stdout);
-                               fclose(fp);
-                       }
-               }
-       } else {
-               make_keys(stdin, stdout);
+    write_list(stdout, prefix);
+    if (argc > 1) {
+       int n;
+       for (n = 1; n < argc; n++) {
+           FILE *fp = fopen(argv[n], "r");
+           if (fp != 0) {
+               make_keys(fp, stdout);
+               fclose(fp);
+           }
        }
-       write_list(stdout, suffix);
-       return EXIT_SUCCESS;
+    } else {
+       make_keys(stdin, stdout);
+    }
+    write_list(stdout, suffix);
+    return EXIT_SUCCESS;
 }