version 1.36, 2007/11/09 18:54:46
|
version 1.41, 2012/02/16 19:54:06
|
Line 270 sub make_new_child {
|
Line 270 sub make_new_child {
|
|
|
$command->log_stdout(0); |
$command->log_stdout(0); |
#$command->log_file("$execdir/logs/lonmaxima.session.log"); |
#$command->log_file("$execdir/logs/lonmaxima.session.log"); |
&sync($command); |
|
|
|
for (my $i=0; $i < $MAX_CLIENTS_PER_CHILD; $i++) { |
for (my $i=0; $i < $MAX_CLIENTS_PER_CHILD; $i++) { |
&status('Accepting connections'); |
&status('Accepting connections'); |
my $client = $server->accept() or last; |
my $client = $server->accept() or last; |
print $command ("display2d:false;kill(all);\n"); |
&sync($command); |
|
print $command ("display2d:false;simp:true;kill(all);\n"); |
&getmaximaoutput($command,2); |
&getmaximaoutput($command,2); |
&sync($command); |
&sync($command); |
my $syntaxerr = 0; |
my $syntaxerr = 0; |
Line 335 sub getmaximaoutput {
|
Line 335 sub getmaximaoutput {
|
if ($numcheck eq 2) { |
if ($numcheck eq 2) { |
# command was the killall so should get a full reset on |
# command was the killall so should get a full reset on |
# command numbers |
# command numbers |
$regexp = '(\(\%i(1)\)|Incorrect syntax\:)'; |
$regexp = '(\(\%i(1)\)|[Ii]ncorrect syntax\:)'; |
} elsif ($command->match() =~ /\(\%i(\d+)\)/) { |
} elsif ($command->match() =~ /\(\%i(\d+)\)/) { |
my $nextmatch = $1+1; |
my $nextmatch = $1+1; |
$regexp = '(\(\%i'.$nextmatch.'\)|Incorrect syntax\:)'; |
$regexp = '(\(\%i'.$nextmatch.'\)|[Ii]ncorrect syntax\:)'; |
} |
} |
} |
} |
my $timeout = 20; |
my $timeout = 20; |
my (undef,$error,$matched,$output) = |
my (undef,$error,$matched,$output) = |
$command->expect($timeout, -re => $regexp); |
$command->expect($timeout, -re => $regexp); |
|
|
if ($numcheck && $matched eq 'Incorrect syntax:') { |
if ($numcheck && lc($matched) eq 'incorrect syntax:') { |
$syntaxerr = 1; |
$syntaxerr = 1; |
if (wantarray) { |
if (wantarray) { |
return ($matched,$syntaxerr); |
return ($matched,$syntaxerr); |
Line 356 sub getmaximaoutput {
|
Line 356 sub getmaximaoutput {
|
if ($error) { |
if ($error) { |
return 'Error: '.$error; |
return 'Error: '.$error; |
} |
} |
$output =~ s/\r+//g; # Remove Windows-style linebreaks |
$output =~ s/\r+//gs; # Remove Windows-style linebreaks |
my $foundoutput=0; |
my $foundoutput=0; |
my $found_label=0; |
my $found_label=0; |
my $realoutput=''; |
my $realoutput=''; |
foreach my $line (split(/\n/,$output)) { |
foreach my $line (split(/\n/,$output)) { |
if ($line=~/\;/) { $foundoutput=1; next; } |
if ($line=~/\;/) { $foundoutput=1; next; } |
if (!$foundoutput) { next; } |
if (!$foundoutput) { next; } |
if ($line=~/^Incorrect syntax:/) { $syntaxerr = 1; next; } |
if ($line=~/^[Ii]ncorrect syntax:/) { $syntaxerr = 1; next; } |
if ($line=~ /^(\(\%o\d+\))(.+)$/){ |
if ($line=~ /^(\(\%o\d+\))(.+)$/){ |
my $label = $1; |
my $label = $1; |
$line = $2; |
$line = $2; |