/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2011 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 *
#include <dump_entry.h>
-MODULE_ID("$Id: infocmp.c,v 1.102 2008/08/04 13:05:18 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.106 2011/05/14 22:51:04 tom Exp $")
#define L_CURL "{"
#define R_CURL "}"
static const char *s_absent = "NULL";
static const char *s_cancel = "NULL";
static const char *tversion; /* terminfo version selected */
-static int itrace; /* trace flag for debugging */
+static unsigned itrace; /* trace flag for debugging */
static int mwidth = 60;
static int numbers = 0; /* format "%'char'" to/from "%{number}" */
static int outform = F_TERMINFO; /* output format */
useeq(ENTRY * e1, ENTRY * e2)
/* are the use references in two entries equivalent? */
{
- int i, j;
+ unsigned i, j;
if (e1->nuses != e2->nuses)
return (FALSE);
print_uses(ENTRY * ep, FILE *fp)
/* print an entry's use references */
{
- int i;
+ unsigned i;
if (!ep->nuses)
fputs("NULL", fp);
}
static bool
-same_param(const char *table, const char *param, unsigned length)
+same_param(const char *table, const char *param, size_t length)
{
bool result = FALSE;
if (strncmp(table, param, length) == 0) {
if (!expansion) {
csi = skip_csi(sp);
for (ap = std_caps; ap->from; ap++) {
- size_t adj = (size_t)(csi ? 2 : 0);
+ size_t adj = (size_t) (csi ? 2 : 0);
len = strlen(ap->from);
if (csi && skip_csi(ap->from) != csi)
(void) printf("The following entries are equivalent:\n");
for (qp = heads[0]; qp; qp = qp->next) {
- rp = qp->crosslinks[0];
-
if (qp->ncrosslinks == 1) {
rp = qp->crosslinks[0];
*tp++ = '"';
*tp = '\0';
(void) printf("static char %-20s[] = %s;\n",
- string_variable(ExtStrname(term, n, strnames)), buf);
+ string_variable(ExtStrname(term, (int) n, strnames)),
+ buf);
}
}
printf("\n");
break;
}
(void) printf("\t/* %3u: %-8s */\t%s,\n",
- n, ExtBoolname(term, n, boolnames), str);
+ n, ExtBoolname(term, (int) n, boolnames), str);
}
(void) printf("%s;\n", R_CURL);
break;
}
(void) printf("\t/* %3u: %-8s */\t%s,\n", n,
- ExtNumname(term, n, numnames), str);
+ ExtNumname(term, (int) n, numnames), str);
}
(void) printf("%s;\n", R_CURL);
else if (term->Strings[n] == CANCELLED_STRING)
str = "CANCELLED_STRING";
else {
- str = string_variable(ExtStrname(term, n, strnames));
+ str = string_variable(ExtStrname(term, (int) n, strnames));
}
(void) printf("\t/* %3u: %-8s */\t%s,\n", n,
- ExtStrname(term, n, strnames), str);
+ ExtStrname(term, (int) n, strnames), str);
}
(void) printf("%s;\n", R_CURL);
name_initializer("string_ext"), L_CURL);
for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) {
(void) printf("\t/* %3u: bool */\t\"%s\",\n",
- n, ExtBoolname(term, n, boolnames));
+ n, ExtBoolname(term, (int) n, boolnames));
}
for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
(void) printf("\t/* %3u: num */\t\"%s\",\n",
- n, ExtNumname(term, n, numnames));
+ n, ExtNumname(term, (int) n, numnames));
}
for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
(void) printf("\t/* %3u: str */\t\"%s\",\n",
- n, ExtStrname(term, n, strnames));
+ n, ExtStrname(term, (int) n, strnames));
}
(void) printf("%s;\n", R_CURL);
}
*
***************************************************************************/
+#if NO_LEAKS
+#define MAIN_LEAKS() \
+ free(myargv); \
+ free(tfile); \
+ free(tname)
+#else
+#define MAIN_LEAKS() /* nothing */
+#endif
+
int
main(int argc, char *argv[])
{
/* Also avoid overflowing smaller stacks on systems like AmigaOS */
path *tfile = 0;
char **tname = 0;
- int maxterms;
+ size_t maxterms;
char **myargv;
_nc_progname = _nc_rootname(argv[0]);
/* make sure we have enough space to add two terminal entries */
- myargv = typeCalloc(char *, (size_t)(argc + 3));
+ myargv = typeCalloc(char *, (size_t) (argc + 3));
memcpy(myargv, argv, (sizeof(char *) * (size_t) argc));
argv = myargv;
ExitProgram(EXIT_SUCCESS);
case 'v':
- itrace = optarg_to_number();
+ itrace = (unsigned) optarg_to_number();
set_trace_level(itrace);
break;
}
}
- maxterms = (argc + 2 - optind);
+ maxterms = (size_t) (argc + 2 - optind);
tfile = typeMalloc(path, maxterms);
tname = typeCalloc(char *, maxterms);
entries = typeCalloc(ENTRY, maxterms);
#else
(void) fprintf(stderr, "%s: terminfo files not supported\n",
_nc_progname);
+ MAIN_LEAKS();
ExitProgram(EXIT_FAILURE);
#endif
} else {
status = _nc_read_entry(tname[termcount],
tfile[termcount],
&entries[termcount].tterm);
- directory = TERMINFO; /* for error message */
}
if (status <= 0) {
"%s: couldn't open terminfo file %s.\n",
_nc_progname,
tfile[termcount]);
+ MAIN_LEAKS();
ExitProgram(EXIT_FAILURE);
}
repair_acsc(&entries[termcount].tterm);
else
file_comparison(argc - optind, argv + optind);
-#if NO_LEAKS
- free(myargv);
- free(tfile);
- free(tname);
-#endif
+ MAIN_LEAKS();
ExitProgram(EXIT_SUCCESS);
}