use Debbugs::Common qw(getbuglocation getbugcomponent make_list);
use Params::Validate qw(:types validate_with);
+use Encode qw(encode is_utf8);
=head1 NAME
write the .log files used by debbugs to store the complete textual records
of all bug transactions.
+Debbugs::Log does not decode utf8 into perl's internal encoding or
+encode into utf8 from perl's internal encoding. For html records and
+all recips, this should probably be done. For other records, this should
+not be needed.
+
=head2 The .log File Format
.log files consist of a sequence of records, of one of the following four
for my $record (@records) {
my $type = $record->{type};
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});
if ($type eq 'autocheck') {
print {$logfh} "\01\n$text\03\n" or
sub escape_log {
my @log = @_;
- return map { s/^([\01-\07\030])/\030$1/gm; $_ } @log;
+ return map {s/^([\01-\07\030])/\030$1/gm; $_ } @log;
}