URI:
       Use ioctl to retreive screen's size in tresize. - irc - IRC client based on c9x.me/irc client
  HTML git clone git://git.codemadness.org/irc
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 61e93595f832ccc9a46428eaf398d776e482dfd2
   DIR parent c5b6ac6afa188bd107bdbfb96500182447368b05
  HTML Author: Quentin Carbonneaux <qcarbonneaux@gmail.com>
       Date:   Sun, 11 Mar 2012 23:10:35 +0100
       
       Use ioctl to retreive screen's size in tresize.
       
       The curses (ncurses) library does not automatically get the new size of
       the terminal, thus, we must rely on an ioctl to retreive it and inform
       ncurses with a resizeterm call.
       
       Diffstat:
         M irc.c                               |      11 ++++++++---
       
       1 file changed, 8 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/irc.c b/irc.c
       @@ -16,6 +16,7 @@
        #include <sys/types.h>
        #include <sys/socket.h>
        #include <sys/select.h>
       +#include <sys/ioctl.h>
        #include <netinet/in.h>
        #include <netinet/tcp.h>
        #include <netdb.h>
       @@ -347,13 +348,17 @@ tinit(void)
        static void
        tresize(void)
        {
       +        struct winsize ws;
       +
                winchg=0;
       -        getmaxyx(stdscr, scr.y, scr.x);
       -        if (scr.y<3 || scr.x<10) panic("Screen too small.");
       +        ioctl(0, TIOCGWINSZ, &ws);
       +        resizeterm(scr.y=ws.ws_row, scr.x=ws.ws_col);
       +        if (scr.y<3 || scr.x<10)
       +                panic("Screen too small.");
                wresize(scr.mw, scr.y-2, scr.x);
                wresize(scr.iw, 1, scr.x);
                wresize(scr.sw, 1, scr.x);
       -        mvwin(scr.iw, scr.y-1, 1);
       +        mvwin(scr.iw, scr.y-1, 0);
                tredraw();
        }