--- loncom/xml/run.pm 2004/07/13 19:12:46 1.47
+++ loncom/xml/run.pm 2005/02/26 06:10:30 1.50
@@ -1,6 +1,6 @@
package Apache::run;
#
-# $Id: run.pm,v 1.47 2004/07/13 19:12:46 albertel Exp $
+# $Id: run.pm,v 1.50 2005/02/26 06:10:30 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -48,23 +48,23 @@ while (!$_LONCAPA_INTERNAL_oldexpression
(?=[^\[\{\(]|$)/
my ($__LC__a,$__LC__b,$__LC__c)=($1,$2,$3);
my $__LC__prefix;
- my $result;
+ my $__LC__result;
while (1) {
{
use strict;
no strict "vars";
if (eval(defined(eval($__LC__a.$__LC__b)))) {
- $result= $__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c);
+ $__LC__result= $__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c);
last;
}
}
$__LC__prefix.=substr($__LC__a,0,1,"");
if ($__LC__a!~m-^(\$|&|\#)-) { last; }
}
- if (!defined($result)) {
- $result=$__LC__prefix.$__LC__a.$__LC__b.$__LC__c;
+ if (!defined($__LC__result)) {
+ $__LC__result=$__LC__prefix.$__LC__a.$__LC__b.$__LC__c;
}
- $result;
+ $__LC__result;
/sexg;
if (scalar(values(%_LONCAPA_INTERNAL_oldexpressions))>10) {last;}
}
@@ -82,7 +82,6 @@ sub evaluate {
die("timeout");
};
my $innererror;
- $safeeval->permit("require");
eval {
alarm($Apache::lonnet::perlvar{'lonScriptTimeout'});
$safeeval->reval('{'.$decls.';$_=<<\'EXPRESSION\';'."\n".$expression.
@@ -90,7 +89,6 @@ sub evaluate {
$innererror=$@;
alarm(0);
};
- $safeeval->deny("require");
my $error=$@;
if ($error eq '' && $innererror eq '' && !$Apache::run::timeout) {
$result = $safeeval->reval('return $_;');
@@ -162,19 +160,25 @@ sub dump {
if (($symname!~/^\_/) && ($symname!~/\:$/)) {
my $line;
if ($safeeval->reval('defined($'.$symname.')')) {
- $line='$'.$symname.'='.$safeeval->reval('$'.$symname);
+ if ($symname =~ /^\w/) {
+ $line.='$'.$symname.'='.$safeeval->reval('$'.$symname)."\n";
+ }
}
if ($safeeval->reval('defined(@'.$symname.')')) {
- $line='@'.$symname.'=('.
- $safeeval->reval('join(",",@'.$symname.')').")";
+ $line.='@'.$symname.'=('.
+ $safeeval->reval('join(",",@'.$symname.')').")"."\n";
}
if ($safeeval->reval('defined(%'.$symname.')')) {
- $line='%'.$symname.'=(';
+ $line.='%'.$symname.'=(';
$line.=$safeeval->reval('join(",",map { $_."=>".$'.
$symname.'{$_} } sort keys %'.
- $symname.')').")"
+ $symname.')').")"."\n"
}
- if ($line ne '') {$dump.=&HTML::Entities::encode($line,'<>&"')."
";}
+ if ($line ne '') {
+ $line=&HTML::Entities::encode($line,'<>&"');
+ $line=~s|\n|
|;
+ $dump.=$line;
+ }
}
}
$dump.='';