commit 5075a24cf228521983cde22154b445660621a8de
Author: Oswald Buddenhagen <[email protected]>
Date: Sun Dec 29 12:34:36 2019 +0100
set sync record's flags only after propagating new message
this is semantically cleaner, and fixes storing the flags in the rare
case that flags are not being synced and the target is not being
expunged, as in this case flags are queried only during the actual
propagation.
src/sync.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/sync.c b/src/sync.c
index 5aca960..7a8ae69 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -1619,11 +1619,6 @@ box_loaded( int sts, message_t *msgs, int total_msgs,
int recent_msgs, void *aux
debug( " -> pair(%u,%u)
created\n", srec->uid[M], srec->uid[S] );
}
if ((tmsg->flags & F_FLAGGED) ||
tmsg->size <= svars->chan->stores[t]->max_size) {
- if (tmsg->flags != srec->flags)
{
- srec->flags =
tmsg->flags;
- jFprintf( svars, "* %u
%u %u\n", srec->uid[M], srec->uid[S], srec->flags );
- debug( " -> updated
flags to %u\n", tmsg->flags );
- }
if (srec->status != S_PENDING) {
debug( " -> not too
big any more\n" );
srec->status =
S_PENDING;
@@ -1849,6 +1844,11 @@ msg_copied( int sts, uint uid, copy_vars_t *vars )
sync_rec_t *srec = vars->srec;
switch (sts) {
case SYNC_OK:
+ if (vars->msg->flags != srec->flags) {
+ srec->flags = vars->msg->flags;
+ debug( " -> updated flags to %u\n", srec->flags );
+ jFprintf( svars, "* %u %u %u\n", srec->uid[M],
srec->uid[S], srec->flags );
+ }
if (!uid) { // Stored to a non-UIDPLUS mailbox
svars->state[t] |= ST_FIND_NEW;
} else {
_______________________________________________
isync-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/isync-devel