- char * f_name = "update_log()";
- uint16_t len_new = strlen(text);
- uint16_t len_old = 0;
- if (world.log)
- {
- len_old = strlen(world.log);
- uint16_t last_nl = len_old - 1;
- while (last_nl != 0)
- {
- if ('\n' == world.log[last_nl])
- {
- break;
- }
- last_nl--;
- }
- uint16_t last_stop = len_old - 1;
- while (last_stop != 0)
- {
- if ('.' == world.log[last_stop] && '.' != world.log[last_stop - 1])
- {
- break;
- }
- last_stop--;
- }
- if ( (last_stop + 1) - last_nl == (uint16_t) strlen(text)
- && 0 == strncmp(world.log + last_nl, text, strlen(text)))
- {
- text = ".";
- }
- }
- uint16_t len_whole = len_old + len_new + 1;
- char * new_text = try_malloc(len_whole, f_name);
- memcpy(new_text, world.log, len_old);
- sprintf(new_text + len_old, "%s", text);
- free(world.log);
- world.log = new_text;
+ send_to_outfile("LOG ", 0);
+ send_to_outfile(text, 0);
+ send_to_outfile("\n", 1);