]> git.donarmstrong.com Git - debbugs.git/commitdiff
- carp if the a log text record is in perl's internal encoding instead of octets
authorDon Armstrong <don@donarmstrong.com>
Thu, 7 Feb 2013 16:37:20 +0000 (08:37 -0800)
committerDon Armstrong <don@donarmstrong.com>
Thu, 7 Feb 2013 16:37:20 +0000 (08:37 -0800)
- attempt to encode the text to fix the problem after complaining

Debbugs/Log.pm

index 2ae7af7b919705b1e859f55cfc686a0741ab980c..de639494f087788f11f48304fcdf271d494dab4e 100644 (file)
@@ -390,8 +390,12 @@ sub write_log_records
        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: $!";