user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH] use utf8::{encode,decode} for in-place transforms
@ 2016-05-30  4:54  7% Eric Wong
  0 siblings, 0 replies; 1+ results
From: Eric Wong @ 2016-05-30  4:54 UTC (permalink / raw)
  To: meta

No need to duplicate the string when transforming it;
learned from studying SpamAssassin 3.4.1
---
 lib/PublicInbox/NNTP.pm      | 6 ++----
 lib/PublicInbox/SearchMsg.pm | 4 +---
 lib/PublicInbox/View.pm      | 1 -
 3 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 232237c..e4e3de4 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -16,8 +16,6 @@ use Email::Simple;
 use POSIX qw(strftime);
 use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
 use URI::Escape qw(uri_escape_utf8);
-use Encode qw(find_encoding);
-my $enc_utf8 = find_encoding('UTF-8');
 use constant {
 	r501 => '501 command syntax error',
 	r221 => '221 Header follows',
@@ -898,7 +896,7 @@ sub cmd_xpath ($$) {
 
 sub res ($$) {
 	my ($self, $line) = @_;
-	$line = $enc_utf8->encode($line);
+	utf8::encode($line);
 	do_write($self, $line . "\r\n");
 }
 
@@ -933,7 +931,7 @@ use constant MSG_MORE => ($^O eq 'linux') ? 0x8000 : 0;
 
 sub do_more ($$) {
 	my ($self, $data) = @_;
-	$data = $enc_utf8->encode($data);
+	utf8::encode($data);
 	if (MSG_MORE && !$self->{write_buf_size}) {
 		my $n = send($self->{sock}, $data, MSG_MORE);
 		if (defined $n) {
diff --git a/lib/PublicInbox/SearchMsg.pm b/lib/PublicInbox/SearchMsg.pm
index caebe37..28c2037 100644
--- a/lib/PublicInbox/SearchMsg.pm
+++ b/lib/PublicInbox/SearchMsg.pm
@@ -11,8 +11,6 @@ use POSIX qw//;
 use Date::Parse qw/str2time/;
 use PublicInbox::MID qw/mid_clean/;
 use PublicInbox::Address;
-use Encode qw/find_encoding/;
-my $enc_utf8 = find_encoding('UTF-8');
 our $PFX2TERM_RE = undef;
 use constant EPOCH_822 => 'Thu, 01 Jan 1970 00:00:00 +0000';
 use POSIX qw(strftime);
@@ -39,7 +37,7 @@ sub load_doc {
 	my ($class, $doc) = @_;
 	my $data = $doc->get_data;
 	my $ts = get_val($doc, &PublicInbox::Search::TS);
-	$data = $enc_utf8->decode($data);
+	utf8::decode($data);
 	my ($subj, $from, $refs, $to, $cc) = split(/\n/, $data);
 	bless {
 		doc => $doc,
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index a78ce31..ed40530 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -8,7 +8,6 @@ use strict;
 use warnings;
 use URI::Escape qw/uri_escape_utf8/;
 use Date::Parse qw/str2time/;
-use Encode qw/find_encoding/;
 use Encode::MIME::Header;
 use PublicInbox::Hval qw/ascii_html/;
 use PublicInbox::Linkify;

^ permalink raw reply related	[relevance 7%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2016-05-30  4:54  7% [PATCH] use utf8::{encode,decode} for in-place transforms Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).