Mercurial > dovecot > core-2.2
view src/lib-storage/mail-copy.c @ 3641:3de464cb604f HEAD
Added flags and keywords parameters to mailbox_copy() in case they're wanted
to be changed while copying.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 07 Oct 2005 12:34:04 +0300 |
parents | 923ff19873d4 |
children | 928229f8b3e6 |
line wrap: on
line source
/* Copyright (C) 2004 Timo Sirainen */ #include "lib.h" #include "istream.h" #include "mail-storage.h" #include "mail-copy.h" int mail_storage_copy(struct mailbox_transaction_context *t, struct mail *mail, enum mail_flags flags, struct mail_keywords *keywords, struct mail *dest_mail) { struct mail_save_context *ctx; struct istream *input; const char *from_envelope; input = mail_get_stream(mail, NULL, NULL); if (input == NULL) return -1; from_envelope = mail_get_special(mail, MAIL_FETCH_FROM_ENVELOPE); ctx = mailbox_save_init(t, flags, keywords, mail_get_received_date(mail), 0, from_envelope, input, dest_mail != NULL); while (i_stream_read(input) != -1) { if (mailbox_save_continue(ctx) < 0) break; } if (input->stream_errno != 0) { mailbox_save_cancel(ctx); return -1; } return mailbox_save_finish(ctx, dest_mail); }