chiark / gitweb /
reorganise prep for fix number missing from individuals
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 6 Nov 2021 20:41:46 +0000 (20:41 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 6 Nov 2021 20:41:46 +0000 (20:41 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
pumpkin-books.ps.pl

index 7dbc0dd119672913d676aa04c22d9671b747ac42..19cc6c42404337ff8e849b8733bb95ade2173394 100755 (executable)
@@ -456,15 +456,29 @@ END
   $o;
 }
 
+our $ps_framing;
+
 sub tile {
   my @tiles;
   my $index_i = 1;
-  foreach my $d (@_) {
-    foreach my $dd (ref $d ? @$d : $d) {
+
+  foreach my $spec (@_) {
+    my @datas;
+    foreach my $stem (split m{/}, $spec) {
+      my $func = $stem;
+      $func =~ y/-/_/;
+      $func = ${*::}{"book_$func"} // die "$func ?";
+      my $data = $func->();
+      open F, ">book-$stem.ps" or die $!;
+      print F $ps_framing, $data, "\nshowpage\n" or die $!;
+      close F or die $!;
+      push @datas, $data;
+    }
+    foreach my $dd (@datas) {
       push @tiles, [ $dd, $index_i ];
     }
     $index_i++;
-  }      
+  }
 
   my $pos = 0;
   my $o = '';
@@ -691,7 +705,7 @@ END
 };
 
 
-our $ps_framing = <<END;
+$ps_framing = <<END;
 %!
 
 $page_pre
@@ -774,22 +788,5 @@ print $ps_framing or die $!;
 
 print "gsave\n" or die $!;
 
-our @tiles;
-
-foreach my $spec (@ARGV) {
-  my @datas;
-  foreach my $stem (split m{/}, $spec) {
-    my $func = $stem;
-    $func =~ y/-/_/;
-    $func = ${*::}{"book_$func"} // die "$func ?";
-    my $data = $func->();
-    open F, ">book-$stem.ps" or die $!;
-    print F $ps_framing, $data, "\nshowpage\n" or die $!;
-    close F or die $!;
-    push @datas, $data;
-  }
-  push @tiles, @datas == 1 ? @datas : \@datas;
-}
-
-print tile(@tiles) or die $! if 1;
+print tile(@ARGV) or die $! if 1;