# HG changeset patch
# User Damien Riegel <[email protected]>
# Date 1465341754 14400
# Tue Jun 07 19:22:34 2016 -0400
# Node ID 23250bdbc8f86304056327acb26719b8d4c376ab
# Parent 72e7b7125f7e7359e54ef73266a3d39b8d6e2ec2
add sync to struct mx_ops
diff -r 72e7b7125f7e -r 23250bdbc8f8 imap/imap.c
--- a/imap/imap.c Tue Jun 07 19:07:18 2016 -0400
+++ b/imap/imap.c Tue Jun 07 19:22:34 2016 -0400
@@ -1354,7 +1354,7 @@
return rc;
}
-int imap_sync_expunge_mailbox (CONTEXT* ctx, int* index_hint)
+static int imap_sync_expunge_mailbox (CONTEXT* ctx, int* index_hint)
{
/* sync with EXPUNGE */
return imap_sync_mailbox (ctx, 1, index_hint);
@@ -2076,6 +2076,7 @@
struct mx_ops mx_imap_ops = {
.open = imap_open_mailbox,
.close = imap_close_mailbox,
+ .sync = imap_sync_expunge_mailbox,
.open_msg = imap_fetch_message,
.close_msg = imap_close_message,
.commit_msg = imap_commit_message,
diff -r 72e7b7125f7e -r 23250bdbc8f8 imap/imap.h
--- a/imap/imap.h Tue Jun 07 19:07:18 2016 -0400
+++ b/imap/imap.h Tue Jun 07 19:22:34 2016 -0400
@@ -37,7 +37,6 @@
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);
-int imap_sync_expunge_mailbox (CONTEXT *ctx, int *index_hint);
int imap_close_mailbox (CONTEXT *ctx);
int imap_buffy_check (int force);
int imap_status (char *path, int queue);
diff -r 72e7b7125f7e -r 23250bdbc8f8 mbox.c
--- a/mbox.c Tue Jun 07 19:07:18 2016 -0400
+++ b/mbox.c Tue Jun 07 19:22:34 2016 -0400
@@ -768,7 +768,7 @@
* 0 success
* -1 failure
*/
-int mbox_sync_mailbox (CONTEXT *ctx, int *index_hint)
+static int mbox_sync_mailbox (CONTEXT *ctx, int *index_hint)
{
char tempfile[_POSIX_PATH_MAX];
char buf[32];
@@ -1320,6 +1320,7 @@
struct mx_ops mx_mbox_ops = {
.open = mbox_open_mailbox,
.close = mbox_close_mailbox,
+ .sync = mbox_sync_mailbox,
.open_msg = mbox_open_message,
.close_msg = mbox_close_message,
.commit_msg = mbox_commit_message,
@@ -1330,6 +1331,7 @@
struct mx_ops mx_mmdf_ops = {
.open = mbox_open_mailbox,
.close = mbox_close_mailbox,
+ .sync = mbox_sync_mailbox,
.open_msg = mbox_open_message,
.close_msg = mbox_close_message,
.commit_msg = mmdf_commit_message,
diff -r 72e7b7125f7e -r 23250bdbc8f8 mh.c
--- a/mh.c Tue Jun 07 19:07:18 2016 -0400
+++ b/mh.c Tue Jun 07 19:22:34 2016 -0400
@@ -2440,6 +2440,7 @@
struct mx_ops mx_maildir_ops = {
.open = maildir_open_mailbox,
.close = mh_close_mailbox,
+ .sync = mh_sync_mailbox,
.open_msg = maildir_open_message,
.close_msg = mh_close_message,
.commit_msg = maildir_commit_message,
@@ -2450,6 +2451,7 @@
struct mx_ops mx_mh_ops = {
.open = mh_open_mailbox,
.close = mh_close_mailbox,
+ .sync = mh_sync_mailbox,
.open_msg = mh_open_message,
.close_msg = mh_close_message,
.commit_msg = mh_commit_message,
diff -r 72e7b7125f7e -r 23250bdbc8f8 mutt.h
--- a/mutt.h Tue Jun 07 19:07:18 2016 -0400
+++ b/mutt.h Tue Jun 07 19:22:34 2016 -0400
@@ -893,6 +893,7 @@
int (*open)(struct _context *);
int (*close)(struct _context *);
int (*check) (struct _context *ctx, int *index_hint);
+ int (*sync) (struct _context *ctx, int *index_hint);
int (*open_msg) (struct _context *, struct _message *, int msgno);
int (*close_msg) (struct _context *, struct _message *);
int (*commit_msg) (struct _context *, struct _message *);
diff -r 72e7b7125f7e -r 23250bdbc8f8 mx.c
--- a/mx.c Tue Jun 07 19:07:18 2016 -0400
+++ b/mx.c Tue Jun 07 19:22:34 2016 -0400
@@ -756,35 +756,16 @@
/* save changes to disk */
static int sync_mailbox (CONTEXT *ctx, int *index_hint)
{
+ struct mx_ops *ops = mx_get_ops (ctx->magic);
int rc = -1;
if (!ctx->quiet)
mutt_message (_("Writing %s..."), ctx->path);
- switch (ctx->magic)
- {
- case MUTT_MBOX:
- case MUTT_MMDF:
- rc = mbox_sync_mailbox (ctx, index_hint);
- break;
-
- case MUTT_MH:
- case MUTT_MAILDIR:
- rc = mh_sync_mailbox (ctx, index_hint);
- break;
-
-#ifdef USE_IMAP
- case MUTT_IMAP:
- rc = imap_sync_expunge_mailbox (ctx, index_hint);
- break;
-#endif /* USE_IMAP */
+ if (!ops || !ops->sync)
+ return rc;
-#ifdef USE_POP
- case MUTT_POP:
- rc = pop_sync_mailbox (ctx, index_hint);
- break;
-#endif /* USE_POP */
- }
+ rc = ops->sync (ctx, index_hint);
return rc;
}
diff -r 72e7b7125f7e -r 23250bdbc8f8 mx.h
--- a/mx.h Tue Jun 07 19:07:18 2016 -0400
+++ b/mx.h Tue Jun 07 19:22:34 2016 -0400
@@ -44,7 +44,6 @@
#define MMDF_SEP "\001\001\001\001\n"
#define MAXLOCKATTEMPT 5
-int mbox_sync_mailbox (CONTEXT *, int *);
int mbox_lock_mailbox (CONTEXT *, int, int);
int mbox_parse_mailbox (CONTEXT *);
int mmdf_parse_mailbox (CONTEXT *);
@@ -52,10 +51,11 @@
int mbox_check_empty (const char *);
void mbox_reset_atime (CONTEXT *, struct stat *);
-int mh_sync_mailbox (CONTEXT *, int *);
#ifdef USE_SIDEBAR
void mh_buffy_update (BUFFY *mailbox);
#endif
+
+int mh_sync_mailbox (CONTEXT *, int *);
int mh_check_empty (const char *);
int maildir_check_empty (const char *);
diff -r 72e7b7125f7e -r 23250bdbc8f8 pop.c
--- a/pop.c Tue Jun 07 19:07:18 2016 -0400
+++ b/pop.c Tue Jun 07 19:22:34 2016 -0400
@@ -662,7 +662,7 @@
}
/* update POP mailbox - delete messages from server */
-int pop_sync_mailbox (CONTEXT *ctx, int *index_hint)
+static int pop_sync_mailbox (CONTEXT *ctx, int *index_hint)
{
int i, j, ret = 0;
char buf[LONG_STRING];
@@ -936,6 +936,7 @@
struct mx_ops mx_pop_ops = {
.open = pop_open_mailbox,
.close = pop_close_mailbox,
+ .sync = pop_sync_mailbox,
.open_msg = pop_fetch_message,
.close_msg = pop_close_message,
.check = pop_check_mailbox,
diff -r 72e7b7125f7e -r 23250bdbc8f8 pop.h
--- a/pop.h Tue Jun 07 19:07:18 2016 -0400
+++ b/pop.h Tue Jun 07 19:22:34 2016 -0400
@@ -105,7 +105,6 @@
void pop_error (POP_DATA *, char *);
/* pop.c */
-int pop_sync_mailbox (CONTEXT *, int *);
int pop_close_mailbox (CONTEXT *);
void pop_fetch_mail (void);