Diff for /loncom/xml/lonxml.pm between versions 1.327 and 1.330

version 1.327, 2004/07/08 14:35:12 version 1.330, 2004/07/13 19:12:46
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 753  sub init_safespace { Line 754  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 788  sub default_homework_load { Line 768  sub default_homework_load {
     }      }
 }  }
   
   my $metamode_was;
 sub startredirection {  sub startredirection {
   $Apache::lonxml::redirection++;      if (!$Apache::lonxml::redirection) {
   push (@Apache::lonxml::outputstack, '');   $metamode_was=$Apache::lonxml::metamode;
       }
       $Apache::lonxml::metamode=0;
       $Apache::lonxml::redirection++;
       push (@Apache::lonxml::outputstack, '');
 }  }
   
 sub endredirection {  sub endredirection {
   if (!$Apache::lonxml::redirection) {      if (!$Apache::lonxml::redirection) {
     &Apache::lonxml::error("Endredirection was called, before a startredirection, perhaps you have unbalanced tags. Some debuging information:".join ":",caller);   &Apache::lonxml::error("Endredirection was called, before a startredirection, perhaps you have unbalanced tags. Some debuging information:".join ":",caller);
     return '';   return '';
   }      }
   $Apache::lonxml::redirection--;      $Apache::lonxml::redirection--;
   pop @Apache::lonxml::outputstack;      if (!$Apache::lonxml::redirection) {
    $Apache::lonxml::metamode=$metamode_was;
       }
       pop @Apache::lonxml::outputstack;
 }  }
   
 sub end_tag {  sub end_tag {

Removed from v.1.327  
changed lines
  Added in v.1.330


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