lei rediff is expected to see partial patch fragments and such,
so silence warnings when something isn't exactly a valid email
message.
---
 lib/PublicInbox/LeiRediff.pm | 11 +++++++++--
 t/solver_git.t               |  1 +
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/PublicInbox/LeiRediff.pm b/lib/PublicInbox/LeiRediff.pm
index ea9b2a643f9a..f6960560f1a2 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 d5f4c4a02758..3c0b7f6524c6 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);
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/

Reply via email to