]> mj.ucw.cz Git - misc.git/blob - pstopsfix
Ursary: Better client matching logic
[misc.git] / pstopsfix
1 #!/usr/bin/perl
2 # A filter for fixing PS generated by pstops
3 # (c) 2008 Martin Mares <mj@ucw.cz>
4
5 my $seen_procset = 0;
6 my @procset = ();
7 my $seen_setup = 0;
8 while (<>) {
9         if (/^%%BeginProcSet: PStoPS/) {
10                 $seen_procset = 1;
11         } elsif ($seen_procset == 1) {
12                 if (/^%%EndProcSet/) {
13                         $seen_procset = 2;
14                 } else {
15                         push @procset, $_;
16                 }
17         } elsif (/^%%BeginSetup/) {
18                 print;
19                 if ($seen_procset == 2) {
20                         print "%%BeginFeature: PStoPS\n";
21                         print join("", @procset);
22                         print "%%EndFeature\n";
23                         $seen_procset = 3;
24                 }
25                 $seen_setup = 1;
26         } else {
27                 print;
28         }
29 }
30
31 $seen_setup or die "No setup section seen\n";
32 $seen_procset or die "No PStoPS procset seen\n";
33 $seen_procset >= 2 or die "PStoPS procset not terminated\n";
34 $seen_procset >= 3 or die "Setup section precedes PStoPS procset\n";
35 exit 0;