--- loncom/homework/caparesponse/caparesponse.pm 2001/08/09 15:35:47 1.41 +++ loncom/homework/caparesponse/caparesponse.pm 2001/09/18 02:21:13 1.43 @@ -165,13 +165,34 @@ sub end_numericalresponse { } } elsif ($target eq 'edit') { $result.=''.&Apache::edit::end_table; + } elsif ($target eq 'answer') { + my $answer= &Apache::run::run('eval \''.$$parstack[-1].';return $answer\'', + $safeeval); + my (@answers) = &Apache::run::run("eval ".$answer,$safeeval); + # if the eval fails just use what is in the answer exactly + if (!defined(@answers) || !defined($answers[0])) { + $result.="list zero is undefined
"; + $answers[0]=$answer; + } + $result.="
An answers: $answer"; + foreach my $ans (@answers) { + $result.="
An answer: $ans"; + } + $result .= "
".&Apache::run::run('return $result',$safeeval); } &Apache::response::end_response; return $result; } sub start_stringresponse { - return start_numericalresponse(@_); + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $result; + if ($target eq 'meta') { + $result=&Apache::response::meta_package_write('stringresponse'); + } else { + $result.=&start_numericalresponse(@_); + } + return $result; } sub end_stringresponse {