summaryrefslogtreecommitdiffabout
path: root/kmicromail/libetpan/generic/imapdriver_tools.c
Unidiff
Diffstat (limited to 'kmicromail/libetpan/generic/imapdriver_tools.c') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/libetpan/generic/imapdriver_tools.c38
1 files changed, 31 insertions, 7 deletions
diff --git a/kmicromail/libetpan/generic/imapdriver_tools.c b/kmicromail/libetpan/generic/imapdriver_tools.c
index 3d737f3..de4008f 100644
--- a/kmicromail/libetpan/generic/imapdriver_tools.c
+++ b/kmicromail/libetpan/generic/imapdriver_tools.c
@@ -3107,16 +3107,15 @@ static int imap_flags_to_flags(struct mailimap_msg_att_dynamic * att_dyn,
3107 return MAIL_ERROR_MEMORY; 3107 return MAIL_ERROR_MEMORY;
3108} 3108}
3109 3109
3110static int flags_to_imap_flags(struct mail_flags * flags, 3110int imap_flags_to_imap_flags(struct mail_flags * flags,
3111 struct mailimap_store_att_flags ** result) 3111 struct mailimap_flag_list ** result)
3112{ 3112{
3113 struct mailimap_flag * flag; 3113 struct mailimap_flag * flag;
3114 struct mailimap_flag_list * flag_list; 3114 struct mailimap_flag_list * flag_list;
3115 struct mailimap_store_att_flags * att_flags;
3116 int res; 3115 int res;
3117 clistiter * cur; 3116 clistiter * cur;
3118 int r; 3117 int r;
3119 3118
3120 flag_list = mailimap_flag_list_new_empty(); 3119 flag_list = mailimap_flag_list_new_empty();
3121 if (flag_list == NULL) { 3120 if (flag_list == NULL) {
3122 res = MAIL_ERROR_MEMORY; 3121 res = MAIL_ERROR_MEMORY;
@@ -3239,17 +3238,42 @@ static int flags_to_imap_flags(struct mail_flags * flags,
3239 } 3238 }
3240 } 3239 }
3241 } 3240 }
3241
3242 * result = flag_list;
3243
3244 return MAIL_NO_ERROR;
3245
3246 free_flag_list:
3247 mailimap_flag_list_free(flag_list);
3248 err:
3249 return res;
3250}
3242 3251
3252static int flags_to_imap_flags(struct mail_flags * flags,
3253 struct mailimap_store_att_flags ** result)
3254{
3255 struct mailimap_flag_list * flag_list;
3256 struct mailimap_store_att_flags * att_flags;
3257 int res;
3258 int r;
3259
3260 r = imap_flags_to_imap_flags(flags,
3261 &flag_list);
3262 if (r != MAIL_NO_ERROR) {
3263 res = r;
3264 goto err;
3265 }
3266
3243 att_flags = mailimap_store_att_flags_new_set_flags_silent(flag_list); 3267 att_flags = mailimap_store_att_flags_new_set_flags_silent(flag_list);
3244 if (att_flags == NULL) { 3268 if (att_flags == NULL) {
3245 res = MAIL_ERROR_MEMORY; 3269 res = MAIL_ERROR_MEMORY;
3246 goto free_flag_list; 3270 goto free_flag_list;
3247 } 3271 }
3248 3272
3249 * result = att_flags; 3273 * result = att_flags;
3250 3274
3251 return MAIL_NO_ERROR; 3275 return MAIL_NO_ERROR;
3252 3276
3253 free_flag_list: 3277 free_flag_list:
3254 mailimap_flag_list_free(flag_list); 3278 mailimap_flag_list_free(flag_list);
3255 err: 3279 err: