diff options
author | Arch Librarian <arch@canonical.com> | 2004-09-20 16:51:26 +0000 |
---|---|---|
committer | Arch Librarian <arch@canonical.com> | 2004-09-20 16:51:26 +0000 |
commit | d7827acababa05db7e901d2dfeb27538ef6a6142 (patch) | |
tree | a6a79c3cdeea76b81fa50335ee8306327fe888cf /cmdline/apt-get.cc | |
parent | 7a7fa5f07e59bd17415cb0321d1f98527c2cfea4 (diff) |
winch support
Author: jgg
Date: 1998-11-12 05:30:07 GMT
winch support
Diffstat (limited to 'cmdline/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 2ed05b8aa..8daaf05f4 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: apt-get.cc,v 1.7 1998/11/12 04:10:56 jgg Exp $ +// $Id: apt-get.cc,v 1.8 1998/11/12 05:30:10 jgg Exp $ /* ###################################################################### apt-get - Cover for dpkg @@ -39,6 +39,9 @@ #include "acqprogress.h" #include <fstream.h> +#include <termios.h> +#include <sys/ioctl.h> +#include <signal.h> /*}}}*/ ostream c0out; @@ -801,6 +804,20 @@ void GetInitialize() _config->Set("APT::Get::Fix-Broken",false); } /*}}}*/ +// SigWinch - Window size change signal handler /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void SigWinch(int) +{ + // Riped from GNU ls +#ifdef TIOCGWINSZ + struct winsize ws; + + if (ioctl(1, TIOCGWINSZ, &ws) != -1 && ws.ws_col >= 5) + ScreenWidth = ws.ws_col - 1; +#endif +} + /*}}}*/ int main(int argc,const char *argv[]) { @@ -845,6 +862,11 @@ int main(int argc,const char *argv[]) c0out.rdbuf(devnull.rdbuf()); if (_config->FindI("quiet",0) > 1) c1out.rdbuf(devnull.rdbuf()); + + // Setup the signals + signal(SIGPIPE,SIG_IGN); + signal(SIGWINCH,SigWinch); + SigWinch(0); // Match the operation struct |