#!/usr/bin/perl -w

use strict;
use warnings;
#use File::Basename;
#use Getopt::Long;

my $_local_debug=0;
my @rpmsodiff;
$_=<>;
while (defined($_)) {
    if (m!^--- (\S+)\.rpm\.repo\s!) {
	&read_patch($1);
    } else {
	print $_;
	$_=<>;
    }
}
print @rpmsodiff;

sub read_patch {
    my ($fileprefix)=@_;
    push @rpmsodiff, $_;
    $_=<>; 
    if (m/^\+\+\+ \Q$fileprefix\E\.rpm\.hasher\s/) {
	push @rpmsodiff, $_;
    } else {
	print pop @rpmsodiff;
	return;
    }
    $_=<>;
    # @@ -21,3 +22,3 @@
    while (defined($_) and /^\@\@\s-\d+,(\d+)\s/) {
	my $inputlines=$1;
	push @rpmsodiff, $_;
	$_=<>;
	&read_patch_changeset($inputlines);
    }
}

sub read_patch_changeset {
    my ($inputlines)=@_;
    my $count=0;
    while (defined($_) and m!^[-+ ]! and ($count < $inputlines) ) {
	push @rpmsodiff, $_;
	$count++ if m!^[- ]!;
	$_=<>;
    }
}

__END__
