home · contact · privacy
Client: Fix buggy log window size pre-calculating triggering segfaults.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 29 Jan 2015 05:16:31 +0000 (06:16 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 29 Jan 2015 05:16:31 +0000 (06:16 +0100)
src/client/draw_wins.c

index d45bb1e78adcb889ee4ee82ed137d24ab5a8bde7..ec2917347903b5ae6b44f4907fe7b291127c26c3 100644 (file)
@@ -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)
     {