
eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
   & eval 'exec perl -S $0 $argv:q'
   if 0;

# maketext: perl filter to substitute names in scripts and man pages.

%change = ();			# names -> substitutions

# get release and patchlevel for all scripts
open(H, "patchlev.h") || die "can't open patchlev.h";
while(<H>) {
   $change{$1} = $2 if /^\#define\s*(\S*)\s*(\S*)/;
}
close(H);

foreach (@ARGV) {
   if (/MAN=(.*)/) {		# name.ext name.ext -> name(ext), name(ext)
      local(@man) = split(' ', $1);
      $change{MAN} = join(", ", grep(s/\.(.)/($1)/, @man));
   } elsif (/(.*)=(.*)/) {	# substitute name for value
      $change{$1} = $2;
   } else {			# open file and substitute
      local(@change) = keys %change;
      open(FILE, $_) || die "can't open $_";
      while ($line = <FILE>) {
	 grep($line =~ s/@$_@/$change{$_}/g, @change);
	 print $line;
      }
      close(FILE);
   }
}
