/* Copyright (c) 2010-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "ioloop.h"
#include "array.h"
#include "str.h"
#include "unichar.h"
#include "settings-parser.h"
#include "mail-storage.h"
#include "mail-search-register.h"
#include "mail-search-parser.h"
#include "mail-search-build.h"
#include <time.h>
#include <ctype.h>
static struct mail_search_arg *
{
/* this changes the parent arg to be an OR block instead of AND block */
return NULL;
return sarg;
}
static struct mail_search_arg *
enum mail_search_arg_type type,
{
const char *value;
bool utc;
return NULL;
if (utc)
return NULL;
}
return sarg;
}
static struct mail_search_arg *\
{ \
}
static struct mail_search_arg *
enum mail_search_arg_type type)
{
return NULL;
return NULL;
}
return sarg;
}
static struct mail_search_arg *
{
}
static struct mail_search_arg *
{
}
static struct mail_search_arg *
{
}
static struct mail_search_arg *
{
return NULL;
"Mailbox name not valid UTF-8: ",
return NULL;
}
return sarg;
}
static struct mail_search_arg *
{
}
static struct mail_search_arg *
{
}
{ "OR", human_search_or },
/* dates */
{ "BEFORE", human_search_before },
{ "ON", human_search_on },
{ "SINCE", human_search_since },
{ "SENTBEFORE", human_search_sentbefore },
{ "SENTON", human_search_senton },
{ "SENTSINCE", human_search_sentsince },
{ "SAVEDBEFORE", human_search_savedbefore },
{ "SAVEDON", human_search_savedon },
{ "SAVEDSINCE", human_search_savedsince },
{ "X-SAVEDBEFORE", human_search_savedbefore },
{ "X-SAVEDON", human_search_savedon },
{ "X-SAVEDSINCE", human_search_savedsince },
/* sizes */
{ "LARGER", human_search_larger },
{ "SMALLER", human_search_smaller },
/* Other Dovecot extensions: */
{ "GUID", human_search_guid },
{ "MAILBOX", human_search_mailbox },
{ "MAILBOX-GUID", human_search_mailbox_guid },
{ "OLDESTONLY", human_search_oldestonly }
};
static struct mail_search_register *
{
int ret;
/* find and register args in imap that don't exist in human */
for (i = j = 0; i < imap_count && j < human_count; ) {
if (ret < 0) {
i++;
} else if (ret > 0) {
j++;
} else {
i++; j++;
}
}
for (; i < imap_count; i++)
return reg;
}
{
if (mail_search_register_human == NULL) {
}
return mail_search_register_human;
}