--- loncom/homework/inputtags.pm 2006/09/21 21:23:19 1.205 +++ loncom/homework/inputtags.pm 2006/09/29 20:55:33 1.206 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.205 2006/09/21 21:23:19 albertel Exp $ +# $Id: inputtags.pm,v 1.206 2006/09/29 20:55:33 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -485,10 +485,14 @@ sub show_past_portfile_submission { } sub checkstatus { - my ($value,$awardref,$msgref)=@_; + my ($value,$awardref,$msgref,$nameref)=@_; for (my $i=0;$i<=$#$awardref;$i++) { if ($$awardref[$i] eq $value) { - return ($$awardref[$i],$$msgref[$i]); + if (ref($nameref)) { + return ($$awardref[$i],$$msgref[$i],$$nameref[$i]); + } else { + return ($$awardref[$i],$$msgref[$i]); + } } } return(undef,undef); @@ -513,9 +517,7 @@ sub valid_award { sub finalizeawards { my ($awardref,$msgref,$nameref,$reverse)=@_; - my $result=undef; - my $award; - my $msg; + my ($result,$award,$msg,$name); if ($#$awardref == -1) { $result = "NO_RESPONSE"; } if ($result eq '' ) { my $blankcount; @@ -541,8 +543,9 @@ sub finalizeawards { 'APPROX_ANS', 'EXACT_ANS'); if ($reverse) { @awards=reverse(@awards); } foreach my $possibleaward (@awards) { - ($result,$msg)=&checkstatus($possibleaward,$awardref,$msgref); - if (defined($result)) { return ($result,$msg); } + ($result,$msg,$name)=&checkstatus($possibleaward,$awardref,$msgref, + $nameref); + if (defined($result)) { return ($result,$msg,$name); } } return ('ERROR',undef); }