Diff for /loncom/cgi/plot.gif between versions 1.10 and 1.15

version 1.10, 2003/09/24 21:15:55 version 1.15, 2016/08/19 05:15:21
Line 25 Line 25
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 use strict;  use strict;
   use bytes;
   
 $|=1;  $|=1;
   
Line 37  foreach (split/&/,$ENV{'QUERY_STRING'}) Line 38  foreach (split/&/,$ENV{'QUERY_STRING'})
 my $filename = $data{'file'};  my $filename = $data{'file'};
 # unescape filename  # unescape filename
 $filename =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;  $filename =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
   
 die if ($filename =~ /\// || $filename !~ /_plot.data$/);  die if ($filename =~ /\// || $filename !~ /_plot.data$/);
 $filename = $tmpdir . $filename;  $filename = $tmpdir . $filename;
 die "$data{'file'} does not exist\n" if (! -e $filename);  die "$data{'file'} does not exist\n" if (! -e $filename);
   
 my $output = $data{'output'};  my $output = $data{'output'};
 if ($output eq 'gif') {  if ($output eq '') {
     open PLOT, "gnuplot $filename |";      $output = (split('\.',$0))[-1];
   }
   
   if ($output eq 'gif' || $output eq 'png') {
       open(my $plot, "gnuplot $filename |");
       my $image_content= '';
       while (my $line = <$plot>) {
           $image_content .= $line;
       }
       my $length = bytes::length($image_content);
     print <<"END";      print <<"END";
 Content-type: image/gif  Content-type: image/$output
   Content-length: $length
   
   $image_content
 END  END
     while ($_=<PLOT>) {  
  print;  
     }  
 } elsif ($output eq 'eps') {  } elsif ($output eq 'eps') {
     print <<"END";      print <<"END";
 Content-type: text/html  Content-type: text/html
Line 62  Content-type: text/html Line 71  Content-type: text/html
   
 END  END
     if (! system ("gnuplot $filename")) {      if (! system ("gnuplot $filename")) {
         print "<h2>An error occured.</h2>\n".          print "<h2>An error occurred.</h2>\n".
             "I am not going to tell you about it as I have not bothered ".              "I am not going to tell you about it as I have not bothered ".
             "to figure out how to get you the error text.\n";              "to figure out how to get you the error text.\n";
     } else {      } else {
Line 72  END Line 81  END
 } else {  } else {
     die "output $output is not a recognized value or has no value\n";      die "output $output is not a recognized value or has no value\n";
 }  }
   
   
   

Removed from v.1.10  
changed lines
  Added in v.1.15


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