X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSolverGit.pm;h=ff8a49460b6fca00b0741f72f8431edec063d939;hb=80b887f29b2ec71d025b4c266a1c26314758994c;hp=c32a5baecdbc2a6366c64bb3ad79400e9eacdb34;hpb=87678710135973f72722258e171fc00f85c86ec8;p=public-inbox.git diff --git a/lib/PublicInbox/SolverGit.pm b/lib/PublicInbox/SolverGit.pm index c32a5bae..ff8a4946 100644 --- a/lib/PublicInbox/SolverGit.pm +++ b/lib/PublicInbox/SolverGit.pm @@ -14,7 +14,7 @@ use 5.010_001; use File::Temp 0.19 (); # 0.19 for ->newdir use Fcntl qw(SEEK_SET); use PublicInbox::Git qw(git_unquote git_quote); -use PublicInbox::MsgIter qw(msg_iter msg_part_text); +use PublicInbox::MsgIter qw(msg_part_text); use PublicInbox::Qspawn; use PublicInbox::Tmpfile; use URI::Escape qw(uri_escape_utf8); @@ -229,12 +229,11 @@ sub find_extract_diffs ($$$) { } } - my $msgs = $srch->query($q, { relevance => 1 }); - + my $mset = $srch->mset($q, { relevance => 1 }); my $diffs = []; - foreach my $smsg (@$msgs) { - $ibx->smsg_mime($smsg) or next; - msg_iter(delete $smsg->{mime}, \&extract_diff, + for my $smsg (@{$srch->mset_to_smsg($ibx, $mset)}) { + my $eml = $ibx->smsg_eml($smsg) or next; + $eml->each_part(\&extract_diff, [$self, $diffs, $pre, $post, $ibx, $smsg], 1); } @$diffs ? $diffs : undef; @@ -594,7 +593,7 @@ sub new { } # recreate $oid_want using $hints -# hints keys: path_a, path_b, oid_a +# hints keys: path_a, path_b, oid_a (note: `oid_b' is NOT a hint) # Calls {user_cb} with: [ ::Git object, oid_full, type, size, di (diff_info) ] # with found object, or undef if nothing was found # Calls {user_cb} with a string error on fatal errors