mail-index-transaction-update.c revision 082e82792b8ac33ad42beac510441b37a3c50737
#include "lib.h"
#include "ioloop.h"
#include "array.h"
#include "mail-index-private.h"
#include "mail-index-transaction-private.h"
struct mail_index_record *
struct mail_index_transaction_keyword_update *u;
t->last_new_seq = 0;
t->last_update_idx = 0;
t->min_flagupdate_seq = 0;
t->max_flagupdate_seq = 0;
t->min_highest_modseq = 0;
t->min_highest_modseq != 0;
int i, days;
if (t->last_new_seq != 0)
if (uid != 0) {
if (!t->appends_nonsorted &&
unsigned int i, count;
for (i = 0; i < count; i++) {
for (i = 0; i < count; i++) {
struct mail_transaction_modseq_update *u;
unsigned int idx;
seq);
seq);
t->last_new_seq--;
t->last_new_seq = 0;
unsigned int count;
else if (!t->expunges_nonsorted) {
if (t->min_flagupdate_seq == 0) {
unsigned int left_idx,
unsigned int right_idx,
idx++;
return idx;
struct mail_index_flag_update u,
unsigned int idx)
tmp_update = u;
idx++;
~u.remove_flags;
~u.add_flags;
max--;
t->last_update_idx--;
idx++;
switch (modify_type) {
case MODIFY_REPLACE:
case MODIFY_ADD:
case MODIFY_REMOVE:
memset(&u, 0, sizeof(u));
switch (modify_type) {
case MODIFY_REPLACE:
case MODIFY_ADD:
if (flags == 0)
case MODIFY_REMOVE:
if (flags == 0)
t->last_update_idx++;
last_update++;
first_idx = 0;
bool prepend)
if (prepend) {
return TRUE;
return FALSE;
return TRUE;
return TRUE;
return TRUE;
return TRUE;
return TRUE;
return FALSE;
bool changed;
if (changed) {
unsigned int count;
count = 0;
old_data_r)) {
&old_diff32)) {
return diff32;
const unsigned int *existing_idx;
unsigned int i, j, existing_count;
bool found;
return TRUE;
for (j = 0; j < existing_count; j++) {
switch (modify_type) {
case MODIFY_ADD:
case MODIFY_REPLACE:
if (!found)
return TRUE;
case MODIFY_REMOVE:
if (found)
return TRUE;
return FALSE;
static struct mail_keywords *
for (i = 0; i < keywords_count; i++)
return NULL;
&keywords);
struct mail_index_transaction_keyword_update *u;
bool changed;
T_BEGIN {
keywords);
} T_END;
if (!changed)
switch (modify_type) {
case MODIFY_REPLACE:
case MODIFY_ADD:
case MODIFY_REMOVE:
unsigned int i, count;
return FALSE;
if (i == count)
return FALSE;
return FALSE;
return TRUE;
return TRUE;
return FALSE;
return FALSE;
if (!have_kw_changes)
return ret;
t->v.reset(t);