Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4274:bd519db7f6e5 HEAD
Added mail_set_uid() to select a mail by UID.
author | Timo Sirainen <timo.sirainen@movial.fi> |
---|---|
date | Tue, 16 May 2006 12:10:27 +0300 |
parents | c7bcc970bf19 |
children | 6fd56bf3f3be |
files | src/lib-storage/index/dbox/dbox-mail.c src/lib-storage/index/index-mail.c src/lib-storage/index/index-mail.h src/lib-storage/index/maildir/maildir-mail.c src/lib-storage/index/mbox/mbox-mail.c src/lib-storage/mail-storage-private.h src/lib-storage/mail-storage.h src/lib-storage/mail.c |
diffstat | 8 files changed, 25 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/dbox/dbox-mail.c Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/index/dbox/dbox-mail.c Tue May 16 12:10:27 2006 +0300 @@ -189,6 +189,7 @@ struct mail_vfuncs dbox_mail_vfuncs = { index_mail_free, index_mail_set_seq, + index_mail_set_uid, index_mail_get_flags, index_mail_get_keywords,
--- a/src/lib-storage/index/index-mail.c Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/index/index-mail.c Tue May 16 12:10:27 2006 +0300 @@ -983,6 +983,18 @@ return 0; } +int index_mail_set_uid(struct mail *_mail, uint32_t uid) +{ + struct index_mail *mail = (struct index_mail *)_mail; + uint32_t seq; + + if (mail_index_lookup_uid_range(mail->ibox->view, + uid, uid, &seq, &seq) < 0) + return -1; + + return index_mail_set_seq(_mail, seq); +} + void index_mail_free(struct mail *_mail) { struct index_mail *mail = (struct index_mail *)_mail;
--- a/src/lib-storage/index/index-mail.h Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/index/index-mail.h Tue May 16 12:10:27 2006 +0300 @@ -130,6 +130,7 @@ enum mail_fetch_field wanted_fields, struct mailbox_header_lookup_ctx *wanted_headers); int index_mail_set_seq(struct mail *mail, uint32_t seq); +int index_mail_set_uid(struct mail *mail, uint32_t uid); void index_mail_free(struct mail *mail); void index_mail_parse_header_init(struct index_mail *mail,
--- a/src/lib-storage/index/maildir/maildir-mail.c Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/index/maildir/maildir-mail.c Tue May 16 12:10:27 2006 +0300 @@ -269,6 +269,7 @@ struct mail_vfuncs maildir_mail_vfuncs = { index_mail_free, index_mail_set_seq, + index_mail_set_uid, index_mail_get_flags, index_mail_get_keywords,
--- a/src/lib-storage/index/mbox/mbox-mail.c Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/index/mbox/mbox-mail.c Tue May 16 12:10:27 2006 +0300 @@ -202,6 +202,7 @@ struct mail_vfuncs mbox_mail_vfuncs = { index_mail_free, index_mail_set_seq, + index_mail_set_uid, index_mail_get_flags, index_mail_get_keywords,
--- a/src/lib-storage/mail-storage-private.h Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/mail-storage-private.h Tue May 16 12:10:27 2006 +0300 @@ -175,6 +175,7 @@ struct mail_vfuncs { void (*free)(struct mail *mail); int (*set_seq)(struct mail *mail, uint32_t seq); + int (*set_uid)(struct mail *mail, uint32_t uid); enum mail_flags (*get_flags)(struct mail *mail); const char *const *(*get_keywords)(struct mail *mail);
--- a/src/lib-storage/mail-storage.h Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/mail-storage.h Tue May 16 12:10:27 2006 +0300 @@ -441,6 +441,7 @@ struct mailbox_header_lookup_ctx *wanted_headers); void mail_free(struct mail **mail); int mail_set_seq(struct mail *mail, uint32_t seq); +int mail_set_uid(struct mail *mail, uint32_t uid); /* Get the time message was received (IMAP INTERNALDATE). Returns (time_t)-1 if error occurred. */
--- a/src/lib-storage/mail.c Mon May 15 12:47:34 2006 +0300 +++ b/src/lib-storage/mail.c Tue May 16 12:10:27 2006 +0300 @@ -26,6 +26,13 @@ return p->v.set_seq(mail, seq); } +int mail_set_uid(struct mail *mail, uint32_t uid) +{ + struct mail_private *p = (struct mail_private *)mail; + + return p->v.set_uid(mail, uid); +} + enum mail_flags mail_get_flags(struct mail *mail) { struct mail_private *p = (struct mail_private *)mail;