version 1.329, 2004/07/13 18:13:46
|
version 1.331, 2004/07/19 16:48:28
|
Line 746 sub init_safespace {
|
Line 746 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 754 sub init_safespace {
|
Line 755 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 { |