]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - gui.c
Merge branch 't/gvf'
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index eba1e2a59331564a40677a123d1220dc9120c059..578eeed0c96d502767a57b5cb80f0cad2c9cfc07 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -22,6 +22,7 @@
 #include "list.h"
 #include "sched.h"
 #include "signal.h"
+#include "version.h"
 
 /** define the array of error lists needed by para_gui */
 INIT_GUI_ERRLISTS;
@@ -33,10 +34,10 @@ static int signal_pipe;
 
 static struct win_data {
        WINDOW *win;
-       NCURSES_SIZE_T begx;
-       NCURSES_SIZE_T begy;
-       NCURSES_SIZE_T cols;
-       NCURSES_SIZE_T lines;
+       size_t begx;
+       size_t begy;
+       size_t cols;
+       size_t lines;
 } top, bot, sb, in, sep;
 
 #define RINGBUFFER_SIZE 512
@@ -400,11 +401,13 @@ static int draw_top_rbe(unsigned *lines)
        rbe = ringbuffer_get(bot_win_rb, fvr);
        if (!rbe)
                return -1;
-       /* first rbe might be only partially visible */
-       offset = (*lines - bot.lines) * bot.cols;
        len = strlen(rbe->msg);
-       if (offset < 0 || len < offset)
-               return -1;
+       if (*lines > bot.lines) {
+               /* first rbe is only partially visible */
+               offset = (*lines - bot.lines) * bot.cols;
+               assert(offset <= len);
+       } else
+               offset = 0;
        wattron(bot.win, COLOR_PAIR(rbe->color));
        waddstr(bot.win, rbe->msg + offset);
        *lines = NUM_LINES(len - offset);