#include <curses.priv.h>
-MODULE_ID("$Id: define_key.c,v 1.10 2006/06/17 18:19:48 tom Exp $")
+MODULE_ID("$Id: define_key.c,v 1.13 2006/12/30 23:23:31 tom Exp $")
NCURSES_EXPORT(int)
define_key(const char *str, int keycode)
if (SP == 0) {
code = ERR;
} else if (keycode > 0) {
+ unsigned ukey = (unsigned) keycode;
+
if (str != 0) {
define_key(str, 0);
} else if (has_key(keycode)) {
- while (_nc_remove_key(&(SP->_keytry), (unsigned) keycode))
+ while (_nc_remove_key(&(SP->_keytry), ukey))
code = OK;
}
if (str != 0) {
if (key_defined(str) == 0) {
- (void) _nc_add_to_try(&(SP->_keytry), str, (unsigned) keycode);
- code = OK;
+ if (_nc_add_to_try(&(SP->_keytry), str, ukey) == OK) {
+ code = OK;
+ } else {
+ code = ERR;
+ }
} else {
code = ERR;
}