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