version 1.7, 2014/10/30 19:09:06
|
version 1.9, 2014/11/16 02:10:41
|
Line 316 sub make_new_child {
|
Line 316 sub make_new_child {
|
sub sync { |
sub sync { |
my ($command)=@_; |
my ($command)=@_; |
$counter++; |
$counter++; |
|
my $digits = length($counter); |
|
if ($digits > 10) { |
|
$counter = 1; |
|
} |
my $expect=$counter; |
my $expect=$counter; |
print $command "$expect;\n"; |
print $command "print($expect,digits=$digits);\n"; |
while (1) { |
while (1) { |
my $output=&getroutput($command); |
my $output=&getroutput($command); |
if (($output=~/\Q$expect\E/) || ($output=~/^Error\:/)) { |
chomp($output); |
|
if (($output=~/^\Q$expect\E/) || ($output=~/^Error\:/)) { |
return; |
return; |
} |
} |
} |
} |
Line 346 sub getroutput {
|
Line 351 sub getroutput {
|
return 'Error: '.$error; |
return 'Error: '.$error; |
} |
} |
|
|
my $foundoutput=0; |
|
my $found_label=0; |
|
my $realoutput=''; |
my $realoutput=''; |
foreach my $line (split(/\n/,$output)) { |
foreach my $line (split(/\n/,$output)) { |
$line=~s/\s$//gs; |
$line=~s/\s$//gs; |
if ($line=~/^Error\:/) { $syntaxerr=1; next; } |
if ($line=~/^Error\:/) { $syntaxerr=1; next; } |
if (my ($result)=($line=~/^\[?\d+\,*\]?\s*(.*)/)) { $realoutput.=$result."\n"; } |
if ($line=~ /\;$/) { next; } |
|
if (my ($result)=($line=~/^\s*\[?\d+\,?\]?\s*(.*)/)) { $realoutput.=$result."\n"; } |
} |
} |
if (wantarray) { |
if (wantarray) { |
return ($realoutput,$syntaxerr); |
return ($realoutput,$syntaxerr); |