- uint16_t len_new = strlen(text);
- uint16_t len_old = 0;
- uint16_t offset = 0;
- if (world.log)
- {
- len_old = strlen(world.log);
- if (len_old > MAX_BACKLOG_CHARS)
- {
- offset = len_old - MAX_BACKLOG_CHARS;
- len_old = MAX_BACKLOG_CHARS;
- }
- if (text_equals_log_end(world.log + offset, text))
- {
- text = ".";
- }
- }
- uint16_t len_whole = len_old + len_new + 1;
- char * new_text = try_malloc(len_whole, __func__);
- memcpy(new_text, world.log + offset, len_old);
- int test = sprintf(new_text + len_old, "%s", text);
- exit_trouble(test < 0, __func__, s[S_FCN_SPRINTF]);
- free(world.log);
- world.log = new_text;
+ send_to_outfile("LOG ", 0);
+ send_to_outfile(text, 0);
+ send_to_outfile("\n", 1);