aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngelo Naselli <anaselli@linux.it>2014-12-22 11:17:10 +0100
committerAngelo Naselli <anaselli@linux.it>2014-12-22 11:17:10 +0100
commit9c009c2a436ab22f010c4077394079760455d433 (patch)
tree52a17992d65bbe6f738a953e698efbbd8c83d338
parent02d9330cd3a427a8167af13210afbc17bd9ca652 (diff)
downloadcolin-keep-9c009c2a436ab22f010c4077394079760455d433.tar
colin-keep-9c009c2a436ab22f010c4077394079760455d433.tar.gz
colin-keep-9c009c2a436ab22f010c4077394079760455d433.tar.bz2
colin-keep-9c009c2a436ab22f010c4077394079760455d433.tar.xz
colin-keep-9c009c2a436ab22f010c4077394079760455d433.zip
Added colored diff (not valid for ncurses) - thanks to Marco Masetti for
the regexp
-rw-r--r--lib/AdminPanel/Rpmdragora/rpmnew.pm21
1 files changed, 19 insertions, 2 deletions
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/<br>/g;
+ my @lines = split ("\n", $diff);
+ ## adding color lines to diff
+ foreach my $line (@lines) {
+ if (substr ($line, 0, 1) eq "+") {
+ $line =~ s|^\+(.*)|<font color="green">+$1</font>|;
+ }
+ elsif (substr ($line, 0, 1) eq "-") {
+ $line =~ s|^\-(.*)|<font color="red">-$1</font>|;
+ }
+ elsif (substr ($line, 0, 1) eq "@") {
+ $line =~ s|(.*)|<font color="blue">$1</font>|;
+ }
+ else {
+ $line =~ s|(.*)|<font color="black">$1</font>|;
+ }
+ }
+ $diff = join("<br>", @lines);
+
+ ensure_utf8($diff);
$diffBox->setValue($diff);
return;