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 +- public-inbox-mda | 4 ++-- diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 9e567476aa75d289109440812ad242e1eb2297d1..bc76cdcdc446619085dae4cd8865d43084b298ea 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -216,7 +216,7 @@ chomp($rv{description} = <$fh>); 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 0b1ec911407d3fa60ed9b1a3cdcf9ab6023b2641..c0985dddfec588b889d312516cdc1116e753b8d7 100644 --- a/lib/PublicInbox/Filter.pm +++ b/lib/PublicInbox/Filter.pm @@ -211,7 +211,7 @@ my ($mime, $part) = @_; $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 4362a002e6a941ab61e93ebbbbc3ce987ca5d748..4b3830e2fbee6b61cbb5450ceb9b92177dbf1923 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -251,10 +251,11 @@ my $new = $subj . $l . ' '; 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 292419e15a2992791d4ef842abf063ffa170c235..2ac53a73efea7cdc8bf4bb1fca8045b428a0b02f 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -74,7 +74,7 @@ } 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 @@ eval { 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 _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 51fee0467c2fa6748dafe969be8fa5a8677bc708..cc68229ff9748a013f035f6056a74cb0162de00c 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -198,7 +198,7 @@ # kill any leading or trailing whitespace lines $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 @@ $mid = PublicInbox::Hval->new_msgid($mid); 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 @@ my $to; # this is the From address 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 @@ 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 @@ thread_followups(\$idx, $mime, $res); } 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 @@ if (defined $f && defined $d) { 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 @@ $d = PublicInbox::Hval->new($d); $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 8058f3e1b1c2f998cadc053891c2f9f5a9c80d6c..a01271b1c9291460a86f8011470e83f4ad770ac9 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -249,7 +249,7 @@ 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; } diff --git a/public-inbox-mda b/public-inbox-mda index c4822b6180e6124b84991bffbd25905dac857c4a..b1f33af5902195d34cd43c04d03d4039bfc9bbd5 100755 --- a/public-inbox-mda +++ b/public-inbox-mda @@ -64,7 +64,7 @@ } } else { # Ensure emergency spam gets spamassassin headers. # This makes it easier to prioritize obvious spam from less obvious - if (defined($filtered) && length($filtered)) { + if (defined($filtered) && $filtered ne '') { my $drop = Email::MIME->new(\$filtered); $filtered = undef; $filter->simple($drop); @@ -82,7 +82,7 @@ my $orig = $msg->as_string; run([qw/spamc -E --headers/], \$orig, $out); }; - return ($@ || $? || !defined($$out) || length($$out) == 0) ? 0 : 1; + return ($@ || $? || !defined($$out) || $$out eq '') ? 0 : 1; } sub search_index_sync {