+ uint32_t x, i, n_postbreak_lines;
+ for (i = 0, x = 0, n_postbreak_lines = 0; i < strlen(world.log); i++)
+ {
+ exit_err(i == UINT32_MAX, "Log too large.");
+ x++;
+ n_postbreak_lines = n_postbreak_lines + (x == win->frame_size.x);
+ n_postbreak_lines = n_postbreak_lines + ('\n' == world.log[i]);
+ x = ((x == win->frame_size.x) || ('\n' == world.log[i])) ? 0 : x;
+ }
+ if (n_postbreak_lines > win->frame_size.y)
+ {
+ uint32_t size = n_postbreak_lines * (win->frame_size.x + 1);
+ win->winmap = try_malloc(sizeof(chtype) * size, __func__);
+ for (i = 0; i < size; win->winmap[i] = ' ', i++);
+ do_realloc_winmap = 0;
+ draw_text_from_bottom(win, world.log);
+ do_realloc_winmap = 1;
+ return;
+ }