From: Timo Sirainen Date: Wed, 5 Nov 2008 11:51:00 +0000 (+0200) Subject: fts: Handle also SEARCH_HEADER_COMPRESS_LWSP, not just SEARCH_HEADER. X-Git-Tag: 1.2.alpha4~104 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1b1b6b3ad34816eedf674858914ed00880662cae;p=thirdparty%2Fdovecot%2Fcore.git fts: Handle also SEARCH_HEADER_COMPRESS_LWSP, not just SEARCH_HEADER. --HG-- branch : HEAD --- diff --git a/src/plugins/fts/fts-search.c b/src/plugins/fts/fts-search.c index 1c7d7ff9d1..eaa19c898a 100644 --- a/src/plugins/fts/fts-search.c +++ b/src/plugins/fts/fts-search.c @@ -54,6 +54,7 @@ static int fts_search_lookup_arg(struct fts_search_context *fctx, switch (arg->type) { case SEARCH_HEADER: + case SEARCH_HEADER_COMPRESS_LWSP: /* we can filter out messages that don't have the header, but we can't trust definite results list. */ flags = FTS_LOOKUP_FLAG_HEADER; @@ -201,9 +202,11 @@ static bool arg_is_better(const struct mail_search_arg *new_arg, /* prefer not to use headers. they have a larger possibility of having lots of identical strings */ - if (old_arg->type == SEARCH_HEADER) + if (old_arg->type == SEARCH_HEADER || + old_arg->type == SEARCH_HEADER_COMPRESS_LWSP) return TRUE; - else if (new_arg->type == SEARCH_HEADER) + else if (new_arg->type == SEARCH_HEADER || + new_arg->type == SEARCH_HEADER_COMPRESS_LWSP) return FALSE; return strlen(new_arg->value.str) > strlen(old_arg->value.str); @@ -224,6 +227,7 @@ fts_search_args_find_best(struct mail_search_arg *args, case SEARCH_BODY: case SEARCH_TEXT: case SEARCH_HEADER: + case SEARCH_HEADER_COMPRESS_LWSP: if (arg_is_better(args, *best_substr_arg)) *best_substr_arg = args; break;