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;