# 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);
 

Reply via email to