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

  1. #!/usr/local/bin/perl
  2. # fixmacps: swap to sanitised appledict
  3.  
  4. $line = 0;            # keep line count
  5. $dir = "/usr/local/share/tex/dvips";
  6. $prefix = "md";
  7. $default = "appledict.ps";
  8.  
  9. while ($_ = shift(@ARGV)) {
  10.    if (/^-d(ir)?$/)   { $dir = shift(@ARGV); }
  11.    if (/^-n(ame)?$/)   { $prefix = shift(@ARGV); }
  12.    else {
  13.       unshift(@ARGV, $_);
  14.       last;
  15.    }
  16. }
  17.  
  18. while (<>) {
  19.    if (/^%!/) {
  20.       if (! $line) {
  21.      print;
  22.       }
  23.    } elsif (/^%%BeginProcSet: "\(AppleDict md\)" ([0-9]+) ([0-9]+)$/) {
  24.       local($mdv, $mdr) = ($1, $2);
  25.       if (open(SANE, "<$dir/$prefix$mdv.$mdr.ps") ||
  26.       open(SANE, "<$dir/$default")) {
  27.      $sane = <SANE>;
  28.      local($snv, $snr) =
  29.         $sane =~ /^%%BeginProcSet: "\(AppleDict md\)" ([0-9]+) ([0-9]+)$/;
  30.      if ($mdv == $snv && $mdr == $snr) {
  31.         $ignore = 1;
  32.      } else {
  33.         print STDERR "Unrecognised AppleDict version $mdv $mdr\n";
  34.         print "%!\n" if !$line;
  35.         print;
  36.      }
  37.       } else {
  38.      print STDERR "Can't find sanitised AppleDict\n";
  39.      print "%!\n" if !$line;
  40.      print;
  41.       }
  42.    } elsif (/^%%EndProcSet/) {
  43.       if ($ignore) {
  44.      $ignore = 0;
  45.      print "%!\n" if !$line;
  46.      print $sane;
  47.      while(<SANE>) {
  48.         print;
  49.      }
  50.      close(SANE);
  51.       } else {
  52.      print "%!\n" if !$line;
  53.      print;
  54.       }
  55.    } else {
  56.       if (! $ignore) {
  57.      print "%!\n" if !$line;
  58.      print;
  59.       }
  60.    }
  61.    $line++;
  62. }
  63.