--- 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;
}
|