]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Log.pm
Apply fix for ! in owner et al; fixes #681853 Thanks to jwilk for reporting
[debbugs.git] / Debbugs / Log.pm
index 20e13503441df9521913a4ed7308e8c0a21ea08e..2ae7af7b919705b1e859f55cfc686a0741ab980c 100644 (file)
@@ -51,6 +51,11 @@ The Debbugs::Log module provides a convenient way for scripts to read and
 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
@@ -383,6 +388,9 @@ sub write_log_records
     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
@@ -427,7 +435,7 @@ Applies the log escape regex to the passed logfile.
 
 sub escape_log {
        my @log = @_;
-       return map { eval {$_ = is_utf8($_)?encode("utf8",$_,Encode::FB_CROAK):$_;}; s/^([\01-\07\030])/\030$1/gm; $_ } @log;
+       return map {s/^([\01-\07\030])/\030$1/gm; $_ } @log;
 }