about summary refs log tree commit homepage
path: root/lib/PublicInbox/Eml.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-02-04 00:59:26 -0900
committerEric Wong <e@80x24.org>2021-02-05 00:16:31 +0000
commit69ea1bcb2983d2c51caf04440d4797212ed6fd64 (patch)
treecb948bde2534722b97b09dc7bc1d7188e38caa97 /lib/PublicInbox/Eml.pm
parenta54a442b9a125f93518b8e50411403a708f8fc2e (diff)
downloadpublic-inbox-69ea1bcb2983d2c51caf04440d4797212ed6fd64.tar.gz
There's nothing we can do about bad emails in our search
results, so quiet things down and don't fight the MUA for
the terminal.
Diffstat (limited to 'lib/PublicInbox/Eml.pm')
-rw-r--r--lib/PublicInbox/Eml.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/PublicInbox/Eml.pm b/lib/PublicInbox/Eml.pm
index bd27f19b..f7f62e7b 100644
--- a/lib/PublicInbox/Eml.pm
+++ b/lib/PublicInbox/Eml.pm
@@ -477,6 +477,25 @@ sub charset_set {
 
 sub crlf { $_[0]->{crlf} // "\n" }
 
+# warnings to ignore when handling spam mailboxes and maybe other places
+sub warn_ignore {
+        my $s = "@_";
+        # Email::Address::XS warnings
+        $s =~ /^Argument contains empty address at /
+        || $s =~ /^Element at index [0-9]+ contains /
+        # PublicInbox::MsgTime
+        || $s =~ /^bogus TZ offset: .+?, ignoring and assuming \+0000/
+        || $s =~ /^bad Date: .+? in /
+        # Encode::Unicode::UTF7
+        || $s =~ /^Bad UTF7 data escape at /
+}
+
+# this expects to be RHS in this assignment: "local $SIG{__WARN__} = ..."
+sub warn_ignore_cb {
+        my $cb = $SIG{__WARN__} // \&CORE::warn;
+        sub { $cb->(@_) unless warn_ignore(@_) }
+}
+
 sub willneed { re_memo($_) for @_ }
 
 willneed(qw(From To Cc Date Subject Content-Type In-Reply-To References