--- loncom/homework/default_homework.lcpm 2002/09/26 21:54:00 1.53 +++ loncom/homework/default_homework.lcpm 2003/03/25 22:53:22 1.58 @@ -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.53 2002/09/26 21:54:00 albertel Exp $ +# $Id: default_homework.lcpm,v 1.58 2003/03/25 22:53:22 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -152,6 +152,8 @@ sub get_array_args { sub caparesponse_check_list { my ($response,$expr)=@_; my $result; + $expr =~ s/\\/\\\\/g; + $expr =~ s/\'/\\\'/g; my ($result,@list) = &get_array_args($expr,'answer'); my $aresult=''; my $current_answer; @@ -180,12 +182,15 @@ sub caparesponse_check_list { my $awards=''; for ($i=0; $i<@list;$i++) { $result.="trying answer :$list[$i]:\n"; + my $thisanswer=$list[$i]; + $thisanswer=~ s/\\/\\\\/g; + $thisanswer =~ s/\'/\\\'/g; if ($unit eq '') { $aresult=&caparesponse_check($responselist[$i], - $expr.';my $answer=\''.$list[$i].'\';'); + $expr.';my $answer=\''.$thisanswer.'\';'); } else { $aresult=&caparesponse_check($responselist[$i]." $unit", - $expr.';my $answer=\''.$list[$i].'\';'); + $expr.';my $answer=\''.$thisanswer.'\';'); } my ($temp)=split /:/, $aresult; $awards.="$temp,"; @@ -197,15 +202,15 @@ sub caparesponse_check_list { sub tex { if ( $external::target eq "tex" ) { - return @_[0]; + return $_[0]; } else { - return @_[1]; + return $_[1]; } } sub var_in_tex { if ( $external::target eq "tex" ) { - return @_[0]; + return $_[0]; } else { return ""; } @@ -213,12 +218,12 @@ sub var_in_tex { sub web { if ( $external::target eq "tex" ) { - return @_[1]; + return $_[1]; } else { if ( $external::target eq "web" || $external::target eq "answer") { - return @_[2]; + return $_[2]; } else { - return @_[0]; + return $_[0]; } } } @@ -240,7 +245,9 @@ sub hinton { sub random { my ($start,$end,$step)=@_; if ( ! $hidden::RANDOMINIT ) { - &random_set_seed_from_phrase($external::randomseed); + if ($external::randomseed == 0) { $external::randomseed=1; } + &random_set_seed(1,int(abs($external::randomseed))); + &math_random_uniform(); $hidden::RANDOMINIT=1; } if (!defined($step)) { $step=1; } @@ -565,7 +572,7 @@ sub map { } } } - &random_set_seed(@seed); + &random_set_seed(@oldseed); return ''; }