From eda9c448812827e36b71fa1c3eb76d0fb906b57d Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Thu, 29 Jan 2015 06:16:31 +0100 Subject: [PATCH] Client: Fix buggy log window size pre-calculating triggering segfaults. --- src/client/draw_wins.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/client/draw_wins.c b/src/client/draw_wins.c index d45bb1e..ec29173 100644 --- a/src/client/draw_wins.c +++ b/src/client/draw_wins.c @@ -354,13 +354,15 @@ extern void draw_win_log(struct Win * win) return; } uint32_t x, i, n_postbreak_lines; - for (i = 0, x = 0, n_postbreak_lines = 0; i < strlen(world.log); i++) + for (i = 0, x = 0, n_postbreak_lines = 1; 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 (x > win->frame_size.x || '\n' == world.log[i]) + { + n_postbreak_lines++; + x = 0; + } } if (n_postbreak_lines > win->frame_size.y) { -- 2.30.2