--- loncom/homework/imageresponse.pm 2011/11/14 03:08:01 1.103 +++ loncom/homework/imageresponse.pm 2012/10/12 12:45:46 1.104 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.103 2011/11/14 03:08:01 raeburn Exp $ +# $Id: imageresponse.pm,v 1.104 2012/10/12 12:45:46 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -212,8 +212,11 @@ sub getfoilcounts { sub whichfoils { my ($max)=@_; - return if (!defined(@{ $Apache::response::foilgroup{'names'} })); - my @names = @{ $Apache::response::foilgroup{'names'} }; + my @names; + if (ref($Apache::response::foilgroup{'names'}) eq 'ARRAY') { + @names = @{ $Apache::response::foilgroup{'names'} }; + } + return if (!@names); my @whichopt; while ((($#whichopt+1) < $max) && ($#names > -1)) { &Apache::lonxml::debug("Have $#whichopt max is $max"); @@ -473,9 +476,11 @@ sub gradefoils { my ($x,$y) = split(':',$env{"form.HWVAL_$id:$temp"}); $response{$name} = $env{"form.HWVAL_$id:$temp"}; &Apache::lonxml::debug("Got a x of $x and a y of $y for $name"); - if (defined($x) && defined($y) && - defined(@{ $Apache::response::foilgroup{"$name.area"} })) { - my @areas = @{ $Apache::response::foilgroup{"$name.area"} }; + my @areas; + if (ref($Apache::response::foilgroup{"$name.area"}) eq 'ARRAY') { + @areas = @{ $Apache::response::foilgroup{"$name.area"} }; + } + if (defined($x) && defined($y) && @areas) { my $grade="INCORRECT"; foreach my $area (@areas) { &Apache::lonxml::debug("Area is $area for $name");