diff options
-rw-r--r-- | imap/imap.c | 3 | ||||
-rw-r--r-- | imap/imap.h | 1 | ||||
-rw-r--r-- | mbox.c | 4 | ||||
-rw-r--r-- | mh.c | 9 | ||||
-rw-r--r-- | mutt.h | 2 | ||||
-rw-r--r-- | mx.c | 33 | ||||
-rw-r--r-- | mx.h | 3 | ||||
-rw-r--r-- | pop.c | 3 | ||||
-rw-r--r-- | pop.h | 1 |
9 files changed, 26 insertions, 33 deletions
diff --git a/imap/imap.c b/imap/imap.c index d565ad8d..c334c441 100644 --- a/imap/imap.c +++ b/imap/imap.c @@ -1464,7 +1464,7 @@ int imap_check_mailbox (CONTEXT *ctx, int *index_hint, int force) return result; } -int imap_check_mailbox_reopen (CONTEXT *ctx, int *index_hint) +static int imap_check_mailbox_reopen (CONTEXT *ctx, int *index_hint) { int rc; @@ -2067,4 +2067,5 @@ struct mx_ops mx_imap_ops = { .open = imap_open_mailbox, .close = imap_close_mailbox, .open_new_msg = imap_open_new_message, + .check = imap_check_mailbox_reopen, }; diff --git a/imap/imap.h b/imap/imap.h index 1defdd47..132ae2b9 100644 --- a/imap/imap.h +++ b/imap/imap.h @@ -34,7 +34,6 @@ typedef struct /* imap.c */ int imap_access (const char*, int); int imap_check_mailbox (CONTEXT *ctx, int *index_hint, int force); -int imap_check_mailbox_reopen (CONTEXT *ctx, int *index_hint); int imap_delete_mailbox (CONTEXT* idata, IMAP_MBOX mx); int imap_open_mailbox_append (CONTEXT *ctx); int imap_sync_mailbox (CONTEXT *ctx, int expunge, int *index_hint); @@ -577,7 +577,7 @@ int mbox_strict_cmp_headers (const HEADER *h1, const HEADER *h2) * 0 no change * -1 error */ -int mbox_check_mailbox (CONTEXT *ctx, int *index_hint) +static int mbox_check_mailbox (CONTEXT *ctx, int *index_hint) { struct stat st; char buffer[LONG_STRING]; @@ -1273,10 +1273,12 @@ struct mx_ops mx_mbox_ops = { .open = mbox_open_mailbox, .close = mbox_close_mailbox, .open_new_msg = mbox_open_new_message, + .check = mbox_check_mailbox, }; struct mx_ops mx_mmdf_ops = { .open = mbox_open_mailbox, .close = mbox_close_mailbox, .open_new_msg = mbox_open_new_message, + .check = mbox_check_mailbox, }; @@ -58,6 +58,9 @@ #define INS_SORT_THRESHOLD 6 +static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint); +static int mh_check_mailbox (CONTEXT * ctx, int *index_hint); + struct maildir { HEADER *h; @@ -1905,7 +1908,7 @@ static void maildir_update_flags (CONTEXT *ctx, HEADER *o, HEADER *n) * either subdirectory differently, as mail could be copied directly into * the cur directory from another agent. */ -int maildir_check_mailbox (CONTEXT * ctx, int *index_hint) +static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint) { struct stat st_new; /* status of the "new" subdirectory */ struct stat st_cur; /* status of the "cur" subdirectory */ @@ -2051,7 +2054,7 @@ int maildir_check_mailbox (CONTEXT * ctx, int *index_hint) * */ -int mh_check_mailbox (CONTEXT * ctx, int *index_hint) +static int mh_check_mailbox (CONTEXT * ctx, int *index_hint) { char buf[_POSIX_PATH_MAX]; struct stat st, st_cur; @@ -2362,10 +2365,12 @@ struct mx_ops mx_maildir_ops = { .open = maildir_open_mailbox, .close = mh_close_mailbox, .open_new_msg = maildir_open_new_message, + .check = maildir_check_mailbox, }; struct mx_ops mx_mh_ops = { .open = mh_open_mailbox, .close = mh_close_mailbox, .open_new_msg = mh_open_new_message, + .check = mh_check_mailbox, }; @@ -876,6 +876,7 @@ struct _message; * The following operations are mandatory: * - open * - close + * - check * * Optional operations * - open_new_msg @@ -884,6 +885,7 @@ struct mx_ops { int (*open)(struct _context *); int (*close)(struct _context *); + int (*check) (struct _context *ctx, int *index_hint); int (*open_new_msg) (struct _message *, struct _context *, HEADER *); }; @@ -1264,32 +1264,19 @@ MESSAGE *mx_open_new_message (CONTEXT *dest, HEADER *hdr, int flags) /* check for new mail */ int mx_check_mailbox (CONTEXT *ctx, int *index_hint) { - if (ctx) - { - switch (ctx->magic) - { - case MUTT_MBOX: - case MUTT_MMDF: - return mbox_check_mailbox (ctx, index_hint); - case MUTT_MH: - return (mh_check_mailbox (ctx, index_hint)); - case MUTT_MAILDIR: - return (maildir_check_mailbox (ctx, index_hint)); + struct mx_ops *ops; -#ifdef USE_IMAP - case MUTT_IMAP: - return imap_check_mailbox_reopen (ctx, index_hint); -#endif /* USE_IMAP */ - -#ifdef USE_POP - case MUTT_POP: - return (pop_check_mailbox (ctx, index_hint)); -#endif /* USE_POP */ - } + if (!ctx) + { + dprint (1, (debugfile, "mx_check_mailbox: null or invalid context.\n")); + return -1; } - dprint (1, (debugfile, "mx_check_mailbox: null or invalid context.\n")); - return (-1); + ops = mx_get_ops (ctx->magic); + if (!ops) + return -1; + + return ops->check (ctx, index_hint); } /* return a stream pointer for a message */ @@ -44,7 +44,6 @@ WHERE short DefaultMagic INITVAL (MUTT_MBOX); #define MAXLOCKATTEMPT 5 int mbox_sync_mailbox (CONTEXT *, int *); -int mbox_check_mailbox (CONTEXT *, int *); int mbox_lock_mailbox (CONTEXT *, int, int); int mbox_parse_mailbox (CONTEXT *); int mmdf_parse_mailbox (CONTEXT *); @@ -53,10 +52,8 @@ int mbox_check_empty (const char *); void mbox_reset_atime (CONTEXT *, struct stat *); int mh_sync_mailbox (CONTEXT *, int *); -int mh_check_mailbox (CONTEXT *, int *); int mh_check_empty (const char *); -int maildir_check_mailbox (CONTEXT *, int *); int maildir_check_empty (const char *); int maildir_commit_message (CONTEXT *, MESSAGE *, HEADER *); @@ -735,7 +735,7 @@ int pop_sync_mailbox (CONTEXT *ctx, int *index_hint) } /* Check for new messages and fetch headers */ -int pop_check_mailbox (CONTEXT *ctx, int *index_hint) +static int pop_check_mailbox (CONTEXT *ctx, int *index_hint) { int ret; POP_DATA *pop_data = (POP_DATA *)ctx->data; @@ -931,4 +931,5 @@ fail: struct mx_ops mx_pop_ops = { .open = pop_open_mailbox, .close = pop_close_mailbox, + .check = pop_check_mailbox, }; @@ -105,7 +105,6 @@ void pop_logout (CONTEXT *); void pop_error (POP_DATA *, char *); /* pop.c */ -int pop_check_mailbox (CONTEXT *, int *); int pop_sync_mailbox (CONTEXT *, int *); int pop_fetch_message (MESSAGE *, CONTEXT *, int); int pop_close_mailbox (CONTEXT *); |