From: dpvc v. a. <we...@ma...> - 2008-09-12 21:36:22
|
Log Message: ----------- Trap errors when comparing to student answer while trying to determine the correct error message. This prevents extraneous warnings that would confuse the student (and instructor). Modified Files: -------------- pg/macros: parserFormulaUpToConstant.pl Revision Data ------------- Index: parserFormulaUpToConstant.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/parserFormulaUpToConstant.pl,v retrieving revision 1.13 retrieving revision 1.14 diff -Lmacros/parserFormulaUpToConstant.pl -Lmacros/parserFormulaUpToConstant.pl -u -r1.13 -r1.14 --- macros/parserFormulaUpToConstant.pl +++ macros/parserFormulaUpToConstant.pl @@ -214,7 +214,10 @@ my $context = $self->context; $context->flags->set(no_parameters=>0); $context->variables->add(x00=>'Real'); - $result = 1 if $self->removeConstant+"n01+n00x00" == $student+"x00"; # must use both parameters + my $correct = $self->removeConstant+"n01+n00x00"; # must use both parameters + $main::{_cmp_} = sub {return $correct == $student+"x00"}; # a closure to access local variables + $result = 1 if main::PG_restricted_eval('&{$main::{_cmp_}}'); # prevents domain errors (and other errors) + delete $main::{_cmp_}; # remove temprary function $context->variables->remove('x00'); $context->flags->set(no_parameters=>1); } |