From 28ee19c32a1ecf8e22f30e8f9de860695f4fb30c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 29 Aug 2015 21:30:27 +0000 Subject: avoid length in boolean context Perl does not currently optimize for this. ref (from p5p): http://mid.gmane.org/D5C27970-9176-4C7A-8B99-7D78360E67A2@pobox.com --- lib/PublicInbox/Feed.pm | 2 +- lib/PublicInbox/Filter.pm | 2 +- lib/PublicInbox/Search.pm | 3 ++- lib/PublicInbox/SearchIdx.pm | 6 +++--- lib/PublicInbox/View.pm | 24 ++++++++++++++---------- lib/PublicInbox/WWW.pm | 2 +- 6 files changed, 22 insertions(+), 17 deletions(-) (limited to 'lib/PublicInbox') diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 9e567476..bc76cdcd 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -216,7 +216,7 @@ sub get_feedopts { close $fh; } - if ($pi_config && defined $listname && length $listname) { + if ($pi_config && defined $listname && $listname ne '') { foreach my $key (qw(address)) { $rv{$key} = $pi_config->get($listname, $key) || ""; } diff --git a/lib/PublicInbox/Filter.pm b/lib/PublicInbox/Filter.pm index 0b1ec911..c0985ddd 100644 --- a/lib/PublicInbox/Filter.pm +++ b/lib/PublicInbox/Filter.pm @@ -211,7 +211,7 @@ sub collapse { $mime->header_set('Content-Type', $part->content_type); $mime->body_set($part->body_raw); my $cte = $part->header('Content-Transfer-Encoding'); - if (defined($cte) && length($cte)) { + if (defined($cte) && $cte ne '') { $mime->header_set('Content-Transfer-Encoding', $cte); } mark_changed($mime); diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 4362a002..4b3830e2 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -251,10 +251,11 @@ sub subject_summary { last if length($new) >= $max; $subj = $new; } - if (length $subj) { + if ($subj ne '') { my $r = scalar @subj ? ' ...' : ''; $subj =~ s/ \z/$r/s; } else { + # subject has one REALLY long word, and NOT spam? wtf @subj = ($l =~ /\A(.{1,72})/); $subj = $subj[0] . ' ...'; } diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index 292419e1..2ac53a73 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -74,7 +74,7 @@ sub add_message { my $subj = $smsg->subject; - if (length $subj) { + if ($subj ne '') { $doc->add_term(xpfx('subject') . $subj); my $path = $self->subject_path($subj); @@ -308,7 +308,7 @@ sub _index_sync { my $git = PublicInbox::GitCatFile->new($self->{git_dir}); my $latest = $db->get_metadata('last_commit'); - my $range = length $latest ? "$latest..$head" : $head; + my $range = $latest eq '' ? $head : "$latest..$head"; $latest = undef; # get indexed messages @@ -394,7 +394,7 @@ sub _read_git_config_perm { sub _git_config_perm { my $self = shift; my $perm = scalar @_ ? $_[0] : _read_git_config_perm($self); - return PERM_GROUP if (!defined($perm) || !length($perm)); + return PERM_GROUP if (!defined($perm) || $perm eq ''); return PERM_UMASK if ($perm eq 'umask'); return PERM_GROUP if ($perm eq 'group'); if ($perm =~ /\A(?:all|world|everybody)\z/) { diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 51fee046..cc68229f 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -198,7 +198,7 @@ sub index_walk { $s =~ s/^\s*$//sgm; $s =~ s/\s+\z//s; - if (length $s) { + if ($s ne '') { # kill per-line trailing whitespace $s =~ s/[ \t]+$//sgm; $s .= "\n" unless $s =~ /\n\z/s; @@ -352,7 +352,7 @@ sub headers_to_html_header { my $mid_href = $mid->as_href; foreach my $h (qw(From To Cc Subject Date)) { my $v = $mime->header($h); - defined($v) && length($v) or next; + defined($v) && ($v ne '') or next; $v = PublicInbox::Hval->new_oneline($v); if ($h eq 'From') { @@ -414,7 +414,7 @@ sub html_footer { foreach my $h (qw(From To Cc)) { my $v = $mime->header($h); - defined($v) && length($v) or next; + defined($v) && ($v ne '') or next; my @addrs = Email::Address->parse($v); foreach my $recip (@addrs) { my $address = $recip->address; @@ -439,9 +439,9 @@ sub html_footer { my $srch = $ctx->{srch} if $ctx; my $idx = $standalone ? " index" : ''; if ($idx && $srch) { - $irt = $mime->header('In-Reply-To') || ''; $mid = mid_compress(mid_clean($mid)); - my $t_anchor = length $irt ? T_ANCHOR : ''; + my $t_anchor = defined $irt ? T_ANCHOR : ''; + $irt = $mime->header('In-Reply-To'); $idx = " ". "threadlink$idx"; my $res = $srch->get_followups($mid); @@ -458,7 +458,7 @@ sub html_footer { } else { $idx .= "\n(no followups, yet)\n"; } - if ($irt) { + if (defined $irt) { $irt = PublicInbox::Hval->new_msgid($irt); $irt = $irt->as_href; $irt = "parent "; @@ -499,10 +499,14 @@ sub simple_dump { my $mid = $x->header('Message-ID'); my $pfx = ' ' x $level; $$dst .= $pfx; + + # Subject is never undef, this mail was loaded from + # our Xapian which would've resulted in '' if it were + # really missing (and Filter rejects empty subjects) my $s = $x->header('Subject'); my $h = $root->[2]->subject_path($s); if ($root->[1]->{$h}) { - $s = ''; + $s = undef; } else { $root->[1]->{$h} = 1; $s = PublicInbox::Hval->new($s); @@ -514,11 +518,11 @@ sub simple_dump { $m = '../' . $m->as_href . '/'; $f = $f->as_html; $d = $d->as_html . ' UTC'; - if (length($s) == 0) { - $$dst .= "` $f @ $d\n"; - } else { + if (defined $s) { $$dst .= "` $s\n" . "$pfx by $f @ $d\n"; + } else { + $$dst .= "` $f @ $d\n"; } } } diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm index 8058f3e1..a01271b1 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -249,7 +249,7 @@ sub do_redirect { sub ctx_get { my ($ctx, $key) = @_; my $val = $ctx->{$key}; - (defined $val && length $val) or die "BUG: bad ctx, $key unusable\n"; + (defined $val && $val ne '') or die "BUG: bad ctx, $key unusable\n"; $val; } -- cgit v1.2.3-24-ge0c7