X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FText.pm;h=353392013c90e621780d1febc76290e40954d075;hb=426fe0ee1b5fc70e19769f872922e99d72ed5d89;hp=f5ede9d699f9791b086a49eb7f06c69445d52b70;hpb=d61a76fc5e1b52929a02705c07ac03936fd14244;p=debbugs.git diff --git a/Debbugs/Text.pm b/Debbugs/Text.pm index f5ede9d..3533920 100644 --- a/Debbugs/Text.pm +++ b/Debbugs/Text.pm @@ -141,6 +141,7 @@ sub fill_in_template{ ref(\$param{template}) eq 'GLOB') { $tt_type = 'FILE_HANDLE'; $tt_source = $param{template}; + binmode($tt_source,":encoding(UTF-8)"); } elsif (ref($param{template}) eq 'SCALAR') { $tt_type = 'STRING'; @@ -193,17 +194,23 @@ sub fill_in_template{ my $tt; if ($tt_type eq 'FILE' and defined $tt_templates{$tt_source} and + ($tt_templates{$tt_source}{mtime} + 60) < time and (stat $tt_source)[9] <= $tt_templates{$tt_source}{mtime} ) { $tt = $tt_templates{$tt_source}{template}; } else { + my $passed_source = $tt_source; + my $passed_type = $tt_type; if ($tt_type eq 'FILE') { $tt_templates{$tt_source}{mtime} = (stat $tt_source)[9]; + $passed_source = IO::File->new($tt_source,'r'); + binmode($passed_source,":encoding(UTF-8)"); + $passed_type = 'FILEHANDLE'; } - $tt = Text::Template->new(TYPE => $tt_type, - SOURCE => $tt_source, + $tt = Text::Template->new(TYPE => $passed_type, + SOURCE => $passed_source, UNTAINT => 1, ); if ($tt_type eq 'FILE') {