#!/mit/watchmaker/vaxbin/perl
	eval "exec /mit/watchmaker/vaxbin/perl -S $0 $*"
		if $running_under_some_shell;

# $Header: pat.SH,v 2.0.1.1 88/08/05 00:28:32 lwall Exp $
#
# $Log:	pat.SH,v $
# Revision 2.0.1.1  88/08/05  00:28:32  lwall
# patch1: now depends on perlpath
# 
# Revision 2.0  88/06/28  23:19:17  lwall
# Baseline.
# 
# 


die "pat [files]\n" unless $#ARGV >= 0;

do readpackage();

if ($ARGV[0] eq '-n') {
    open(FIND, "find . -type f -newer patchlevel.h -print | sort |") ||
	die "Can't run find.\n";
    open(NEWER,">.newer") || die "Can't create .newer.\n";
    open(MANI,"MANIFEST.new");
    while (<MANI>) {
	    ($name,$foo) = split;
	    $mani{$name} = 1;
    }
    close MANI;
    while (<FIND>) {
	s|^\./||;
	chop;
	if (!$mani{$_}) {
		next if m|^MANIFEST.new$|;
		next if m|^Wanted$|;
		next if m|^bugs|;
		next if m|^UU/|;
		next if m|^RCS/|;
		next if m|/RCS/|;
		next if m|^config.sh$|;
		next if m|/config.sh$|;
		next if m|^make.out$|;
		next if m|/make.out$|;
		next if m|^all$|;
		next if m|/all$|;
		next if m|^core$|;
		next if m|/core$|;
		next if m|^foo|;
		next if m|/foo|;
		next if m|^blurfl|;
		next if m|/blurfl|;
		next if m|^\.|;
		next if m|/\.|;
		next if m|\.o$|;
		next if m|\.old$|;
		next if m|\.orig$|;
		next if $mani{$_ . ".SH"};
		next if m|(.*)\.c$| && $mani{$1 . ".y"};
		next if -x $_;
	}
	print NEWER $_,"\n";
    }
    close FIND;
    close NEWER;
    print "Please remove unwanted files...\n";
    sleep(2);
    system '${EDITOR-vi} .newer';
    @ARGV = split(' ',`cat .newer`);
}
elsif ($ARGV[0] eq '-a') {
    open(MANI,"MANIFEST.new") || die "No MANIFEST.new found.\n";
    @ARGV = ();
    while (<MANI>) {
	chop;
	($_) = split(' ');
	push(@ARGV,$_);
    }
    close MANI;
}

unlink <bugs/*.[1-9] bugs/*.[1-9][0-9]>;

system 'perl', '-S', 'patcil', '-p', @ARGV;
system 'perl', '-S', 'patdiff', @ARGV;
system 'perl', '-S', 'patmake';

sub readpackage {
    if (! -f '.package') {
        if (-f '../.package' || -f '../../.package') {
            die "Run in top level directory only.\n";
        }
        else {
            die "No .package file!  Run packinit.\n";
        }
    }
    open(package,'.package');
    while (<package>) {
        next if /^:/;
        next if /^#/;
        if (($var,$val) = /^\s*(\w+)=(.*)/) {
            $val = "\"$val\"" unless $val =~ /^['"]/;
            eval "\$$var = $val;";
        }
    }
    close package;
}

