Do not mutate $self->{context} while formatting diffs

3col
Vitaliy Filippov 2015-04-13 19:00:25 +03:00
parent f80473e667
commit df4bbdeb6e
1 changed files with 17 additions and 15 deletions

View File

@ -78,21 +78,22 @@ sub get_table
# value is array of [type, value] after glue_context # value is array of [type, value] after glue_context
if (ref $_) if (ref $_)
{ {
my $s = '';
for (@$_) for (@$_)
{ {
my $t = $_->[0]; my $r = html_quote($_->[1]);
$_ = html_quote($_->[1]); $r =~ s/\n/<br \/>/gso;
s/\n/<br \/>/gso; if ($_->[0] eq TYPE_REM)
if ($t eq TYPE_REM)
{ {
$_ = '<b style="background: #CCC; color: #F00;">'.$_.'</b>'; $r = '<b style="background: #CCC; color: #F00;">'.$r.'</b>';
} }
elsif ($t eq TYPE_ADD) elsif ($_->[0] eq TYPE_ADD)
{ {
$_ = '<b style="background: #CCC; color: #090;">'.$_.'</b>'; $r = '<b style="background: #CCC; color: #090;">'.$r.'</b>';
} }
$s .= $r;
} }
$_ = join('', @$_); $_ = $s;
} }
} }
@ -135,20 +136,21 @@ sub get_part
# value is array of [type, value] after glue_context # value is array of [type, value] after glue_context
if (ref $lval) if (ref $lval)
{ {
my $s = '';
for (@$lval) for (@$lval)
{ {
my $t = $_->[0]; my $r = $_->[1];
$_ = $_->[1]; if ($_->[0] eq TYPE_REM)
if ($_ eq TYPE_REM)
{ {
s/^/-/gmo; $r =~ s/^/-/gmo;
} }
elsif ($t eq TYPE_ADD) elsif ($_->[0] eq TYPE_ADD)
{ {
s/^/+/gmo; $r =~ s/^/+/gmo;
} }
$s .= $r;
} }
$lval = join('', @$lval); $lval = $s;
} }
$result .= "\n$lval"; $result .= "\n$lval";
} }