summaryrefslogtreecommitdiffabout
path: root/kmicromail/libetpan/generic/mhdriver.c
Unidiff
Diffstat (limited to 'kmicromail/libetpan/generic/mhdriver.c') (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/libetpan/generic/mhdriver.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/kmicromail/libetpan/generic/mhdriver.c b/kmicromail/libetpan/generic/mhdriver.c
index af38d27..05a6a4f 100644
--- a/kmicromail/libetpan/generic/mhdriver.c
+++ b/kmicromail/libetpan/generic/mhdriver.c
@@ -80,24 +80,26 @@ static int mhdriver_messages_number(mailsession * session, char * mb,
80static int mhdriver_list_folders(mailsession * session, char * mb, 80static int mhdriver_list_folders(mailsession * session, char * mb,
81 struct mail_list ** result); 81 struct mail_list ** result);
82 82
83static int mhdriver_lsub_folders(mailsession * session, char * mb, 83static int mhdriver_lsub_folders(mailsession * session, char * mb,
84 struct mail_list ** result); 84 struct mail_list ** result);
85 85
86static int mhdriver_subscribe_folder(mailsession * session, char * mb); 86static int mhdriver_subscribe_folder(mailsession * session, char * mb);
87 87
88static int mhdriver_unsubscribe_folder(mailsession * session, char * mb); 88static int mhdriver_unsubscribe_folder(mailsession * session, char * mb);
89 89
90static int mhdriver_append_message(mailsession * session, 90static int mhdriver_append_message(mailsession * session,
91 char * message, size_t size); 91 char * message, size_t size);
92static int mhdriver_append_message_flags(mailsession * session,
93 char * message, size_t size, struct mail_flags * flags);
92static int mhdriver_copy_message(mailsession * session, 94static int mhdriver_copy_message(mailsession * session,
93 uint32_t num, char * mb); 95 uint32_t num, char * mb);
94 96
95static int mhdriver_remove_message(mailsession * session, uint32_t num); 97static int mhdriver_remove_message(mailsession * session, uint32_t num);
96 98
97static int mhdriver_move_message(mailsession * session, 99static int mhdriver_move_message(mailsession * session,
98 uint32_t num, char * mb); 100 uint32_t num, char * mb);
99 101
100static int mhdriver_get_messages_list(mailsession * session, 102static int mhdriver_get_messages_list(mailsession * session,
101 struct mailmessage_list ** result); 103 struct mailmessage_list ** result);
102 104
103static int mhdriver_get_message(mailsession * session, 105static int mhdriver_get_message(mailsession * session,
@@ -131,24 +133,25 @@ static mailsession_driver local_mh_session_driver = {
131 .sess_select_folder = mhdriver_select_folder, 133 .sess_select_folder = mhdriver_select_folder,
132 .sess_expunge_folder = NULL, 134 .sess_expunge_folder = NULL,
133 .sess_status_folder = mhdriver_status_folder, 135 .sess_status_folder = mhdriver_status_folder,
134 .sess_messages_number = mhdriver_messages_number, 136 .sess_messages_number = mhdriver_messages_number,
135 .sess_recent_number = mhdriver_messages_number, 137 .sess_recent_number = mhdriver_messages_number,
136 .sess_unseen_number = mhdriver_messages_number, 138 .sess_unseen_number = mhdriver_messages_number,
137 .sess_list_folders = mhdriver_list_folders, 139 .sess_list_folders = mhdriver_list_folders,
138 .sess_lsub_folders = mhdriver_lsub_folders, 140 .sess_lsub_folders = mhdriver_lsub_folders,
139 .sess_subscribe_folder = mhdriver_subscribe_folder, 141 .sess_subscribe_folder = mhdriver_subscribe_folder,
140 .sess_unsubscribe_folder = mhdriver_unsubscribe_folder, 142 .sess_unsubscribe_folder = mhdriver_unsubscribe_folder,
141 143
142 .sess_append_message = mhdriver_append_message, 144 .sess_append_message = mhdriver_append_message,
145 .sess_append_message_flags = mhdriver_append_message_flags,
143 .sess_copy_message = mhdriver_copy_message, 146 .sess_copy_message = mhdriver_copy_message,
144 .sess_move_message = mhdriver_move_message, 147 .sess_move_message = mhdriver_move_message,
145 148
146 .sess_get_messages_list = mhdriver_get_messages_list, 149 .sess_get_messages_list = mhdriver_get_messages_list,
147 .sess_get_envelopes_list = maildriver_generic_get_envelopes_list, 150 .sess_get_envelopes_list = maildriver_generic_get_envelopes_list,
148 .sess_remove_message = mhdriver_remove_message, 151 .sess_remove_message = mhdriver_remove_message,
149#if 0 152#if 0
150 .sess_search_messages = maildriver_generic_search_messages, 153 .sess_search_messages = maildriver_generic_search_messages,
151#endif 154#endif
152 155
153 .sess_get_message = mhdriver_get_message, 156 .sess_get_message = mhdriver_get_message,
154 .sess_get_message_by_uid = mhdriver_get_message_by_uid, 157 .sess_get_message_by_uid = mhdriver_get_message_by_uid,
@@ -675,24 +678,30 @@ static int mhdriver_append_message(mailsession * session,
675 678
676 r = mailmh_folder_add_message(folder, message, size); 679 r = mailmh_folder_add_message(folder, message, size);
677 680
678 switch (r) { 681 switch (r) {
679 case MAILMH_ERROR_FILE: 682 case MAILMH_ERROR_FILE:
680 return MAIL_ERROR_DISKSPACE; 683 return MAIL_ERROR_DISKSPACE;
681 684
682 default: 685 default:
683 return mhdriver_mh_error_to_mail_error(r); 686 return mhdriver_mh_error_to_mail_error(r);
684 } 687 }
685} 688}
686 689
690static int mhdriver_append_message_flags(mailsession * session,
691 char * message, size_t size, struct mail_flags * flags)
692{
693 return mhdriver_append_message(session, message, size);
694}
695
687static int mhdriver_copy_message(mailsession * session, 696static int mhdriver_copy_message(mailsession * session,
688 uint32_t num, char * mb) 697 uint32_t num, char * mb)
689{ 698{
690 int fd; 699 int fd;
691 int r; 700 int r;
692 struct mailmh_folder * folder; 701 struct mailmh_folder * folder;
693 struct mailmh * mh; 702 struct mailmh * mh;
694 int res; 703 int res;
695 704
696 mh = get_mh_session(session); 705 mh = get_mh_session(session);
697 if (mh == NULL) { 706 if (mh == NULL) {
698 res = MAIL_ERROR_BAD_STATE; 707 res = MAIL_ERROR_BAD_STATE;