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

version 1.7, 2001/12/21 16:10:58 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;
   
 my $tmpdir = '/home/httpd/perl/tmp/';  my $tmpdir = '/home/httpd/perl/tmp/';
 my $filename = $ENV{'QUERY_STRING'};  my %data;
   foreach (split/&/,$ENV{'QUERY_STRING'}) {
 if ($filename =~ /\// |      my ($name,$value)=split/=/;
     $filename !~ /_plot.data$/) {      $data{$name}=$value;
     die;  
 }  }
   my $filename = $data{'file'};
   # unescape filename
   $filename =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
   die if ($filename =~ /\// || $filename !~ /_plot.data$/);
 $filename = $tmpdir . $filename;  $filename = $tmpdir . $filename;
 if (-e $filename) {  die "$data{'file'} does not exist\n" if (! -e $filename);
     open PLOT, "gnuplot $filename |";  
   my $output = $data{'output'};
   if ($output eq '') {
       $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') {
       print <<"END";
   Content-type: text/html
   
   <html><head><title>eps plot creation</title></head>
   <body>
   <h2>Creating eps plot</h2>
   
   END
       if (! system ("gnuplot $filename")) {
           print "<h2>An error occurred.</h2>\n".
               "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";
       } else {
           print "<h2>EPS file generated successfully.</h2>\n";
     }      }
       print "</body></html>\n";
   } else {
       die "output $output is not a recognized value or has no value\n";
 }  }
   

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


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