]> granicus.if.org Git - python/commitdiff
Fix up the synopsis table stuff so it gets things right at each chapter,
authorFred Drake <fdrake@acm.org>
Sat, 25 Jul 1998 03:31:46 +0000 (03:31 +0000)
committerFred Drake <fdrake@acm.org>
Sat, 25 Jul 1998 03:31:46 +0000 (03:31 +0000)
instead of stringing it all together.

Yay!

Doc/perl/python.perl

index 7af190947052a5a0da9bc8d64ebd4b22d4a2aede..107ed54d5f064be53510950e4f85359b6be4f829 100644 (file)
@@ -867,19 +867,25 @@ sub do_cmd_maketitle {
 
 require SynopsisTable;
 
-$MY_CHAPTER_COUNTER = 0;
-
-sub get_chapter_id{
-    return $MY_CHAPTER_COUNTER;
+sub get_chapter_id(){
+    my $id = do_cmd_thechapter('');
+    $id =~ s/<SPAN CLASS="arabic">(\d+)<\/SPAN>\./\1/;
+    return $id;
 }
 
-sub get_synopsis_table{
-    my $chap = @_;
+%ModuleSynopses = ('chapter' => 'SynopsisTable instance');
+
+sub get_synopsis_table($){
+    my($chap) = @_;
     my $st = $ModuleSynopses{$chap};
-    if (!$st) {
-       $st = SynopsisTable->new();
-       $ModuleSynopses{$chap} = $st;
+    my $key;
+    foreach $key (keys %ModuleSynopses) {
+       if ($key eq $chap) {
+           return $ModuleSynopses{$chap};
+       }
     }
+    $st = SynopsisTable->new();
+    $ModuleSynopses{$chap} = $st;
     return $st;
 }
 
@@ -907,17 +913,17 @@ sub do_cmd_modulesynopsis{
 
 sub do_cmd_localmoduletable{
     local($_) = @_;
-    $MY_CHAPTER_COUNTER = $MY_CHAPTER_COUNTER + 1;
     my $chap = get_chapter_id();
     "<tex2htmllocalmoduletable><$chap>" . $_;
 }
 
 sub process_all_localmoduletables{
     while (/<tex2htmllocalmoduletable><(\d+)>/) {
+       my $match = $&;
        my $chap = $1;
        my $st = get_synopsis_table($chap);
        my $data = $st->tohtml();
-       s/$&/$data/;
+       s/$match/$data/;
     }
 }