X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fconsole.pl;h=3ad62001253fc2f8e6b97103287d186749820a41;hb=20b045ba2d2c12d7f33fd4bb7b6449311396f715;hp=f8d955154e95238796aa3c28d2b7bf92d2d90c52;hpb=a26a82ebeee2135468113c64fc25c5f9ad1000cb;p=spider.git diff --git a/perl/console.pl b/perl/console.pl index f8d95515..3ad62001 100755 --- a/perl/console.pl +++ b/perl/console.pl @@ -27,8 +27,6 @@ BEGIN { $is_win = ($^O =~ /^MS/ || $^O =~ /^OS-2/) ? 1 : 0; # is it Windows? } -$clusteraddr = '127.0.0.1'; -$clusterport = 27754; use Mojo::IOLoop; @@ -51,6 +49,9 @@ use Console; # initialisation # +$clusteraddr //= '127.0.0.1'; +$clusterport //= 27754; + $call = ""; # the callsign being used $node = ""; # the node callsign being used $conn = 0; # the connection object for the cluster @@ -419,16 +420,17 @@ sub rec_stdin sub addtotop { my $sort = shift; - while (@_) { my $inbuf = shift; my $l = length $inbuf; - dbg("addtotop: $sort $l $inbuf") if isdbg('console'); - if ($l > $cols && grep $sort eq $_, qw(T A C)) { + if ($l > $cols) { $inbuf =~ s/\s+/ /g; if (length $inbuf > $cols) { $Text::Wrap::columns = $cols; - push @sh, split /\n/, wrap('',' ' x 19, $inbuf); + my $token; + ($token) = $inbuf =~ m!^(.* de [-\w\d/\#]+:?\s+|\w{9}\@\d\d:\d\d:\d\d )!; + $token ||= ' ' x 19; + push @sh, split /\n/, wrap('', ' ' x length($token), $inbuf); } else { push @sh, $inbuf; } @@ -436,6 +438,7 @@ sub addtotop push @sh, $inbuf; } } + show_screen() unless $inscroll; } @@ -447,8 +450,8 @@ sub rec_socket cease(1); } if (defined $msg) { - dbg("msg: " . length($msg) . " '$msg'") if isdbg('console'); my ($sort, $incall, $line) = $msg =~ /^(\w)([^\|]+)\|(.*)$/; + dbg("msg: " . length($msg) . " '$msg'") if isdbg('console'); if ($line =~ s/\x07+$//) { beep(); } @@ -458,17 +461,13 @@ sub rec_socket $call = $incall if $call ne $incall; $line =~ s/[\x00-\x06\x08\x0a-\x19\x1b-\x1f\x80-\x9f]/./g; # immutable CSI sequence + control characters - if ($sort && $sort eq 'D') { + if ($sort && $sort eq 'Z') { # end, disconnect, go, away ..... + cease(0); + } else { $line = " " unless length($line); addtotop($sort, $line); - } elsif ($sort && $sort eq 'Z') { # end, disconnect, go, away ..... - cease(0); - } - # ****************************************************** - # ****************************************************** - # any other sorts that might happen are silently ignored. - # ****************************************************** - # ****************************************************** + } + } else { cease(0); } @@ -535,10 +534,11 @@ $call = uc shift @ARGV if @ARGV; $call = uc $myalias unless $call; $node = uc $mycall unless $node; +$call = normalise_call($call); my ($scall, $ssid) = split /-/, $call; $ssid = undef unless $ssid && $ssid =~ /^\d+$/; if ($ssid) { - $ssid = 15 if $ssid > 15; + $ssid = 99 if $ssid > 99; $call = "$scall-$ssid"; }