X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fclient%2Fkeybindings.c;h=fc371e866501f7caf9777f021cda9aa2a074e1df;hb=b366e1f88c64e11f4e6e0cc088b89dd7ffcab25b;hp=4231da492531cf8a832f5e5bc817a8427e724682;hpb=c53b42dfc7e4de104f9189428dd5b9a0d431c00a;p=plomrogue diff --git a/src/client/keybindings.c b/src/client/keybindings.c index 4231da4..fc371e8 100644 --- a/src/client/keybindings.c +++ b/src/client/keybindings.c @@ -1,10 +1,16 @@ -/* src/client/keybindings.c */ +/* src/client/keybindings.c + * + * This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3 + * or any later version. For details on its copyright, license, and warranties, + * see the file NOTICE in the root directory of the PlomRogue source package. + */ #include "keybindings.h" -#include /* keycode defines, cbreak(), halfdelay(), getch() */ +#include /* keycode defines, cbreak(), getch(), timeout() */ #include /* NULL */ #include /* uint8_t, uint16_t, uint32_t */ #include /* FILE, sprintf() */ +#include "../common/rexit.h" /* exit_trouble() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "windows.h" /* draw_all_wins() */ #include "world.h" /* global world */ @@ -51,7 +57,8 @@ static uint8_t try_keycode(uint16_t keycode_given, char * keyname, { if (keycode_given == keycode_match) { - sprintf(keyname, "%s", keyname_match); + int test = sprintf(keyname, "%s", keyname_match); + exit_trouble(test < 0, __func__, "sprintf"); return 1; } return 0; @@ -77,16 +84,15 @@ extern struct Command * get_command_to_keycode(struct KeyBindingDB * kbdb, extern char * get_keyname_to_keycode(uint16_t keycode) { - char * f_name = "get_name_to_keycode()"; - char * keyname = try_malloc(10, f_name); /* max keyname length + 1 */ + char * keyname = try_malloc(10, __func__); /* max keyname length + 1 */ if (32 < keycode && keycode < 127) { - sprintf(keyname, "%c", keycode); + exit_trouble(sprintf(keyname, "%c", keycode) < 0, __func__, "sprintf"); } else if (keycode >= KEY_F0 && keycode <= KEY_F(63)) { uint16_t f = keycode - KEY_F0; - sprintf(keyname, "F%d", f); + exit_trouble(sprintf(keyname, "F%d", f) < 0, __func__, "sprintf");; } else if ( try_keycode(keycode, keyname, 9, "TAB") || try_keycode(keycode, keyname, 10, "RETURN") @@ -108,7 +114,7 @@ extern char * get_keyname_to_keycode(uint16_t keycode) } else { - sprintf(keyname, "(unknown)"); + exit_trouble(sprintf(keyname, "(unknown)") < 0, __func__, "sprintf"); } return keyname; } @@ -121,8 +127,9 @@ extern void mod_selected_keyb(char kb_c) kbdb->edit = 1; draw_all_wins(); cbreak(); + timeout(-1); int keycode = getch(); - halfdelay(world.halfdelay); + timeout(0); if (keycode < 1000) { kbdb->kbs[kbdb->select].keycode = keycode;