0ad9385
#!/usr/bin/perl -w
0ad9385
# A script to remove those terrible binary diffs from the patches which
0ad9385
# screw up everything and rain on my parade.
0ad9385
0ad9385
use strict;
0ad9385
0ad9385
my @args=@ARGV;
0ad9385
my @current_patch;
0ad9385
my $is_binary = 0;
0ad9385
my $cnt = 0;
0ad9385
0ad9385
while(my $row = <>) {
0ad9385
	# diff marks the start of a new file to check
0ad9385
	if ($row =~ /^diff --git.*?(\S+)$/) {
0ad9385
		if (!$is_binary) {
0ad9385
			foreach my $line (@current_patch) {
0ad9385
				print $line;
0ad9385
			}
0ad9385
		}
0ad9385
		$is_binary = 0;
0ad9385
		@current_patch = ();
0ad9385
	} elsif ($row =~ /Binary files (.)* differ$/) {
0ad9385
		$is_binary = 1;
0ad9385
	} elsif ($row =~ /GIT binary patch/) {
0ad9385
		$is_binary = 1;
0ad9385
	}
0ad9385
	push (@current_patch, $row);
0ad9385
}
0ad9385
0ad9385
if (!$is_binary) {
0ad9385
	foreach my $line (@current_patch) {
0ad9385
		print $line;
0ad9385
	}
0ad9385
}