summaryrefslogtreecommitdiffabout
path: root/kmicromail/libetpan/mbox
Side-by-side diff
Diffstat (limited to 'kmicromail/libetpan/mbox') (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/libetpan/mbox/mailmbox.c19
-rw-r--r--kmicromail/libetpan/mbox/mailmbox.h4
-rw-r--r--kmicromail/libetpan/mbox/mailmbox_types.c1
-rw-r--r--kmicromail/libetpan/mbox/mailmbox_types.h1
4 files changed, 23 insertions, 2 deletions
diff --git a/kmicromail/libetpan/mbox/mailmbox.c b/kmicromail/libetpan/mbox/mailmbox.c
index 280c313..b3fce02 100644
--- a/kmicromail/libetpan/mbox/mailmbox.c
+++ b/kmicromail/libetpan/mbox/mailmbox.c
@@ -198,4 +198,7 @@ int mailmbox_open(struct mailmbox_folder * folder)
int read_only;
+ fd = -1;
+ read_only = TRUE;
+
if (!folder->mb_read_only) {
read_only = FALSE;
@@ -618,4 +621,6 @@ mailmbox_append_message_list_no_lock(struct mailmbox_folder * folder,
folder->mb_no_uid);
extra_size += 2; /* CR LF */
+
+ info->ai_uid = folder->mb_max_uid + i + 1;
}
@@ -745,6 +750,6 @@ mailmbox_append_message_list(struct mailmbox_folder * folder,
int
-mailmbox_append_message(struct mailmbox_folder * folder,
- const char * data, size_t len)
+mailmbox_append_message_uid(struct mailmbox_folder * folder,
+ const char * data, size_t len, unsigned int * puid)
{
carray * tab;
@@ -773,4 +778,7 @@ mailmbox_append_message(struct mailmbox_folder * folder,
r = mailmbox_append_message_list(folder, tab);
+ if (puid != NULL)
+ * puid = append_info->ai_uid;
+
mailmbox_append_info_free(append_info);
carray_free(tab);
@@ -786,4 +794,11 @@ mailmbox_append_message(struct mailmbox_folder * folder,
}
+int
+mailmbox_append_message(struct mailmbox_folder * folder,
+ const char * data, size_t len)
+{
+ return mailmbox_append_message_uid(folder, data, len, NULL);
+}
+
/* ********************************************************************** */
diff --git a/kmicromail/libetpan/mbox/mailmbox.h b/kmicromail/libetpan/mbox/mailmbox.h
index 8be086c..0427f1f 100644
--- a/kmicromail/libetpan/mbox/mailmbox.h
+++ b/kmicromail/libetpan/mbox/mailmbox.h
@@ -52,4 +52,8 @@ mailmbox_append_message(struct mailmbox_folder * folder,
const char * data, size_t len);
+int
+mailmbox_append_message_uid(struct mailmbox_folder * folder,
+ const char * data, size_t len, unsigned int * puid);
+
int mailmbox_fetch_msg(struct mailmbox_folder * folder,
uint32_t num, char ** result,
diff --git a/kmicromail/libetpan/mbox/mailmbox_types.c b/kmicromail/libetpan/mbox/mailmbox_types.c
index 1986182..4e3e521 100644
--- a/kmicromail/libetpan/mbox/mailmbox_types.c
+++ b/kmicromail/libetpan/mbox/mailmbox_types.c
@@ -179,4 +179,5 @@ mailmbox_append_info_new(const char * ai_message, size_t ai_size)
info->ai_message = ai_message;
info->ai_size = ai_size;
+ info->ai_uid = 0;
return info;
diff --git a/kmicromail/libetpan/mbox/mailmbox_types.h b/kmicromail/libetpan/mbox/mailmbox_types.h
index dd6758c..bd6ee30 100644
--- a/kmicromail/libetpan/mbox/mailmbox_types.h
+++ b/kmicromail/libetpan/mbox/mailmbox_types.h
@@ -129,4 +129,5 @@ struct mailmbox_append_info {
const char * ai_message;
size_t ai_size;
+ unsigned int ai_uid;
};