virtual-config.c revision 27f174f3b836b18cb81cd1e6534031f1f3355348
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen/* Copyright (c) 2008-2016 Dovecot authors, see the included COPYING file */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenvirtual_search_args_parse(const string_t *rule, const char **error_r)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen input = i_stream_create_from_data(str_data(rule), str_len(rule));
217f3ed9ef654c1f19c505d9acf14ab1e298d707Timo Sirainen imap_parser = imap_parser_create(input, NULL, (size_t)-1);
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen ret = imap_parser_finish_line(imap_parser, 0, 0, &args);
ac339d4c51420417887bbe1880f9687d8c3b2d4cTimo Sirainen *error_r = t_strdup(imap_parser_get_error(imap_parser, &fatal));
3bbda557c0dfa45edf81c6686807ff199110dbcaTimo Sirainen if (mail_search_build(mail_search_register_get_imap(),
return sargs;
unsigned int i, count;
const char **error_r)
line);
if (!no_wildcards &&
unsigned int i, count;
for (i = 0; i < count; i++) {
unsigned int i, count;
for (i = 0; i < count;) {
&count);
const char *name)
return TRUE;
return TRUE;
return TRUE;
return FALSE;
unsigned int *idx_r)
unsigned int i, count;
for (i = 0; i < count; i++) {
*idx_r = i;
return TRUE;
*idx_r = i;
return TRUE;
return FALSE;
const char **error_r)
int ret;
if (ret < 0) {
if (ret > 0)
return ret;
const char **error_r)
unsigned int i, count;
if (count == 0)
for (i = 0; i < count; i++) {
return ret;
const char **error_r)
const char **patterns;
unsigned int i, j, count;
int ret = 0;
if (count == 0) {
for (i = 0; i < count; i++)
if (ret < 0)
if (ret > 0) {
for (i = 0; i < count; i++)
unsigned int i, count;
for (i = 0; i < count; i++) {
unsigned int linenum = 0;
linenum++;
if (ret < 0) {
if (ret == 0) {
if (ret < 0) {
if (ret < 0)
if (ret == 0)
return ret;
unsigned int i, count;
for (i = 0; i < count; i++) {