#!/usr/bin/perl # A filter for fixing PS generated by pstops # (c) 2008 Martin Mares my $seen_procset = 0; my @procset = (); my $seen_setup = 0; while (<>) { if (/^%%BeginProcSet: PStoPS/) { $seen_procset = 1; } elsif ($seen_procset == 1) { if (/^%%EndProcSet/) { $seen_procset = 2; } else { push @procset, $_; } } elsif (/^%%BeginSetup/) { print; if ($seen_procset == 2) { print "%%BeginFeature: PStoPS\n"; print join("", @procset); print "%%EndFeature\n"; $seen_procset = 3; } $seen_setup = 1; } else { print; } } $seen_setup or die "No setup section seen\n"; $seen_procset or die "No PStoPS procset seen\n"; $seen_procset >= 2 or die "PStoPS procset not terminated\n"; $seen_procset >= 3 or die "Setup section precedes PStoPS procset\n"; exit 0;