mail-search.c revision 95f3ad1f505146ba2f4d2f4022244250a58b836f
/* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "array.h"
#include "buffer.h"
#include "mail-index.h"
#include "mail-search.h"
{
if (!args->match_always)
else {
if (!full_reset)
else {
}
}
}
}
void *context)
{
struct mail_search_arg *subarg;
return;
/* sublist of conditions */
/* didn't match */
break;
}
}
/* OR-list of conditions */
/* matched */
break;
}
}
} else {
/* just a single condition */
}
}
void *context)
{
int result;
result = 1;
/* didn't match */
return 0;
}
result = -1;
}
return result;
}
static void
{
static const char *date_hdr = "Date";
struct mail_search_arg *subarg;
return;
case SEARCH_OR:
case SEARCH_SUB:
}
}
break;
case SEARCH_SENTBEFORE:
case SEARCH_SENTON:
case SEARCH_SENTSINCE:
break;
case SEARCH_HEADER:
case SEARCH_HEADER_ADDRESS:
sizeof(const char *));
break;
case SEARCH_BODY:
case SEARCH_BODY_FAST:
break;
case SEARCH_TEXT:
case SEARCH_TEXT_FAST:
break;
default:
break;
}
}
const char *const *
bool *have_headers, bool *have_body)
{
bool have_text;
return NULL;
}
static struct mail_keywords *
struct mail_keywords **_kw2)
{
struct mail_keywords *new_kw;
T_BEGIN {
unsigned int i, j;
/* don't add duplicates */
break;
}
}
&new_indexes);
} T_END;
return new_kw;
}
static void
{
/* neg(p and q and ..) == neg(p) or neg(q) or ..
neg(p or q or ..) == neg(p) and neg(q) and .. */
}
/* p and (q and ..) == p and q and ..
p or (q or ..) == p or q or .. */
continue;
}
}
/* merge all flags arguments */
if (prev_flags_arg == NULL)
else {
continue;
}
!parent_and) {
if (prev_not_flags_arg == NULL)
else {
continue;
}
}
/* merge all keywords arguments */
if (prev_kw_arg == NULL)
prev_kw_arg = args;
else {
continue;
}
!parent_and) {
if (prev_not_kw_arg == NULL)
else {
continue;
}
}
}
}
{
}