iUse ioctl to retreive screen's size in tresize. - irc - Unnamed repository; edit this file 'description' to name the repository. Err vernunftzentrum.de 70 hgit clone git://vernunftzentrum.de/irc.git URL:git://vernunftzentrum.de/irc.git vernunftzentrum.de 70 1Log /ckeen/repos/irc/log.gph vernunftzentrum.de 70 1Files /ckeen/repos/irc/files.gph vernunftzentrum.de 70 1Refs /ckeen/repos/irc/refs.gph vernunftzentrum.de 70 1README /ckeen/repos/irc/file/README.gph vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1commit 61e93595f832ccc9a46428eaf398d776e482dfd2 /ckeen/repos/irc/commit/61e93595f832ccc9a46428eaf398d776e482dfd2.gph vernunftzentrum.de 70 1parent c5b6ac6afa188bd107bdbfb96500182447368b05 /ckeen/repos/irc/commit/c5b6ac6afa188bd107bdbfb96500182447368b05.gph vernunftzentrum.de 70 hAuthor: Quentin Carbonneaux URL:mailto:qcarbonneaux@gmail.com vernunftzentrum.de 70 iDate: Sun, 11 Mar 2012 23:10:35 +0100 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iUse ioctl to retreive screen's size in tresize. Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iThe curses (ncurses) library does not automatically get the new size of Err vernunftzentrum.de 70 ithe terminal, thus, we must rely on an ioctl to retreive it and inform Err vernunftzentrum.de 70 incurses with a resizeterm call. Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i irc.c | 11 ++++++++--- Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i1 file changed, 8 insertions(+), 3 deletions(-) Err vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1diff --git a/irc.c b/irc.c /ckeen/repos/irc/file/irc.c.gph vernunftzentrum.de 70 i@@ -16,6 +16,7 @@ Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i+#include Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i@@ -347,13 +348,17 @@ tinit(void) Err vernunftzentrum.de 70 i static void Err vernunftzentrum.de 70 i tresize(void) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i+ struct winsize ws; Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i winchg=0; Err vernunftzentrum.de 70 i- getmaxyx(stdscr, scr.y, scr.x); Err vernunftzentrum.de 70 i- if (scr.y<3 || scr.x<10) panic("Screen too small."); Err vernunftzentrum.de 70 i+ ioctl(0, TIOCGWINSZ, &ws); Err vernunftzentrum.de 70 i+ resizeterm(scr.y=ws.ws_row, scr.x=ws.ws_col); Err vernunftzentrum.de 70 i+ if (scr.y<3 || scr.x<10) Err vernunftzentrum.de 70 i+ panic("Screen too small."); Err vernunftzentrum.de 70 i wresize(scr.mw, scr.y-2, scr.x); Err vernunftzentrum.de 70 i wresize(scr.iw, 1, scr.x); Err vernunftzentrum.de 70 i wresize(scr.sw, 1, scr.x); Err vernunftzentrum.de 70 i- mvwin(scr.iw, scr.y-1, 1); Err vernunftzentrum.de 70 i+ mvwin(scr.iw, scr.y-1, 0); Err vernunftzentrum.de 70 i tredraw(); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 .