/* Copyright (c) 2016-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "ioloop.h"
#include "array.h"
#include "str.h"
#include "imap-date.h"
#include "imap-seqset.h"
#include "imap-utf7.h"
#include "imap-util.h"
#include "mail-search-parser.h"
#include "mail-search-mime-register.h"
#include "mail-search-mime-build.h"
#include "mail-search-mime.h"
struct mail_search_mime_register {
};
static void
/*
* Register
*/
static struct mail_search_mime_register *
{
}
return reg;
}
void mail_search_mime_register_deinit(void)
{
return;
}
const struct mail_search_mime_register_arg *arg,
unsigned int count)
{
}
static int
const struct mail_search_mime_register_arg *arg1,
const struct mail_search_mime_register_arg *arg2)
{
}
const struct mail_search_mime_register_arg *
{
if (!reg->args_sorted) {
}
}
const struct mail_search_mime_register_arg *
{
if (!reg->args_sorted) {
}
}
/*
* Default MIMEPART args
*/
static struct mail_search_mime_arg *
{
return NULL;
return smarg;
}
static struct mail_search_mime_arg *
{
/* <search-key1> <search-key2> */
do {
return NULL;
/* <key> OR <key> OR ... <key> - put them all
under one SEARCH_MIME_OR list. */
return NULL;
return smarg;
}
static struct mail_search_mime_arg *\
{ \
}
static struct mail_search_mime_arg *
{
const char *value;
return NULL;
return NULL;
}
return smarg;
}
static struct mail_search_mime_arg *\
{ \
}
static struct mail_search_mime_arg *
{
return NULL;
}
else {
}
if (type != SEARCH_MIME_SIZE_EQUAL &&
return NULL;
}
return NULL;
}
return smarg;
}
static struct mail_search_mime_arg *
{
/* <field-name> <string> */
return NULL;
return NULL;
return NULL;
return NULL;
return smarg;
}
static struct mail_search_mime_arg *
{
return arg_new_field
(ctx, SEARCH_MIME_PARAM);
}
static struct mail_search_mime_arg *
{
return arg_new_field
}
static struct mail_search_mime_arg *
{
return NULL;
return NULL;
return smarg;
}
static struct mail_search_mime_arg *\
{ \
}
static struct mail_search_mime_arg *
{
return NULL;
}
return NULL;
}
return smarg;
return arg_new_field
}
return NULL;
}
static struct mail_search_mime_arg *
{
unsigned int depth;
return NULL;
}
else {
}
if (type != SEARCH_MIME_DEPTH_EQUAL &&
return NULL;
}
return NULL;
}
return smarg;
}
static struct mail_search_mime_arg *
{
const char *value;
unsigned int index;
return NULL;
}
return NULL;
}
(ctx, SEARCH_MIME_INDEX);
return smarg;
}
static struct mail_search_mime_arg *
{
return NULL;
}
else {
return NULL;
}
return NULL;
}
return NULL;
}
return smarg;
}
static struct mail_search_mime_arg *
{
return NULL;
else
return smarg;
}
static struct mail_search_mime_arg *
{
return NULL;
else
return smarg;
}
static struct mail_search_mime_arg *
{
return NULL;
}
}
static const struct mail_search_mime_register_arg
mime_register_args[] = {
/* argument set operations */
{ "NOT", mail_search_mime_not },
{ "OR", mail_search_mime_or },
/* dates */
{ "SENTBEFORE", mail_search_mime_sentbefore },
{ "SENTON", mail_search_mime_senton },
{ "SENTSINCE", mail_search_mime_sentsince },
/* size */
{ "SIZE", mail_search_mime_size },
/* part properties */
{ "DESCRIPTION", mail_search_mime_description },
{ "DISPOSITION", mail_search_mime_disposition },
{ "ENCODING", mail_search_mime_encoding },
{ "ID", mail_search_mime_id },
{ "LANGUAGE", mail_search_mime_language },
{ "LOCATION", mail_search_mime_location },
{ "MD5", mail_search_mime_md5 },
/* content-type */
{ "TYPE", mail_search_mime_type },
{ "SUBTYPE", mail_search_mime_subtype },
{ "PARAM", mail_search_mime_param },
/* headers */
{ "HEADER", mail_search_mime_header },
/* message */
{ "BCC", mail_search_mime_bcc },
{ "CC", mail_search_mime_cc },
{ "FROM", mail_search_mime_from },
{ "IN-REPLY-TO", mail_search_mime_in_reply_to },
{ "MESSAGE-ID", mail_search_mime_message_id },
{ "REPLY-TO", mail_search_mime_reply_to },
{ "SENDER", mail_search_mime_sender },
{ "SUBJECT", mail_search_mime_subject },
{ "TO", mail_search_mime_to },
/* body */
{ "BODY", mail_search_mime_body },
{ "TEXT", mail_search_mime_text },
/* position */
{ "DEPTH", mail_search_mime_depth },
{ "INDEX", mail_search_mime_index },
/* relations */
{ "PARENT", mail_search_mime_parent },
{ "CHILD", mail_search_mime_child },
{ "EXISTS", mail_search_mime_exists },
/* filename */
{ "FILENAME", mail_search_mime_filename },
};
static void
{
}