Lines Matching defs:mf
76 struct maildir_filename *mf, const char *destname,
83 i_assert(*mf->tmp_name != '\0');
89 tmp_path = t_strconcat(ctx->tmpdir, "/", mf->tmp_name, NULL);
105 mf->flags |= MAILDIR_FILENAME_FLAG_MOVED;
154 struct maildir_filename *mf;
173 mf = p_malloc(ctx->pool, MALLOC_ADD(sizeof(*mf),
175 mf->tmp_name = mf->dest_basename = p_strdup(ctx->pool, tmp_fname);
176 mf->flags = mdata->flags;
177 mf->size = (uoff_t)-1;
178 mf->vsize = (uoff_t)-1;
180 ctx->file_last = mf;
182 *ctx->files_tail = mf;
183 ctx->files_tail = &mf->next;
188 mf->keywords_count = keyword_count;
189 memcpy(mf + 1, mdata->keywords->idx,
194 mf->pop3_uidl = p_strdup(ctx->pool, mdata->pop3_uidl);
195 mf->pop3_order = mdata->pop3_order;
229 return mf;
233 struct maildir_filename *mf,
238 mf->preserve_filename = TRUE;
239 mf->dest_basename = p_strdup(ctx->pool, basename);
243 void maildir_save_set_sizes(struct maildir_filename *mf,
246 mf->size = size;
247 mf->vsize = vsize;
252 struct maildir_filename *mf,
255 const char *basename = mf->dest_basename;
257 if (mf->size != (uoff_t)-1 && !mf->preserve_filename) {
259 MAILDIR_EXTRA_FILE_SIZE, mf->size);
262 if (mf->vsize != (uoff_t)-1 && !mf->preserve_filename) {
265 mf->vsize);
268 if (mf->keywords_count == 0) {
269 if ((mf->flags & MAIL_FLAGS_MASK) == MAIL_RECENT) {
275 mf->flags & MAIL_FLAGS_MASK);
279 i_assert(ctx->keywords_sync_ctx != NULL || mf->keywords_count == 0);
280 buffer_create_from_const_data(&ctx->keywords_buffer, mf + 1,
281 mf->keywords_count * sizeof(unsigned int));
284 mf->flags & MAIL_FLAGS_MASK,
290 struct maildir_filename *mf)
294 if ((mf->flags & MAILDIR_FILENAME_FLAG_MOVED) == 0) {
296 return t_strdup_printf("%s/%s", ctx->tmpdir, mf->tmp_name);
300 dir = maildir_get_dest_filename(ctx, mf, &fname) ?
310 struct maildir_filename *mf;
315 mf = save_ctx->files;
317 mf = mf->next;
318 i_assert(mf != NULL);
321 return mf;
327 struct maildir_filename *mf = maildir_save_get_mf(t, seq);
329 *size_r = vsize ? mf->vsize : mf->size;
337 struct maildir_filename *mf = maildir_save_get_mf(t, seq);
339 return maildir_mf_get_path(save_ctx, mf);
413 struct maildir_filename *mf;
430 mf = maildir_save_add(_ctx, fname, NULL);
432 maildir_save_set_dest_basename(_ctx, mf,
648 struct maildir_filename *mf;
650 for (mf = ctx->files; mf != NULL; mf = mf->next) T_BEGIN {
651 i_unlink(maildir_mf_get_path(ctx, mf));
798 static bool maildir_filename_has_conflict(struct maildir_filename *mf,
801 if (strcmp(mf->dest_basename, prev_mf->dest_basename) == 0) {
806 strcmp(mf->dest_basename, prev_mf->guid) == 0) {
815 struct maildir_filename *mf,
825 if (!maildir_filename_get_size(mf->dest_basename,
828 if (!maildir_filename_get_size(mf->dest_basename,
832 if (size != mf->size || vsize != mf->vsize ||
834 (prev_mf != NULL && maildir_filename_has_conflict(mf, prev_mf)) ||
836 mf->dest_basename) != NULL) {
842 if (mf->size == (uoff_t)-1)
843 mf->size = size;
844 if (mf->vsize == (uoff_t)-1)
845 mf->vsize = size;
847 mf->guid = mf->dest_basename;
848 mf->dest_basename = p_strdup(ctx->pool,
850 mf->preserve_filename = FALSE;
865 struct maildir_filename *mf, *const *mfp, *prev_mf;
873 for (mf = ctx->files; mf != NULL; mf = mf->next)
874 array_append(&files, &mf, 1);
880 mf = *mfp;
884 if (mf->preserve_filename) {
885 maildir_filename_check_conflicts(ctx, mf,
889 newdir = maildir_get_dest_filename(ctx, mf, &dest);
894 ret = maildir_file_move(ctx, mf, dest, newdir);
898 prev_mf = mf;
912 struct maildir_filename *mf;
922 for (mf = ctx->files; mf != NULL; mf = mf->next) T_BEGIN {
928 newdir = maildir_get_dest_filename(ctx, mf, &dest);
936 if (mf->guid != NULL) {
938 MAILDIR_UIDLIST_REC_EXT_GUID, mf->guid);
940 if (mf->pop3_uidl != NULL) {
943 mf->pop3_uidl);
945 if (mf->pop3_order > 0) {
948 t_strdup_printf("%u", mf->pop3_order));