po(refreshpot): define the input charset before read()'ing

... to prevent the use of Encode::Guess::guess_encoding() in
Locale::Po4a::Transtractor (just a minor security measure, dependent on po4a
internals, but we have no reason to think Encode::Guess is not safe).

Signed-off-by: intrigeri <intrigeri@boum.org>
master
intrigeri 2008-11-08 21:32:04 +01:00
parent 7691899da0
commit 646d7bf6a3
1 changed files with 1 additions and 1 deletions

View File

@ -166,10 +166,10 @@ sub refreshpot ($) { #{{{
my $potfile=potfile($masterfile);
my %options = ("markdown" => (pagetype($masterfile) eq 'mdwn') ? 1 : 0);
my $doc=Locale::Po4a::Chooser::new('text',%options);
$doc->read($masterfile);
$doc->{TT}{utf_mode} = 1;
$doc->{TT}{file_in_charset} = 'utf-8';
$doc->{TT}{file_out_charset} = 'utf-8';
$doc->read($masterfile);
# let's cheat a bit to force porefs option to be passed to Locale::Po4a::Po;
# this is undocument use of internal Locale::Po4a::TransTractor's data,
# compulsory since this module prevents us from using the porefs option.