lib/PublicInbox/LEI.pm | 9 +++++++++ lib/PublicInbox/LeiBlob.pm | 3 +-- lib/PublicInbox/LeiForgetMailSync.pm | 3 +-- lib/PublicInbox/LeiInspect.pm | 3 +-- lib/PublicInbox/LeiLcat.pm | 10 ++++------ lib/PublicInbox/LeiLsMailSource.pm | 3 +-- diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm index 347dd2806365340ef699d3489a4615cec166c023..e5232f1bd8509b5fcf1375cabce3be0d3576add3 100644 --- a/lib/PublicInbox/LEI.pm +++ b/lib/PublicInbox/LEI.pm @@ -1425,4 +1425,13 @@ my ($lei, $eml) = @_; ($lei->{sto} // _lei_store($lei, 1))->git_blob_id($eml); } +sub lms { # read-only LeiMailSync + my ($lei) = @_; + my $lse = $lei->{lse} // do { + my $sto = $lei->{sto} // _lei_store($lei); + $sto ? $sto->search : undef + }; + $lse ? $lse->lms : undef; +} + 1; diff --git a/lib/PublicInbox/LeiBlob.pm b/lib/PublicInbox/LeiBlob.pm index 3158ca3beffda3ce8d4a2c0d473324f26e750f5d..21003894026099d55637684cf880ed291222cd11 100644 --- a/lib/PublicInbox/LeiBlob.pm +++ b/lib/PublicInbox/LeiBlob.pm @@ -133,8 +133,7 @@ waitpid(spawn($cmd, $lei->{env}, $rdr), 0); } my $ce = $?; return if $ce == 0; - my $sto = $lei->_lei_store; - my $lms = $sto ? $sto->search->lms : undef; + my $lms = $lei->lms; if (my $bref = $lms ? $lms->local_blob($blob, 1) : undef) { defined($lei->{-attach_idx}) and return extract_attach($lei, $blob, $bref); diff --git a/lib/PublicInbox/LeiForgetMailSync.pm b/lib/PublicInbox/LeiForgetMailSync.pm index 46dde1a7fd591bb78fdca32e97eaa205141820b2..c74ba25ddde7240afd08389015020442b366f3fb 100644 --- a/lib/PublicInbox/LeiForgetMailSync.pm +++ b/lib/PublicInbox/LeiForgetMailSync.pm @@ -14,8 +14,7 @@ use PublicInbox::LeiExportKw; sub lei_forget_mail_sync { my ($lei, @folders) = @_; - my $sto = $lei->_lei_store or return; - my $lms = $sto->search->lms or return; + my $lms = $lei->lms or return; my $err = $lms->arg2folder($lei, \@folders); $lei->qerr(@{$err->{qerr}}) if $err->{qerr}; return $lei->fail($err->{fail}) if $err->{fail}; diff --git a/lib/PublicInbox/LeiInspect.pm b/lib/PublicInbox/LeiInspect.pm index bf7a48368d318a2a493e9357ffeaaacd78e4a840..2d2ff1a0e7f6754a014f8d1d461c06b503253ef1 100644 --- a/lib/PublicInbox/LeiInspect.pm +++ b/lib/PublicInbox/LeiInspect.pm @@ -41,8 +41,7 @@ sub inspect_sync_folder ($$) { my ($lei, $folder) = @_; my $ent = {}; - my $lse = $lei->{lse} or return $ent; - my $lms = $lse->lms or return $ent; + my $lms = $lei->lms or return $ent; my $folders = [ $folder ]; my $err = $lms->arg2folder($lei, $folders); if ($err) { diff --git a/lib/PublicInbox/LeiLcat.pm b/lib/PublicInbox/LeiLcat.pm index 4a0c24a96bdb9f480163222ab28b4ef08e11f27c..9d95e899c2d4888c1b0166eec298d96a19a673b2 100644 --- a/lib/PublicInbox/LeiLcat.pm +++ b/lib/PublicInbox/LeiLcat.pm @@ -13,7 +13,7 @@ use PublicInbox::MID qw($MID_EXTRACT); sub lcat_folder ($$$) { my ($lei, $lms, $folder) = @_; - $lms //= $lei->{lse}->lms // return; + $lms //= $lei->lms or return; my $folders = [ $folder]; my $err = $lms->arg2folder($lei, $folders); $lei->qerr(@{$err->{qerr}}) if $err && $err->{qerr}; @@ -29,7 +29,7 @@ } sub lcat_imap_uri ($$) { my ($lei, $uri) = @_; - my $lms = $lei->{lse}->lms or return; + my $lms = $lei->lms or return; # cf. LeiXsearch->lcat_dump if (defined $uri->uid) { my $oidhex = $lms->imap_oid($lei, $uri); @@ -129,8 +129,7 @@ sub lei_lcat { my ($lei, @argv) = @_; my $lxs = $lei->lxs_prepare or return; $lei->ale->refresh_externals($lxs, $lei); - my $sto = $lei->_lei_store(1); - $lei->{lse} = $sto->search; + $lei->_lei_store(1); my $opt = $lei->{opt}; my %mset_opt = map { $_ => $opt->{$_} } qw(threads limit offset); $mset_opt{asc} = $opt->{'reverse'} ? 1 : 0; @@ -153,8 +152,7 @@ } sub _complete_lcat { my ($lei, @argv) = @_; - my $sto = $lei->_lei_store or return; - my $lms = $sto->search->lms or return; + my $lms = $lei->lms or return; my $match_cb = $lei->complete_url_prepare(\@argv); map { $match_cb->($_) } $lms->folders; } diff --git a/lib/PublicInbox/LeiLsMailSource.pm b/lib/PublicInbox/LeiLsMailSource.pm index cadc61eda162ca1d5f5502204a6f93d2b520b218..2d8913ac9f090adf1af6ccd6148860be0fed32e3 100644 --- a/lib/PublicInbox/LeiLsMailSource.pm +++ b/lib/PublicInbox/LeiLsMailSource.pm @@ -103,8 +103,7 @@ my ($lei, @argv) = @_; my $match_cb = $lei->complete_url_prepare(\@argv); my @m = map { $match_cb->($_) } $lei->url_folder_cache->keys; my %f = map { $_ => 1 } @m; - my $sto = $lei->_lei_store; - if (my $lms = $sto ? $sto->search->lms : undef) { + if (my $lms = $lei->lms) { @m = map { $match_cb->($_) } grep( m!\A(?:imaps?|nntps?|s?news)://!, $lms->folders); @f{@m} = @m;