version 1.304, 2004/03/02 20:59:24
|
version 1.307, 2004/03/02 22:45:56
|
Line 750 sub init_safespace {
|
Line 750 sub init_safespace {
|
$safehole->wrap(\&Math::Random::random_set_seed_from_phrase,$safeeval,'&random_set_seed_from_phrase'); |
$safehole->wrap(\&Math::Random::random_set_seed_from_phrase,$safeeval,'&random_set_seed_from_phrase'); |
$safehole->wrap(\&Math::Random::random_get_seed,$safeeval,'&random_get_seed'); |
$safehole->wrap(\&Math::Random::random_get_seed,$safeeval,'&random_get_seed'); |
$safehole->wrap(\&Math::Random::random_set_seed,$safeeval,'&random_set_seed'); |
$safehole->wrap(\&Math::Random::random_set_seed,$safeeval,'&random_set_seed'); |
|
$safehole->wrap(\&Apache::lonxml::error,$safeeval,'&LONCAPA_INTERNAL_ERROR'); |
|
|
#need to inspect this class of ops |
#need to inspect this class of ops |
# $safeeval->deny(":base_orig"); |
# $safeeval->deny(":base_orig"); |
Line 765 sub init_safespace {
|
Line 766 sub init_safespace {
|
sub __LC_INTERNAL_EVALUATE__ { |
sub __LC_INTERNAL_EVALUATE__ { |
my ($__LC__a,$__LC__b,$__LC__c)=@_; |
my ($__LC__a,$__LC__b,$__LC__c)=@_; |
my $__LC__prefix; |
my $__LC__prefix; |
my $__LC__msg; |
|
while(1){ |
while(1){ |
{ |
{ |
use strict; |
use strict; |
|
no strict "vars"; |
if (eval(defined(eval($__LC__a.$__LC__b)))) { |
if (eval(defined(eval($__LC__a.$__LC__b)))) { |
return $__LC__msg.$__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c); |
return $__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c); |
} |
} |
} |
} |
$__LC__prefix.=substr($__LC__a,0,1,""); |
$__LC__prefix.=substr($__LC__a,0,1,""); |
if ($__LC__a!~/^(\$|&|\#)/) { last; } |
if ($__LC__a!~/^(\$|&|\#)/) { last; } |
} |
} |
return $__LC__prefix.$__LC__a.$__LC__b.$__LC__c.$__LC__msg; |
return $__LC__prefix.$__LC__a.$__LC__b.$__LC__c; |
} |
} |
EVALUATESUB |
EVALUATESUB |
$safeeval->permit("require"); |
$safeeval->permit("require"); |
Line 1332 sub error {
|
Line 1333 sub error {
|
if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) { |
if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) { |
# If printing in construction space, put the error inside <pre></pre> |
# If printing in construction space, put the error inside <pre></pre> |
$request->print($Apache::lonxml::warnings_error_header. |
$request->print($Apache::lonxml::warnings_error_header. |
"<b>ERROR:</b>".join("\n",@_)."\n"); |
"<b>ERROR:</b>".join("<br />\n",@_)."<br />\n"); |
$Apache::lonxml::warnings_error_header=''; |
$Apache::lonxml::warnings_error_header=''; |
} else { |
} else { |
$request->print("<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />"); |
$request->print("<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />"); |