X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fconsole.pl;h=597c5eff0ee2010764a9e533732c14b8cd23a38b;hb=a9072bdb10a67ad28edda787cbf38018356b2db5;hp=46e7a1ea6c1df7c9c8eb4e2ba09f43edd26892cc;hpb=5c15f6e5521944f56427ef069f449739ce84ce9f;p=spider.git diff --git a/perl/console.pl b/perl/console.pl index 46e7a1ea..597c5eff 100755 --- a/perl/console.pl +++ b/perl/console.pl @@ -23,6 +23,14 @@ BEGIN { unshift @INC, "$root/perl"; # this IS the right way round! unshift @INC, "$root/local"; + + sub main::mkver + { + my $s = shift; + my ($v, $b) = $s =~ /(\d+\.\d+)(?:\.(\d+\.\d+))?/; + $main::build += sprintf "%.3f", $v; + $main::branch += sprintf("%.3f", $b) if $b; + } } use Msg; @@ -32,6 +40,7 @@ use DXDebug; use DXUtil; use DXDebug; use IO::File; +use Time::HiRes qw(gettimeofday tv_interval); use Curses 1.06; use Console; @@ -50,6 +59,9 @@ $connsort = "local"; $khistpos = 0; $spos = $pos = $lth = 0; $inbuf = ""; +@time = (); + +$SIG{WINCH} = sub {@time = gettimeofday}; sub mydbg { @@ -114,8 +126,6 @@ sub do_resize $has_colors = has_colors(); do_initscr(); - $winch = 0; - $SIG{'WINCH'} = sub {$winch = 1}; show_screen(); } @@ -332,7 +342,7 @@ sub rec_stdin } elsif ($r eq KEY_PPAGE || $r eq "\032") { if ($spos > 0) { my ($i, $l); - for ($i = 0; $i <= $pagel && $spos >= 0; ) { + for ($i = 0; $i <= $pagel-1 && $spos >= 0; ) { $l = measure($shistory[$spos]); $i += $l; $spos-- if $i <= $pagel; @@ -504,7 +514,7 @@ for (;;) { $lasttime = $t; } my $ch = $bot->getch(); - if ($winch) { + if (@time && tv_interval(\@time, [gettimeofday]) >= 1) { # mydbg("Got Resize"); # do_resize(); next;