Index: plugins/eval.pm =================================================================== --- plugins/eval.pm (revision 26) +++ plugins/eval.pm (working copy) @@ -17,6 +17,17 @@ my $target = shift; my $code = shift; + my $pretty = sub + { + my $ch = shift; + + return '\n' if $ch eq "\n"; + return '\t' if $ch eq "\t"; + return '\0' if ord $ch == 0; + return sprintf '\x%2x', ord $ch if ord $ch < 256; + return sprintf '\x{%x}', ord $ch; + }; + my $evaler = sub { #open STDERR, ">&STDOUT" or die "CAN'T DUPE: $!"; @@ -55,6 +66,13 @@ $ret = Dumper( $ret ); $ret =~ s/\s{2,}//g; print $ret; + } + elsif ($ret =~ /[^\x20-\x7e]/) + { + $ret =~ s/\\/\\\\/g; + $ret =~ s/"/\"/g; + $ret =~ s/([^\x20-\x7e])/$pretty->($1)/eg; + print qq{"$ret"}; } else {