sub export_kw_md { # LeiMailSync->each_src callback
my ($oidbin, $id, $self, $mdir) = @_;
- my $oidhex = unpack('H*', $oidbin);
- my $sto_kw = $self->{lse}->oid_keywords($oidhex) or return;
+ my $sto_kw = $self->{lse}->oidbin_keywords($oidbin) or return;
my $bn = $$id;
my ($md_kw, $unknown, @try);
if ($bn =~ s/:2,([a-zA-Z]*)\z//) {
# both tries failed
my $e = $!;
my $orig = '['.join('|', @fail).']';
+ my $oidhex = unpack('H*', $oidbin);
$lei->child_error(1, "link($orig, $dst) ($oidhex): $e");
}
sub export_kw_imap { # LeiMailSync->each_src callback
my ($oidbin, $id, $self, $mic) = @_;
- my $oidhex = unpack('H*', $oidbin);
- my $sto_kw = $self->{lse}->oid_keywords($oidhex) or return;
+ my $sto_kw = $self->{lse}->oidbin_keywords($oidbin) or return;
$self->{imap_mod_kw}->($self->{nwr}, $mic, $id, [ keys %$sto_kw ]);
}
lei mail_sync uninitialized, see lei-import(1)
EOM
my $opt = $lei->{opt};
- my $all = $opt->{all};
- if (defined $all) { # --all=<local|remote>
- my %x = map { $_ => $_ } split(/,/, $all);
- my @ok = grep(defined, delete(@x{qw(local remote), ''}));
- my @no = keys %x;
- if (@no) {
- @no = (join(',', @no));
- return $lei->fail(<<EOM);
---all=@no not accepted (must be `local' and/or `remote')
-EOM
- }
- my (%seen, @inc);
- my @all = $lms->folders;
- for my $ok (@ok) {
- if ($ok eq 'local') {
- @inc = grep(!m!\A[a-z0-9\+]+://!i, @all);
- } elsif ($ok eq 'remote') {
- @inc = grep(m!\A[a-z0-9\+]+://!i, @all);
- } elsif ($ok ne '') {
- return $lei->fail("--all=$all not understood");
- } else {
- @inc = @all;
- }
- for (@inc) {
- push(@folders, $_) unless $seen{$_}++;
- }
- }
- return $lei->fail(<<EOM) if !@folders;
-no --mail-sync folders known to lei
-EOM
+ if (defined(my $all = $opt->{all})) { # --all=<local|remote>
+ $lms->group2folders($lei, $all, \@folders) or return;
} else {
my $err = $lms->arg2folder($lei, \@folders);
$lei->qerr(@{$err->{qerr}}) if $err->{qerr};
$lei->{wq1} = $self;
$lei->{-err_type} = 'non-fatal';
net_merge_all_done($self) unless $lei->{auth};
- $op_c->op_wait_event($ops); # calls net_merge_all_done if $lei->{auth}
+ $lei->wait_wq_events($op_c, $ops); # net_merge_all_done if !{auth}
}
sub _complete_export_kw {