--- loncom/homework/default_homework.lcpm 2008/09/06 21:39:15 1.138 +++ loncom/homework/default_homework.lcpm 2008/09/12 09:56:09 1.139 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # -# $Id: default_homework.lcpm,v 1.138 2008/09/06 21:39:15 raeburn Exp $ +# $Id: default_homework.lcpm,v 1.139 2008/09/12 09:56:09 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -254,11 +254,12 @@ sub caparesponse_check { &LONCAPA_INTERNAL_DEBUG("RetError $reterror: Answer $answer: Response $response: type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|"); &LONCAPA_INTERNAL_DEBUG(" $answer $response $result "); - return ($result,$reterror) + return ($result,$reterror); } sub caparesponse_check_list { + my ($tag) = @_; my $responses=$LONCAPA::CAPAresponse_args{'response'}; &LONCAPA_INTERNAL_DEBUG("args ".join(':',%LONCAPA::CAPAresponse_args)); my $type = $LONCAPA::CAPAresponse_args{'type'}; @@ -303,7 +304,7 @@ sub caparesponse_check_list { &LONCAPA_INTERNAL_DEBUG("Initial final response :$responses->[0][-1]:"); my $unit; - if ($type eq '' || $type eq 'float') { + if (($type eq 'float') || (($type eq '') && (($tag ne 'stringresponse') && ($tag ne 'stringhint')) ) ) { #for numerical problems split off the unit # if ( $responses->[0][-1]=~ /(.*[^\s])\s+([^\s]+)/ ) { if ( $responses->[0][-1]=~ /^([\d\.\,\s\$]*(?:(?:[xX\*]10[\^\*]*|[eE]*)[\+\-]*\d*)*(?:^|\S)\d+)([\$\s\w\^\*\/\(\)\+\-]*[^\d\.\s\,][\$\s\w\^\*\/\(\)\+\-]*)$/ ) {