Diff for /loncom/interface/printout.pl between versions 1.126 and 1.129

version 1.126, 2007/09/21 20:56:30 version 1.129, 2008/01/28 11:24:48
Line 166  END Line 166  END
 my %perlvar=%{&LONCAPA::Configuration::read_conf('loncapa.conf')};  my %perlvar=%{&LONCAPA::Configuration::read_conf('loncapa.conf')};
  &Apache::lonlocal::get_language_handle();   &Apache::lonlocal::get_language_handle();
  &Apache::loncommon::content_type(undef,'text/html');   &Apache::loncommon::content_type(undef,'text/html');
   $env{'request.noversionuri'} = '/cgi-bin/printout.pl';
   print(&Apache::loncommon::start_page('Creating PDF'));    print(&Apache::loncommon::start_page('Creating PDF'));
   
   my $identifier = $ENV{'QUERY_STRING'};    my $identifier = $ENV{'QUERY_STRING'};
Line 187  my %perlvar=%{&LONCAPA::Configuration::r Line 187  my %perlvar=%{&LONCAPA::Configuration::r
   if ($student_names=~/_END_/) {      if ($student_names=~/_END_/) {  
       @names_pack=split(/_ENDPERSON_/,$student_names);        @names_pack=split(/_ENDPERSON_/,$student_names);
   }    }
     if ($backref) {
 print "<a href=\"$backref\"><b>Return</b></a> to last resource.<br /><br />";        print('<p>'.&mt("[_1]Return[_2] to editing resource.",
         "<a href=\"$backref\"><b>","</b></a>").'</p>');
     }
   my $figfile = $texfile;    my $figfile = $texfile;
   $figfile =~ s/^(.*_printout)_\d+_\d+_\d+\.tex/$1\.dat/;    $figfile =~ s/^(.*_printout)_\d+_\d+_\d+\.tex/$1\.dat/;
   my $duefile = $texfile;    my $duefile = $texfile;
Line 378  foreach $texfile (@texfile) { Line 379  foreach $texfile (@texfile) {
       my $dvi_file= $name_file; $dvi_file =~ s/\.tex/$name_range\.dvi/;        my $dvi_file= $name_file; $dvi_file =~ s/\.tex/$name_range\.dvi/;
       &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",        &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",
  "for $status_statement now LaTeXing file",   "for $status_statement now LaTeXing file",
  \%prog_state,$dvi_file);   \%prog_state,$dvi_file, 10);
       if ($tableofcontents eq 'yes') {        if ($tableofcontents eq 'yes') {
       &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",        &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",
  "for $status_statement First LaTeX of file for table of contents",   "for $status_statement First LaTeX of file for table of contents",
  \%prog_state,$dvi_file);   \%prog_state,$dvi_file, 10);
       &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",        &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",
  "for $status_statement Second LaTeX of file for table of contents",   "for $status_statement Second LaTeX of file for table of contents",
  \%prog_state,$dvi_file);   \%prog_state,$dvi_file,10);
       } #to create table of contents        } #to create table of contents
       my $idxname=$name_file;        my $idxname=$name_file;
       $idxname=~s/\.tex$/\.idx/;        $idxname=~s/\.tex$/\.idx/;
Line 395  foreach $texfile (@texfile) { Line 396  foreach $texfile (@texfile) {
      \%prog_state,$idxname);       \%prog_state,$idxname);
   &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",    &busy_wait_command("latex $name_file 1>/dev/null 2>/dev/null",
      "for $status_statement now LaTeXing file for index section",       "for $status_statement now LaTeXing file for index section",
      \%prog_state,$dvi_file);       \%prog_state,$dvi_file,10);
       } #to create index        } #to create index
       #Do we have a latex error in the log file?        #Do we have a latex error in the log file?
       my $logfilename = $texfile; $logfilename =~ s/\.tex$/\.log/;        my $logfilename = $texfile; $logfilename =~ s/\.tex$/\.log/;
