X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fkeybindings.c;h=121304bdadd9ed2d773adf6eed374f4c8a034bd4;hb=9a9f9b13bef8394e1b25dc4d67ff72164dd28cce;hp=3809416489b4037857b5bb3a5de6062599772f3e;hpb=e11aa749989942b66dfc4fd7ccb72c2c8e767332;p=plomrogue diff --git a/src/keybindings.c b/src/keybindings.c index 3809416..121304b 100644 --- a/src/keybindings.c +++ b/src/keybindings.c @@ -10,19 +10,21 @@ #include "windows.h" /* for draw_all_wins() and WinMeta struct */ #include "misc.h" /* for texfile_sizes() */ #include "main.h" /* for World struct */ +#include "rexit.h" /* for err_exit() */ extern void init_keybindings(struct World * world) { - FILE * file = fopen("keybindings", "r"); + FILE * file = fopen("config/keybindings", "r"); uint16_t lines, linemax; - textfile_sizes(file, &linemax, &lines); + char * err = "textfile_sizes() in init_keybindings() returns error."; + exit_err(textfile_sizes(file, &linemax, &lines), world, err); struct KeyBinding * keybindings = malloc(lines * sizeof(struct KeyBinding)); char * command = malloc(linemax); uint16_t commcount = 0; char * cmdptr; - while (fgets(command, linemax, file)) + while (fgets(command, linemax + 1, file)) { keybindings[commcount].key = atoi(command); cmdptr = strchr(command, ' ') + 1; @@ -48,7 +50,7 @@ extern void save_keybindings(struct World * world) struct KeysWinData * keyswindata = (struct KeysWinData *) world->keyswindata; struct KeyBinding * keybindings = world->keybindings; - FILE * file = fopen("keybindings", "w"); + FILE * file = fopen("config/keybindings", "w"); uint16_t linemax = 0; uint16_t i; for (i = 0; i <= keyswindata->max; i++) @@ -169,7 +171,8 @@ extern char * get_keyname(uint16_t keycode) extern void keyswin_mod_key(struct World * world, struct WinMeta * win_meta) { world->keyswindata->edit = 1; - draw_all_wins (win_meta); + exit_err(draw_all_wins(win_meta), world, "Trouble with draw_all_wins() in " + "keyswin_mod_key()."); int key = getch(); if (key < 1000) {