From: Mike G. v. a. <we...@ma...> - 2005-07-29 21:25:33
|
Log Message: ----------- When print error output errorOutput($error, $details) allow $details to be a reference to a string or a reference to an array. This may not make much difference when the details are short, but it can make a very large difference if the details are long. Modified Files: -------------- webwork-modperl/lib/WeBWorK: ContentGenerator.pm Revision Data ------------- Index: ContentGenerator.pm =================================================================== RCS file: /webwork/cvs/system/webwork-modperl/lib/WeBWorK/ContentGenerator.pm,v retrieving revision 1.138 retrieving revision 1.139 diff -Llib/WeBWorK/ContentGenerator.pm -Llib/WeBWorK/ContentGenerator.pm -u -r1.138 -r1.139 --- lib/WeBWorK/ContentGenerator.pm +++ lib/WeBWorK/ContentGenerator.pm @@ -1671,8 +1671,17 @@ my %headers = $r->headers_in; join("", map { CGI::Tr(CGI::td(CGI::small($_)), CGI::td(CGI::small($headers{$_}))) } keys %headers); }; - - return + # dereference details, + # if it is a long report pass details by reference rather than by value + my @expandedDetails; + if (ref($details) =~ /SCALAR/i) { + push @expandedDetails, ${$details}; + } elsif (ref($details) =~/ARRAY/i) { + push @expandedDetails, @{ $details }; + } else { + push @expandedDetails, $details; + } + return join("", CGI::h2("WeBWorK Error"), CGI::p(<<EOF), WeBWorK has encountered a software error while attempting to process this @@ -1683,7 +1692,7 @@ CGI::h3("Error messages"), CGI::p(CGI::code($error)), CGI::h3("Error details"), - CGI::p(CGI::code($details)), + CGI::code(CGI::p(@expandedDetails)), CGI::h3("Request information"), CGI::table({border=>"1"}, CGI::Tr(CGI::td("Time"), CGI::td($time)), @@ -1692,7 +1701,8 @@ CGI::Tr(CGI::td("HTTP Headers"), CGI::td( CGI::table($headers), )), - ); + ), + ); } =item warningOutput($warnings) |