[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 {