--- loncom/homework/default_homework.lcpm 2001/10/29 21:15:44 1.39 +++ loncom/homework/default_homework.lcpm 2001/12/04 14:49:37 1.42 @@ -1,6 +1,31 @@ -# file name (temp): default_homework +# The LearningOnline Network with CAPA # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # +# $Id: default_homework.lcpm,v 1.42 2001/12/04 14:49:37 albertel Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# +# # Guy Albertelli # # 05/25/2001 H. K. Ng @@ -45,6 +70,8 @@ sub caparesponse_check { } elsif ($type eq 'mc') { $type = 5; } elsif ($type eq 'fml') { $type = 8; } elsif ($type eq 'subj') { $type = 7; + } elsif ($type eq 'float') { $type = 2; + } elsif ($type eq 'int') { $type = 1; } else { return "ERROR: Unknown type of answer: $type" } } @@ -101,22 +128,24 @@ sub get_array_args { # do these first, because who knows what varname the instructor might have used # but it probably isn't $CAPARESPONSE_CHECK_LIST_answer my $CAPARESPONSE_CHECK_LIST_answer = eval $expr.';return $'.$arg; #' + my $GET_ARRAY_ARGS_result; + my @GET_ARRAY_ARGS_list; if ($CAPARESPONSE_CHECK_LIST_answer =~ /^\s*[\$\@]/) { - my (@list) = eval $CAPARESPONSE_CHECK_LIST_answer; + (@GET_ARRAY_ARGS_list) = eval $CAPARESPONSE_CHECK_LIST_answer; } - my $result=''; - $result.="error:$@:
"; + $GET_ARRAY_ARGS_result.="error:$@:
"; # if the eval fails just use what is in the answer exactly - if (!defined(@list) || !defined($list[0])) { - $result.="list zero is undefined
"; - $list[0]=$CAPARESPONSE_CHECK_LIST_answer; + if (!defined(@GET_ARRAY_ARGS_list) || !defined($GET_ARRAY_ARGS_list[0])) { + $GET_ARRAY_ARGS_result.="list zero is undefined
"; + $GET_ARRAY_ARGS_list[0]=$CAPARESPONSE_CHECK_LIST_answer; } - return @list; + return $GET_ARRAY_ARGS_result,@GET_ARRAY_ARGS_list; } sub caparesponse_check_list { my ($response,$expr)=@_; - my (@list) = &get_array_args($expr,'answer'); + my $result; + my ($result,@list) = &get_array_args($expr,'answer'); my $aresult=''; my $current_answer; my $answers=join(':',@list);