# HG changeset patch
# User Damien Riegel <[email protected]>
# Date 1465339300 14400
# Tue Jun 07 18:41:40 2016 -0400
# Node ID 9eebf8f22c4d6e1109e84aec5b528219cfa96051
# Parent 9556f8bbb5a9628083c9e938b7ccde46a380a801
add commit_msg to struct mx_ops
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d imap/imap.c
--- a/imap/imap.c Tue Jun 07 18:34:14 2016 -0400
+++ b/imap/imap.c Tue Jun 07 18:41:40 2016 -0400
@@ -2072,6 +2072,7 @@
.close = imap_close_mailbox,
.open_msg = imap_fetch_message,
.close_msg = imap_close_message,
+ .commit_msg = imap_commit_message,
.open_new_msg = imap_open_new_message,
.check = imap_check_mailbox_reopen,
};
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d imap/imap.h
--- a/imap/imap.h Tue Jun 07 18:34:14 2016 -0400
+++ b/imap/imap.h Tue Jun 07 18:41:40 2016 -0400
@@ -58,7 +58,6 @@
/* message.c */
int imap_append_message (CONTEXT* ctx, MESSAGE* msg);
int imap_copy_messages (CONTEXT* ctx, HEADER* h, char* dest, int delete);
-int imap_commit_message (CONTEXT *ctx, MESSAGE *msg);
/* socket.c */
void imap_logout_all (void);
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d imap/imap_private.h
--- a/imap/imap_private.h Tue Jun 07 18:34:14 2016 -0400
+++ b/imap/imap_private.h Tue Jun 07 18:41:40 2016 -0400
@@ -270,6 +270,7 @@
int imap_fetch_message (CONTEXT *ctx, MESSAGE *msg, int msgno);
int imap_close_message (CONTEXT *ctx, MESSAGE *msg);
+int imap_commit_message (CONTEXT *ctx, MESSAGE *msg);
/* util.c */
#ifdef USE_HCACHE
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d mbox.c
--- a/mbox.c Tue Jun 07 18:34:14 2016 -0400
+++ b/mbox.c Tue Jun 07 18:41:40 2016 -0400
@@ -465,7 +465,7 @@
return 0;
}
-int mbox_commit_message (CONTEXT *ctx, MESSAGE *msg)
+static int mbox_commit_message (CONTEXT *ctx, MESSAGE *msg)
{
int r = fputc ('\n', msg->fp);
@@ -475,7 +475,7 @@
return 0;
}
-int mmdf_commit_message (CONTEXT *ctx, MESSAGE *msg)
+static int mmdf_commit_message (CONTEXT *ctx, MESSAGE *msg)
{
int r = fputs (MMDF_SEP, msg->fp);
@@ -1314,6 +1314,7 @@
.close = mbox_close_mailbox,
.open_msg = mbox_open_message,
.close_msg = mbox_close_message,
+ .commit_msg = mbox_commit_message,
.open_new_msg = mbox_open_new_message,
.check = mbox_check_mailbox,
};
@@ -1323,6 +1324,7 @@
.close = mbox_close_mailbox,
.open_msg = mbox_open_message,
.close_msg = mbox_close_message,
+ .commit_msg = mmdf_commit_message,
.open_new_msg = mbox_open_new_message,
.check = mbox_check_mailbox,
};
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d mh.c
--- a/mh.c Tue Jun 07 18:34:14 2016 -0400
+++ b/mh.c Tue Jun 07 18:41:40 2016 -0400
@@ -1525,7 +1525,7 @@
}
}
-int maildir_commit_message (CONTEXT * ctx, MESSAGE * msg)
+static int maildir_commit_message (CONTEXT * ctx, MESSAGE * msg)
{
return _maildir_commit_message (ctx, msg, NULL);
}
@@ -1611,7 +1611,7 @@
return 0;
}
-int mh_commit_message (CONTEXT * ctx, MESSAGE * msg)
+static int mh_commit_message (CONTEXT * ctx, MESSAGE * msg)
{
return _mh_commit_message (ctx, msg, NULL, 1);
}
@@ -2442,6 +2442,7 @@
.close = mh_close_mailbox,
.open_msg = maildir_open_message,
.close_msg = mh_close_message,
+ .commit_msg = maildir_commit_message,
.open_new_msg = maildir_open_new_message,
.check = maildir_check_mailbox,
};
@@ -2451,6 +2452,7 @@
.close = mh_close_mailbox,
.open_msg = mh_open_message,
.close_msg = mh_close_message,
+ .commit_msg = mh_commit_message,
.open_new_msg = mh_open_new_message,
.check = mh_check_mailbox,
};
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d mutt.h
--- a/mutt.h Tue Jun 07 18:34:14 2016 -0400
+++ b/mutt.h Tue Jun 07 18:41:40 2016 -0400
@@ -895,6 +895,7 @@
int (*check) (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 *);
int (*open_new_msg) (struct _message *, struct _context *, HEADER *);
};
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d mx.c
--- a/mx.c Tue Jun 07 18:34:14 2016 -0400
+++ b/mx.c Tue Jun 07 18:41:40 2016 -0400
@@ -1332,8 +1332,12 @@
int mx_commit_message (MESSAGE *msg, CONTEXT *ctx)
{
+ struct mx_ops *ops = mx_get_ops (ctx->magic);
int r = 0;
+ if (!ops || !ops->commit_msg)
+ return -1;
+
if (!(msg->write && ctx->append))
{
dprint (1, (debugfile, "mx_commit_message(): msg->write = %d, ctx->append
= %d\n",
@@ -1341,39 +1345,7 @@
return -1;
}
- switch (ctx->magic)
- {
- case MUTT_MMDF:
- {
- r = mmdf_commit_message (ctx, msg);
- }
-
- case MUTT_MBOX:
- {
- r = mbox_commit_message (ctx, msg);
- break;
- }
-
-#ifdef USE_IMAP
- case MUTT_IMAP:
- {
- r = imap_commit_message (ctx, msg);
- break;
- }
-#endif
-
- case MUTT_MAILDIR:
- {
- r = maildir_commit_message (ctx, msg);
- break;
- }
-
- case MUTT_MH:
- {
- r = mh_commit_message (ctx, msg);
- break;
- }
- }
+ r = ops->commit_msg (ctx, msg);
if (r == 0 && (ctx->magic == MUTT_MBOX || ctx->magic == MUTT_MMDF)
&& (fflush (msg->fp) == EOF || fsync (fileno (msg->fp)) == -1))
diff -r 9556f8bbb5a9 -r 9eebf8f22c4d mx.h
--- a/mx.h Tue Jun 07 18:34:14 2016 -0400
+++ b/mx.h Tue Jun 07 18:41:40 2016 -0400
@@ -51,8 +51,6 @@
void mbox_unlock_mailbox (CONTEXT *);
int mbox_check_empty (const char *);
void mbox_reset_atime (CONTEXT *, struct stat *);
-int mbox_commit_message (CONTEXT *ctx, MESSAGE *msg);
-int mmdf_commit_message (CONTEXT *ctx, MESSAGE *msg);
int mh_sync_mailbox (CONTEXT *, int *);
#ifdef USE_SIDEBAR
@@ -62,9 +60,6 @@
int maildir_check_empty (const char *);
-int maildir_commit_message (CONTEXT *, MESSAGE *);
-int mh_commit_message (CONTEXT *, MESSAGE *);
-
FILE *maildir_open_find_message (const char *, const char *);
int mbox_strict_cmp_headers (const HEADER *, const HEADER *);