]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiToMail.pm
lei up: automatically use dt: for remote externals
[public-inbox.git] / lib / PublicInbox / LeiToMail.pm
index dbf58df9a21a2fcef96adafba6931810f4f63f12..9f7171fb04bbc89110fa7d6eedde534c6419e426 100644 (file)
@@ -410,9 +410,9 @@ sub new {
                $lei->{net} = $net;
                $self->{base_type} = 'imap';
                $lei->{opt}->{save} //= \1 if $lei->{cmd} eq 'q';
-       } elsif ($fmt eq 'text') {
+       } elsif ($fmt eq 'text' || $fmt eq 'reply') {
                require PublicInbox::LeiViewText;
-               $lei->{lvt} = PublicInbox::LeiViewText->new($lei);
+               $lei->{lvt} = PublicInbox::LeiViewText->new($lei, $fmt);
                $self->{base_type} = 'text';
                @conflict = qw(mua save);
        } elsif ($fmt eq 'v2') {
@@ -437,7 +437,9 @@ sub new {
                        ($lei->{opt}->{save} ? 'LeiSavedSearch' : 'LeiDedupe');
                eval "require $dd_cls";
                die "$dd_cls: $@" if $@;
-               $dd_cls->new($lei);
+               my $dd = $dd_cls->new($lei);
+               $lei->{lss} //= $dd if $dd && $dd->can('cfg_set');
+               $dd;
        };
        $self;
 }
@@ -458,8 +460,10 @@ sub _pre_augment_maildir {
 
 sub clobber_dst_prepare ($;$) {
        my ($lei, $f) = @_;
-       my $wait = (defined($f) && $lei->{sto}) ?
-                       $lei->{sto}->ipc_do('lms_forget_folders', $f) : undef;
+       if (my $lms = defined($f) ? $lei->lms : undef) {
+               $lms->lms_write_prepare;
+               $lms->forget_folders($f);
+       }
        my $dedupe = $lei->{dedupe} or return;
        $dedupe->reset_dedupe if $dedupe->can('reset_dedupe');
 }