--- loncom/xml/lonxml.pm 2004/02/19 19:29:40 1.302 +++ loncom/xml/lonxml.pm 2004/02/26 23:39:03 1.303 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.302 2004/02/19 19:29:40 sakharuk Exp $ +# $Id: lonxml.pm,v 1.303 2004/02/26 23:39:03 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -760,6 +760,28 @@ sub init_safespace { $safeinit .= ';$external::randomseed='.$rndseed.';'; &Apache::lonxml::debug("Setting rndseed to $rndseed"); &Apache::run::run($safeinit,$safeeval); + + my $subroutine=<<'EVALUATESUB'; +sub __LC_INTERNAL_EVALUATE__ { + my ($__LC__a,$__LC__b,$__LC__c)=@_; + my $__LC__prefix; + my $__LC__msg; + while(1){ + { + use strict; + if (eval(defined(eval($__LC__a.$__LC__b)))) { + return $__LC__msg.$__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.$__LC__msg; +} +EVALUATESUB + $safeeval->permit("require"); + $safeeval->reval($subroutine); + $safeeval->deny("require"); } sub default_homework_load { @@ -1326,10 +1348,6 @@ sub error { "Error [$declutter]",join('
',@_)); } } - - #FIXME probably shouldn't have me get everything forever. - &Apache::lonmsg::user_normal_msg('albertel','msu',"Error in $ENV{'request.filename'}",join('
',@_)); - #&Apache::lonmsg::user_normal_msg('albertel','103',"Error in $ENV{'request.filename'}",$_[0]); } }