Lines Matching defs:change

56 	struct dsync_mail_change change;
90 final_keyword_check(struct dsync_mail_change *change, const char *name,
98 changes = array_get(&change->keyword_changes, &count);
106 array_delete(&change->keyword_changes, i, 1);
112 array_delete(&change->keyword_changes, i, 1);
116 /* no change */
125 struct mail *mail, struct dsync_mail_change *change)
131 i_assert((change->add_flags & change->remove_flags) == 0);
133 change->modseq = mail_get_modseq(mail);
134 change->pvt_modseq = mail_get_pvt_modseq(mail);
135 change->final_flags = mail_get_flags(mail);
138 if (!array_is_created(&change->keyword_changes) &&
140 p_array_init(&change->keyword_changes, exporter->pool,
146 if (!final_keyword_check(change, keywords[i], &type)) {
150 array_append(&change->keyword_changes,
193 struct dsync_mail_change *change, *log_change;
197 change = hash_table_lookup(exporter->changes, POINTER_CAST(mail->uid));
198 if (change != NULL) {
199 i_assert(change->type == DSYNC_MAIL_CHANGE_TYPE_FLAG_CHANGE);
203 change = p_new(exporter->pool, struct dsync_mail_change, 1);
204 change->uid = mail->uid;
205 change->type = DSYNC_MAIL_CHANGE_TYPE_FLAG_CHANGE;
207 POINTER_CAST(mail->uid), change);
214 i_zero(change);
215 change->type = DSYNC_MAIL_CHANGE_TYPE_EXPUNGE;
216 change->uid = mail->uid;
222 change->guid = log_change->guid;
224 change->guid = *guid == '\0' ? "" :
226 change->hdr_hash = p_strdup(exporter->pool, hdr_hash);
227 search_update_flag_changes(exporter, mail, change);
235 struct dsync_mail_change *change;
237 change = hash_table_lookup(exporter->changes, POINTER_CAST(uid));
238 if (change == NULL) {
239 change = p_new(exporter->pool, struct dsync_mail_change, 1);
240 change->uid = uid;
241 hash_table_insert(exporter->changes, POINTER_CAST(uid), change);
245 i_assert(change->type == DSYNC_MAIL_CHANGE_TYPE_FLAG_CHANGE);
249 change->type = DSYNC_MAIL_CHANGE_TYPE_SAVE;
250 return change;
255 struct dsync_mail_change *change, uint32_t seq)
261 seq_range_array_add(&exporter->requested_uids, change->uid);
264 if (*change->guid == '\0') {
270 instances = hash_table_lookup(exporter->export_guids, change->guid);
276 p_strdup(exporter->pool, change->guid),
287 struct dsync_mail_change *change;
322 change = export_save_change_get(exporter, mail->uid);
323 change->guid = *guid == '\0' ? "" :
325 change->hdr_hash = p_strdup(exporter->pool, hdr_hash);
326 change->received_timestamp = received_timestamp;
327 change->virtual_size = virtual_size;
328 search_update_flag_changes(exporter, mail, change);
330 export_add_mail_instance(exporter, change, mail->seq);
340 struct dsync_mail_change *change;
343 while (hash_table_iterate(iter, exporter->changes, &key, &change)) {
344 if (change->type == DSYNC_MAIL_CHANGE_TYPE_FLAG_CHANGE)
345 seq_range_array_add(uids, change->uid);
355 struct dsync_mail_change *change;
362 while (hash_table_iterate(iter, exporter->changes, &key, &change)) {
363 if (change->type == DSYNC_MAIL_CHANGE_TYPE_FLAG_CHANGE &&
364 change->uid > exporter->last_common_uid)
450 struct dsync_mail_change *change;
456 while (hash_table_iterate(iter, exporter->changes, &key, &change))
457 array_append(&exporter->sorted_changes, &change, 1);
478 struct dsync_mail_change *change, *dup_change;
491 while (hash_table_iterate(iter, log_changes, &key, &change)) {
493 *dup_change = *change;
495 if (exporter->highest_changed_uid < change->uid)
496 exporter->highest_changed_uid = change->uid;