Diff for /loncom/xml/lonplot.pm between versions 1.121 and 1.134

version 1.121, 2007/08/03 05:56:00 version 1.134, 2008/01/20 02:47:06
Line 36  use Apache::response; Line 36  use Apache::response;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::edit;  use Apache::edit;
 use Apache::lonnet;  use Apache::lonnet;
 use lib '/home/httpd/lib/perl/';  
 use LONCAPA;  use LONCAPA;
     
   
 use vars qw/$weboutputformat $versionstring/;  use vars qw/$weboutputformat $version/;
   
   
   
Line 49  BEGIN { Line 48  BEGIN {
     #      #
     # Determine the version of GNUPLOT      # Determine the version of GNUPLOT
     $weboutputformat = 'gif';      $weboutputformat = 'gif';
     $versionstring = `gnuplot --version 2>/dev/null`;      my $versionstring = `gnuplot --version 2>/dev/null`;
     if ($versionstring =~ /^gnuplot 4/) {      ($version) = ($versionstring =~ /^gnuplot ([\d.]+)/);
       if ($version >= 4) {
         $weboutputformat = 'png';          $weboutputformat = 'png';
     }      }
           
Line 127  my $words_test     = sub {$_[0]=~s/\s+/ Line 127  my $words_test     = sub {$_[0]=~s/\s+/
 ##                                                               ##  ##                                                               ##
 ###################################################################  ###################################################################
 my @gnuplot_edit_order =   my @gnuplot_edit_order = 
     qw/alttag bgcolor fgcolor height width fontface font transparent grid samples       qw/alttag bgcolor fgcolor height width texwidth fontface font texfont
     border align texwidth texfont plotcolor plottype gridtype lmargin rmargin      transparent grid samples 
       border align plotcolor plottype gridtype lmargin rmargin
     tmargin bmargin major_ticscale minor_ticscale boxwidth gridlayer fillstyle      tmargin bmargin major_ticscale minor_ticscale boxwidth gridlayer fillstyle
     pattern solid/;      pattern solid/;
   
Line 205  my %gnuplot_defaults = Line 206  my %gnuplot_defaults =
      font         => {       font         => {
  default     => '9',   default     => '9',
  test        => $sml_test,   test        => $sml_test,
  description => 'Size of font to use',   description => 'Font size to use in web output (pts)',
  edit_type   => 'choice',   edit_type   => 'choice',
  choices     => [['5','5 (small)'],'7',['9','9 (medium)'],'10','12',['15','15 (large)']]   choices     => [['5','5 (small)'],'6','7','8',['9','9 (medium)'],'10',['11','11 (large)'],'12','15']
  },   },
      fontface     => {       fontface     => {
         default     => 'sans-serif',          default     => 'sans-serif',
Line 384  my %label_defaults = Line 385  my %label_defaults =
  description => 'justification of the label text on the plot',   description => 'justification of the label text on the plot',
  edit_type   => 'choice',   edit_type   => 'choice',
  choices     => ['left','right','center']   choices     => ['left','right','center']
        },
        rotate => {
            default => 0,
            test => $real_test,
            description => 'Rotation of label (degrees)',
            edit_type   => 'entry',
            size        => '10',
      }       }
      );       );
   
Line 434  my %tic_defaults = Line 442  my %tic_defaults =
  },            },         
      );       );
   
 my @axis_edit_order = ('color','xmin','xmax','ymin','ymax');  my @axis_edit_order = ('color','xmin','xmax','ymin','ymax','xformat', 'yformat');
 my %axis_defaults =   my %axis_defaults = 
     (      (
      color   => {       color   => {
Line 471  my %axis_defaults = Line 479  my %axis_defaults =
  description => 'Maximum y-value shown in plot',     description => 'Maximum y-value shown in plot',  
  edit_type   => 'entry',   edit_type   => 'entry',
  size        => '10'   size        => '10'
  }          },
        xformat      => {
            default     => 'on',
            test        => sub {$_[0]=~/^(on|off|\d+(f|F|e|E))$/},
            description => 'X-axis number formatting',
            edit_type   => 'choice',
            choices     => ['on', 'off', '2e', '2f'],
            },
        yformat      => {
            default     => 'on',
            test        => sub {$_[0]=~/^(on|off|\d+(f|F|e|E))$/},
            description => 'X-axis number formatting',
            edit_type   => 'choice',
            choices     => ['on', 'off', '2e', '2f'],
            },
   
      );       );
   
 my @curve_edit_order = ('color','name','linestyle','linewidth','pointtype','pointsize','limit');  my @curve_edit_order = ('color','name','linestyle','linewidth','pointtype','pointsize','limit');
