Diff for /loncom/lonmaxima between versions 1.28 and 1.31

version 1.28, 2007/05/15 17:28:32 version 1.31, 2007/08/02 13:04:55
Line 237  sub make_new_child { Line 237  sub make_new_child {
         return;          return;
     } else {      } else {
         # Child can *not* return from this subroutine.          # Child can *not* return from this subroutine.
         $SIG{INT} = 'DEFAULT';      # make SIGINT kill us as it did before          
             
         # unblock signals          # unblock signals
         sigprocmask(SIG_UNBLOCK, $sigset)          sigprocmask(SIG_UNBLOCK, $sigset)
Line 246  sub make_new_child { Line 246  sub make_new_child {
         &logthis('New process started');          &logthis('New process started');
   
         my $command=Expect->spawn('maxima');          my $command=Expect->spawn('maxima');
         $command->log_stdout(0);   # soft/hard_close can take awhile and we really
           # don't care we just want it gone
    $SIG{INT} = sub {
       my $pid = $command->pid();
       kill('KILL'=>$pid);
       exit; 
    };
   
    $command->log_stdout(0);
  #$command->log_file("$execdir/logs/lonmaxima.session.log");   #$command->log_file("$execdir/logs/lonmaxima.session.log");
         &getmaximaoutput($command);          &getmaximaoutput($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 ("reset;display2d:false;kill(all);\n");              print $command ("display2d:false;kill(all);\n");
     &getmaximaoutput($command,2);      &getmaximaoutput($command,2);
             &sync($command);              &sync($command);
             my $syntaxerr = 0;              my $syntaxerr = 0;
Line 338  sub getmaximaoutput { Line 346  sub getmaximaoutput {
        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=~/^Incorrect syntax:/) { $syntaxerr = 1; next; }
        (my $label, $line) = ($line=~ /^(\(\%o\d+\))(.+)$/);         if ( $line=~ /^(\(\%o\d+\))(.+)$/){
        if ($label) {             my $label = $1;
            $label=~s/\S/ /g;             $line = $2;
              $label =~s/\S/ /g;
            $line=$label.$line;             $line=$label.$line;
        }         }
        $realoutput.=$line."\n";         $realoutput.=$line."\n";

Removed from v.1.28  
changed lines
  Added in v.1.31


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>