Browse Source

winch support

Author: jgg
Date: 1998-11-12 05:30:07 GMT
winch support
tags/debian/0.7.21
Arch Librarian 17 years ago
parent
commit
d7827acaba
3 changed files with 28 additions and 6 deletions
  1. +2
    -2
      cmdline/acqprogress.cc
  2. +3
    -3
      cmdline/acqprogress.h
  3. +23
    -1
      cmdline/apt-get.cc

+ 2
- 2
cmdline/acqprogress.cc View File

@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acqprogress.cc,v 1.1 1998/11/11 23:45:52 jgg Exp $
// $Id: acqprogress.cc,v 1.2 1998/11/12 05:30:07 jgg Exp $
/* ######################################################################

Acquire Progress - Command line progress meter
@@ -18,7 +18,7 @@
// AcqTextStatus::AcqTextStatus - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
AcqTextStatus::AcqTextStatus(unsigned int ScreenWidth,unsigned int Quiet) :
AcqTextStatus::AcqTextStatus(unsigned int &ScreenWidth,unsigned int Quiet) :
ScreenWidth(ScreenWidth), Quiet(Quiet)
{
}


+ 3
- 3
cmdline/acqprogress.h View File

@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acqprogress.h,v 1.1 1998/11/11 23:45:55 jgg Exp $
// $Id: acqprogress.h,v 1.2 1998/11/12 05:30:09 jgg Exp $
/* ######################################################################

Acquire Progress - Command line progress meter
@@ -14,7 +14,7 @@

class AcqTextStatus : public pkgAcquireStatus
{
unsigned int ScreenWidth;
unsigned int &ScreenWidth;
char BlankLine[300];
unsigned long ID;
unsigned long Quiet;
@@ -30,7 +30,7 @@ class AcqTextStatus : public pkgAcquireStatus
void Pulse(pkgAcquire *Owner);

AcqTextStatus(unsigned int ScreenWidth,unsigned int Quiet);
AcqTextStatus(unsigned int &ScreenWidth,unsigned int Quiet);
};

#endif

+ 23
- 1
cmdline/apt-get.cc View File

@@ -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


Loading…
Cancel
Save