X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fclient%2Finterface_conf.c;h=e3bfd022a5db6d3c61c1757d1819cb894935849a;hb=1bfcaf6f47bb2eb06c071e39b6f93c92a15d4de6;hp=1a4a4ce04c26cbcba68196d97948772af37c9c40;hpb=84bac26d9f4c37599fa0ad2a51d729480fccbadf;p=plomrogue diff --git a/src/client/interface_conf.c b/src/client/interface_conf.c index 1a4a4ce..e3bfd02 100644 --- a/src/client/interface_conf.c +++ b/src/client/interface_conf.c @@ -9,7 +9,7 @@ #include /* FILE, sprintf() */ #include /* strchr(), strcmp(), strdup(), strlen() */ #include /* optarg, getopt() */ -#include "../common/parse_file.h" /* EDIT_STARTED, parse_file(), parse_val(), +#include "../common/parse_file.h" /* EDIT_STARTED, parse_file(),parse_flagval(), * token_from_line(), parsetest_singlechar(), * parse_and_reduce_to_readyflag(), * parsetest_defcontext(),parse_unknown_arg(), @@ -102,11 +102,11 @@ static uint8_t start_kbd(char * token0, char * token1, char * str_kbd, /* Helper to tokens_into_entries(), sets specific entry member data. "token0" * and the state of flags determine what entry member to edit; "win" and "kbdb" * are entries to write "token1" data into (as is the global "tmp_active"). If - * "token0" is "KEY", a keybinding is defined and "token2" is read / must not be - * NULL. In that case, the line read is checked against having a 4th token. + * "token0" is "str_key", a keybinding is defined and "token2" is read/must not + * be NULL. In that case, the line read is checked against having a 4th token. */ static uint8_t set_members(char * token0, char * token1, uint8_t * win_flags, - uint8_t * ord_flags, uint8_t kbd_flags, + uint8_t * ord_flags,uint8_t kbd_flags,char * str_key, struct Win * win, struct KeyBindingDB * kbdb); /* Add keybinding defined in "token1" as keycode and "token2" as command to @@ -143,7 +143,7 @@ static void write_def(FILE * file, char * prefix, uint8_t quotes, char * val, char type) { char * f_name = "write_def()"; - char * val_str; + char * val_str = NULL; int test_val_str = 1; if ('s' == type) { @@ -182,6 +182,7 @@ static void tokens_into_entries(char * token0, char * token1) char * str_win = "WINDOW"; char * str_ord = "WIN_ORDER"; char * str_kbd = "KEYBINDINGS"; + char * str_key = "KEY"; static uint8_t win_flags = READY_WIN; static uint8_t ord_flags = READY_ORD; static uint8_t kbd_flags = READY_KBD; @@ -197,7 +198,7 @@ static void tokens_into_entries(char * token0, char * token1) } if (token0) { - if (strcmp(token0, "KEY")) + if (strcmp(token0, str_key)) { parsetest_too_many_values(); } @@ -205,7 +206,7 @@ static void tokens_into_entries(char * token0, char * token1) || start_ord(token0, token1, str_ord, &ord_flags) || start_kbd(token0, token1, str_kbd, &kbd_flags, &kbdb) || set_members(token0, token1, &win_flags, &ord_flags, kbd_flags, - win, kbdb))) + str_key, win, kbdb))) { parse_unknown_arg(); } @@ -307,29 +308,29 @@ static uint8_t start_kbd(char * token0, char * token1, char * str_kbd, static uint8_t set_members(char * token0, char * token1, uint8_t * win_flags, - uint8_t * ord_flags, uint8_t kbd_flags, + uint8_t * ord_flags,uint8_t kbd_flags,char * str_key, struct Win * win, struct KeyBindingDB * kbdb) { - if ( parse_val(token0, token1, "NAME", win_flags, - NAME_SET, 's', (char *) &win->title) - || parse_val(token0, token1, "WIDTH", win_flags, - WIDTH_SET, 'i', (char *) &win->target_width) - || parse_val(token0, token1, "HEIGHT", win_flags, - HEIGHT_SET, 'i', (char *) &win->target_height)); - else if (parse_val(token0, token1, "BREAK", win_flags, - BREAK_SET, '8', (char *) &win->linebreak)) + if ( parse_flagval(token0, token1, "NAME", win_flags, + NAME_SET, 's', (char *) &win->title) + || parse_flagval(token0, token1, "WIDTH", win_flags, + WIDTH_SET, 'i', (char *) &win->target_width) + || parse_flagval(token0, token1, "HEIGHT", win_flags, + HEIGHT_SET, 'i', (char *) &win->target_height)); + else if (parse_flagval(token0, token1, "BREAK", win_flags, + BREAK_SET, '8', (char *) &win->linebreak)) { err_line(2 < win->linebreak, "Value must be 0, 1 or 2."); } - else if (parse_val(token0, token1, "WIN_FOCUS", ord_flags, - FOCUS_SET, 'c', &tmp_active)) + else if (parse_flagval(token0, token1, "WIN_FOCUS", ord_flags, + FOCUS_SET, 'c', &tmp_active)) { char * err_null = "Value not empty as it should be."; char * err_outside = "ID not found in WIN_ORDER ID series."; err_line(!strlen(tmp_order) && tmp_active, err_null); err_line(!strchr(tmp_order, tmp_active), err_outside); } - else if (!strcmp(token0, "KEY")) + else if (!strcmp(token0, str_key)) { if (*win_flags & EDIT_STARTED) {