From 940ff3a1bb74e23a2187ec8b6e53d1159576606f Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 1 Oct 2009 13:30:52 +0000 Subject: (inspect) fix encoding of diff output (#52994) (inspired from Rpmdrake::run_rpm which we cannot reuse since run_program::get_stdout() ignores output when return value is not 0, which can be 0 or 1 with diff depending whether files are identical or not) --- Rpmdrake/rpmnew.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Rpmdrake') 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 }; -- cgit v1.2.1