home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume35 / psutils / part04 / fixpspps < prev    next >
Text File  |  1993-02-04  |  1KB  |  55 lines

  1. #!/usr/local/bin/perl
  2. # mangle PostScript produced by PSPrint to make it almost conforming
  3.  
  4. $header = 1; $ignore = 0;
  5. $verbose = 0;
  6. @body = ();
  7. %fonts = (); $font = "";
  8. $inchar = 0; @char = ();
  9.  
  10. while (<>) {
  11.    if (/^@end$/) {
  12.       $ignore = 1;
  13.    } elsif (/^[0-9]+ @bop0$/) {
  14.       $ignore = 0;
  15.       $header = 1;
  16.    } elsif ($header) {
  17.       if (/^\/([a-z.0-9]+) @newfont$/) {
  18.      if (! defined($fonts{$1})) {
  19.         $fonts{$1} = 1;
  20.         print;
  21.      } elsif ($verbose) {
  22.         print STDERR "$font already defined\n";
  23.      }
  24.       } elsif (/^([a-z.0-9]+) sf$/) {
  25.      $font = $1;
  26.      print;
  27.       } elsif (/^\[</) {
  28.      $inchar = 1;
  29.      push (@char, $_);
  30.       } elsif ($inchar) {
  31.      push (@char, $_);
  32.      if (/.*\] ([0-9]+) dc$/) {
  33.         if (! defined($fonts{$font,$1})) {
  34.            $fonts{$font,$1} = 1;
  35.            print (@char);
  36.         } elsif ($verbose) {
  37.            print STDERR "$font character $1 already defined\n";
  38.         }
  39.         $inchar = 0;
  40.         @char = ();
  41.      }
  42.       } elsif (/^([0-9]+) @bop1$/) {
  43.      $header = 0;
  44.      push (@body, "%%Page: ? $1\n");
  45.      push (@body, $_);
  46.       } else {
  47.      print;
  48.       }
  49.    } elsif (! $ignore) {
  50.       push (@body, $_);
  51.    }
  52. }
  53. print (@body);
  54. print ("@end\n");
  55.