if (rc != IMAP_CMD_OK)
{
- if (flags & IMAP_CMD_FAIL_OK)
+ if (flags & IMAP_CMD_FAIL_OK && idata->status != IMAP_FATAL)
return -2;
dprint (1, (debugfile, "imap_exec: command failed: %s\n", idata->buf));
char buf[LONG_STRING];
char mailbox[LONG_STRING];
char mbox[LONG_STRING];
+ int rc;
if (imap_parse_path (path, &mx))
return -1;
return -1;
}
- if (imap_exec (idata, buf, IMAP_CMD_FAIL_OK) < 0)
+ if ((rc = imap_exec (idata, buf, IMAP_CMD_FAIL_OK)) < 0)
{
dprint (1, (debugfile, "imap_access: Can't check STATUS of %s\n", mbox));
- return -1;
+ return rc;
}
return 0;
}
if (flags & M_IMAP_CONN_NOSELECT && idata && idata->state >= IMAP_SELECTED)
continue;
+ if (idata && idata->status == IMAP_FATAL)
+ continue;
break;
}
if (!conn)
char buf[LONG_STRING];
char mailbox[LONG_STRING];
IMAP_MBOX mx;
+ int rc;
if (imap_parse_path (ctx->path, &mx))
return -1;
FREE (&mx.mbox);
/* really we should also check for W_OK */
- if (!imap_access (ctx->path, F_OK))
+ if ((rc = imap_access (ctx->path, F_OK)) == 0)
return 0;
+ if (rc == -1)
+ return -1;
+
snprintf (buf, sizeof (buf), _("Create %s?"), mailbox);
if (option (OPTCONFIRMCREATE) && mutt_yesorno (buf, 1) < 1)
return -1;