]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Log.pm
read the log file as utf8 by default
[debbugs.git] / Debbugs / Log.pm
index af80f7ab5e6f5d86b734bb27a6612f71e738ebf4..e58d84ae486bf9d2892fbd7b54940e50c2df09d9 100644 (file)
@@ -39,6 +39,7 @@ use Carp;
 
 use Debbugs::Common qw(getbuglocation getbugcomponent make_list);
 use Params::Validate qw(:types validate_with);
+use Encode qw(encode);
 
 =head1 NAME
 
@@ -200,6 +201,7 @@ sub new
              die "Unable to open bug log $bug_log for reading: $!";
     }
 
+    binmode($self->{logfh},':utf8');
     $self->{state} = 'kill-init';
     $self->{linenum} = 0;
     return $self;
@@ -426,7 +428,7 @@ Applies the log escape regex to the passed logfile.
 
 sub escape_log {
        my @log = @_;
-       return map { s/^([\01-\07\030])/\030$1/gm; $_ } @log;
+       return map { eval {$_ = encode("utf8",$_,Encode::FB_CROAK)}; s/^([\01-\07\030])/\030$1/gm; $_ } @log;
 }