| 3221 | } |
| 3222 | |
| 3223 | static struct mailimap_search_key * searchKeyFromSearchExpression(IMAPSearchExpression * expression) |
| 3224 | { |
| 3225 | switch (expression->kind()) { |
| 3226 | case IMAPSearchKindAll: |
| 3227 | { |
| 3228 | return mailimap_search_key_new_all(); |
| 3229 | } |
| 3230 | case IMAPSearchKindFrom: |
| 3231 | { |
| 3232 | return mailimap_search_key_new_from(strdup(expression->value()->UTF8Characters())); |
| 3233 | } |
| 3234 | case IMAPSearchKindTo: |
| 3235 | { |
| 3236 | return mailimap_search_key_new_to(strdup(expression->value()->UTF8Characters())); |
| 3237 | } |
| 3238 | case IMAPSearchKindCc: |
| 3239 | { |
| 3240 | return mailimap_search_key_new_cc(strdup(expression->value()->UTF8Characters())); |
| 3241 | } |
| 3242 | case IMAPSearchKindBcc: |
| 3243 | { |
| 3244 | return mailimap_search_key_new_bcc(strdup(expression->value()->UTF8Characters())); |
| 3245 | } |
| 3246 | case IMAPSearchKindRecipient: |
| 3247 | { |
| 3248 | struct mailimap_search_key * to_search; |
| 3249 | struct mailimap_search_key * cc_search; |
| 3250 | struct mailimap_search_key * bcc_search; |
| 3251 | struct mailimap_search_key * or_search1; |
| 3252 | struct mailimap_search_key * or_search2; |
| 3253 | |
| 3254 | to_search = mailimap_search_key_new_to(strdup(expression->value()->UTF8Characters())); |
| 3255 | cc_search = mailimap_search_key_new_cc(strdup(expression->value()->UTF8Characters())); |
| 3256 | bcc_search = mailimap_search_key_new_bcc(strdup(expression->value()->UTF8Characters())); |
| 3257 | |
| 3258 | or_search1 = mailimap_search_key_new_or(to_search, cc_search); |
| 3259 | or_search2 = mailimap_search_key_new_or(or_search1, bcc_search); |
| 3260 | |
| 3261 | return or_search2; |
| 3262 | } |
| 3263 | case IMAPSearchKindSubject: |
| 3264 | { |
| 3265 | return mailimap_search_key_new_subject(strdup(expression->value()->UTF8Characters())); |
| 3266 | } |
| 3267 | case IMAPSearchKindContent: |
| 3268 | { |
| 3269 | return mailimap_search_key_new_text(strdup(expression->value()->UTF8Characters())); |
| 3270 | } |
| 3271 | case IMAPSearchKindBody: |
| 3272 | { |
| 3273 | return mailimap_search_key_new_body(strdup(expression->value()->UTF8Characters())); |
| 3274 | } |
| 3275 | case IMAPSearchKindUIDs: |
| 3276 | { |
| 3277 | return mailimap_search_key_new_uid(setFromIndexSet(expression->uids())); |
| 3278 | } |
| 3279 | case IMAPSearchKindNumbers: |
| 3280 | { |
no test coverage detected