From 9c009c2a436ab22f010c4077394079760455d433 Mon Sep 17 00:00:00 2001 From: Angelo Naselli Date: Mon, 22 Dec 2014 11:17:10 +0100 Subject: Added colored diff (not valid for ncurses) - thanks to Marco Masetti for the regexp --- lib/AdminPanel/Rpmdragora/rpmnew.pm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/AdminPanel/Rpmdragora/rpmnew.pm b/lib/AdminPanel/Rpmdragora/rpmnew.pm index 97e2b7a..f9b9610 100644 --- a/lib/AdminPanel/Rpmdragora/rpmnew.pm +++ b/lib/AdminPanel/Rpmdragora/rpmnew.pm @@ -134,9 +134,26 @@ sub _performDiff ($$) { my $diff = diff $file, $rpmnew, { STYLE => "Unified" }; $diff = $loc->N("(none)") if !$diff; - ensure_utf8($diff); - $diff =~ s/\n/
/g; + my @lines = split ("\n", $diff); + ## adding color lines to diff + foreach my $line (@lines) { + if (substr ($line, 0, 1) eq "+") { + $line =~ s|^\+(.*)|+$1|; + } + elsif (substr ($line, 0, 1) eq "-") { + $line =~ s|^\-(.*)|-$1|; + } + elsif (substr ($line, 0, 1) eq "@") { + $line =~ s|(.*)|$1|; + } + else { + $line =~ s|(.*)|$1|; + } + } + $diff = join("
", @lines); + + ensure_utf8($diff); $diffBox->setValue($diff); return; -- cgit v1.2.1