Lines Matching defs:changes
455 struct index_list_changes *changes)
462 mail_index_lookup_ext(list_view, changes->seq,
469 mail_index_lookup_uid(box->view, 1, &changes->first_uid);
473 changes->first_saved_changed = box->update_first_saved;
475 changes->first_saved_changed =
476 changes->first_uid != first_saved.uid;
482 struct index_list_changes *changes)
491 (void)mailbox_list_index_status(box->list, list_view, changes->seq,
495 changes->rec_changed =
496 old_status.uidvalidity != changes->status.uidvalidity &&
497 changes->status.uidvalidity != 0;
498 if (!guid_128_equals(changes->guid, old_guid) &&
499 !guid_128_is_empty(changes->guid))
500 changes->rec_changed = TRUE;
503 /* check only UIDVALIDITY and GUID changes for INBOX */
504 return changes->rec_changed;
507 changes->msgs_changed =
508 old_status.messages != changes->status.messages ||
509 old_status.unseen != changes->status.unseen ||
510 old_status.recent != changes->status.recent ||
511 old_status.uidnext != changes->status.uidnext;
513 if (old_status.highest_modseq == changes->status.highest_modseq) {
514 changes->hmodseq_changed = FALSE;
516 changes->hmodseq_changed = TRUE;
518 if (memcmp(&old_vsize, &changes->vsize, sizeof(old_vsize)) != 0)
519 changes->vsize_changed = TRUE;
520 index_list_first_saved_update_changes(box, list_view, changes);
522 return changes->rec_changed || changes->msgs_changed ||
523 changes->hmodseq_changed || changes->vsize_changed ||
524 changes->first_saved_changed;
530 const struct index_list_changes *changes)
543 if (changes->first_uid != 0) {
563 mail_index_update_ext(list_trans, changes->seq,
573 const struct index_list_changes *changes)
577 if (changes->rec_changed) {
582 mail_index_lookup_ext(list_view, changes->seq, ilist->ext_id,
587 if (changes->status.uidvalidity != 0)
588 rec.uid_validity = changes->status.uidvalidity;
589 if (!guid_128_is_empty(changes->guid))
590 memcpy(rec.guid, changes->guid, sizeof(rec.guid));
591 mail_index_update_ext(list_trans, changes->seq, ilist->ext_id,
595 if (changes->msgs_changed) {
599 msgs.messages = changes->status.messages;
600 msgs.unseen = changes->status.unseen;
601 msgs.recent = changes->status.recent;
602 msgs.uidnext = changes->status.uidnext;
604 mail_index_update_ext(list_trans, changes->seq,
607 if (changes->hmodseq_changed) {
608 mail_index_update_ext(list_trans, changes->seq,
610 &changes->status.highest_modseq, NULL);
612 if (changes->vsize_changed) {
613 mail_index_update_ext(list_trans, changes->seq,
615 &changes->vsize, NULL);
617 if (changes->first_saved_changed)
618 index_list_update_first_saved(box, list_trans, changes);
627 struct index_list_changes changes;
645 /* first do a quick check while unlocked to see if anything changes */
647 if (!index_list_update_fill_changes(box, list_view, &changes))
649 else if (index_list_has_changed(box, list_view, &changes))
664 /* looks like there are some changes. now lock the list index and do
679 if (!index_list_update_fill_changes(box, list_view, &changes))
683 if (index_list_has_changed(box, list_view, &changes))
684 index_list_update(box, list_view, list_trans, &changes);
688 changes.seq);
708 struct index_list_changes changes;
714 i_zero(&changes);
716 changes. */
717 if ((ret = index_list_open_view(box, FALSE, &list_view, &changes.seq)) <= 0)
721 (void)mailbox_list_index_status(box->list, list_view, changes.seq,
726 changes.rec_changed = TRUE;
727 changes.status.uidvalidity = update->uid_validity;
731 changes.rec_changed = TRUE;
732 memcpy(changes.guid, update->mailbox_guid, sizeof(changes.guid));
742 changes.msgs_changed = TRUE;
743 changes.hmodseq_changed = TRUE;
747 index_list_update(box, list_view, list_trans, &changes);
795 /* check all changes here, because e.g. vsize update is _OTHERS */