about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-09-27 04:59:30 +0000
committerEric Wong <e@80x24.org>2021-09-27 09:22:47 +0000
commitc5b8b0cbc72b8133c70d68668047219342e886d1 (patch)
tree4483d58abb2255a3c8c973f6038c3f87260526b3
parent840c1c80ccd3000a8ed888851a86a096e514002c (diff)
downloadpublic-inbox-c5b8b0cbc72b8133c70d68668047219342e886d1.tar.gz
lei rediff is expected to see partial patch fragments and such,
so silence warnings when something isn't exactly a valid email
message.
-rw-r--r--lib/PublicInbox/LeiRediff.pm11
-rw-r--r--t/solver_git.t1
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/PublicInbox/LeiRediff.pm b/lib/PublicInbox/LeiRediff.pm
index ea9b2a64..f6960560 100644
--- a/lib/PublicInbox/LeiRediff.pm
+++ b/lib/PublicInbox/LeiRediff.pm
@@ -193,8 +193,15 @@ sub extract_oids { # Eml each_part callback
 
 sub input_eml_cb { # callback for all emails
         my ($self, $eml) = @_;
-        $self->{tmp_sto}->add_eml($eml);
-        $self->{tmp_sto}->done;
+        {
+                local $SIG{__WARN__} = sub {
+                        return if "@_" =~ /^no email in From: .*? or Sender:/;
+                        return if PublicInbox::Eml::warn_ignore(@_);
+                        warn @_;
+                };
+                $self->{tmp_sto}->add_eml($eml);
+                $self->{tmp_sto}->done;
+        }
         $eml->each_part(\&extract_oids, $self, 1);
 }
 
diff --git a/t/solver_git.t b/t/solver_git.t
index d5f4c4a0..3c0b7f65 100644
--- a/t/solver_git.t
+++ b/t/solver_git.t
@@ -93,6 +93,7 @@ index 15ac20eb..771486c4
 EOM
         like($lei_out, qr/\Q$exp\E/,
                 'preserve mode, regen header + context from -U0 patch');
+        is($lei_err, '', 'no warnings from bare patch');
         my $e = { GIT_DIR => "$ENV{HOME}/.local/share/lei/store/ALL.git" };
         my @x = xqx([qw(git cat-file --batch-all-objects --batch-check)], $e);
         is_deeply(\@x, [], 'no objects stored') or diag explain(\@x);