From d7827acababa05db7e901d2dfeb27538ef6a6142 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:51:26 +0000 Subject: winch support Author: jgg Date: 1998-11-12 05:30:07 GMT winch support --- cmdline/apt-get.cc | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'cmdline/apt-get.cc') 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 +#include +#include +#include /*}}}*/ 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 -- cgit v1.2.3