Log Message:
-----------
New flag showAllErrors for when a custom checker is supplied. This
will cause all errors generated in the user's code to be reported
(normally, messages from the Value and Parser packages are ignored).
Modified Files:
--------------
pg/lib/Value:
AnswerChecker.pm
Revision Data
-------------
Index: AnswerChecker.pm
===================================================================
RCS file: /webwork/cvs/system/pg/lib/Value/AnswerChecker.pm,v
retrieving revision 1.46
retrieving revision 1.47
diff -Llib/Value/AnswerChecker.pm -Llib/Value/AnswerChecker.pm -u -r1.46 -r1.47
--- lib/Value/AnswerChecker.pm
+++ lib/Value/AnswerChecker.pm
@@ -161,7 +161,7 @@
my $self = shift; my $other = shift; my $ans = shift;
return eval {$self == $other} unless ref($ans->{checker}) eq 'CODE';
my $equal = eval {&{$ans->{checker}}($self,$other,$ans)};
- if (!defined($equal) && $@ ne '' && !$$Value::context->{error}{flag}) {
+ if (!defined($equal) && $@ ne '' && (!$$Value::context->{error}{flag} || $ans->{showAllErrors})) {
$$Value::context->setError("<I>An error occurred while checking your answer:</I>\n".
'<DIV STYLE="margin-left:1em">'.$@.'</DIV>','');
$$Value::context->{error}{flag} = $CMP_ERROR;
|