X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fclient%2Fwincontrol.c;h=c42516fd1f895180a68ebb89d7b91c27292a05ad;hb=891ba8fbca53d920f6b3704827fa6b8aee737de4;hp=09cff03caaa756b9e095a5ce10b45dc829636da0;hpb=0438f2fc5df337e4264103a86c1765ace9c6565a;p=plomrogue diff --git a/src/client/wincontrol.c b/src/client/wincontrol.c index 09cff03..c42516f 100644 --- a/src/client/wincontrol.c +++ b/src/client/wincontrol.c @@ -7,7 +7,7 @@ #include /* sprintf() */ #include /* free() */ #include /* memcpy(), memset(), strchr(), strlen() */ -#include "../common/rexit.h" /* exit_err() */ +#include "../common/rexit.h" /* exit_err(), exit_trouble() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "windows.h" /* Win,yx_uint16, get_win_by_id(),get_win_pos_in_order() */ #include "world.h" /* global world */ @@ -200,7 +200,8 @@ static void suspend_win(struct Win * w) char next_char = world.winDB.order[i + 1]; world.winDB.order[i] = '\0'; char * second_part = &world.winDB.order[i + 1]; - sprintf(new_order, "%s%s", world.winDB.order, second_part); + int test = sprintf(new_order, "%s%s", world.winDB.order, second_part); + exit_trouble(test < 0, f_name, "sprintf()"); free(world.winDB.order); world.winDB.order = new_order; world.winDB.active = world.winDB.order[i]; @@ -328,10 +329,11 @@ extern void resize_active_win(char change) extern void shift_active_win(char dir) { + char * f_name = "shift_active_win()"; uint8_t len_order = strlen(world.winDB.order); if (1 < len_order) { - char tmp[len_order + 1]; + char * tmp = try_malloc(len_order + 1, f_name); tmp[len_order] = '\0'; uint8_t pos = get_win_pos_in_order(world.winDB.active); if ('f' == dir) @@ -362,6 +364,7 @@ extern void shift_active_win(char dir) world.winDB.order[pos - 1] = world.winDB.active; } } + free(tmp); update_wins(get_win_by_id(world.winDB.order[0])); } }