Diff for /loncom/interface/printout.pl between versions 1.106 and 1.110

version 1.106, 2006/06/26 21:18:43 version 1.110, 2006/09/14 17:04:42
Line 700  sub busy_wait_command { Line 700  sub busy_wait_command {
           
     $SIG{CHLD} = \&REAPER;      $SIG{CHLD} = \&REAPER;
     $done=0;      $done=0;
     print("<p> Doing : <tt>$command</tt>");  
     my $pid=open(CMD,"$command |");      my $pid=open(CMD,"$command |");
     if ($advanced_role) {      if ($advanced_role) {
  &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message);   &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message);
Line 720  sub busy_wait_command { Line 719  sub busy_wait_command {
     $SIG{CHLD}='IGNORE';      $SIG{CHLD}='IGNORE';
     close(CMD);      close(CMD);
 }  }
     print("<p> End</p>");  
   
 #  Repagninate  #  Repagninate
 #  What we need to do:  #  What we need to do:
Line 749  sub repaginate { Line 747  sub repaginate {
     my $line;      my $line;
     my $total_pages; # Total pages in document.      my $total_pages; # Total pages in document.
     my $seen_pages        = 0; # There are several %%Pages only the first is useful      my $seen_pages        = 0; # There are several %%Pages only the first is useful
     my $student_number    = 0; # Index of student we're working on.  
     my @pages_in_student; # For each student his/her initial page count.      my @pages_in_student; # For each student his/her initial page count.
     my $max_pages = 0; # Pages in 'longest' student.      my $max_pages = 0; # Pages in 'longest' student.
     my $page_number = 0;      my $page_number = 0;
     &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,       &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, 
   "Counting pages for student: ".$student_number+1);    &mt("Counting pages for student: [_1]",1));
   
     while ($line = <PSFILE>) {      while ($line = <PSFILE>) {
   
Line 776  sub repaginate { Line 773  sub repaginate {
     my @pageinfo = split(/ /, $line);      my @pageinfo = split(/ /, $line);
     if ($page_number < $pageinfo[1]) {      if ($page_number < $pageinfo[1]) {
  $page_number = $pageinfo[1];   $page_number = $pageinfo[1];
       } elsif ($pageinfo[2] ne 1) {
    #  current page count reset, and it's not because of a 
    #    minipage 
    # - save the page_number, reset and, if necessary
    #    update max_pages.
    push(@pages_in_student, $page_number);
    &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, 
         &mt("Counting pages for student: [_1]", scalar(@pages_in_student)));
    if ($page_number > $max_pages) {
       $max_pages = $page_number;
    }
    $page_number = $pageinfo[1];
     }      }
  }   }
  #  ENDOFSTUDENTSTAMP - save the page_number, reset and, if necessary  
  #                      udpate max_pages.  
  #  
  if ($line =~ /ENDOFSTUDENTSTAMP/) {  
     $pages_in_student[$student_number] = $page_number;  
     $student_number++;  
     &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,   
   "Counting pages for student: ".$student_number+1);  
       
     if ($page_number > $max_pages) {  
  $max_pages = $page_number;  
     }  
     $page_number = 0;  
     
  }  
   
   
     }      }
       # file ended so one more student
       push(@pages_in_student, $page_number);
       &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, 
     &mt("Counting pages for student: [_1]",scalar(@pages_in_student)));
       if ($page_number > $max_pages) {
    $max_pages = $page_number;
       }
       $page_number = 0;
       
     close(PSFILE);      close(PSFILE);
   
     #  If 2 columns, max_pages must go to an even number of columns:      #  If 2 columns, max_pages must go to an even number of columns:
   
     &Apache::lonnet::logthis("Before 2 col adjust max-pages = $max_pages");  
         
     if ($num_columns == 2) {      if ($num_columns == 2) {
  if ($max_pages % 2) {   if ($max_pages % 2) {
     $max_pages++;      $max_pages++;
  }   }
     }      }
     &Apache::lonnet::logthis("after adjust: $max_pages");  
           
     #  Now rewrite the LaTex file, substituting our \special      #  Now rewrite the LaTex file, substituting our \special
     #  with an appropriate number of \newpage directives.      #  with an appropriate number of \newpage directives.
Line 818  sub repaginate { Line 819  sub repaginate {
     open(LATEXOUT, ">$outfilename");      open(LATEXOUT, ">$outfilename");
   
   
     $student_number = 0; # first student...      my $student_number    = 0; # Index of student we're working on.
     &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,       &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, 
   "Repaginating student ".$student_number+1);    "Repaginating student ".$student_number+1);
   
Line 830  sub repaginate { Line 831  sub repaginate {
     # End of student replace with 0 or more newpages.      # End of student replace with 0 or more newpages.
           
     my $addlines = $max_pages - $pages_in_student[$student_number];      my $addlines = $max_pages - $pages_in_student[$student_number];
     &Apache::lonnet::logthis("student: $pages_in_student[$student_number] add: $addlines");  
     while($addlines)  {      while($addlines)  {
  print LATEXOUT '\linebreak \strut \pagebreak';   print LATEXOUT '\clearpage \strut \clearpage';
   
  $addlines--;   $addlines--;
     }      }
Line 848  sub repaginate { Line 848  sub repaginate {
   
     close(LATEXIN);      close(LATEXIN);
     close(LATEXOUT);      close(LATEXOUT);
    rename($outfilename, $latex_filename);      rename($outfilename, $latex_filename);
   
 }  }
   

Removed from v.1.106  
changed lines
  Added in v.1.110


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