--- rat/lonuserstate.pm 2002/06/27 14:08:26 1.32 +++ rat/lonuserstate.pm 2002/07/25 16:55:53 1.35 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Construct and maintain state and binary representation of course for user # -# $Id: lonuserstate.pm,v 1.32 2002/06/27 14:08:26 www Exp $ +# $Id: lonuserstate.pm,v 1.35 2002/07/25 16:55:53 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -277,9 +277,10 @@ sub traceroute { $sofar=simplify($sofar); unless ($beenhere=~/\&$rid\&/) { $beenhere.=$rid.'&'; - if ($retfurl eq '') { + if (($retfurl eq '') && ($hash{'src_'.$rid})) { my ($mapid,$resid)=split(/\./,$rid); - $retfurl=$hash{'src_'.$rid}.'?symb='. + $retfurl=$hash{'src_'.$rid}. + (($hash{'src_'.$rid}=~/\?/)?'&':'?').'symb='. &Apache::lonnet::symbclean( &Apache::lonnet::declutter($hash{'map_id_'.$mapid}). '___'.$resid.'___'. @@ -423,7 +424,7 @@ sub pickrandom { next if ($#currentrids<$rndpick); # -------------------------------- randomly eliminate the ones that should stay srand(&Apache::lonnet::rndseed($rid)); # use rid instead of symb - for (my $i=1;$i<=$#currentrids+1-$rndpick;$i++) { + for (my $i=1;$i<=$rndpick;$i++) { while (1) { my $randomidx=int(rand($#currentrids+1)); if ($currentrids[$randomidx]) {