--- loncom/xml/run.pm	2003/03/28 23:32:46	1.34
+++ loncom/xml/run.pm	2003/10/01 21:27:35	1.40
@@ -1,6 +1,6 @@
 package Apache::run;
 #
-# $Id: run.pm,v 1.34 2003/03/28 23:32:46 albertel Exp $
+# $Id: run.pm,v 1.40 2003/10/01 21:27:35 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -49,7 +49,7 @@ sub evaluate {
     };
     my $innererror;
     eval {
-	alarm(Apache->request->server->timeout);
+	alarm($Apache::lonnet::perlvar{'lonScriptTimeout'});
 	$safeeval->reval('{'.$decls.';$_=<<\'EXPRESSION\';'."\n".$expression.
 			 "\n".'EXPRESSION'."\n".$EVALUATE_STRING.'}');
 	$innererror=$@;
@@ -87,22 +87,31 @@ sub run {
     };
     my $innererror;
     eval {
-	alarm(Apache->request->server->timeout);
+	alarm($Apache::lonnet::perlvar{'lonScriptTimeout'});
 	@result=$safeeval->reval($code);
 	$innererror=$@;
 	alarm(0);
     };
     my $error=$@;
-    &Apache::lonxml::debug("run got $@");
     if (($Apache::run::timeout || $error ne '' || $innererror ne '') && !$hideerrors) {
 	if ($Apache::run::timeout) {
 	    $error = 'Code ran too long. It ran for more than '.
 		Apache->request->server->timeout.' seconds';
 	}
-	&Apache::lonxml::error('<pre>'.&HTML::Entities::encode($error).' '.
-			       &HTML::Entities::encode($innererror).
-			       '</pre> occured while running <pre>'.
-			       &HTML::Entities::encode($code).'</pre>');
+	my $errormsg='<pre>'.&HTML::Entities::encode($error).' '.
+	    &HTML::Entities::encode($innererror).
+	    '</pre> occured while running <pre>';
+	$code=&HTML::Entities::encode($code);
+	&Apache::lonxml::debug("");
+	if ($innererror=~/line (\d+)/) {
+	    &Apache::lonxml::debug("Line is $1");
+	    my $linenumber=$1;
+	    my @code=split("\n",$code);
+	    $code[$linenumber-1]='<b><font color="red">'.
+		$code[$linenumber-1].'</font></b>';
+	    $code=join("\n",@code);
+	}
+	&Apache::lonxml::error($errormsg.$code.'</pre>');
     }
     if ( $#result < '1') {
 	return $result[0];
@@ -131,7 +140,7 @@ sub dump {
 				$symname.'{$_} } sort keys %'.
 				$symname.')').")"
       }
-      if ($line ne '') { $dump.=&HTML::Entities::encode($line)."<br />\n"; }
+      if ($line ne '') { $dump.=&HTML::Entities::encode($line)."<br />"; }
     }
   }
   $dump.='';