- my $ops = { '' => [ \&import_done, $lei ] };
- $lei->{auth}->op_merge($ops, $self) if $lei->{auth};
- $self->{-wq_nr_workers} = $j // 1; # locked
- my $op = $lei->workers_start($self, 'lei_import', undef, $ops);
- $lei->{imp} = $self;
- $self->wq_io_do('input_stdin', []) if $self->{0};
- net_merge_complete($self) unless $lei->{auth};
- while ($op && $op->{sock}) { $op->event_step }
+ ($lei->{opt}->{'new-only'} && (!$net || !$net->{imap_order})) and
+ warn "# --new-only is only for IMAP\n";
+ my $ops = {};
+ $lei->{auth}->op_merge($ops, $self, $lei) if $lei->{auth};
+ $lei->{-eml_noisy} = 1;
+ (my $op_c, $ops) = $lei->workers_start($self, $j, $ops);
+ $lei->{wq1} = $self;
+ $lei->{-err_type} = 'non-fatal';
+ net_merge_all_done($self) unless $lei->{auth};
+ $lei->wait_wq_events($op_c, $ops);
+}
+
+sub lei_import { # the main "lei import" method
+ my ($lei, @inputs) = @_;
+ my $self = bless {}, __PACKAGE__;
+ do_import_index($self, $lei, @inputs);
+}
+
+sub _complete_import {
+ my ($lei, @argv) = @_;
+ my ($re, $cur, $match_cb) = $lei->complete_url_prepare(\@argv);
+ my @k = $lei->url_folder_cache->keys($argv[-1] // undef, 1);
+ my @m = map { $match_cb->($_) } @k;
+ my %f = map { $_ => 1 } (@m ? @m : @k);
+ if (my $lms = $lei->lms) {
+ @k = $lms->folders($argv[-1] // undef, 1);
+ @m = map { $match_cb->($_) } @k;
+ if (@m) { @f{@m} = @m } else { @f{@k} = @k }
+ }
+ keys %f;