X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Ftoe.c;h=5abb46de1ea90875b9256a63e1ab79b298309933;hp=f60d84e853c027981272ea2ea15a58ae05049a13;hb=7d6371e47006c8aef4ac94f52998a35b03bf89cf;hpb=98d8891f42d8acac5c2ade39d163f386057a22e4 diff --git a/progs/toe.c b/progs/toe.c index f60d84e8..5abb46de 100644 --- a/progs/toe.c +++ b/progs/toe.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * Copyright (c) 1998-2013,2017 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 * @@ -44,7 +44,7 @@ #include #endif -MODULE_ID("$Id: toe.c,v 1.70 2012/11/17 23:39:42 tom Exp $") +MODULE_ID("$Id: toe.c,v 1.77 2017/12/23 19:23:40 tom Exp $") #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, "..")) @@ -232,9 +232,9 @@ make_db_name(char *dst, const char *src, unsigned limit) static const char suffix[] = DBM_SUFFIX; bool result = FALSE; - unsigned lens = sizeof(suffix) - 1; - unsigned size = strlen(src); - unsigned need = lens + size; + size_t lens = sizeof(suffix) - 1; + size_t size = strlen(src); + size_t need = lens + size; if (need <= limit) { if (size >= lens @@ -252,22 +252,25 @@ make_db_name(char *dst, const char *src, unsigned limit) typedef void (DescHook) (int /* db_index */ , int /* db_limit */ , const char * /* term_name */ , - TERMTYPE * /* term */ ); + TERMTYPE2 * /* term */ ); static const char * -term_description(TERMTYPE *tp) +term_description(TERMTYPE2 *tp) { const char *desc; - if ((desc = strrchr(tp->term_names, '|')) == 0 || *++desc == '\0') + if (tp->term_names == 0 + || (desc = strrchr(tp->term_names, '|')) == 0 + || (*++desc == '\0')) { desc = "(No description)"; + } return desc; } /* display a description for the type */ static void -deschook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp) +deschook(int db_index, int db_limit, const char *term_name, TERMTYPE2 *tp) { (void) db_index; (void) db_limit; @@ -291,7 +294,7 @@ string_sum(const char *value) } static unsigned long -checksum_of(TERMTYPE *tp) +checksum_of(TERMTYPE2 *tp) { unsigned long result = string_sum(tp->term_names); unsigned i; @@ -310,7 +313,7 @@ checksum_of(TERMTYPE *tp) /* collect data, to sort before display */ static void -sorthook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp) +sorthook(int db_index, int db_limit, const char *term_name, TERMTYPE2 *tp) { TERMDATA *data = new_termdata(); @@ -320,11 +323,11 @@ sorthook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp) data->description = strmalloc(term_description(tp)); } -#if USE_TERMCAP +#if NCURSES_USE_TERMCAP static void show_termcap(int db_index, int db_limit, char *buffer, DescHook hook) { - TERMTYPE data; + TERMTYPE2 data; char *next = strchr(buffer, ':'); char *last; char *list = buffer; @@ -347,7 +350,7 @@ show_termcap(int db_index, int db_limit, char *buffer, DescHook hook) } #endif -#if USE_DATABASE +#if NCURSES_USE_DATABASE static char * copy_entryname(DIRENT * src) { @@ -364,14 +367,14 @@ copy_entryname(DIRENT * src) static int typelist(int eargc, char *eargv[], - bool verbosity, + int verbosity, DescHook hook) /* apply a function to each entry in given terminfo directories */ { int i; for (i = 0; i < eargc; i++) { -#if USE_DATABASE +#if NCURSES_USE_DATABASE if (_nc_is_dir_path(eargv[i])) { char *cwd_buf = 0; DIR *termdir; @@ -421,7 +424,7 @@ typelist(int eargc, char *eargv[], } while ((entry = readdir(entrydir)) != 0) { char *name_2; - TERMTYPE lterm; + TERMTYPE2 lterm; char *cn; int status; @@ -437,11 +440,8 @@ typelist(int eargc, char *eargv[], (void) fprintf(stderr, "%s: couldn't open terminfo file %s.\n", _nc_progname, name_2); - free(cwd_buf); free(name_2); - closedir(entrydir); - closedir(termdir); - return (EXIT_FAILURE); + continue; } /* only visit things once, by primary name */ @@ -450,7 +450,7 @@ typelist(int eargc, char *eargv[], /* apply the selected hook function */ hook(i, eargc, cn, <erm); } - _nc_free_termtype(<erm); + _nc_free_termtype2(<erm); free(name_2); } closedir(entrydir); @@ -475,7 +475,7 @@ typelist(int eargc, char *eargv[], code = _nc_db_first(capdbp, &key, &data); while (code == 0) { - TERMTYPE lterm; + TERMTYPE2 lterm; int used; char *have; char *cn; @@ -486,7 +486,7 @@ typelist(int eargc, char *eargv[], cn = _nc_first_name(lterm.term_names); /* apply the selected hook function */ hook(i, eargc, cn, <erm); - _nc_free_termtype(<erm); + _nc_free_termtype2(<erm); } } code = _nc_db_next(capdbp, &key, &data); @@ -499,7 +499,7 @@ typelist(int eargc, char *eargv[], } #endif #endif -#if USE_TERMCAP +#if NCURSES_USE_TERMCAP #if HAVE_BSD_CGETENT { CGETENT_CONST char *db_array[2]; @@ -718,7 +718,7 @@ main(int argc, char *argv[]) DBDIRS state; int offset; const char *path; - char **eargv = allocArgv(2); + char **eargv = allocArgv((size_t) 2); size_t count = 0; if (eargv == 0)