Diff for /loncom/xml/lonxml.pm between versions 1.328 and 1.332.2.2

version 1.328, 2004/07/12 16:25:51 version 1.332.2.2, 2004/10/18 19:50:43
Line 389  sub latex_special_symbols { Line 389  sub latex_special_symbols {
     } else {      } else {
  $string=~s/\\/\\ensuremath{\\backslash}/g;   $string=~s/\\/\\ensuremath{\\backslash}/g;
  $string=~s/([^\\]|^)\%/$1\\\%/g;   $string=~s/([^\\]|^)\%/$1\\\%/g;
  $string=~s/\b_{2,}\b/ \\makebox\[1 cm\]\[b\]{\\hrulefill}/g;   $string=~s/([^\\]|^)\$/$1\\\$/g;
  $string=~s/([^\\]|^)(\$|_)/$1\\$2/g;   $string=~s/([^\\])\_/$1\\_/g;
  $string=~s/\$\$/\$\\\$/g;   $string=~s/\$\$/\$\\\$/g;
    $string=~s/\_\_/\_\\\_/g;
  $string=~s/\#\#/\#\\\#/g;   $string=~s/\#\#/\#\\\#/g;
         $string=~s/([^\\]|^)(\~|\^)/$1\\$2\\strut /g;          $string=~s/([^\\]|^)(\~|\^)/$1\\$2\\strut /g;
  $string=~s/(>|<)/\\ensuremath\{$1\}/g; #more or less   $string=~s/(>|<)/\\ensuremath\{$1\}/g; #more or less
Line 399  sub latex_special_symbols { Line 400  sub latex_special_symbols {
  # any & or # leftover should be safe to just escape   # any & or # leftover should be safe to just escape
         $string=~s/([^\\]|^)\&/$1\\\&/g;          $string=~s/([^\\]|^)\&/$1\\\&/g;
         $string=~s/([^\\]|^)\#/$1\\\#/g;          $string=~s/([^\\]|^)\#/$1\\\#/g;
           $string=~s/\|/\$\\mid\$/g;
 #single { or } How to escape?  #single { or } How to escape?
     }      }
     return $string;      return $string;
Line 745  sub init_safespace { Line 747  sub init_safespace {
   
 #need to inspect this class of ops  #need to inspect this class of ops
 # $safeeval->deny(":base_orig");  # $safeeval->deny(":base_orig");
     $safeeval->permit("require");
   $safeinit .= ';$external::target="'.$target.'";';    $safeinit .= ';$external::target="'.$target.'";';
   my $rndseed;    my $rndseed;
   my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();    my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();
Line 753  sub init_safespace { Line 756  sub init_safespace {
   &Apache::lonxml::debug("Setting rndseed to $rndseed");    &Apache::lonxml::debug("Setting rndseed to $rndseed");
   &Apache::run::run($safeinit,$safeeval);    &Apache::run::run($safeinit,$safeeval);
   
   my $subroutine=<<'EVALUATESUB';  
 sub __LC_INTERNAL_EVALUATE__ {  
     my ($__LC__a,$__LC__b,$__LC__c)=@_;  
     my $__LC__prefix;  
     while(1){  
  {   
     use strict;  
     no strict "vars";  
     if (eval(defined(eval($__LC__a.$__LC__b)))) {  
  return $__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c);  
     }  
  }  
  $__LC__prefix.=substr($__LC__a,0,1,"");  
  if ($__LC__a!~/^(\$|&|\#)/) { last; }  
     }  
     return $__LC__prefix.$__LC__a.$__LC__b.$__LC__c;  
 }  
 EVALUATESUB  
     $safeeval->permit("require");  
     $safeeval->reval($subroutine);  
     $safeeval->deny("require");  
 }  }
   
 sub default_homework_load {  sub default_homework_load {
Line 1175  $cleanbut Line 1157  $cleanbut
 <input type="submit" name="savethisfile" accesskey="s"  value="$lt{'st'}" />  <input type="submit" name="savethisfile" accesskey="s"  value="$lt{'st'}" />
 <input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" />  <input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" />
 BUTTONS  BUTTONS
         $buttons.=&Apache::lonhtmlcommon::htmlareaselectactive('filecont');
       my $editfooter=(<<ENDFOOTER);        my $editfooter=(<<ENDFOOTER);
 $initialize  $initialize
 <hr />  <hr />
Line 1546  sub whichuser { Line 1529  sub whichuser {
   if (defined($ENV{'form.grade_symb'})) {    if (defined($ENV{'form.grade_symb'})) {
     my $tmp_courseid=$ENV{'form.grade_courseid'};      my $tmp_courseid=$ENV{'form.grade_courseid'};
     my $allowed=&Apache::lonnet::allowed('vgr',$tmp_courseid);      my $allowed=&Apache::lonnet::allowed('vgr',$tmp_courseid);
       if (!$allowed && 
    exists($ENV{'request.course.sec'}) && 
    $ENV{'request.course.sec'} !~ /^\s*$/) {
    $allowed=&Apache::lonnet::allowed('vgr',$ENV{'form.grade_courseid'}.
     '/'.$ENV{'request.course.sec'});
       }
     if ($allowed) {      if ($allowed) {
       $symb=$ENV{'form.grade_symb'};        $symb=$ENV{'form.grade_symb'};
       $courseid=$ENV{'form.grade_courseid'};        $courseid=$ENV{'form.grade_courseid'};

Removed from v.1.328  
changed lines
  Added in v.1.332.2.2


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