Mail::IMAPClient doesn't seem to mind the lack of `resp-text';
but it's required by RFC 3501. Preliminary tests with
offlineimap(1) indicates the presence of `resp-text' is
necessary, even if it's just the freeform `text'.
And make the `text' more consistent, favoring "done" over
"complete" or "completed"; while we're at it.
sub cmd_logout ($$) {
my ($self, $tag) = @_;
delete $self->{logged_in};
sub cmd_logout ($$) {
my ($self, $tag) = @_;
delete $self->{logged_in};
- $self->write(\"* BYE logging out\r\n$tag OK logout completed\r\n");
+ $self->write(\"* BYE logging out\r\n$tag OK Logout done\r\n");
$self->shutdn; # PublicInbox::DS::shutdn
undef;
}
$self->shutdn; # PublicInbox::DS::shutdn
undef;
}
sub cmd_capability ($$) {
my ($self, $tag) = @_;
sub cmd_capability ($$) {
my ($self, $tag) = @_;
- '* '.capa($self)."\r\n$tag OK\r\n";
+ '* '.capa($self)."\r\n$tag OK Capability done\r\n";
-sub cmd_noop ($$) { "$_[1] OK NOOP completed\r\n" }
+sub cmd_noop ($$) { "$_[1] OK Noop done\r\n" }
# called by PublicInbox::InboxIdle
sub on_inbox_unlock {
# called by PublicInbox::InboxIdle
sub on_inbox_unlock {
return "$tag BAD internal bug\r\n";
};
$ibx->unsubscribe_unlock(fileno($self->{sock}));
return "$tag BAD internal bug\r\n";
};
$ibx->unsubscribe_unlock(fileno($self->{sock}));
- "$idle_tag OK Idle completed\r\n";
+ "$idle_tag OK Idle done\r\n";
}
sub cmd_examine ($$$) {
}
sub cmd_examine ($$$) {
$ret .= "* OK [UNSEEN $max]\r\n" if $max;
$ret .= "* OK [UIDNEXT $uidnext]\r\n" if defined $uidnext;
$ret .= "* OK [UIDVALIDITY $uidvalidity]\r\n" if defined $uidvalidity;
$ret .= "* OK [UNSEEN $max]\r\n" if $max;
$ret .= "* OK [UIDNEXT $uidnext]\r\n" if defined $uidnext;
$ret .= "* OK [UIDVALIDITY $uidvalidity]\r\n" if defined $uidvalidity;
- $ret .= "$tag OK [READ-ONLY] EXAMINE/SELECT complete\r\n";
+ $ret .= "$tag OK [READ-ONLY] EXAMINE/SELECT done\r\n";
}
return "$tag BAD no items\r\n" if !@it;
"* STATUS $mailbox (".join(' ', @it).")\r\n" .
}
return "$tag BAD no items\r\n" if !@it;
"* STATUS $mailbox (".join(' ', @it).")\r\n" .
- "$tag OK Status complete\r\n";
+ "$tag OK Status done\r\n";
}
my %patmap = ('*' => '.*', '%' => '[^\.]*');
}
my %patmap = ('*' => '.*', '%' => '[^\.]*');
$wildcard =~ s!([^a-z0-9_])!$patmap{$1} // "\Q$1"!eig;
$l = [ grep(/ \Q$refname\E$wildcard\r\n\z/s, @$l) ];
}
$wildcard =~ s!([^a-z0-9_])!$patmap{$1} // "\Q$1"!eig;
$l = [ grep(/ \Q$refname\E$wildcard\r\n\z/s, @$l) ];
}
- \(join('', @$l, "$tag OK List complete\r\n"));
+ \(join('', @$l, "$tag OK List done\r\n"));
}
sub eml_index_offs_i { # PublicInbox::Eml::each_part callback
}
sub eml_index_offs_i { # PublicInbox::Eml::each_part callback
} elsif ($range =~ /\A([0-9]+):\*\z/s) {
($beg, $end) = ($1, $ibx->mm->max // 0);
} elsif ($range =~ /\A[0-9]+\z/) {
} elsif ($range =~ /\A([0-9]+):\*\z/s) {
($beg, $end) = ($1, $ibx->mm->max // 0);
} elsif ($range =~ /\A[0-9]+\z/) {
- my $smsg = $ibx->over->get_art($range) or return "$tag OK\r\n";
+ my $smsg = $ibx->over->get_art($range) or
+ return "$tag OK Fetch done\r\n"; # really OK(!)
push @$msgs, $smsg;
($beg, $end) = ($range, 0);
} else {
push @$msgs, $smsg;
($beg, $end) = ($range, 0);
} else {
+ return "$tag BAD fetch range\r\n";
}
long_response($self, \&uid_fetch_m, $tag, $ibx,
\$beg, $end, $msgs, \%want);
}
long_response($self, \&uid_fetch_m, $tag, $ibx,
\$beg, $end, $msgs, \%want);
if (scalar(@$uids)) {
$self->msg_more(join(' ', '', @$uids));
} else {
if (scalar(@$uids)) {
$self->msg_more(join(' ', '', @$uids));
} else {
- $self->write(\"\r\n$tag OK\r\n");
+ $self->write(\"\r\n$tag OK Search done\r\n");
if (@$uids) {
$self->msg_more(join('', map { " $_->[0]" } @$uids));
} else {
if (@$uids) {
$self->msg_more(join('', map { " $_->[0]" } @$uids));
} else {
- $self->write(\"\r\n$tag OK\r\n");
+ $self->write(\"\r\n$tag OK Search done\r\n");
} elsif ($rest[0] =~ /\A[0-9]+\z/s) {
my $uid = $rest[0];
$uid = $ibx->over->get_art($uid) ? " $uid" : '';
} elsif ($rest[0] =~ /\A[0-9]+\z/s) {
my $uid = $rest[0];
$uid = $ibx->over->get_art($uid) ? " $uid" : '';
- "* SEARCH$uid\r\n$tag OK\r\n";
+ "* SEARCH$uid\r\n$tag OK Search done\r\n";