uint32_t seq_shared, seq_pvt, seq_old_pvt, seq2, count_shared, uid;
unsigned int pc_idx = 0;
bool reset = FALSE, preserve_old_flags = FALSE, copy_shared_flags;
+ bool initial_index = FALSE;
int ret;
if (ctx->sync_ctx == NULL) {
preserve_old_flags = TRUE;
t_array_init(&keywords, 32);
}
+ } else if (hdr_pvt->uid_validity == 0 && hdr_pvt->next_uid <= 1) {
+ /* creating the initial index */
+ reset = TRUE;
+ initial_index = TRUE;
} else {
/* mailbox created/recreated */
reset = TRUE;
seq_shared = count_shared+1;
}
} else {
- mail_index_reset(ctx->trans_pvt);
+ if (!initial_index)
+ mail_index_reset(ctx->trans_pvt);
mail_index_update_header(ctx->trans_pvt,
offsetof(struct mail_index_header, uid_validity),
&hdr_shared->uid_validity,