diff options
author | Thomas Roessler <roessler@does-not-exist.org> | 1999-09-01 07:16:54 +0000 |
---|---|---|
committer | Thomas Roessler <roessler@does-not-exist.org> | 1999-09-01 07:16:54 +0000 |
commit | b62f5ae2a0fdfd0cc47b94e70f9614c78ea26535 (patch) | |
tree | 316af980d953b315b37ef372719b0960dde1519f /mx.c | |
parent | a76b0fafc65339bf17491fe59945bda6bfb6a028 (diff) |
When the user synchronizes a mail folder, do a thorough check.
Diffstat (limited to 'mx.c')
-rw-r--r-- | mx.c | 28 |
1 files changed, 26 insertions, 2 deletions
@@ -1140,15 +1140,39 @@ MESSAGE *mx_open_new_message (CONTEXT *dest, HEADER *hdr, int flags) } /* check for new mail */ -int mx_check_mailbox (CONTEXT *ctx, int *index_hint) +int mx_check_mailbox (CONTEXT *ctx, int *index_hint, int lock) { + int rc; + if (ctx) { + if (ctx->locked) lock = 0; + switch (ctx->magic) { case M_MBOX: case M_MMDF: - return (mbox_check_mailbox (ctx, index_hint)); + + if (lock) + { + mutt_block_signals (); + if (mbox_lock_mailbox (ctx, 0, 0) == -1) + { + mutt_unblock_signals (); + return M_LOCKED; + } + } + + rc = mbox_check_mailbox (ctx, index_hint); + + if (lock) + { + mutt_unblock_signals (); + mbox_unlock_mailbox (ctx); + } + + return rc; + case M_MH: case M_MAILDIR: |