--- loncom/homework/caparesponse/caparesponse.pm 2006/12/14 04:59:51 1.201 +++ loncom/homework/caparesponse/caparesponse.pm 2006/12/19 00:49:53 1.204 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # caparesponse definition # -# $Id: caparesponse.pm,v 1.201 2006/12/14 04:59:51 albertel Exp $ +# $Id: caparesponse.pm,v 1.204 2006/12/19 00:49:53 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,6 +33,7 @@ use Safe::Hole; use Apache::lonmaxima(); use Apache::lonlocal; use Apache::lonnet; +use Apache::response(); use Storable qw(dclone); BEGIN { @@ -40,6 +41,11 @@ BEGIN { } my %answer; +my @answers; +sub get_answer { return %answer; }; +sub push_answer{ push(@answers,dclone(\%answer)); undef(%answer) } +sub pop_answer { %answer = %{pop(@answers)}; }; + my $cur_name; my $tag_internal_answer_name = 'INTERNAL'; @@ -372,6 +378,11 @@ sub add_in_tag_answer { } } +sub capa_formula_fix { + my ($expression)=@_; + return &Apache::response::implicit_multiplication($expression); +} + sub end_numericalresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $increment=1; @@ -385,6 +396,8 @@ sub end_numericalresponse { my $safehole = new Safe::Hole; $safeeval->share_from('capa',['&caparesponse_capa_check_answer']); $safehole->wrap(\&Apache::lonmaxima::maxima_check,$safeeval,'&maxima_check'); + $safehole->wrap(\&Apache::lonmaxima::maxima_cas_formula_fix,$safeeval,'&maxima_cas_formula_fix'); + $safehole->wrap(\&capa_formula_fix,$safeeval,'&capa_formula_fix'); if (scalar(@$tagstack)) { $tag=$$tagstack[-1]; } if ( $target eq 'grade' && &Apache::response::submitted() ) {