Diff for /loncom/interface/lonhelp.pm between versions 1.20 and 1.21

version 1.20, 2006/03/15 21:55:58 version 1.21, 2006/03/15 23:41:49
Line 148  sub handler { Line 148  sub handler {
      my $docroot = $r->dir_config('lonDocRoot');       my $docroot = $r->dir_config('lonDocRoot');
      my $serverroot = $ENV{'HTTP_HOST'};       my $serverroot = $ENV{'HTTP_HOST'};
   
      my $filenames = &Apache::lonnet::unescape(substr ($ENV{'REQUEST_URI'} ,        &Apache::lonlocal::get_language_handle($r);
        my $text='';
        if ($env{'form.searchterm'}=~/\w/) {
        } else {
           my $filenames = &Apache::lonnet::unescape(substr ($ENV{'REQUEST_URI'} , 
     rindex($ENV{'REQUEST_URI'}, '/') + 1, -4));      rindex($ENV{'REQUEST_URI'}, '/') + 1, -4));
   
      # Security check on the file; the whole filename must consist          # Security check on the file; the whole filename must consist
      # of nothing but alphanums, ' ,, or ., or the file          # of nothing but alphanums, ' ,, or ., or the file
      # will be "not found", no matter what.          # will be "not found", no matter what.
             
      return HTTP_NOT_FOUND if ($filenames !~ /\A[-0-9a-zA-z_'',:.]+\Z/);          return HTTP_NOT_FOUND if ($filenames !~ /\A[-0-9a-zA-z_'',:.]+\Z/);
   
      &Apache::lonlocal::get_language_handle($r);  
   
      # Join together the tex files, return HTTP_NOT_FOUND if any of          # Join together the tex files, return HTTP_NOT_FOUND if any of
      # them are not found          # them are not found
      my $tex = '';          my $tex = '';
      # Since in insertlist.tab I want to specify multiple files,          # Since in insertlist.tab I want to specify multiple files,
      # and insertlist.tab also uses commas, I need something else          # and insertlist.tab also uses commas, I need something else
      # so replace : with ,          # so replace : with ,
      $filenames =~ s/:/,/g;          $filenames =~ s/:/,/g;
      my @files = split(/,/, $filenames);          my @files = split(/,/, $filenames);
             
      for my $filename (@files) {          for my $filename (@files) {
  if (-e $docroot.'/adm/help/tex/'.      if (-e $docroot.'/adm/help/tex/'.
      &Apache::lonlocal::current_language().'/'.          &Apache::lonlocal::current_language().'/'.
      $filename.'.tex') {          $filename.'.tex') {
      $filename=&Apache::lonlocal::current_language().'/'.$filename;          $filename=&Apache::lonlocal::current_language().'/'.$filename;
  }      }
  (my $file = Apache::File->new($docroot      (my $file = Apache::File->new($docroot
    . '/adm/help/tex/'.$filename.'.tex'))       . '/adm/help/tex/'.$filename.'.tex'))
      or return HTTP_NOT_FOUND;           or return HTTP_NOT_FOUND;
  $tex .= join('', <$file>);       $tex .= join('', <$file>);
      }          }
   
      if ($env{'browser.mathml'}) {          if ($env{'browser.mathml'}) {
  &Apache::loncommon::content_type($r,'text/xml');     &Apache::loncommon::content_type($r,'text/xml');
  &tth::ttminit();     &tth::ttminit();
  if ($env{'browser.unicode'}) {     if ($env{'browser.unicode'}) {
      &tth::ttmoptions('-L -u1');         &tth::ttmoptions('-L -u1');
  } else {     } else {
      &tth::ttmoptions('-L -u0');         &tth::ttmoptions('-L -u0');
  }     }
      } else {          } else {
  &Apache::loncommon::content_type($r,"text/html");     &Apache::loncommon::content_type($r,"text/html");
  &tth::tthinit();     &tth::tthinit();
  if ($env{'browser.unicode'}) {     if ($env{'browser.unicode'}) {
      &tth::tthoptions('-L -u1');         &tth::tthoptions('-L -u1');
  } else {     } else {
      &tth::tthoptions('-L -u0');         &tth::tthoptions('-L -u0');
  }     }
           }
           $text = &render($tex, $docroot, $serverroot);
      }       }
   
      $r->send_http_header;       $r->send_http_header;
      my $text = &render($tex, $docroot, $serverroot);  
      &servetext($r,$text);       &servetext($r,$text);
      return OK;       return OK;
 }  }

Removed from v.1.20  
changed lines
  Added in v.1.21


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