[LON-CAPA-cvs] cvs: loncom /xml londefdef.pm
foxr
lon-capa-cvs@mail.lon-capa.org
Tue, 06 Dec 2005 22:37:01 -0000
foxr Tue Dec 6 17:37:01 2005 EDT
Modified files:
/loncom/xml londefdef.pm
Log:
Tables that were nested in cells of tables were not being 'consumed' when included
into the outer table and hence the wrong table was getting substituted into the
output if multiple tables were nested in a single table.
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.300 loncom/xml/londefdef.pm:1.301
--- loncom/xml/londefdef.pm:1.300 Mon Dec 5 18:22:49 2005
+++ loncom/xml/londefdef.pm Tue Dec 6 17:37:00 2005
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.300 2005/12/05 23:22:49 foxr Exp $
+# $Id: londefdef.pm,v 1.301 2005/12/06 22:37:00 foxr Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -48,7 +48,7 @@
use Apache::lonmeta();
use Apache::Constants qw(:common);
use File::Basename;
-#use Data::Dumper;
+use Data::Dumper;
BEGIN {
@@ -61,17 +61,16 @@
# Need this 'cause evidently when given an array, Data::Dumper only seems
# to dump element 0.
#
-#sub debug_dump_table {
-# my $lastrow = $#Apache::londefdef::table;
-# &Apache::lonnet::logthis("Dumping table: Last row index: $lastrow");
-# my $row;
-# for ($row =0; $row <= $lastrow; $row++ ) {
-# my $text = Dumper($Apache::londefdef::table[$row]);
-# &Apache::lonnet::logthis("table [ $row ]".$text);
-#
-# }
-#}
+sub debug_dump_table {
+ my $lastrow = $#Apache::londefdef::table;
+ &Apache::lonnet::logthis("Dumping table: Last row index: $lastrow");
+ my $row;
+ for ($row =0; $row <= $lastrow; $row++ ) {
+ my $text = Dumper($Apache::londefdef::table[$row]);
+ &Apache::lonnet::logthis("table [ $row ]".$text);
+ }
+}
sub initialize_londefdef {
$Apache::londefdef::TD_redirection=0;
@Apache::londefdef::table = ();
@@ -2425,14 +2424,16 @@
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length;
}
}
- for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) {
- my $nested = $Apache::londefdef::table[-1]{'include'}[$in];
- $nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/;
- # $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/;
- $data =~ s/\\keephidden\{NEW TABLE ENTRY\}/$nested/;
- }
+ for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) {
+ my $nested = shift @{$Apache::londefdef::table[-1]{'include'}};
+ $nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/;
+ # $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/;
+ $data =~ s/\\keephidden\{NEW TABLE ENTRY\}/$nested/;
+
+ }
+ # Should be be killing off the 'include' elements as they're used up?
push @ {$Apache::londefdef::table[-1]{'content'}[-1] },$data;
- return'';
+ return '';
}
sub end_td {