nio

a simple irc client
git clone git@git.kloet.net/nio.git
Download | Log | Files | Refs | README

commit 1c4a83b81f92884d7add4962151f16b74637a0c5
parent 01cb7d3ebee300dac6af2e8d835af425ec66e6e4
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date:   Tue,  3 May 2016 21:54:34 -0400

remove meaningless logic, handle tiny screens

Diffstat:
Mirc.c | 18+++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)

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)