Diff for /loncom/xml/londefdef.pm between versions 1.255.2.1 and 1.274

version 1.255.2.1, 2005/04/06 06:08:13 version 1.274, 2005/05/23 09:41:38
Line 39 Line 39
   
 package Apache::londefdef;   package Apache::londefdef; 
   
 use Apache::lonnet();  use Apache::lonnet;
 use strict;  use strict;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::File();  use Apache::File();
Line 84  sub start_m { Line 84  sub start_m {
     my $currentstring = '';      my $currentstring = '';
     my $inside = &Apache::lonxml::get_all_text_unbalanced("/m",$parser);      my $inside = &Apache::lonxml::get_all_text_unbalanced("/m",$parser);
     if ($target eq 'web' || $target eq 'analyze') {      if ($target eq 'web' || $target eq 'analyze') {
  $inside ='\\documentstyle{article}'.$inside;  
  &Apache::lonxml::debug("M is starting with:$inside:");   &Apache::lonxml::debug("M is starting with:$inside:");
  my $eval=&Apache::lonxml::get_param('eval',$parstack,$safeeval);   my $eval=&Apache::lonxml::get_param('eval',$parstack,$safeeval);
  if ($eval eq 'on') {   if ($eval eq 'on') {
Line 106  sub start_m { Line 105  sub start_m {
     $currentstring=&Apache::run::evaluate($currentstring,$safeeval,$$parstack[-1]);      $currentstring=&Apache::run::evaluate($currentstring,$safeeval,$$parstack[-1]);
  }   }
  if ($currentstring=~/^(\s*\\\\\s*)*$/) {$currentstring = ' \vskip 0 mm ';}   if ($currentstring=~/^(\s*\\\\\s*)*$/) {$currentstring = ' \vskip 0 mm ';}
    # detect simple math mode entry exits, and convert them
           # to use \ensuremath
    if ($currentstring=~/^\s*\$[^\$].*[^\$]\$\s*$/) {
       $currentstring=~s/^\$//;
       $currentstring=~s/\$$//;
       $currentstring='\ensuremath{'.$currentstring.'}';
    }
  $Apache::lonxml::post_evaluate=0;   $Apache::lonxml::post_evaluate=0;
     }      }
     return $currentstring;      return $currentstring;
Line 126  sub start_tthoption { Line 132  sub start_tthoption {
     if ($target eq 'web') {      if ($target eq 'web') {
  my $inside = &Apache::lonxml::get_all_text("/tthoption",$parser);   my $inside = &Apache::lonxml::get_all_text("/tthoption",$parser);
  $inside=~s/^\s*//;   $inside=~s/^\s*//;
  if ($ENV{'browser.mathml'}) {   if ($env{'browser.mathml'}) {
     &tth::ttmoptions($inside);      &tth::ttmoptions($inside);
  } else {   } else {
     &tth::tthoptions($inside);      &tth::tthoptions($inside);
Line 145  sub end_tthoption { Line 151  sub end_tthoption {
 sub start_html {  sub start_html {
     my ($target,$token) = @_;      my ($target,$token) = @_;
     my $currentstring = '';      my $currentstring = '';
     my $options=$ENV{'course.'.$ENV{'request.course.id'}.'.tthoptions'};      my $options=$env{'course.'.$env{'request.course.id'}.'.tthoptions'};
     &Apache::lontexconvert::init_tth();      &Apache::lontexconvert::init_tth();
     if ($target eq 'web' || $target eq 'edit') {      if ($target eq 'web' || $target eq 'edit' || $target eq 'webgrade' ) {
  $currentstring = &Apache::lonxml::xmlbegin();   $currentstring = &Apache::lonxml::xmlbegin();
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  @Apache::londefdef::table = ();  
  $currentstring .= '\documentclass[letterpaper]{article}';   $currentstring .= '\documentclass[letterpaper]{article}';
  if (($ENV{'form.latex_type'}=~'batchmode') ||   if (($env{'form.latex_type'}=~'batchmode') ||
             (!$ENV{'request.role.adv'})) {$currentstring .='\batchmode';}               (!$env{'request.role.adv'})) {$currentstring .='\batchmode';} 
  $currentstring .= '\newcommand{\keephidden}[1]{}'.   $currentstring .= '\newcommand{\keephidden}[1]{}'.
                           '\renewcommand{\deg}{$^{\circ}$}'.                            '\renewcommand{\deg}{$^{\circ}$}'.
                           '\usepackage{longtable}'.                            '\usepackage{longtable}'.
Line 178  sub end_html { Line 183  sub end_html {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web') {      if ($target eq 'web') {
  $currentstring = &Apache::lonxml::xmlend($target,$parser);   $currentstring = '</html>';
     }      }
     return $currentstring;      return $currentstring;
 }  }
Line 196  sub start_head { Line 201  sub start_head {
 sub end_head {  sub end_head {
     my ($target,$token) = @_;      my ($target,$token) = @_;
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web' && $ENV{'request.state'} eq 'published') {      if ($target eq 'web' && $env{'request.state'} eq 'published') {
  $currentstring = &Apache::lonmenu::registerurl(undef,$target).   $currentstring = &Apache::lonmenu::registerurl(undef,$target).
     $token->[2];          $token->[2];    
     }       } 
Line 484  sub start_body { Line 489  sub start_body {
     return '';      return '';
  }   }
  if (!$Apache::lonxml::registered &&    if (!$Apache::lonxml::registered && 
     $ENV{'request.state'} eq 'published') {      $env{'request.state'} eq 'published') {
     $currentstring.='<head>'.      $currentstring.='<head>'.
  &Apache::lonmenu::registerurl(undef,$target).'</head>';   &Apache::lonmenu::registerurl(undef,$target).'</head>';
  }   }
 # Accessibility  # Accessibility
  if ($ENV{'browser.imagesuppress'} eq 'on') {   if ($env{'browser.imagesuppress'} eq 'on') {
     delete($token->[2]->{'background'});      delete($token->[2]->{'background'});
  }   }
  if ($ENV{'browser.fontenhance'} eq 'on') {   if ($env{'browser.fontenhance'} eq 'on') {
     my $style='';      my $style='';
     foreach my $key (keys(%{$token->[2]})) {      foreach my $key (keys(%{$token->[2]})) {
  if ($key =~ /^style$/i) {   if ($key =~ /^style$/i) {
Line 502  sub start_body { Line 507  sub start_body {
     }      }
     $token->[2]->{'style'}=$style.'; font-size: x-large;';      $token->[2]->{'style'}=$style.'; font-size: x-large;';
  }   }
  if ($ENV{'browser.blackwhite'} eq 'on') {   if ($env{'browser.blackwhite'} eq 'on') {
     delete($token->[2]->{'font'});      delete($token->[2]->{'font'});
     delete($token->[2]->{'link'});      delete($token->[2]->{'link'});
     delete($token->[2]->{'alink'});      delete($token->[2]->{'alink'});
Line 529  sub start_body { Line 534  sub start_body {
  $token->[2]->{'onunload'}=&Apache::lonmenu::unloadevents().   $token->[2]->{'onunload'}=&Apache::lonmenu::unloadevents().
     ';'.$onUnload;      ';'.$onUnload;
   
  if ($ENV{'request.state'} ne 'construct') {   if ($env{'request.state'} ne 'construct') {
     $currentstring .= '<'.$token->[1];      $currentstring .= '<'.$token->[1];
  }   }
  foreach (keys %{$token->[2]}) {   foreach (keys %{$token->[2]}) {
     $currentstring.=' '.$_.'="'.$token->[2]->{$_}.'"';      $currentstring.=' '.$_.'="'.$token->[2]->{$_}.'"';
  }   }
  if ($ENV{'request.state'} ne 'construct') {   if ($env{'request.state'} ne 'construct') {
     $currentstring.='>';      $currentstring.='>';
  }   }
  if ($ENV{'request.state'} ne 'published') {   if ($env{'request.state'} ne 'published') {
     my $remote=($ENV{'environment.remote'} ne 'off');      my $remote=($env{'environment.remote'} ne 'off');
     $currentstring=&Apache::loncommon::bodytag(undef,undef,      $currentstring=&Apache::loncommon::bodytag(undef,undef,
        $currentstring,$remote);         $currentstring,$remote);
     $currentstring.=(<<EDITBUTTON);      $currentstring.=(<<EDITBUTTON);
Line 558  EDITBUTTON Line 563  EDITBUTTON
 }  }
   
 sub end_body {  sub end_body {
     my ($target,$token) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web') {      if ($target eq 'web') {
  $currentstring = $token->[2];        $currentstring = &Apache::lonxml::xmlend($target,$parser);
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $currentstring = '\strut\newline\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\newline\noindent \end{document}';     $currentstring = '\strut\newline\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\newline\noindent \end{document}';  
     }       } 
Line 1120  sub start_p { Line 1125  sub start_p {
  if ($align eq 'center') {   if ($align eq 'center') {
     $currentstring='\begin{center}\par';      $currentstring='\begin{center}\par';
  } elsif ($align eq 'right') {   } elsif ($align eq 'right') {
     $currentstring='\makebox['.$ENV{'form.textwidth'}.']{\hfill\llap{';      $currentstring='\makebox['.$env{'form.textwidth'}.']{\hfill\llap{';
  } elsif ($align eq 'left') {   } elsif ($align eq 'left') {
     $currentstring='\noindent\makebox['.$ENV{'form.textwidth'}.']{\rlap{';      $currentstring='\noindent\makebox['.$env{'form.textwidth'}.']{\rlap{';
  } else {   } else {
             $currentstring='\par ';              $currentstring='\par ';
         }          }
Line 1271  sub start_font { Line 1276  sub start_font {
     if ($target eq 'web') {      if ($target eq 'web') {
  my $face=&Apache::lonxml::get_param('face',$parstack,$safeeval);   my $face=&Apache::lonxml::get_param('face',$parstack,$safeeval);
  if ($face!~/symbol/i) {   if ($face!~/symbol/i) {
     if (($ENV{'browser.fontenhance'} eq 'on') ||       if (($env{'browser.fontenhance'} eq 'on') || 
  ($ENV{'browser.blackwhite'} eq 'on')) { return ''; }   ($env{'browser.blackwhite'} eq 'on')) { return ''; }
  }   }
  $currentstring = $token->[4];        $currentstring = $token->[4];     
     }  elsif ($target eq 'tex') {      }  elsif ($target eq 'tex') {
Line 1820  sub start_table { Line 1825  sub start_table {
  $Apache::londefdef::table[-1]{'row_number'} = -1;   $Apache::londefdef::table[-1]{'row_number'} = -1;
         #maximum table's width (default coincides with text line length)          #maximum table's width (default coincides with text line length)
  if ($#Apache::londefdef::table==0) {   if ($#Apache::londefdef::table==0) {
     $textwidth=&recalc($ENV{'form.textwidth'}); #result is always in mm      $textwidth=&recalc($env{'form.textwidth'}); #result is always in mm
     $textwidth=~/(\d+\.?\d*)/;      $textwidth=~/(\d+\.?\d*)/;
     $textwidth=0.95*$1; #accounts "internal" LaTeX space for table frame      $textwidth=0.95*$1; #accounts "internal" LaTeX space for table frame
  } else {   } else {
Line 2444  sub start_img { Line 2449  sub start_img {
    # Render unto browsers that which are the browser's...     # Render unto browsers that which are the browser's...
   
     if ($target eq 'web') {      if ($target eq 'web') {
  if ($ENV{'browser.imagesuppress'} ne 'on') {   if ($env{'browser.imagesuppress'} ne 'on') {
     $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src});      $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src});
  } else {   } else {
     my $alttag= &Apache::lonxml::get_param      my $alttag= &Apache::lonxml::get_param
Line 2489  sub start_img { Line 2494  sub start_img {
  if(!$latex_rendering) {   if(!$latex_rendering) {
     $latex_rendering = "parbox";      $latex_rendering = "parbox";
  }   }
  &Apache::lonxml::debug("LaTeX rendering = $latex_rendering");   &Apache::lonxml::debug("LaTeX rendering = $latex_rendering image file: $src");
   
  my $oldSRC=$src;  
         $oldSRC=~s/\.(gif|jpg|png)$/\.eps/;  
  $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);  
  #if original gif/jpg/png file exist do following:   #if original gif/jpg/png file exist do following:
    my $origsrc=$src;
    my ($path,$file) = &get_eps_image($src);
    $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
    &Apache::lonxml::debug("path = $path file = $file src = $src");
  if (-e $src) {   if (-e $src) {
     #what is the image size?      &Apache::lonxml::debug("$src exists");
     my $width_param=&image_width($src,$scaling,$parstack,$safeeval);      my ($height_param,$width_param)=
     my $height_param=&image_height($src,$scaling,$parstack,$safeeval);   &image_size($origsrc,0.3,$parstack,$safeeval);
             my ($file,$path)=&file_path($src);       my $destpath = $path;
     my $newsrc = $src;      $destpath    =~ s/ /\_/g; # Spaces in path cause LaTex to vomit.
     $newsrc =~ s/\.(gif|jpg|png)$/.eps/i;      my $destfile = $file;
     &Apache::lonnet::repcopy($oldSRC);      $destfile    =~ s/ /\_/g;
     $file=~s/\.(gif|jpg|png)$/.eps/i;      my $size;
     #where can we find the picture?      if ($width_param)  { $size.='width='.$width_param.' mm,'; }
     if (-e $newsrc) {      if ($height_param) { $size.='height='.$height_param.' mm]'; }
  #eps counterpart for image exist       $size='['.$size;
  if ($path) {      $size=~s/,$/]/; 
     my $size;      $currentstring .= '\graphicspath{{'.$destpath.'}}'
     if ($width_param)  { $size.='width='.$width_param.' mm,'; }   .'\includegraphics'.$size.'{'.$destfile.'} ';
     if ($height_param) { $size.='height='.$height_param.' mm]'; }  
     $size='['.$size;  
     $size=~s/,$/]/;   
     $currentstring .= '\graphicspath{{'.$path.'}}'  
              .'\includegraphics'.$size.'{'.$file.'} ';  
  }  
     } else {  
  #there is no eps counterpart for image - check for ps one  
  $newsrc =~ s/\.eps$/\.ps/;  
  if (-e $newsrc) {  
     #ps counterpart for image exist   
     $file =~ s/\.eps$/\.ps/;  
     if ($path) {  
  $currentstring .= '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} ';  
     }  
  } else {  
     #care about eps dynamical generation  
     $currentstring.=&eps_generation($src,$file,$width_param);  
  }  
     }  
     #    If there's an alignment specification we need to honor it here.      #    If there's an alignment specification we need to honor it here.
     #    For the horizontal alignments, we will also honor the      #    For the horizontal alignments, we will also honor the
     #    value of the latex specfication.  The default is parbox,      #    value of the latex specfication.  The default is parbox,
Line 2561  sub start_img { Line 2548  sub start_img {
  # $currentstring = '\raisebox{'.$height_param.'mm}{'.$currentstring.'}';   # $currentstring = '\raisebox{'.$height_param.'mm}{'.$currentstring.'}';
     }      }
  } else {   } else {
       &Apache::lonxml::debug("$src does not exist");
     #original image file doesn't exist so check the alt attribute      #original image file doesn't exist so check the alt attribute
     my $alt =       my $alt = 
  &Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1);   &Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1);
Line 2568  sub start_img { Line 2556  sub start_img {
  $alt=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src);   $alt=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src);
     }      }
   
     if ($alt) {      if ($alt) { $currentstring .= ' '.$alt.' '; }
  $currentstring .= ' '.$alt.' ';  
     } else {  
  #<allow> tag will care about replication   
     }  
  }   }
   
  # And here's where the semi-quote breaks down: allow the user   # And here's where the semi-quote breaks down: allow the user
         # to edit the beast as well by rendering the problem for edit:          # to edit the beast as well by rendering the problem for edit:
   
   
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $currentstring .=&Apache::edit::tag_start($target,$token);   $currentstring .=&Apache::edit::tag_start($target,$token);
  $currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).   $currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).
Line 2645  sub start_img { Line 2627  sub start_img {
  }   }
  if ($ctag) {$currentstring=&Apache::edit::rebuild_tag($token);}   if ($ctag) {$currentstring=&Apache::edit::rebuild_tag($token);}
     }      }
   
     return $currentstring;      return $currentstring;
 }  }
   
Line 2672  sub start_applet { Line 2655  sub start_applet {
           
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web') {      if ($target eq 'web') {
  if ($ENV{'browser.appletsuppress'} ne 'on') {   if ($env{'browser.appletsuppress'} ne 'on') {
     $currentstring = &Apache::lonenc::encrypt_ref($token,      $currentstring = &Apache::lonenc::encrypt_ref($token,
   {'code'=>$code,    {'code'=>$code,
    'archive'=>$archive}     'archive'=>$archive}
Line 2718  sub start_embed { Line 2701  sub start_embed {
     $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;      $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web') {      if ($target eq 'web') {
  if ($ENV{'browser.embedsuppress'} ne 'on') {   if ($env{'browser.embedsuppress'} ne 'on') {
     $currentstring=&Apache::lonenc::encrypt_ref($token,{'src'=>$src});      $currentstring=&Apache::lonenc::encrypt_ref($token,{'src'=>$src});
  } else {   } else {
     my $alttag=&Apache::lonxml::get_param      my $alttag=&Apache::lonxml::get_param
Line 2814  sub start_frameset { Line 2797  sub start_frameset {
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web') {       if ($target eq 'web') { 
  if (!$Apache::lonxml::registered &&   if (!$Apache::lonxml::registered &&
     $ENV{'request.state'} eq 'published') {      $env{'request.state'} eq 'published') {
     $currentstring.='<head>'.      $currentstring.='<head>'.
  &Apache::lonmenu::registerurl(undef,$target).'</head>';   &Apache::lonmenu::registerurl(undef,$target).'</head>';
  }   }
Line 3779  sub image_replication { Line 3762  sub image_replication {
     $pssrc  =~ s/\.(gif|jpg|jpeg|png)$/.ps/i;      $pssrc  =~ s/\.(gif|jpg|jpeg|png)$/.ps/i;
     if (not -e $epssrc && not -e $pssrc) {      if (not -e $epssrc && not -e $pssrc) {
  my $result=&Apache::lonnet::repcopy($epssrc);   my $result=&Apache::lonnet::repcopy($epssrc);
  if ($result ne OK) { &Apache::lonnet::repcopy($pssrc); }   if ($result ne 'ok') { &Apache::lonnet::repcopy($pssrc); }
     }      }
     return '';      return '';
 }  }
   
 sub image_size {  sub image_size {
     my ($src,$scaling,$parstack,$safeeval)=@_;      my ($src,$scaling,$parstack,$safeeval,$depth,$cis)=@_;
   
     #size of image from gif/jpg/jpeg/png       #size of image from gif/jpg/jpeg/png 
       my $ressrc=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
       if (-e $ressrc) {
    $src = $ressrc;
       }
     my $image = Image::Magick->new;      my $image = Image::Magick->new;
     my $current_figure = $image->Read($src);      my $current_figure = $image->Read($src);
     my $width_param = $image->Get('width') * $scaling;;      my $width_param = $image->Get('width') * $scaling;;
     my $height_param = $image->Get('height') * $scaling;;      my $height_param = $image->Get('height') * $scaling;
     undef $image;      &Apache::lonxml::debug("Image magick says: $src :  Height = $height_param width = $width_param");
       undef($image);
     #do we have any specified LaTeX size of the picture?      #do we have any specified LaTeX size of the picture?
     my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval);      my $toget='TeXwidth'; 
     my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval);      if ($cis) { 
    $toget=lc($toget); 
       }
       my $TeXwidth = &Apache::lonxml::get_param($toget,$parstack,
         $safeeval,$depth,$cis);
       $toget='TeXheight'; if ($cis) { $toget=lc($toget); }
       my $TeXheight = &Apache::lonxml::get_param($toget,$parstack,
          $safeeval,$depth,$cis);
     #do we have any specified web size of the picture?      #do we have any specified web size of the picture?
     my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval,      my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval,
    undef,1);     $depth,1);
     if ($TeXwidth ne '') {        if ($TeXwidth) { 
  my $old_width_param=$width_param;   my $old_width_param=$width_param;
  if ($TeXwidth=~/(\d+)\s*\%/) {   if ($TeXwidth=~/(\d+)\s*\%/) {
     $width_param = $1*$ENV{'form.textwidth'}/100;      $width_param = $1*$env{'form.textwidth'}/100;
  } else {    } else { 
     $width_param = $TeXwidth;      $width_param = $TeXwidth;
  }   }
Line 3810  sub image_size { Line 3806  sub image_size {
  } elsif ($old_width_param) {   } elsif ($old_width_param) {
     $height_param=$TeXwidth/$old_width_param*$height_param;      $height_param=$TeXwidth/$old_width_param*$height_param;
  }   }
     } elsif ($TeXheight ne '') {      } elsif ($TeXheight) {
  $height_param = $TeXheight;   $height_param = $TeXheight;
  if ($height_param) {   if ($height_param) {
     $width_param  = $TeXheight/$height_param*$width_param;      $width_param  = $TeXheight/$height_param*$width_param;
  }   }
     } elsif ($width ne '') {      } elsif ($width) {
  my $old_width_param=$width_param;   my $old_width_param=$width_param;
  $width_param = $width*$scaling;         $width_param = $width*$scaling;
  if ($old_width_param) {   if ($old_width_param) {
             $height_param=$width_param/$old_width_param*$height_param;      $height_param=$width_param/$old_width_param*$height_param;
  }   }
     }      }
     if ($width_param > $ENV{'form.textwidth'}) {      if ($width_param > $env{'form.textwidth'}) {
         my $old_width_param=$width_param;          my $old_width_param=$width_param;
  $width_param =0.95*$ENV{'form.textwidth'};   $width_param =0.95*$env{'form.textwidth'};
  if ($old_width_param) {   if ($old_width_param) {
             $height_param=$width_param/$old_width_param*$height_param;      $height_param=$width_param/$old_width_param*$height_param;
  }   }
     }      }
     return ($height_param, $width_param);      return ($height_param, $width_param);
Line 3844  sub image_height { Line 3840  sub image_height {
     return $height;      return $height;
 }  }
   
   sub get_eps_image {
       my ($src)=@_;
       my $orig_src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1], $src);
       &Apache::lonxml::debug("get_eps_image: Original image: $orig_src<BR />");
       $src=~s/\.(gif|png|jpg|jpeg)$/\.eps/i;
       $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
       &Apache::lonxml::debug("Filelocation gives; $src <BR />");
       if (! -e $src) {
    &Apache::lonxml::debug("$src does not exist");
    if (&Apache::lonnet::repcopy($src) ne 'ok' ) {
       &Apache::lonxml::debug("Repcopy of $src failed (1)");
       #if replication failed try to find ps file
       $src=~s/\.eps$/\.ps/;
       &Apache::lonxml::debug("Now looking for $src");
       #if no ps file try to replicate it.
       my $didrepcopy = &Apache::lonnet::repcopy($src);
       &Apache::lonxml::debug("repcopy of $src ... $didrepcopy");
       if ( (not -e $src) ||
    ($didrepcopy ne 'ok')) {
    &Apache::lonxml::debug("Failed to find or replicate $src");
   
    #if replication failed try to produce eps file dynamically
    $src=~s/\.ps$/\.eps/;
    my $temp_file;
    open(FILE,">>/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat");
    my $newsrc=$orig_src;
    $newsrc =~ s|(.*)/res/|/home/httpd/html/res/|;
    &Apache::lonxml::debug("queueing $newsrc for dynamic eps production. <BR/>");
    print FILE "$newsrc\n";
    close FILE;
    $src=~s|/home/httpd/html/res|/home/httpd/prtspool|;
    $src=~s|/home/([^/]*)/public_html/|/home/httpd/prtspool/$1/|;
       }
    }
       }
       my ($path,$file)=($src=~m|(.*)/([^/]*)$|);
       &Apache::lonxml::debug("get_eps_image returning: $path / $file<BR />");
       return ($path.'/',$file);
   }
   
 sub eps_generation {  sub eps_generation {
     my ($src,$file,$width_param) = @_;           my ($src,$file,$width_param) = @_;     
     my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";      my $filename = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat";
     my $temp_file = Apache::File->new('>>'.$filename);       my $temp_file = Apache::File->new('>>'.$filename); 
     print $temp_file "$src\n";      print $temp_file "$src\n";
     my $newsrc = $src;      my $newsrc = $src;

Removed from v.1.255.2.1  
changed lines
  Added in v.1.274


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