dovecot-2.2: lib-storage: Code cleanup - moved BODY/TEXT "" opti...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Dec 8 11:11:11 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/a776ee107aa2
changeset: 19488:a776ee107aa2
user: Timo Sirainen <tss at iki.fi>
date: Tue Dec 08 12:55:40 2015 +0200
description:
lib-storage: Code cleanup - moved BODY/TEXT "" optimization to mail_search_args_simplify()
diffstat:
src/lib-storage/mail-search-args-simplify.c | 11 +++++++++--
src/lib-storage/mail-search-register-imap.c | 6 ------
src/lib-storage/test-mail-search-args-simplify.c | 10 ++++++++++
3 files changed, 19 insertions(+), 8 deletions(-)
diffs (60 lines):
diff -r ba0dd0dcc223 -r a776ee107aa2 src/lib-storage/mail-search-args-simplify.c
--- a/src/lib-storage/mail-search-args-simplify.c Tue Dec 08 12:24:42 2015 +0200
+++ b/src/lib-storage/mail-search-args-simplify.c Tue Dec 08 12:55:40 2015 +0200
@@ -540,11 +540,18 @@
case SEARCH_LARGER:
merged = mail_search_args_merge_size(&ctx, args);
break;
+ case SEARCH_BODY:
+ case SEARCH_TEXT:
+ if (args->value.str[0] == '\0') {
+ /* BODY "" and TEXT "" matches everything */
+ args->type = SEARCH_ALL;
+ ctx.removals = TRUE;
+ break;
+ }
+ /* fall through */
case SEARCH_HEADER:
case SEARCH_HEADER_ADDRESS:
case SEARCH_HEADER_COMPRESS_LWSP:
- case SEARCH_BODY:
- case SEARCH_TEXT:
merged = mail_search_args_merge_text(&ctx, args);
break;
default:
diff -r ba0dd0dcc223 -r a776ee107aa2 src/lib-storage/mail-search-register-imap.c
--- a/src/lib-storage/mail-search-register-imap.c Tue Dec 08 12:24:42 2015 +0200
+++ b/src/lib-storage/mail-search-register-imap.c Tue Dec 08 12:55:40 2015 +0200
@@ -277,12 +277,6 @@
if (mail_search_build_get_utf8(ctx, sarg->value.str,
&sarg->value.str) < 0)
return NULL;
-
- if (sarg->value.str[0] == '\0') {
- /* optimization: BODY "" matches everything
- (but do this only after checking charset and key are ok) */
- return mail_search_build_new(ctx, SEARCH_ALL);
- }
return sarg;
}
diff -r ba0dd0dcc223 -r a776ee107aa2 src/lib-storage/test-mail-search-args-simplify.c
--- a/src/lib-storage/test-mail-search-args-simplify.c Tue Dec 08 12:24:42 2015 +0200
+++ b/src/lib-storage/test-mail-search-args-simplify.c Tue Dec 08 12:55:40 2015 +0200
@@ -97,6 +97,16 @@
{ "TEXT foo BODY foo", "TEXT foo BODY foo" },
{ "OR ( TEXT foo OR TEXT foo TEXT foo ) ( TEXT foo ( TEXT foo ) )", "TEXT foo" },
+ /* value="" tests */
+ { "HEADER foo ", "HEADER FOO \"\"" },
+ { "SUBJECT ", "SUBJECT \"\"" },
+ { "BODY ", "ALL" },
+ { "TEXT ", "ALL" },
+ { "HEADER foo .", "HEADER FOO ." },
+ { "SUBJECT .", "SUBJECT ." },
+ { "BODY .", "BODY ." },
+ { "TEXT .", "TEXT ." },
+
/* OR: drop redundant args */
{ "OR ( TEXT common1 TEXT unique1 ) TEXT common1", "TEXT common1" },
{ "OR ( TEXT unique1 TEXT common1 ) TEXT common1", "TEXT common1" },
More information about the dovecot-cvs
mailing list