Line 500  my %curve_defaults = Line 523  my %curve_defaults =
  choices     => [keys(%linestyles)]   choices     => [keys(%linestyles)]
  },   },
      linewidth => {       linewidth => {
          default     => 4,           default     => 1,
          test        => $int_test,           test        => $int_test,
          description => 'Line width (may not apply to all line styles)',           description => 'Line width (may not apply to all line styles)',
          edit_type   => 'choice',           edit_type   => 'choice',
Line 702  my %font_properties = Line 725  my %font_properties =
      );       );
   
 sub get_font {  sub get_font {
       my ($target) = @_;
     my ($size, $selected_font);      my ($size, $selected_font);
   
     if ( $Apache::lonplot::plot{'font'} =~ /^(small|medium|large)/) {      if ( $Apache::lonplot::plot{'font'} =~ /^(small|medium|large)/) {
Line 711  sub get_font { Line 735  sub get_font {
  } elsif ( $Apache::lonplot::plot{'font'} eq 'medium') {   } elsif ( $Apache::lonplot::plot{'font'} eq 'medium') {
     $size = '9';      $size = '9';
  } elsif ( $Apache::lonplot::plot{'font'} eq 'large') {   } elsif ( $Apache::lonplot::plot{'font'} eq 'large') {
     $size = '15';      $size = '11';
  } else {   } else {
     $size = '9';      $size = '9';
  }   }
     } else {      } else {
    $size = $Apache::lonplot::plot{'font'};
  $selected_font = $font_properties{$Apache::lonplot::plot{'fontface'}};   $selected_font = $font_properties{$Apache::lonplot::plot{'fontface'}};
     }      }
       if ($target eq 'tex' && defined($Apache::lonplot::plot{'texfont'})) {
    $size = $Apache::lonplot::plot{'texfont'};
       }
     return ($size, $selected_font);      return ($size, $selected_font);
 }  }
   
