[dovecot-cvs] dovecot/src/lib-storage/index/mbox
mbox-sync-rewrite.c, 1.15, 1.16
cras at procontrol.fi
cras at procontrol.fi
Fri Jun 18 00:55:04 EEST 2004
Update of /home/cvs/dovecot/src/lib-storage/index/mbox
In directory talvi:/tmp/cvs-serv24632/lib-storage/index/mbox
Modified Files:
mbox-sync-rewrite.c
Log Message:
Create X-Keywords header if possible.
Index: mbox-sync-rewrite.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- mbox-sync-rewrite.c 17 Jun 2004 21:29:20 -0000 1.15
+++ mbox-sync-rewrite.c 17 Jun 2004 21:55:02 -0000 1.16
@@ -58,11 +58,23 @@
i_assert(size < SSIZE_T_MAX);
- /* Append at the end of X-Keywords header,
- or X-UID if it doesn't exist */
- start_pos = ctx->hdr_pos[MBOX_HDR_X_KEYWORDS] != (size_t)-1 ?
- ctx->hdr_pos[MBOX_HDR_X_KEYWORDS] :
- ctx->hdr_pos[MBOX_HDR_X_UID];
+ if (ctx->hdr_pos[MBOX_HDR_X_KEYWORDS] == (size_t)-1 &&
+ size >= sizeof("X-Keywords: \n")-1) {
+ /* Add X-Keywords */
+ start_pos = str_len(ctx->header);
+ if (ctx->have_eoh)
+ start_pos--;
+ ctx->hdr_pos[MBOX_HDR_X_KEYWORDS] = start_pos;
+
+ str_insert(ctx->header, start_pos, "X-Keywords: \n");
+ size -= sizeof("X-Keywords: \n")-1;
+ } else {
+ /* Append at the end of X-Keywords header,
+ or X-UID if it doesn't exist */
+ start_pos = ctx->hdr_pos[MBOX_HDR_X_KEYWORDS] != (size_t)-1 ?
+ ctx->hdr_pos[MBOX_HDR_X_KEYWORDS] :
+ ctx->hdr_pos[MBOX_HDR_X_UID];
+ }
data = str_data(ctx->header);
data_size = str_len(ctx->header);
@@ -168,6 +180,8 @@
&size);
}
}
+
+ /* FIXME: see if we could remove X-Keywords header completely */
}
int mbox_sync_try_rewrite(struct mbox_sync_mail_context *ctx, off_t move_diff)
More information about the dovecot-cvs
mailing list