#!/usr/bin/env perl

my $fname = shift;
my $sources = shift;

if ( !defined( $fname ) || !defined( $sources ) ) {
    print STDERR "cws-removal-fixup cws-<name>.diff sources/srcABC-mXYZ
Fix cws extract where were some removed files to apply cleanly.\n";
    exit 1;
}

open( IN, $fname ) or die "Cannot open '$fname'";

my $file = "";
my ( $RCSfile, $Revision, $Author, $Date );
while ( <IN> )
{
    if ( /^--- ([^\t]*)/ ) {
	$file = $1;
	$RCSfile = "";
	$Revision = "";
	$Author = "";
	$Date = "";
    }
    if ( /^-.*\$(RCSfile|Revision|Author|Date)\$/ ) {
	if ( $RCSfile eq "" ) {
	    $RCSfile =  `grep '\$RCSfile' $sources/$file | head -n 1 | sed 's/^.*\\\$\\\(RCSfile[^\$]*\\\)\\\$.*\$/\\1/'`;
	    $Revision = `grep '\$Revision' $sources/$file | head -n 1 | sed 's/^.*\\\$\\\(Revision[^\$]*\\\)\\\$.*\$/\\1/'`;
	    $Author =   `grep '\$Author' $sources/$file | head -n 1 | sed 's/^.*\\\$\\\(Author[^\$]*\\\)\\\$.*\$/\\1/'`;
	    $Date =     `grep '\$Date' $sources/$file | head -n 1 | sed 's/^.*\\\$\\\(Date[^\$]*\\\)\\\$.*\$/\\1/'`;
	    chomp $RCSfile;
	    chomp $Revision;
	    chomp $Author;
	    chomp $Date;
	}
	s/RCSfile/$RCSfile/g if ( /\$RCSfile\$/ );
	s/Revision/$Revision/g if ( /\$Revision\$/ );
	s/Author/$Author/g if ( /\$Author\$/ );
	s/Date/$Date/g if ( /\$Date\$/ );
    }
    print;
}
close( IN );
