-rw-r--r-- | kmicromail/libetpan/mbox/mailmbox.c | 19 | ||||
-rw-r--r-- | kmicromail/libetpan/mbox/mailmbox.h | 4 | ||||
-rw-r--r-- | kmicromail/libetpan/mbox/mailmbox_types.c | 1 | ||||
-rw-r--r-- | kmicromail/libetpan/mbox/mailmbox_types.h | 1 |
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; }; |