changeset 5964:29d08e7bbf63 HEAD

Add ,W=<virtual size> to saved maildir filenames.
author Timo Sirainen <tss@iki.fi>
date Thu, 12 Jul 2007 06:14:37 +0300
parents 9bef18690777
children 921bc18b164a
files src/lib-storage/index/maildir/maildir-save.c
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-save.c	Thu Jul 12 06:12:44 2007 +0300
+++ b/src/lib-storage/index/maildir/maildir-save.c	Thu Jul 12 06:14:37 2007 +0300
@@ -27,7 +27,7 @@
 	struct maildir_filename *next;
 	const char *basename;
 
-	uoff_t size;
+	uoff_t size, vsize;
 	enum mail_flags flags;
 	unsigned int keywords_count;
 	/* unsigned int keywords[]; */
@@ -193,6 +193,7 @@
 	mf->basename = p_strdup(ctx->pool, base_fname);
 	mf->flags = flags;
 	mf->size = (uoff_t)-1;
+	mf->vsize = (uoff_t)-1;
 
 	ctx->file_last = mf;
 	i_assert(*ctx->files_tail == NULL);
@@ -272,6 +273,11 @@
 					   basename, mf->size);
 	}
 
+	if (mf->vsize != (uoff_t)-1) {
+		basename = t_strdup_printf("%s,W=%"PRIuUOFF_T,
+					   basename, mf->vsize);
+	}
+
 	if (mf->keywords_count == 0) {
 		if ((mf->flags & MAIL_FLAGS_MASK) == MAIL_RECENT) {
 			*fname_r = basename;
@@ -490,6 +496,8 @@
 
 	/* remember the size in case we want to add it to filename */
 	ctx->file_last->size = ctx->output->offset;
+	ctx->file_last->vsize = ctx->cur_dest_mail == NULL ? (uoff_t)-1 :
+		mail_get_virtual_size(ctx->cur_dest_mail);
 
 	t_push();
 	path = t_strconcat(ctx->tmpdir, "/", ctx->file_last->basename, NULL);