summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2016-05-09 13:23:34 +0000
committerespie <espie@openbsd.org>2016-05-09 13:23:34 +0000
commit59547b2c85d3c51d593907c0b7c918bb1c34a0f9 (patch)
treea462bb444993ef0ff2040b07d5bc9d9900eeadf0
parentImplement Mdocdate keyword substitution. (diff)
downloadwireguard-openbsd-59547b2c85d3c51d593907c0b7c918bb1c34a0f9.tar.xz
wireguard-openbsd-59547b2c85d3c51d593907c0b7c918bb1c34a0f9.zip
stop depending on *.ph
use Term::ReadKey a bit of funky stuff while old ports Term::ReadKey is around
-rw-r--r--usr.sbin/pkg_add/OpenBSD/ProgressMeter/Term.pm25
1 files changed, 11 insertions, 14 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/ProgressMeter/Term.pm b/usr.sbin/pkg_add/OpenBSD/ProgressMeter/Term.pm
index 39b8838d1bd..5f04ad3935e 100644
--- a/usr.sbin/pkg_add/OpenBSD/ProgressMeter/Term.pm
+++ b/usr.sbin/pkg_add/OpenBSD/ProgressMeter/Term.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: Term.pm,v 1.32 2015/05/18 10:41:20 espie Exp $
+# $OpenBSD: Term.pm,v 1.33 2016/05/09 13:23:34 espie Exp $
#
# Copyright (c) 2004-2007 Marc Espie <espie@openbsd.org>
#
@@ -84,6 +84,7 @@ package OpenBSD::ProgressMeter::Term;
our @ISA = qw(OpenBSD::ProgressMeter::Real);
use POSIX;
use Term::Cap;
+use Term::ReadKey;
sub init
{
@@ -113,23 +114,19 @@ sub init
}
}
-my $wsz_format = 'SSSS';
-our %sizeof;
-
sub find_window_size
{
my $self = shift;
- # try to get exact window width
- my $r;
- $r = pack($wsz_format, 0, 0, 0, 0);
- $sizeof{'struct winsize'} = 8;
- require 'sys/ttycom.ph';
- if (ioctl(STDOUT, &TIOCGWINSZ, $r)) {
- my ($rows, $cols, $xpix, $ypix) =
- unpack($wsz_format, $r);
- $self->{width} = $cols;
- } else {
+
+ # shut up warnings for Term::ReadKey 2.33
+ local $SIG{__WARN__} = sub {};
+ my @l;
+ # XXX don't die! in case people still have Term::ReadKey 2.30 as a port
+ eval { @l = GetTerminalSize(\*STDOUT); } ;
+ if (@l != 4) {
$self->{width} = 80;
+ } else {
+ $self->{width} = $l[0];
}
}