isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit 4dc23fee7b7c1d2f8f58de5468e3a39059b57d9a
parent 9740e7e8524e74544471a927d56138f14f45a4db
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Mon, 26 Dec 2005 15:02:38 +0000

why would somebody manipulate an expired message? right, he wouldn't:
he would either expunge the mailbox or configure his MUA to hide trashed
messages. consequently don't sync expired message flags, let alone
interpret them in a special way.
one special feature remains, though: if a non-expunged expired message
is flagged on the master, it will be unexpired on the slave. i'm not
sure whether i should remove or document this feature.

Diffstat:
Msrc/sync.c | 11+++++------
1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/sync.c b/src/sync.c @@ -332,16 +332,15 @@ sync_old( int tops, store_t *sctx, store_t *tctx, store_conf_t *tconf, FILE *jfp unex = 0; if (srec->status & S_EXPIRED) { if (!pull) { - if (sflags & F_DELETED) { - if (!(sflags & F_FLAGGED)) - aflags &= ~F_DELETED; - } else - unex = 1; + if (aflags || dflags) + info( "Info: Flags of expired message changed in (%d,%d)\n", srec->muid, srec->suid ); + return SYNC_OK; } else { if ((sflags & F_FLAGGED) && !(sflags & F_DELETED)) { unex = 1; dflags |= F_DELETED; - } + } else + return SYNC_OK; } } rflags = (*nflags | aflags) & ~dflags;