--- loncom/homework/structuretags.pm 2001/09/18 02:21:13 1.68 +++ loncom/homework/structuretags.pm 2001/10/13 05:59:18 1.70 @@ -417,11 +417,13 @@ sub start_randomlist { sub shuffle { my $a=shift; my $i; - &Apache::response::setrandomnumber(); - for($i=@$a;--$i;) { - my $j=int rand($i+1); - next if $i == $j; - @$a[$i,$j] = @$a[$j,$i]; + if (defined(@$a)) { + &Apache::response::setrandomnumber(); + for($i=@$a;--$i;) { + my $j=int rand($i+1); + next if $i == $j; + @$a[$i,$j] = @$a[$j,$i]; + } } } @@ -542,7 +544,7 @@ sub end_startouttext { my $text=''; if ($target eq 'edit') { - $text=&Apache::lonxml::get_all_text("endouttext",$$parser[$#$parser]); + $text=&Apache::lonxml::get_all_text("endouttext",$$parser[-1]); $result.=&Apache::edit::start_table($token)."Text Block Delete:". &Apache::edit::deletelist($target,$token) @@ -576,13 +578,13 @@ sub delete_startouttext { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; # my $text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']); my $text=$$parser['-1']->get_text("/endouttext"); - my $token=$$parser['-1']->get_token(); - &Apache::lonxml::debug("Deleting :$text: and :$token->[0]:$token->[1]:$token->[2]: for startouttext"); - &Apache::lonxml::end_tag($tagstack,$parstack,$token); + my $ntoken=$$parser['-1']->get_token(); + &Apache::lonxml::debug("Deleting :$text: and :$ntoken->[0]:$ntoken->[1]:$ntoken->[2]: for startouttext"); + &Apache::lonxml::end_tag($tagstack,$parstack,$ntoken); # Deleting 2 parallel tag pairs, but we need the numbers later to look like # they did the last time round - &Apache::lonxml::increasedepth($token); - &Apache::lonxml::decreasedepth($token); + &Apache::lonxml::increasedepth($ntoken); + &Apache::lonxml::decreasedepth($ntoken); return 1; }