]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/make_keys.c
ncurses 5.7 - patch 20100605
[ncurses.git] / ncurses / tinfo / make_keys.c
index 3c98da23e019ba5b1a7c1300122cfc3f6d9f28d1..a7854e3fe604be840dbd885fe7281b3b5111640b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2008,2010 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.
  */
-#include <curses.priv.h>
 
-MODULE_ID("$Id: make_keys.c,v 1.10 2000/12/10 02:55:08 tom Exp $")
+#define USE_TERMLIB 1
+#include <build.priv.h>
+
+MODULE_ID("$Id: make_keys.c,v 1.19 2010/06/05 22:08:00 tom Exp $")
 
 #include <names.c>
 
-#define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames))
+#define UNKNOWN (unsigned) (SIZEOF(strnames) + SIZEOF(strfnames))
 
-static size_t
+static unsigned
 lookup(const char *name)
 {
-    size_t n;
+    unsigned n;
     bool found = FALSE;
     for (n = 0; strnames[n] != 0; n++) {
        if (!strcmp(name, strnames[n])) {
@@ -66,25 +68,31 @@ lookup(const char *name)
 }
 
 static void
-make_keys(FILE * ifp, FILE * ofp)
+make_keys(FILE *ifp, FILE *ofp)
 {
     char buffer[BUFSIZ];
-    char from[BUFSIZ];
-    char to[BUFSIZ];
-    int maxlen = 16;
+    char from[256];
+    char to[256];
+    unsigned maxlen = 16;
+    int scanned;
 
     while (fgets(buffer, sizeof(buffer), ifp) != 0) {
        if (*buffer == '#')
            continue;
-       if (sscanf(buffer, "%s %s", to, from) == 2) {
-           int code = lookup(from);
+
+       to[sizeof(to) - 1] = '\0';
+       from[sizeof(from) - 1] = '\0';
+
+       scanned = sscanf(buffer, "%255s %255s", to, from);
+       if (scanned == 2) {
+           unsigned code = lookup(from);
            if (code == UNKNOWN)
                continue;
-           if ((int) strlen(from) > maxlen)
-               maxlen = strlen(from);
-           fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n",
+           if (strlen(from) > maxlen)
+               maxlen = (unsigned) strlen(from);
+           fprintf(ofp, "\t{ %4u, %-*.*s },\t/* %s */\n",
                    code,
-                   maxlen, maxlen,
+                   (int) maxlen, (int) maxlen,
                    to,
                    from);
        }
@@ -92,7 +100,7 @@ make_keys(FILE * ifp, FILE * ofp)
 }
 
 static void
-write_list(FILE * ofp, const char **list)
+write_list(FILE *ofp, const char **list)
 {
     while (*list != 0)
        fprintf(ofp, "%s\n", *list++);
@@ -111,7 +119,7 @@ main(int argc, char *argv[])
        "#if BROKEN_LINKER",
        "static",
        "#endif",
-       "struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
+       "const struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
        0
     };
     static const char *suffix[] =