#include <stdio.h> /* sprintf() */
#include <stdlib.h> /* free() */
#include <string.h> /* strlen(), strcmp(), memcpy(), strncmp() */
-#include "../common/rexit.h" /* exit_err() */
+#include "../common/rexit.h" /* exit_err(), exit_trouble() */
#include "../common/try_malloc.h" /* try_malloc() */
#include "../common/yx_uint8.h" /* struct yx_uint8 */
#include "field_of_view.h" /* build_fov_map() */
uint16_t len_whole = len_old + len_new + 1;
char * new_text = try_malloc(len_whole, f_name);
memcpy(new_text, world.log + offset, len_old);
- sprintf(new_text + len_old, "%s", text);
+ int test = sprintf(new_text + len_old, "%s", text);
+ exit_trouble(test < 0, f_name, "sprintf()");
free(world.log);
world.log = new_text;
}
static void actor_hits_actor(struct Thing * hitter, struct Thing * hitted)
{
+ char * f_name = "actor_hits_actor()";
struct ThingType * tt_hitter = get_thing_type(hitter->type);
struct ThingType * tt_hitted = get_thing_type(hitted->type);
struct Thing * player = get_player();
msg3 = tt_hitted->name;
}
uint8_t len = 1 + strlen(msg1) + 1 + strlen(msg2) + 1 + strlen(msg3) + 2;
- char msg[len];
- sprintf(msg, "\n%s %s %s.", msg1, msg2, msg3);
+ char * msg = try_malloc(len, f_name);
+ int test = sprintf(msg, "\n%s %s %s.", msg1, msg2, msg3);
+ exit_trouble(test < 0, f_name, "sprintf()");
update_log(msg);
+ free(msg);
hitted->lifepoints--;
if (0 == hitted->lifepoints)
{
static void playerbonus_move(char d, uint8_t passable)
{
+ char * f_name = "playerbonus_move()";
char * dsc_dir = "north-east";
if ( match_dir(d, &dsc_dir, 'd', "east")
|| match_dir(d, &dsc_dir, 'c', "south-east")
{
dsc_move = "You fail to move ";
}
- char msg[strlen(dsc_move) + strlen (dsc_dir) + 3];
- sprintf(msg, "\n%s%s.", dsc_move, dsc_dir);
+ char * msg = try_malloc(strlen(dsc_move) + strlen (dsc_dir) + 3, f_name);
+ int test = sprintf(msg, "\n%s%s.", dsc_move, dsc_dir);
+ exit_trouble(test < 0, f_name, "sprintf()");
update_log(msg);
+ free(msg);
}