#include "mutt.h"
#include "mutt_curses.h"
#include "mx.h"
-#include "mailbox.h"
#include "globals.h"
#include "sort.h"
#include "browser.h"
if (mutt_bit_isset (idata->capabilities, ACL)) {
if (imap_check_acl (idata))
goto fail;
- if (!(mutt_bit_isset (idata->rights, IMAP_ACL_DELETE) ||
- mutt_bit_isset (idata->rights, IMAP_ACL_SEEN) ||
- mutt_bit_isset (idata->rights, IMAP_ACL_WRITE) ||
- mutt_bit_isset (idata->rights, IMAP_ACL_INSERT)))
+ if (!(mutt_bit_isset (idata->rights, ACL_DELETE) ||
+ mutt_bit_isset (idata->rights, ACL_SEEN) ||
+ mutt_bit_isset (idata->rights, ACL_WRITE) ||
+ mutt_bit_isset (idata->rights, ACL_INSERT)))
ctx->readonly = 1;
}
/* assume we have all rights if ACL is unavailable */
else {
- mutt_bit_set (idata->rights, IMAP_ACL_LOOKUP);
- mutt_bit_set (idata->rights, IMAP_ACL_READ);
- mutt_bit_set (idata->rights, IMAP_ACL_SEEN);
- mutt_bit_set (idata->rights, IMAP_ACL_WRITE);
- mutt_bit_set (idata->rights, IMAP_ACL_INSERT);
- mutt_bit_set (idata->rights, IMAP_ACL_POST);
- mutt_bit_set (idata->rights, IMAP_ACL_CREATE);
- mutt_bit_set (idata->rights, IMAP_ACL_DELETE);
+ mutt_bit_set (idata->rights, ACL_LOOKUP);
+ mutt_bit_set (idata->rights, ACL_READ);
+ mutt_bit_set (idata->rights, ACL_SEEN);
+ mutt_bit_set (idata->rights, ACL_WRITE);
+ mutt_bit_set (idata->rights, ACL_INSERT);
+ mutt_bit_set (idata->rights, ACL_POST);
+ mutt_bit_set (idata->rights, ACL_CREATE);
+ mutt_bit_set (idata->rights, ACL_DELETE);
}
ctx->hdrmax = count;
flags[0] = '\0';
- imap_set_flag (idata, IMAP_ACL_SEEN, hdr->read, "\\Seen ",
+ imap_set_flag (idata, ACL_SEEN, hdr->read, "\\Seen ",
flags, sizeof (flags));
- imap_set_flag (idata, IMAP_ACL_WRITE, hdr->flagged,
+ imap_set_flag (idata, ACL_WRITE, hdr->flagged,
"\\Flagged ", flags, sizeof (flags));
- imap_set_flag (idata, IMAP_ACL_WRITE, hdr->replied,
+ imap_set_flag (idata, ACL_WRITE, hdr->replied,
"\\Answered ", flags, sizeof (flags));
- imap_set_flag (idata, IMAP_ACL_DELETE, hdr->deleted,
+ imap_set_flag (idata, ACL_DELETE, hdr->deleted,
"\\Deleted ", flags, sizeof (flags));
/* now make sure we don't lose custom tags */
- if (mutt_bit_isset (idata->rights, IMAP_ACL_WRITE))
+ if (mutt_bit_isset (idata->rights, ACL_WRITE))
imap_add_keywords (flags, hdr, idata->flags, sizeof (flags));
mutt_remove_trailing_ws (flags);
* explicitly revoke all system flags (if we have permission) */
if (!*flags)
{
- imap_set_flag (idata, IMAP_ACL_SEEN, 1, "\\Seen ", flags, sizeof (flags));
- imap_set_flag (idata, IMAP_ACL_WRITE, 1, "\\Flagged ", flags, sizeof (flags));
- imap_set_flag (idata, IMAP_ACL_WRITE, 1, "\\Answered ", flags, sizeof (flags));
- imap_set_flag (idata, IMAP_ACL_DELETE, 1, "\\Deleted ", flags, sizeof (flags));
+ imap_set_flag (idata, ACL_SEEN, 1, "\\Seen ", flags, sizeof (flags));
+ imap_set_flag (idata, ACL_WRITE, 1, "\\Flagged ", flags, sizeof (flags));
+ imap_set_flag (idata, ACL_WRITE, 1, "\\Answered ", flags, sizeof (flags));
+ imap_set_flag (idata, ACL_DELETE, 1, "\\Deleted ", flags, sizeof (flags));
mutt_remove_trailing_ws (flags);
memset (&cmd, 0, sizeof (cmd));
/* if we are expunging anyway, we can do deleted messages very quickly... */
- if (expunge && mutt_bit_isset (idata->rights, IMAP_ACL_DELETE)) {
+ if (expunge && mutt_bit_isset (idata->rights, ACL_DELETE)) {
mutt_buffer_addstr (&cmd, "UID STORE ");
deleted = imap_make_msg_set (idata, &cmd, M_DELETE, 1);
/* We must send an EXPUNGE command if we're not closing. */
if (expunge && !(ctx->closing) &&
- mutt_bit_isset (idata->rights, IMAP_ACL_DELETE)) {
+ mutt_bit_isset (idata->rights, ACL_DELETE)) {
mutt_message _("Expunging messages from server...");
/* Set expunge bit so we don't get spurious reopened messages */
char mbox[LONG_STRING];
IMAP_MBOX mx;
- if (!mx_is_imap (path) || imap_parse_path (path, &mx)) {
+ if (mx_get_magic (path) == M_IMAP || imap_parse_path (path, &mx)) {
mutt_error (_("Bad mailbox name"));
return -1;
}
/* reconnect if connection was lost */
int imap_reconnect (CONTEXT * ctx)
{
- IMAP_DATA *imap_data = (IMAP_DATA *) ctx->data;
+ IMAP_DATA *imap_data;
+
+ if (!ctx)
+ return (-1);
+
+ imap_data = (IMAP_DATA *) ctx->data;
if (imap_data) {
if (imap_data->status == IMAP_CONNECTED)