X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=sidebyside;f=src%2Fclient%2Fkeybindings.c;h=fc371e866501f7caf9777f021cda9aa2a074e1df;hb=28ecacb349cf5b46c5b87dafef0ad980aa648d13;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;