Skip to content

Instantly share code, notes, and snippets.

@nemunaire
Created February 24, 2022 21:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nemunaire/c2a7d9bb07af471984ec557c80b41f41 to your computer and use it in GitHub Desktop.
Save nemunaire/c2a7d9bb07af471984ec557c80b41f41 to your computer and use it in GitHub Desktop.
use 5.010;
use strict;
use warnings;
use open qw/:std :utf8/;
use utf8;
my @moins;
my @plus;
sub uu ($$) {
my $tmoins = shift;
my $tplus = shift;
$tmoins =~ s/ :/ :/g;
$tmoins =~ s/ !/ !/g;
$tmoins =~ s/ \?/ ?/g;
$tmoins =~ s/ ;/ ;/g;
my $mmoins = $tmoins;
$mmoins =~ s/ .../ …/g;
my $cmoins = $mmoins;
$cmoins =~ s/^-/+/;
if ($cmoins eq $tplus) {
$tplus =~ s/^\+/-/;
$tmoins =~ s/^-/+/;
print $tplus;
print $tmoins;
} else {
#$cmoins =~ s/^\+/!/;
#print $cmoins;
$tplus =~ s/^\+/ /;
print $tplus;
}
}
sub tt {
if ($#moins < $#plus) {
for my $i (0 .. $#moins) {
uu $moins[$i], $plus[$i];
}
for my $i (0 .. $#moins) {
shift @plus;
}
foreach (@plus) {
$_ =~ s/^\+/ /;
print $_;
}
} elsif ($#plus < $#moins) {
for my $i (0 .. $#plus) {
uu $moins[$i], $plus[$i];
}
} else {
for my $i (0 .. $#moins) {
uu $moins[$i], $plus[$i];
}
}
@plus = ();
@moins = ();
}
while (<>) {
if (/^--- / || /^\+\+\+ / || /^--$/) {
print $_;
} elsif (/^\+/) {
push @plus, $_;
} elsif (/^-/) {
push @moins, $_;
} elsif (/^@@ -([0-9]+,[0-9]+) \+([0-9]+,[0-9]+) @@(.*)$/) {
print "\@\@ -$2 +$2 \@\@$3\n";
} else {
my $line = $_;
tt;
print $line;
}
}
tt;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment