aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--Rpmdrake/rpmnew.pm6
2 files changed, 8 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index a0ed9e6f..8dc8868d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+- rpmdrake
+ o fix encoding of diff output (#52994)
+
Version 5.18 - 1 October 2009, Thierry Vignaud
- edit-urpm-sources:
diff --git a/Rpmdrake/rpmnew.pm b/Rpmdrake/rpmnew.pm
index 325882be..6980b567 100644
--- a/Rpmdrake/rpmnew.pm
+++ b/Rpmdrake/rpmnew.pm
@@ -73,7 +73,11 @@ sub inspect {
-r $rpmnew or $rpmfile = 'rpmsave';
-r $rpmnew && -r $rpmsave && (stat $rpmsave)[9] > (stat $rpmnew)[9] and $rpmfile = 'rpmsave';
$rpmfile eq 'rpmsave' and $rpmnew = $rpmsave;
- my @diff = `/usr/bin/diff -u '$file' '$rpmnew'`;
+
+ foreach (qw(LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION LC_ALL)) {
+ local $ENV{$_} = $ENV{$_} . '.UTF-8' if $ENV{$_} && $ENV{$_} !~ /UTF-8/;
+ }
+ my @diff = map { ensure_utf8($_) } `/usr/bin/diff -u '$file' '$rpmnew'`;
@diff = N("(none)") if !@diff;
my $d = ugtk2->new(N("Inspecting %s", $file), grab => 1, transient => $::main_window);
my $save_wsize = sub { @inspect_wsize = $d->{rwindow}->get_size };