X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fcommand_db.c;h=61ae4b11ba718777de7af6292249b687cd8c6cd3;hb=0e6c855b67e0cd3def7196396f3d1f45ff85b692;hp=0d4cb944d56cc94cba117ae6d06a1965525d6429;hpb=b97faa0009abc699ab7bff7bcc3221b8b3104e12;p=plomrogue diff --git a/src/command_db.c b/src/command_db.c index 0d4cb94..61ae4b1 100644 --- a/src/command_db.c +++ b/src/command_db.c @@ -7,7 +7,7 @@ #include /* for strlen(), strtok() */ #include "main.h" /* for World struct */ #include "rexit.h" /* for exit_err() */ -#include "misc.h" /* for textfile_sizes() */ +#include "readwrite.h" /* for textfile_sizes() */ @@ -87,20 +87,18 @@ extern void init_command_db(struct World * world) exit_err(NULL == file, world, err_o); uint16_t lines, linemax; exit_err(textfile_sizes(file, &linemax, &lines), world, err_s); + char line[linemax + 1]; - char * line = malloc(linemax); - exit_err(NULL == line, world, err_m); struct Command * cmds = malloc(lines * sizeof(struct Command)); exit_err(NULL == line, world, err_m); uint8_t i = 0; - while (fgets(line, linemax, file)) + while (fgets(line, linemax + 1, file)) { cmds[i].id = atoi(strtok(line, " ")); copy_tokenized_string(world, &cmds[i].dsc_short, " ", err_m); copy_tokenized_string(world, &cmds[i].dsc_long, "\n", err_m); i++; } - free(line); exit_err(fclose(file), world, err_c); world->cmd_db = malloc(sizeof(struct CommandDB));