diff options
| author | Quentin Carbonneaux | 2016-05-03 21:54:34 -0400 |
|---|---|---|
| committer | Quentin Carbonneaux | 2016-05-03 21:54:34 -0400 |
| commit | 1c4a83b81f92884d7add4962151f16b74637a0c5 (patch) | |
| tree | fe1b18362ea8bf6221a79f3ac2fb6e1b3404f435 | |
| parent | 01cb7d3ebee300dac6af2e8d835af425ec66e6e4 (diff) | |
remove meaningless logic, handle tiny screens
| -rw-r--r-- | irc.c | 18 |
1 files changed, 5 insertions, 13 deletions
@@ -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) |
