remove meaningless logic, handle tiny screens - irc - Unnamed repository; edit this file 'description' to name the repository.
 (HTM) git clone git://vernunftzentrum.de/irc.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 1c4a83b81f92884d7add4962151f16b74637a0c5
 (DIR) parent 01cb7d3ebee300dac6af2e8d835af425ec66e6e4
 (HTM) Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
       Date:   Tue,  3 May 2016 21:54:34 -0400
       
       remove meaningless logic, handle tiny screens
       
       Diffstat:
         irc.c                               |      18 +++++-------------
       
       1 file changed, 5 insertions(+), 13 deletions(-)
       ---
 (DIR) diff --git a/irc.c b/irc.c
       @@ -440,6 +440,8 @@ tresize(void)
                winchg = 0;
                if (ioctl(0, TIOCGWINSZ, &ws) < 0)
                        panic("Ioctl (TIOCGWINSZ) failed.");
       +        if (ws.ws_row <= 2)
       +                return;
                resizeterm(scr.y = ws.ws_row, scr.x = ws.ws_col);
                wresize(scr.mw, scr.y - 2, scr.x);
                wresize(scr.iw, 1, scr.x);
       @@ -454,7 +456,7 @@ tredraw(void)
        {
                struct Chan *const c = &chl[ch];
                char *q, *p;
       -        int llen = 0, nl = -1;
       +        int nl = -1;
        
                if (c->eol == c->buf) {
                        wclear(scr.mw);
       @@ -464,7 +466,6 @@ tredraw(void)
                p = c->eol - 1;
                if (c->n) {
                        int i = c->n;
       -
                        for (; p > c->buf; p--)
                                if (*p == '\n' && !i--)
                                        break;
       @@ -473,24 +474,15 @@ tredraw(void)
                }
                q = p;
                while (nl < scr.y - 2) {
       -                llen = 0;
                        while (*q != '\n' && q > c->buf)
       -                        q--, llen++;
       -                nl += 1 + llen / scr.x;
       +                        q--;
       +                nl++;
                        if (q == c->buf)
                                break;
                        q--;
                }
                if (q != c->buf)
                        q += 2;
       -        for (llen = 0; nl > scr.y - 2;) { /* Maybe we must split the top line. */
       -                if (q[llen] == '\n' || llen >= scr.x) {
       -                        q += llen + (q[llen] == '\n');
       -                        llen = 0;
       -                        nl--;
       -                } else
       -                        llen++;
       -        }
                wclear(scr.mw);
                wmove(scr.mw, 0, 0);
                while (q < p)