X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Finit_keytry.c;h=1669c6414c183c256d3905138e20063c92267b6b;hp=94a6e0c669e2b9a1294d7ba8b4f422ac2a0d4ae6;hb=HEAD;hpb=c6540b9c89dda1a6a8bd681726831e8924176504 diff --git a/ncurses/tinfo/init_keytry.c b/ncurses/tinfo/init_keytry.c index 94a6e0c6..ef20dfb1 100644 --- a/ncurses/tinfo/init_keytry.c +++ b/ncurses/tinfo/init_keytry.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. * + * Copyright 2020,2023 Thomas E. Dickey * + * Copyright 1999-2010,2016 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 * @@ -29,7 +30,7 @@ #include #include /* struct tinfo_fkeys */ -MODULE_ID("$Id: init_keytry.c,v 1.16 2010/01/23 17:10:47 tom Exp $") +MODULE_ID("$Id: init_keytry.c,v 1.20 2023/09/16 12:55:01 tom Exp $") /* ** _nc_init_keytry() @@ -66,7 +67,7 @@ _nc_tinfo_fkeysf(void) NCURSES_EXPORT(void) _nc_init_keytry(SCREEN *sp) { - size_t n; + T(("_nc_init_keytry(%p)", (void *) sp)); /* The sp->_keytry value is initialized in newterm(), where the sp * structure is created, because we can not tell where keypad() or @@ -74,6 +75,8 @@ _nc_init_keytry(SCREEN *sp) */ if (sp != 0) { + unsigned n; + for (n = 0; _nc_tinfo_fkeys[n].code; n++) { if (_nc_tinfo_fkeys[n].offset < STRCOUNT) { (void) _nc_add_to_try(&(sp->_keytry), @@ -90,11 +93,11 @@ _nc_init_keytry(SCREEN *sp) { TERMTYPE *tp = &(sp->_term->type); for (n = STRCOUNT; n < NUM_STRINGS(tp); ++n) { - const char *name = ExtStrname(tp, (size_t) n, strnames); + const char *name = ExtStrname(tp, (int) n, strnames); char *value = tp->Strings[n]; if (name != 0 && *name == 'k' - && value != 0 + && VALID_STRING(value) && NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx value) == 0) { (void) _nc_add_to_try(&(sp->_keytry),