changeset 106:234a0f978726 misc

Updates and bugfixes.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 04 Oct 2010 13:12:02 +0000
parents 6d6aebcdc0e3
children d40580ef29d0
files nun/saintinfo-to-docbook-table.pl
diffstat 1 files changed, 28 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/nun/saintinfo-to-docbook-table.pl	Mon Oct 04 13:11:49 2010 +0000
+++ b/nun/saintinfo-to-docbook-table.pl	Mon Oct 04 13:12:02 2010 +0000
@@ -12,36 +12,45 @@
 );
 my $powerstr = join("|", @powers);
 my $name;
-my $power;
-my $effect;
 my %saints = ();
 my %powers = ();
+my %qsaints = ();
+
+sub add_saint($$$)
+{
+  my ($sname, $power, $effect) = @_;
+  if (defined($sname)) {
+    if (defined($powers{$sname}) && $powers{$sname} ne $effect) {
+      print STDERR "Saint '$sname' already defined for '".$powers{$sname}."' ($effect)!\n";
+    }
+    $powers{$sname} = $effect;
+    $saints{$effect}{$power}{$sname} = 1;
+  } else {
+    print STDERR "ERR: $_\n";
+  }
+}
+
 
 while (<STDIN>) {
   chomp;
   if (/^  St. ([A-Z][a-z]+)/) {
     $name = $1;
+    if (defined($qsaints{$name})) {
+      $name = undef;
+    } else {
+      $qsaints{$name} = 1;
+    }
   } elsif (/^ +Her ($powerstr) power is reavealed in (.+?)\.$/) {
-    if (defined($name)) {
-      $power = $1;
-      $effect = $2;
-      if (defined($powers{$name}) && $powers{$name} ne $effect) {
-        print STDERR "Saint '$name' already defined for '".$powers{$name}."' ($effect)!\n";
-      }
-      $powers{$name} = $effect;
-      $saints{$effect}{$power}{$name} = 1;
-    } else {
-      print STDERR "ERR: $_\n";
-    }
-    undef($name);
+    add_saint($name, $1, $2);
+  } elsif (/^ +Her power is faint but those who believe are aided/) {
+    add_saint($name, $powers[0], "aid");
+#    print STDERR "faint: $name\n";
   } elsif (/_________|index=/) {
-  } elsif (/Her power is faint but those who believe/) {
-    print STDERR "FAINT: $name\n";
   }
 }
 
 print "
-<table>
+<table id='saints'>
  <title>List of powers bestowed by Saints</title>
  <tgroup cols='".((scalar @powers) + 1)."' align='left'>
   <thead>
@@ -69,3 +78,5 @@
  </tgroup>
 </table>
 ";
+
+print STDERR "Saints (".scalar(keys %qsaints)."): ".join(", ", keys %qsaints)."\n";