maildir-util.c revision 817d027593510c3ba70ad542ce0011f5f6916d1e
39ed514f9d401b3cb589595c6a2f532050254d77Timo Sirainen/* Copyright (c) 2004-2015 Dovecot authors, see the included COPYING file */
2ce5b1d19cba4654239116a34e3ad9d5b6af8551Timo Sirainenstatic const char *
c8296ac1ed68ed5c5168de545b76f9b27fc76d35Timo Sirainenmaildir_filename_guess(struct maildir_mailbox *mbox, uint32_t uid,
c37098f8ce6d512ba41f09564d04ed25720f0a77Timo Sirainen struct mail_index_view *view = mbox->flags_view;
9d1526ac8bcec9aff3c3a32f092ee2f3da2760b7Timo Sirainen const char *p;
9d1526ac8bcec9aff3c3a32f092ee2f3da2760b7Timo Sirainen if (view == NULL || !mail_index_lookup_seq(view, uid, &seq)) {
57f4445a46726a17bfe78b0964dd301a6ccb40ecTimo Sirainen mail_index_lookup_view_flags(view, seq, &flags, &keywords);
f55d355a545747cb26b18b00b4707b56e26260caTimo Sirainen *have_flags_r = (flags & MAIL_FLAGS_NONRECENT) != 0;
c8296ac1ed68ed5c5168de545b76f9b27fc76d35Timo Sirainen fname = maildir_filename_flags_set(fname, flags);
db9ad8c821c01a18a520c2a07b2d6dc501b4017aTimo Sirainen kw_ctx = maildir_keywords_sync_init_readonly(mbox->keywords,
c8296ac1ed68ed5c5168de545b76f9b27fc76d35Timo Sirainen fname = maildir_filename_flags_kw_set(kw_ctx, fname,
39ed514f9d401b3cb589595c6a2f532050254d77Timo Sirainen /* don't even bother looking into new/ dir */
39ed514f9d401b3cb589595c6a2f532050254d77Timo Sirainen *uidlist_flags &= MAILDIR_UIDLIST_REC_FLAG_NEW_DIR;
39ed514f9d401b3cb589595c6a2f532050254d77Timo Sirainen } else if ((*uidlist_flags & MAILDIR_UIDLIST_REC_FLAG_MOVED) == 0 &&
39ed514f9d401b3cb589595c6a2f532050254d77Timo Sirainen ((*uidlist_flags & MAILDIR_UIDLIST_REC_FLAG_NEW_DIR) != 0 ||
if (p != NULL)
return fname;
bool have_flags;
int ret;
if (ret <= 0)
ret = 0;
if (ret == 0) {
} else if (ret == 0 &&
return ret;
int i, ret;
T_BEGIN {
} T_END;
} T_END;
T_BEGIN {
} T_END;
} T_END;
const char *p, *parent;
switch (errno) {
case EEXIST:
case ENOENT:
const char *path;
unsigned int i, count;
count = i;
for (i = 0; i < count; i++) {
int ret;
return FALSE;
T_BEGIN {
} T_END;
path);