--- loncom/cgi/plot.gif 2003/09/24 21:15:55 1.10 +++ loncom/cgi/plot.gif 2007/08/28 23:42:05 1.13 @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# $Id: plot.gif,v 1.10 2003/09/24 21:15:55 matthew Exp $ +# $Id: plot.gif,v 1.13 2007/08/28 23:42:05 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,21 +37,26 @@ foreach (split/&/,$ENV{'QUERY_STRING'}) 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; die "$data{'file'} does not exist\n" if (! -e $filename); my $output = $data{'output'}; -if ($output eq 'gif') { - open PLOT, "gnuplot $filename |"; +if ($output eq '') { + $output = (split('\.',$0))[-1]; +} + +if ($output eq 'gif' || $output eq 'png') { + open(my $plot, "gnuplot $filename |"); + print <<"END"; -Content-type: image/gif +Content-type: image/$output END - while ($_=) { - print; + while (my $line = <$plot>) { + print($line); } + } elsif ($output eq 'eps') { print <<"END"; Content-type: text/html @@ -72,6 +77,3 @@ END } else { die "output $output is not a recognized value or has no value\n"; } - - -