version 1.45, 2004/02/26 23:39:04
|
version 1.48, 2004/07/19 16:53:46
|
Line 46 while (!$_LONCAPA_INTERNAL_oldexpression
|
Line 46 while (!$_LONCAPA_INTERNAL_oldexpression
|
# only match the above if there is not { [ ( coming up |
# only match the above if there is not { [ ( coming up |
# Why? (I.e. this fails &a(1)[2] |
# Why? (I.e. this fails &a(1)[2] |
(?=[^\[\{\(]|$)/ |
(?=[^\[\{\(]|$)/ |
&__LC_INTERNAL_EVALUATE__($1,$2,$3)/sexg; |
my ($__LC__a,$__LC__b,$__LC__c)=($1,$2,$3); |
|
my $__LC__prefix; |
|
my $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); |
|
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; |
|
} |
|
$result; |
|
/sexg; |
if (scalar(values(%_LONCAPA_INTERNAL_oldexpressions))>10) {last;} |
if (scalar(values(%_LONCAPA_INTERNAL_oldexpressions))>10) {last;} |
} |
} |
ENDEVALUATE |
ENDEVALUATE |
Line 80 sub evaluate {
|
Line 99 sub evaluate {
|
$Apache::lonnet::perlvar{'lonScriptTimeout'}.' seconds'; |
$Apache::lonnet::perlvar{'lonScriptTimeout'}.' seconds'; |
} |
} |
&Apache::lonxml::error('substitution on <pre>'. |
&Apache::lonxml::error('substitution on <pre>'. |
&HTML::Entities::encode($expression). |
&HTML::Entities::encode($expression,'<>&"'). |
'</pre> with <pre>'. |
'</pre> with <pre>'. |
&HTML::Entities::encode($decls). |
&HTML::Entities::encode($decls,'<>&"'). |
'</pre> caused <pre>'. |
'</pre> caused <pre>'. |
&HTML::Entities::encode($error).' '. |
&HTML::Entities::encode($error,'<>&"').' '. |
&HTML::Entities::encode($innererror). |
&HTML::Entities::encode($innererror,'<>&"'). |
'</pre>'); |
'</pre>'); |
} |
} |
return $result |
return $result |
Line 113 sub run {
|
Line 132 sub run {
|
$error = 'Code ran too long. It ran for more than '. |
$error = 'Code ran too long. It ran for more than '. |
$Apache::lonnet::perlvar{'lonScriptTimeout'}.' seconds'; |
$Apache::lonnet::perlvar{'lonScriptTimeout'}.' seconds'; |
} |
} |
my $errormsg='<pre>'.&HTML::Entities::encode($error).' '. |
my $errormsg='<pre>'.&HTML::Entities::encode($error,'<>&"').' '. |
&HTML::Entities::encode($innererror). |
&HTML::Entities::encode($innererror,'<>&"'). |
'</pre> occured while running <pre>'; |
'</pre> occured while running <pre>'; |
$code=&HTML::Entities::encode($code); |
$code=&HTML::Entities::encode($code,'<>&"'); |
if ($innererror=~/line (\d+)/) { |
if ($innererror=~/line (\d+)/) { |
my $linenumber=$1; |
my $linenumber=$1; |
my @code=split("\n",$code); |
my @code=split("\n",$code); |
Line 153 sub dump {
|
Line 172 sub dump {
|
$symname.'{$_} } sort keys %'. |
$symname.'{$_} } sort keys %'. |
$symname.')').")" |
$symname.')').")" |
} |
} |
if ($line ne '') {$dump.=&HTML::Entities::encode($line)."<br />";} |
if ($line ne '') {$dump.=&HTML::Entities::encode($line,'<>&"')."<br />";} |
} |
} |
} |
} |
$dump.=''; |
$dump.=''; |