struct mail_search_arg *arg,
const struct mail_index_record *rec)
{
+ uint8_t guid[MAIL_GUID_128_SIZE];
+ const char *str;
enum mail_flags flags;
uint64_t modseq;
int ret;
}
return modseq >= arg->value.modseq->modseq;
}
+ case SEARCH_MAILBOX:
+ if (mail_get_special(ctx->mail, MAIL_FETCH_MAILBOX_NAME,
+ &str) < 0)
+ return -1;
+
+ if (strcasecmp(str, "INBOX") == 0)
+ return strcasecmp(arg->value.str, "INBOX") == 0;
+ return strcmp(str, arg->value.str) == 0;
+ case SEARCH_MAILBOX_GUID:
+ if (mailbox_get_guid(ctx->mail->box, guid) < 0)
+ return -1;
+
+ return strcmp(mail_guid_128_to_string(guid),
+ arg->value.str) == 0;
+ case SEARCH_MAILBOX_GLOB:
+ if (mail_get_special(ctx->mail, MAIL_FETCH_MAILBOX_NAME,
+ &str) < 0)
+ return -1;
+ return imap_match(arg->value.mailbox_glob, str) == IMAP_MATCH_YES;
default:
return -1;
}
time_t date;
int tz_offset;
bool have_tz_offset;
- uint8_t guid[MAIL_GUID_128_SIZE];
switch (arg->type) {
/* internal dates */
if (mail_get_special(ctx->mail, MAIL_FETCH_GUID, &str) < 0)
return -1;
return strcmp(str, arg->value.str) == 0;
- case SEARCH_MAILBOX:
- if (mail_get_special(ctx->mail, MAIL_FETCH_MAILBOX_NAME,
- &str) < 0)
- return -1;
-
- if (strcasecmp(str, "INBOX") == 0)
- return strcasecmp(arg->value.str, "INBOX") == 0;
- return strcmp(str, arg->value.str) == 0;
- case SEARCH_MAILBOX_GUID:
- if (mailbox_get_guid(ctx->mail->box, guid) < 0)
- return -1;
-
- return strcmp(mail_guid_128_to_string(guid),
- arg->value.str) == 0;
- case SEARCH_MAILBOX_GLOB:
- if (mail_get_special(ctx->mail, MAIL_FETCH_MAILBOX_NAME,
- &str) < 0)
- return -1;
- return imap_match(arg->value.mailbox_glob, str) == IMAP_MATCH_YES;
default:
return -1;
}