X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=sidebyside;f=src%2Fclient%2Fwincontrol.c;h=85750ec1f5005c9c1cc6ead76e808aa2fb7f6959;hb=28d6fed30bc0501d5452c7fbdf41125ea8bef318;hp=09cff03caaa756b9e095a5ce10b45dc829636da0;hpb=0438f2fc5df337e4264103a86c1765ace9c6565a;p=plomrogue
diff --git a/src/client/wincontrol.c b/src/client/wincontrol.c
index 09cff03..85750ec 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 */
@@ -177,9 +177,8 @@ static void set_win_target_size(struct Win * w)
static void append_win(struct Win * w)
{
- char * f_name = "append_win()";
uint8_t old_size = strlen(world.winDB.order) + 1;
- char * new_order = try_malloc(old_size + 1, f_name);
+ char * new_order = try_malloc(old_size + 1, __func__);
memcpy(new_order, world.winDB.order, old_size - 1);
new_order[old_size - 1] = w->id;
new_order[old_size] = '\0';
@@ -193,14 +192,14 @@ static void append_win(struct Win * w)
static void suspend_win(struct Win * w)
{
- char * f_name = "suspend_win()";
uint8_t new_size = strlen(world.winDB.order);
- char * new_order = try_malloc(new_size, f_name);
+ char * new_order = try_malloc(new_size, __func__);
uint8_t i = get_win_pos_in_order(w->id);
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, __func__, "sprintf");
free(world.winDB.order);
world.winDB.order = new_order;
world.winDB.active = world.winDB.order[i];
@@ -331,7 +330,7 @@ extern void shift_active_win(char dir)
uint8_t len_order = strlen(world.winDB.order);
if (1 < len_order)
{
- char tmp[len_order + 1];
+ char * tmp = try_malloc(len_order + 1, __func__);
tmp[len_order] = '\0';
uint8_t pos = get_win_pos_in_order(world.winDB.active);
if ('f' == dir)
@@ -362,6 +361,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]));
}
}