Line 511  foreach $texfile (@texfile) { Line 512  foreach $texfile (@texfile) {
       #        #
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",        &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  "for $status_statement first latex to repaginate",   "for $status_statement first latex to repaginate",
  \%prog_state, $name_file);   \%prog_state, $name_file,10);
       if ($tableofcontents eq 'yes') {        if ($tableofcontents eq 'yes') {
   &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
      "for $status_statement second latex to repaginate",       "for $status_statement second latex to repaginate",
      \%prog_state, $name_file);       \%prog_state, $name_file,10);
   &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
      "for $status_statement third latex to repaginate",       "for $status_statement third latex to repaginate",
      \%prog_state, $name_file);       \%prog_state, $name_file,10);
       }        }
       if ($tableofindex eq 'yes') {        if ($tableofindex eq 'yes') {
   my $idxname = $latex_file;    my $idxname = $latex_file;
Line 528  foreach $texfile (@texfile) { Line 529  foreach $texfile (@texfile) {
      \%prog_state, $idxname);       \%prog_state, $idxname);
   &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
      "for $status_statement now Recreting index (latex)",       "for $status_statement now Recreting index (latex)",
      \%prog_state, $dvi_file);       \%prog_state, $dvi_file,10);
   
       }        }
       &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",        &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",
Line 684  foreach $texfile (@texfile) { Line 685  foreach $texfile (@texfile) {
       &repaginate($new_name_file, $latex_file,  $numberofcolumns);        &repaginate($new_name_file, $latex_file,  $numberofcolumns);
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",        &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  "for $status_statement first latex to repaginate",   "for $status_statement first latex to repaginate",
  \%prog_state, $name_file);   \%prog_state, $name_file,10);
       if ($tableofcontents eq 'yes') {        if ($tableofcontents eq 'yes') {
   &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
      "for $status_statement second latex to repaginate",       "for $status_statement second latex to repaginate",
      \%prog_state, $name_file);       \%prog_state, $name_file,10);
   &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
      "for $status_statement third latex to repaginate",       "for $status_statement third latex to repaginate",
      \%prog_state, $name_file);       \%prog_state, $name_file,10);
       }        }
       if ($tableofindex eq 'yes') {        if ($tableofindex eq 'yes') {
   my $idxname = $latex_file;    my $idxname = $latex_file;
Line 701  foreach $texfile (@texfile) { Line 702  foreach $texfile (@texfile) {
      \%prog_state, $idxname);       \%prog_state, $idxname);
   &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
      "for $status_statement now Recreting index (latex)",       "for $status_statement now Recreting index (latex)",
      \%prog_state, $dvi_file);       \%prog_state, $dvi_file,10);
       }        }
       &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",        &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",
  "for $status_statement dvips to repaginate",   "for $status_statement dvips to repaginate",
Line 793  my $done; Line 794  my $done;
 sub REAPER {  sub REAPER {
     $done=1;      $done=1;
 }  }
   #
   #  Execute a command updating the status window as the command's
   #  output file builds up (at intervals of a second).
   #
   #   If the timeout argument defined, then if that many seconds
   #   elapses without an increase in the size of the output file,
   #   the command will be killed (this deals with the case when
   #   latex crawls into an infinite loop).
   #
 sub busy_wait_command {  sub busy_wait_command {
     my ($command,$message,$progress_win,$output_file)=@_;      my ($command,$message,$progress_win,$output_file, $timeout)=@_;
           
     $SIG{CHLD} = \&REAPER;      $SIG{CHLD} = \&REAPER;
     $done=0;      $done=0;
Line 803  sub busy_wait_command { Line 812  sub busy_wait_command {
     if ($advanced_role) {      if ($advanced_role) {
  &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message);   &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message);
     }      }
       my $last_size      = 0;
       my $unchanged_time = 0;
     while(!$done) {      while(!$done) {
  sleep 1;   sleep 1;
  my $extra_msg;   my $extra_msg;
  if ($output_file) {   if ($output_file) {
     my $size=(stat($output_file))[7];      my $size=(stat($output_file))[7];
     $extra_msg=", $size bytes generated";      $extra_msg=", $size bytes generated";
       if ($size == $last_size) {
    $unchanged_time++;
    if ($timeout && ($unchanged_time > $timeout)) {
       kill(9, $pid); # Reaper will do the rest...I hope there's errors in the log.
    }
       } else {
    $last_size      = $size;
    $unchanged_time = 0;
       }
  }   }
  if ($advanced_role) {   if ($advanced_role) {
     &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,      &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,
Line 868  sub repaginate { Line 888  sub repaginate {
  #  bottom of the page, m the page number within the document.   #  bottom of the page, m the page number within the document.
  #   #
   
  if ($line =~ /^%%Page:/) {   if ($line =~ /^%%Page:\s+\d+\s+\d+/) {
     my @pageinfo = split(/\s+/, $line);      my @pageinfo = split(/\s+/, $line);
     if ($page_number < $pageinfo[1]) {      if ($page_number < $pageinfo[1]) {
  $page_number = $pageinfo[1];   $page_number = $pageinfo[1];

Removed from v.1.126  
changed lines
  Added in v.1.129


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