55 lines
913 B
Perl
55 lines
913 B
Perl
|
$infilename = shift;
|
||
|
$outfilename1 = shift;
|
||
|
$outfilename2 = shift;
|
||
|
open INPUT, $infilename || die;
|
||
|
@input = <INPUT>;
|
||
|
close INPUT;
|
||
|
|
||
|
open MERGEDMINE, ">$outfilename1" || die;
|
||
|
open MERGEDTHEIRS, ">$outfilename2" || die;
|
||
|
|
||
|
for( $i = 0; $i < scalar( @input ); $i++ )
|
||
|
{
|
||
|
$line = $input[$i];
|
||
|
|
||
|
if( $line =~ m/^(.*)<<<<<<</ )
|
||
|
{
|
||
|
$first = 1;
|
||
|
$second = 0;
|
||
|
print MERGEDMINE $1;
|
||
|
print MERGEDTHEIRS $1;
|
||
|
next;
|
||
|
}
|
||
|
# Make sure that we are in a split block so that comments with ======= don't mess us up.
|
||
|
if( $line =~ m/^(.*)=======$/ && $first == 1 )
|
||
|
{
|
||
|
$first = 0;
|
||
|
$second = 1;
|
||
|
print MERGEDMINE $1;
|
||
|
next;
|
||
|
}
|
||
|
if( $line =~ m/^(.*)>>>>>>>/ )
|
||
|
{
|
||
|
$first = $second = 0;
|
||
|
print MERGEDTHEIRS $1;
|
||
|
next;
|
||
|
}
|
||
|
|
||
|
if( $first )
|
||
|
{
|
||
|
print MERGEDMINE $line;
|
||
|
}
|
||
|
elsif( $second )
|
||
|
{
|
||
|
print MERGEDTHEIRS $line;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
print MERGEDMINE $line;
|
||
|
print MERGEDTHEIRS $line;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
close MERGEDMINE;
|
||
|
close MERGEDTHEIRS;
|