Line 751  sub end_key { Line 779  sub end_key {
     return $result;      return $result;
 }  }
   
   sub parse_label {
       my ($target,$text) = @_;
       my $parser=HTML::LCParser->new(\$text);
       my $result;
       while (my $token=$parser->get_token) {
    if ($token->[0] eq 'S') {
       if ($token->[1] eq 'sub') {
    $result .= '_{';
       } elsif ($token->[1] eq 'sup') {
    $result .= '^{';
       } else {
    $result .= $token->[4];
       }
    } elsif ($token->[0] eq 'E') {
       if ($token->[1] eq 'sub'
    || $token->[1] eq 'sup') {
    $result .= '}';
       } else {
    $result .= $token->[2];
       }
    } elsif ($token->[0] eq 'T') {
       $result .= &replace_entities($target,$token->[1]);
    }
       }
       return $result;
   }
   
   
   my %lookup = 
      ('(Alpha|#913)'    => {'tex' => '{/Symbol A}', 'web' => "\x{391}"},
        '(Beta|#914)'    => {'tex' => '{/Symbol B}', 'web' => "\x{392}"},
        '(Chi|#935)'     => {'tex' => '{/Symbol C}', 'web' => "\x{3A7}"},
        '(Delta|#916)'   => {'tex' => '{/Symbol D}', 'web' => "\x{394}"},
        '(Epsilon|#917)' => {'tex' => '{/Symbol E}', 'web' => "\x{395}"},
        '(Phi|#934)'     => {'tex' => '{/Symbol F}', 'web' => "\x{3A6}"},
        '(Gamma|#915)'   => {'tex' => '{/Symbol G}', 'web' => "\x{393}"},
        '(Eta|#919)'     => {'tex' => '{/Symbol H}', 'web' => "\x{397}"},
        '(Iota|#921)'    => {'tex' => '{/Symbol I}', 'web' => "\x{399}"},
        '(Kappa|#922)'   => {'tex' => '{/Symbol K}', 'web' => "\x{39A}"},
        '(Lambda|#923)'  => {'tex' => '{/Symbol L}', 'web' => "\x{39B}"},
        '(Mu|#924)'      => {'tex' => '{/Symbol M}', 'web' => "\x{39C}"},
        '(Nu|#925)'      => {'tex' => '{/Symbol N}', 'web' => "\x{39D}"},
        '(Omicron|#927)' => {'tex' => '{/Symbol O}', 'web' => "\x{39F}"},
        '(Pi|#928)'      => {'tex' => '{/Symbol P}', 'web' => "\x{3A0}"},
        '(Theta|#920)'   => {'tex' => '{/Symbol Q}', 'web' => "\x{398}"},
        '(Rho|#929)'     => {'tex' => '{/Symbol R}', 'web' => "\x{3A1}"},
        '(Sigma|#931)'   => {'tex' => '{/Symbol S}', 'web' => "\x{3A3}"},
        '(Tau|#932)'     => {'tex' => '{/Symbol T}', 'web' => "\x{3A4}"},
        '(Upsilon|#933)' => {'tex' => '{/Symbol U}', 'web' => "\x{3A5}"},
        '(Omega|#937)'   => {'tex' => '{/Symbol W}', 'web' => "\x{3A9}"},
        '(Xi|#926)'      => {'tex' => '{/Symbol X}', 'web' => "\x{39E}"},
        '(Psi|#936)'     => {'tex' => '{/Symbol Y}', 'web' => "\x{3A8}"},
        '(Zeta|#918)'    => {'tex' => '{/Symbol Z}', 'web' => "\x{396}"},
        '(alpha|#945)'   => {'tex' => '{/Symbol a}', 'web' => "\x{3B1}"},
        '(beta|#946)'    => {'tex' => '{/Symbol b}', 'web' => "\x{3B2}"},
        '(chi|#967)'     => {'tex' => '{/Symbol c}', 'web' => "\x{3C7}"},
        '(delta|#948)'   => {'tex' => '{/Symbol d}', 'web' => "\x{3B4}"},
        '(epsilon|#949)' => {'tex' => '{/Symbol e}', 'web' => "\x{3B5}"},
        '(phi|#966)'     => {'tex' => '{/Symbol f}', 'web' => "\x{3C6}"},
        '(gamma|#947)'   => {'tex' => '{/Symbol g}', 'web' => "\x{3B3}"},
        '(eta|#951)'     => {'tex' => '{/Symbol h}', 'web' => "\x{3B7}"},
        '(iota|#953)'    => {'tex' => '{/Symbol i}', 'web' => "\x{3B9}"},
        '(kappa|#954)'   => {'tex' => '{/Symbol k}', 'web' => "\x{3BA}"},
        '(lambda|#955)'  => {'tex' => '{/Symbol k}', 'web' => "\x{3BB}"},
        '(mu|#956)'      => {'tex' => '{/Symbol m}', 'web' => "\x{3BC}"},
        '(nu|#957)'      => {'tex' => '{/Symbol n}', 'web' => "\x{3BD}"},
        '(omicron|#959)' => {'tex' => '{/Symbol o}', 'web' => "\x{3BF}"},
        '(pi|#960)'      => {'tex' => '{/Symbol p}', 'web' => "\x{3C0}"},
        '(theta|#952)'   => {'tex' => '{/Symbol q}', 'web' => "\x{3B8}"},
        '(rho|#961)'     => {'tex' => '{/Symbol r}', 'web' => "\x{3C1}"},
        '(sigma|#963)'   => {'tex' => '{/Symbol s}', 'web' => "\x{3C3}"},
        '(tau|#964)'     => {'tex' => '{/Symbol t}', 'web' => "\x{3C4}"},
        '(upsilon|#965)' => {'tex' => '{/Symbol u}', 'web' => "\x{3C5}"},
        '(omega|#969)'   => {'tex' => '{/Symbol w}', 'web' => "\x{3C9}"},
        '(xi|#958)'      => {'tex' => '{/Symbol x}', 'web' => "\x{3BE}"},
        '(psi|#968)'     => {'tex' => '{/Symbol y}', 'web' => "\x{3C8}"},
        '(zeta|#950)'    => {'tex' => '{/Symbol z}', 'web' => "\x{3B6}"},
       );
   
   
   sub replace_entities {
       my ($target,$text) = @_;
       $text =~ s{([_^~\{\}]|\\\\)}{\\\\$1}g;
       while (my ($re, $replace) = each(%lookup)) {
    $text =~ s/&$re;/$replace->{$target}/g;
       }
       $text =~ s{(&)}{\\\\$1}g;
       return $text;
   }
   
 ##------------------------------------------------------------------- title  ##------------------------------------------------------------------- title
 sub start_title {  sub start_title {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
Line 762  sub start_title { Line 880  sub start_title {
  if (length($title) > $max_str_len) {   if (length($title) > $max_str_len) {
     $title = substr($title,0,$max_str_len);      $title = substr($title,0,$max_str_len);
  }   }
    $title = &parse_label($target,$title);
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::tag_start($target,$token,'Plot Title');   $result.=&Apache::edit::tag_start($target,$token,'Plot Title');
  my $text=&Apache::lonxml::get_all_text("/title",$parser,$style);   my $text=&Apache::lonxml::get_all_text("/title",$parser,$style);
Line 793  sub start_xlabel { Line 912  sub start_xlabel {
  if (length($xlabel) > $max_str_len) {   if (length($xlabel) > $max_str_len) {
     $xlabel = substr($xlabel,0,$max_str_len);      $xlabel = substr($xlabel,0,$max_str_len);
  }   }
    $xlabel = &parse_label($target,$xlabel);
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::tag_start($target,$token,'Plot Xlabel');   $result.=&Apache::edit::tag_start($target,$token,'Plot Xlabel');
  my $text=&Apache::lonxml::get_all_text("/xlabel",$parser,$style);   my $text=&Apache::lonxml::get_all_text("/xlabel",$parser,$style);
Line 825  sub start_ylabel { Line 945  sub start_ylabel {
  if (length($ylabel) > $max_str_len) {   if (length($ylabel) > $max_str_len) {
     $ylabel = substr($ylabel,0,$max_str_len);      $ylabel = substr($ylabel,0,$max_str_len);
  }   }
    $ylabel = &parse_label($target,$ylabel);
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'Plot Ylabel');   $result .= &Apache::edit::tag_start($target,$token,'Plot Ylabel');
  my $text = &Apache::lonxml::get_all_text("/ylabel",$parser,$style);   my $text = &Apache::lonxml::get_all_text("/ylabel",$parser,$style);
Line 858  sub start_label { Line 979  sub start_label {
  $text = &Apache::run::evaluate($text,$safeeval,$$parstack[-1]);   $text = &Apache::run::evaluate($text,$safeeval,$$parstack[-1]);
  $text =~ s/\n/ /g;   $text =~ s/\n/ /g;
  $text = substr($text,0,$max_str_len) if (length($text) > $max_str_len);   $text = substr($text,0,$max_str_len) if (length($text) > $max_str_len);
  $label{'text'} = $text;   $label{'text'} = &parse_label($target,$text);
  push(@labels,\%label);   push(@labels,\%label);
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'Plot Label');   $result .= &Apache::edit::tag_start($target,$token,'Plot Label');
Line 1115  sub get_attributes{ Line 1236  sub get_attributes{
 ##------------------------------------------------------- write_gnuplot_file  ##------------------------------------------------------- write_gnuplot_file
 sub write_gnuplot_file {  sub write_gnuplot_file {
     my ($tmpdir,$filename,$target)= @_;      my ($tmpdir,$filename,$target)= @_;
     my ($fontsize, $font_properties) =  &get_font();      my ($fontsize, $font_properties) =  &get_font($target);
     my $gnuplot_input = '';      my $gnuplot_input = '';
     my $curve;      my $curve;
     my $pt = $Apache::lonplot::plot{'texfont'};  
     #      #
     # Check to be sure we do not have any empty curves      # Check to be sure we do not have any empty curves
     my @curvescopy;      my @curvescopy;
Line 1210  sub write_gnuplot_file { Line 1330  sub write_gnuplot_file {
     if (lc($Apache::lonplot::plot{'bmargin'}) ne 'default') {      if (lc($Apache::lonplot::plot{'bmargin'}) ne 'default') {
         $gnuplot_input .= 'set bmargin '.$Apache::lonplot::plot{'bmargin'}.$/;          $gnuplot_input .= 'set bmargin '.$Apache::lonplot::plot{'bmargin'}.$/;
     }      }
   
     # tic scales      # tic scales
     $gnuplot_input .= 'set ticscale '.      if ($version > 4) {
         $Apache::lonplot::plot{'major_ticscale'}.' '.$Apache::lonplot::plot{'minor_ticscale'}.$/;   $gnuplot_input .= 'set tics scale '.
       $Apache::lonplot::plot{'major_ticscale'}.', '.$Apache::lonplot::plot{'minor_ticscale'}.$/;
       } else {
       $gnuplot_input .= 'set ticscale '.
       $Apache::lonplot::plot{'major_ticscale'}.' '.$Apache::lonplot::plot{'minor_ticscale'}.$/;
       }
     #boxwidth      #boxwidth
     if (lc($Apache::lonplot::plot{'boxwidth'}) ne '') {      if (lc($Apache::lonplot::plot{'boxwidth'}) ne '') {
  $gnuplot_input .= 'set boxwidth '.$Apache::lonplot::plot{'boxwidth'}.$/;   $gnuplot_input .= 'set boxwidth '.$Apache::lonplot::plot{'boxwidth'}.$/;
Line 1231  sub write_gnuplot_file { Line 1357  sub write_gnuplot_file {
     $gnuplot_input .= "set samples $Apache::lonplot::plot{'samples'}\n";      $gnuplot_input .= "set samples $Apache::lonplot::plot{'samples'}\n";
     # title, xlabel, ylabel      # title, xlabel, ylabel
     # titles      # titles
       my $extra_space_x = ($xtics{'location'} eq 'axis') ? ' 0, -0.5 ' : '';
       my $extra_space_y = ($ytics{'location'} eq 'axis') ? ' -0.5, 0 ' : '';
   
     if ($target eq 'tex') {      if ($target eq 'tex') {
  $gnuplot_input .= "set title  \"$title\"  font \"".$font_properties->{'printname'}.",".$pt."pt\"\n" if (defined($title)) ;   $gnuplot_input .= "set title  \"$title\"          font \"".$font_properties->{'printname'}.",".$fontsize."pt\"\n" if (defined($title)) ;
  $gnuplot_input .= "set xlabel \"$xlabel\" font \"".$font_properties->{'printname'}.",".$pt."pt\"\n" if (defined($xlabel));   $gnuplot_input .= "set xlabel \"$xlabel\" $extra_space_x font \"".$font_properties->{'printname'}.",".$fontsize."pt\"\n" if (defined($xlabel));
  $gnuplot_input .= "set ylabel \"$ylabel\" font \"".$font_properties->{'printname'}.",".$pt."pt\"\n" if (defined($ylabel));   $gnuplot_input .= "set ylabel \"$ylabel\" $extra_space_y font \"".$font_properties->{'printname'}.",".$fontsize."pt\"\n" if (defined($ylabel));
     } else {      } else {
         $gnuplot_input .= "set title  \"$title\"  \n" if (defined($title)) ;          $gnuplot_input .= "set title  \"$title\"          \n" if (defined($title)) ;
         $gnuplot_input .= "set xlabel \"$xlabel\" \n" if (defined($xlabel));          $gnuplot_input .= "set xlabel \"$xlabel\" $extra_space_x \n" if (defined($xlabel));
         $gnuplot_input .= "set ylabel \"$ylabel\" \n" if (defined($ylabel));          $gnuplot_input .= "set ylabel \"$ylabel\" $extra_space_y \n" if (defined($ylabel));
     }      }
     # tics      # tics
     if (%xtics) {          if (%xtics) {    
Line 1263  sub write_gnuplot_file { Line 1392  sub write_gnuplot_file {
     }      }
     # axis      # axis
     if (%axis) {      if (%axis) {
           if ($axis{'xformat'} ne 'on') {
               $gnuplot_input .= "set format x ";
               if ($axis{'xformat'} eq 'off') {
                   $gnuplot_input .= "\"\"\n";
               } else {
                   $gnuplot_input .= "\"\%.".$axis{'xformat'}."\"\n";
               }
           }
           if ($axis{'yformat'} ne 'on') {
               $gnuplot_input .= "set format y ";
               if ($axis{'yformat'} eq 'off') {
                   $gnuplot_input .= "\"\"\n";
               } else {
                   $gnuplot_input .= "\"\%.".$axis{'yformat'}."\"\n";
               }
           }
  $gnuplot_input .= "set xrange \[$axis{'xmin'}:$axis{'xmax'}\]\n";   $gnuplot_input .= "set xrange \[$axis{'xmin'}:$axis{'xmax'}\]\n";
  $gnuplot_input .= "set yrange \[$axis{'ymin'}:$axis{'ymax'}\]\n";   $gnuplot_input .= "set yrange \[$axis{'ymin'}:$axis{'ymax'}\]\n";
     }      }
Line 1280  sub write_gnuplot_file { Line 1425  sub write_gnuplot_file {
     my $label;      my $label;
     foreach $label (@labels) {      foreach $label (@labels) {
  $gnuplot_input .= 'set label "'.$label->{'text'}.'" at '.   $gnuplot_input .= 'set label "'.$label->{'text'}.'" at '.
     $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'};                            $label->{'xpos'}.','.$label->{'ypos'};
           if ($label->{'rotate'} ne '') {
               $gnuplot_input .= ' rotate by '.$label->{'rotate'};
           }
           $gnuplot_input .= ' '.$label->{'justify'};
   
         if ($target eq 'tex') {          if ($target eq 'tex') {
     $gnuplot_input .=' font "'.$font_properties->{'printname'}.','.$pt.'pt"' ;      $gnuplot_input .=' font "'.$font_properties->{'printname'}.','.$fontsize.'pt"' ;
         }          }
         $gnuplot_input .= $/;          $gnuplot_input .= $/;
     }      }
Line 1303  sub write_gnuplot_file { Line 1453  sub write_gnuplot_file {
  $curve->{'function'}.' title "'.   $curve->{'function'}.' title "'.
  $curve->{'name'}.'" with '.   $curve->{'name'}.'" with '.
                 $curve->{'linestyle'};                  $curve->{'linestyle'};
             $gnuplot_input.= ' linewidth '.$curve->{'linewidth'};  
   
             if (($curve->{'linestyle'} eq 'points')      ||              if (($curve->{'linestyle'} eq 'points')      ||
                 ($curve->{'linestyle'} eq 'linespoints') ||                  ($curve->{'linestyle'} eq 'linespoints') ||
Line 1316  sub write_gnuplot_file { Line 1465  sub write_gnuplot_file {
             } elsif ($curve->{'linestyle'} eq 'filledcurves') {               } elsif ($curve->{'linestyle'} eq 'filledcurves') { 
                 $gnuplot_input.= ' '.$curve->{'limit'};                  $gnuplot_input.= ' '.$curve->{'limit'};
             }              }
               $gnuplot_input.= ' linewidth '.$curve->{'linewidth'};
   
  } elsif (exists($curve->{'data'})) {   } elsif (exists($curve->{'data'})) {
     # Store data values in $datatext      # Store data values in $datatext
     my $datatext = '';      my $datatext = '';
Line 1339  sub write_gnuplot_file { Line 1490  sub write_gnuplot_file {
     $gnuplot_input.= '"'.$datafilename.'" title "'.      $gnuplot_input.= '"'.$datafilename.'" title "'.
  $curve->{'name'}.'" with '.   $curve->{'name'}.'" with '.
  $curve->{'linestyle'};   $curve->{'linestyle'};
             $gnuplot_input.= ' linewidth '.$curve->{'linewidth'};  
             if (($curve->{'linestyle'} eq 'points')      ||              if (($curve->{'linestyle'} eq 'points')      ||
                 ($curve->{'linestyle'} eq 'linespoints') ||                  ($curve->{'linestyle'} eq 'linespoints') ||
                 ($curve->{'linestyle'} eq 'errorbars')   ||                  ($curve->{'linestyle'} eq 'errorbars')   ||
Line 1351  sub write_gnuplot_file { Line 1501  sub write_gnuplot_file {
             } elsif ($curve->{'linestyle'} eq 'filledcurves') {               } elsif ($curve->{'linestyle'} eq 'filledcurves') { 
                 $gnuplot_input.= ' '.$curve->{'limit'};                  $gnuplot_input.= ' '.$curve->{'limit'};
             }              }
               $gnuplot_input.= ' linewidth '.$curve->{'linewidth'};
  }   }
     }      }
     # Write the output to a file.      # Write the output to a file.
     my $fh=Apache::File->new(">$tmpdir$filename.data");      open (my $fh,">$tmpdir$filename.data");
       binmode($fh, ":utf8");
     print $fh $gnuplot_input;      print $fh $gnuplot_input;
     close($fh);      close($fh);
     # That's all folks.      # That's all folks.

Removed from v.1.121  
changed lines
  Added in v.1.134


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