--- loncom/xml/run.pm 2005/02/28 22:17:09 1.51 +++ loncom/xml/run.pm 2006/02/20 23:52:20 1.57 @@ -1,6 +1,6 @@ package Apache::run; # -# $Id: run.pm,v 1.51 2005/02/28 22:17:09 albertel Exp $ +# $Id: run.pm,v 1.57 2006/02/20 23:52:20 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,6 +50,7 @@ while (!$_LONCAPA_INTERNAL_oldexpression my $__LC__prefix; my $__LC__result; while (1) { + if ($__LC__a =~ m-^&(theta|pi|rho)$-) { last; } { use strict; no strict "vars"; @@ -139,8 +140,10 @@ sub run { if ($innererror=~/line (\d+)/) { my $linenumber=$1; my @code=split("\n",$code); - $code[$linenumber-1]=''. - $code[$linenumber-1].''; + if ($linenumber < scalar(@code)) { + $code[$linenumber-1]=''. + $code[$linenumber-1].''; + } $code=join("\n",@code); } &Apache::lonxml::error($errormsg.$code.''); @@ -157,7 +160,8 @@ sub dump { my ($target,$safeeval)=@_; my $dump=''; foreach my $symname (sort keys %{$safeeval->varglob('main::')}) { - if (($symname!~/^\_/) && ($symname!~/\:$/)) { + if (($symname!~ /^(INC|SIG)/) && ($symname!~/\027/) && + ($symname!~/^\_/) && ($symname!~/\:$/)) { my $line; if ($safeeval->reval('defined($'.$symname.')')) { if ($symname =~ /^\w/) { @@ -172,11 +176,11 @@ sub dump { $line.='%'.$symname.'=('; $line.=$safeeval->reval('join(",",map { $_."=>".$'. $symname.'{$_} } sort keys %'. - $symname.')').")"."\n" - } + $symname.')').")"."\n"; + } if ($line ne '') { $line=&HTML::Entities::encode($line,'<>&"'); - $line=~s|\n|
|; + $line=~s|\n|
|g; $dump.=$line; } }