From 60d2c62eada3cf15226503bff9dd7c909e897128 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Tue, 12 Feb 2008 09:40:47 +0000 Subject: (ensure_utf8) introduce it (copied & slightly altered from rpmtools) so that we never crash on garbaged UTF-8 --- Rpmdrake/formatting.pm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Rpmdrake/formatting.pm b/Rpmdrake/formatting.pm index bf8aa987..8b1ab479 100644 --- a/Rpmdrake/formatting.pm +++ b/Rpmdrake/formatting.pm @@ -35,6 +35,7 @@ use Exporter; our @ISA = qw(Exporter); our @EXPORT = qw( $spacing + ensure_utf8 format_changelog_changelogs format_changelog_string format_field @@ -50,6 +51,19 @@ our @EXPORT = qw( urpm_name); +# from rpmtools, #37482: +sub ensure_utf8 { + my ($s) = @_; + require Encode; + Encode::_utf8_on($s); #- this is done on the copy + if (!Encode::is_utf8($s, 1)) { + Encode::_utf8_off($_[0]); + Encode::from_to($_[0], 'iso-8859-15', 'utf8'); # most probable + } + Encode::_utf8_on($_[0]); #- now we know it is valid utf8 + $_[0]; +} + sub rpm_description { my ($description) = @_; utf8::decode($description); -- cgit v1.2.1