is still running, wait until the command is finished.
--HG--
branch : HEAD
enum command_flags flags;
bool broken_client = FALSE;
- if ((cmd->cmd_flags & COMMAND_FLAG_USES_SEQS) != 0) {
+ if ((cmd->cmd_flags & COMMAND_FLAG_BREAKS_MAILBOX) ==
+ COMMAND_FLAG_BREAKS_MAILBOX) {
+ /* there must be no other command running that uses the
+ selected mailbox */
+ flags = COMMAND_FLAG_USES_MAILBOX;
+ } else if ((cmd->cmd_flags & COMMAND_FLAG_USES_SEQS) != 0) {
/* no existing command must be breaking sequences */
flags = COMMAND_FLAG_BREAKS_SEQS;
broken_client = TRUE;
/* Command may reply with EXPUNGE, causing sequences to break */
COMMAND_FLAG_BREAKS_SEQS = 0x02,
/* Command changes the mailbox */
- COMMAND_FLAG_BREAKS_MAILBOX = 0x04 | COMMAND_FLAG_BREAKS_SEQS
+ COMMAND_FLAG_BREAKS_MAILBOX = 0x04 | COMMAND_FLAG_BREAKS_SEQS,
+
+ /* Command uses selected mailbox */
+ COMMAND_FLAG_USES_MAILBOX = COMMAND_FLAG_BREAKS_MAILBOX |
+ COMMAND_FLAG_USES_SEQS
};
struct command {