--- loncom/homework/response.pm 2001/04/16 20:05:04 1.25 +++ loncom/homework/response.pm 2001/05/31 22:37:11 1.27 @@ -12,9 +12,7 @@ sub BEGIN { sub start_response { my ($parstack,$safeeval)=@_; - my $args =''; - if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } - my $id = &Apache::run::run("{$args;".'return $id}',$safeeval); + my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); if ($id eq '') { $id = $Apache::lonxml::curdepth; } push (@Apache::inputtags::response,$id); push (@Apache::inputtags::responselist,$id); @@ -28,6 +26,20 @@ sub end_response { return ''; } +# used by response to set the non-safe space random number generator to something +# that is stable and unique based on the part number and response number +sub setrandomnumber { + my $rndseed=&Apache::lonnet::rndseed(); + &Apache::lonxml::debug("randseed $rndseed"); +# $rndseed=unpack("%32i",$rndseed); + $rndseed=$rndseed + +(&Apache::lonnet::numval($Apache::inputtags::part) << 10) + +&Apache::lonnet::numval($Apache::inputtags::response['-1']); + srand($rndseed); + &Apache::lonxml::debug("randseed $rndseed"); + return ''; +} + sub meta_parameter_write { my ($name,$type,$default,$display)=@_; return '