From: Don Armstrong Date: Thu, 7 Feb 2013 16:37:20 +0000 (-0800) Subject: - carp if the a log text record is in perl's internal encoding instead of octets X-Git-Tag: release/2.6.0~313^2~18 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ab887f2c65e8ac828c6855f9904c81909256fc45;hp=b5369abc094a0879c1b475b1a85e88debf2547ec;p=debbugs.git - carp if the a log text record is in perl's internal encoding instead of octets - attempt to encode the text to fix the problem after complaining --- diff --git a/Debbugs/Log.pm b/Debbugs/Log.pm index 2ae7af7..de63949 100644 --- a/Debbugs/Log.pm +++ b/Debbugs/Log.pm @@ -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: $!";