use Debbugs::Common qw(getbuglocation getbugcomponent make_list);
use Params::Validate qw(:types validate_with);
-use Encode qw(encode is_utf8);
+use Encode qw(encode encode_utf8 is_utf8);
=head1 NAME
croak "record type '$type' with no text field" unless defined $record->{text};
# I am not sure if we really want to croak here; but this is
# almost certainly a bug if is_utf8 is on.
- # croak "probably wrong encoding" if is_utf8($record->{text});
- my ($text) = escape_log($record->{text});
+ my $text = $record->{text};
+ if (is_utf8($text)) {
+ carp('Record text was in the wrong encoding (perl internal instead of utf8 octets)');
+ $text = encode_utf8($text)
+ }
+ ($text) = escape_log($text);
if ($type eq 'autocheck') {
print {$logfh} "\01\n$text\03\n" or
die "Unable to write to logfile: $!";
if (defined $recips) {
croak "recips not undef or array"
unless ref($recips) eq 'ARRAY';
+ my $wrong_encoding = 0;
+ my @recips =
+ map { if (is_utf8($_)) {
+ $wrong_encoding=1;
+ encode_utf8($_);
+ } else {
+ $_;
+ }} @$recips;
+ carp('Recipients was in the wrong encoding (perl internal instead of utf8 octets') if $wrong_encoding;
print {$logfh} join("\04", @$recips) . "\n" or
die "Unable to write to logfile: $!";
} else {