/* Copyright (c) 2002-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "str.h"
#include "charset-utf8.h"
#include "mail-storage-private.h"
#include "mail-search-register.h"
#include "mail-search-parser.h"
#include "mail-search-build.h"
struct mail_search_arg **arg_r);
struct mail_search_arg *
enum mail_search_arg_type type)
{
return arg;
}
struct mail_search_arg *
enum mail_search_arg_type type)
{
const char *value;
return NULL;
return sarg;
}
static int
struct mail_search_arg *parent,
struct mail_search_arg **arg_r)
{
const char *key;
int ret;
return ret;
return -1;
return -1;
}
return 1;
}
else {
}
}
struct mail_search_arg *parent,
struct mail_search_arg **arg_r)
{
int ret;
if (ret <= 0) {
if (ret == 0)
return -1;
}
return 0;
}
struct mail_search_arg **arg_r)
{
int ret;
/* expected type */
} else if (cur_type == SEARCH_SUB) {
/* type changed. everything in this list must now
belong to this type. */
} else {
"Use parenthesis when mixing ANDs and ORs";
return -1;
}
}
if (ret < 0)
return -1;
return 0;
}
{
const char *str;
int ret;
/* make sure we give an error message if charset is invalid */
}
if (ret < 0) {
if (ctx.unknown_charset)
return -1;
}
/* simple SUB root */
} else {
}
return 0;
}
{
return args;
}
struct mail_search_arg *
enum mail_search_arg_type type)
{
return arg;
}
{
}
{
}
{
int ret;
T_BEGIN {
/* unknown charset */
ret = -1;
} else if (result != CHARSET_RET_OK) {
/* invalid key */
ret = -1;
} else {
ret = 0;
}
} T_END;
return ret;
}