X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fwinclient.pl;h=55c87992e82d61f42c569debb4eb382a3241b2d1;hb=923eb0fbe7e3dc483338c6f2754ab6f413f89c95;hp=e0c89efe4174a3e21b5a228794fd97a96b108554;hpb=6daf175d1dba2651fb5af4a611e2e04ddc19c11a;p=spider.git diff --git a/perl/winclient.pl b/perl/winclient.pl index e0c89efe..55c87992 100755 --- a/perl/winclient.pl +++ b/perl/winclient.pl @@ -70,6 +70,8 @@ die "can't fork: $!" unless defined($childpid = fork()); # the communication ..... if ($childpid) { + my ($lastend, $end); + STDOUT->autoflush(1); while (defined (my $msg = <$handle>)) { my ($sort, $call, $line) = $msg =~ /^(\w)([^\|]+)\|(.*)$/; @@ -79,11 +81,13 @@ if ($childpid) { ; } else { # newline ends all lines except a prompt - my $end = "\n"; - if ($line =~ /^$call de $mycall\s+\d+-\w\w\w-\d+\s+\d+Z >$/) { + $lastend = $end; + $end = "\n"; + if ($line =~ /^$call de $mycall\s+\d+-\w\w\w-\d+\s+\d+Z >$/o) { $end = ' '; } - print $line . $end; + my $begin = ($lastend eq "\n") ? '' : "\n"; + print $begin . $line . $end; } } kill 'TERM', $childpid;