X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/cards/%7B%7Bcard_id%7D%7D/static/gitweb.css?a=blobdiff_plain;f=src%2Fclient%2Fcontrol.c;h=43041eaef820b02ad60f938211cb45ffd2d9f853;hb=7e43b1fff89706212291384ddaa762fa30b02cb4;hp=1961334c0015064f103b825f64aaf89651652000;hpb=539f4419afa0966d67b341dc6b30a6174bd3f844;p=plomrogue diff --git a/src/client/control.c b/src/client/control.c index 1961334..43041ea 100644 --- a/src/client/control.c +++ b/src/client/control.c @@ -1,15 +1,16 @@ /* src/client/control.c */ #include "control.h" -#include /* uint8_t, uint16_t */ +#include /* uint8_t, uint16_t, uint32_t, UINT32_MAX */ #include /* sprintf() */ #include /* strlen() */ +#include "../common/rexit.h" /* exit_err() */ #include "interface_conf.h" /* reload_interface_conf(), save_interface_conf() */ #include "io.h" /* send() */ #include "keybindings.h" /* get_command_to_keycode(), get_keycode_to_command(), * mod_selected_keyb(), move_keyb_selection() */ -#include "map.h" /* for map_scroll(), map_center() */ +#include "map.h" /* for map_scroll(), map_center(), toggle_autofocus() */ #include "wincontrol.h" /* shift_active_win(), resize_active_win(), * toggle_win_size_type(), toggle_window(), * cycle_active_win(), scroll_v_screen(), @@ -54,7 +55,9 @@ static void nav_inventory(char dir) return; } uint8_t n_elems = 0; - uint8_t i; + uint32_t i; + char * err = "Inventory string is too large."; + exit_err(UINT32_MAX <= strlen(world.player_inventory), err); for (i = 0; '\0' != world.player_inventory[i]; i++) { n_elems = n_elems + ('\n' == world.player_inventory[i]); @@ -104,6 +107,7 @@ static uint8_t try_2args(struct Command * command, char * match, static uint8_t try_client_commands(struct Command * command) { return ( try_0args(command, "map_c", map_center) + || try_0args(command, "to_autofocus", toggle_autofocus) || try_1args(command, "map_u", map_scroll, '8') || try_1args(command, "map_d", map_scroll, '2') || try_1args(command, "map_r", map_scroll, '6')