# HG changeset patch # User Timo Sirainen # Date 1190546513 -10800 # Node ID 33480577814e2ac6e1c39cd6a4a721cda59ebdb7 # Parent 2eff72b212fe6c1e59f8ce4efa686f97322c96e8 Merge also unnecessary sub-ORs. diff -r 2eff72b212fe -r 33480577814e src/lib-storage/index/index-search.c --- a/src/lib-storage/index/index-search.c Sun Sep 23 14:16:10 2007 +0300 +++ b/src/lib-storage/index/index-search.c Sun Sep 23 14:21:53 2007 +0300 @@ -823,8 +823,10 @@ sub->not = !sub->not; } - if (args->type == SEARCH_SUB && parent_and) { - /* p and (q and ..) == p and q and .. */ + if ((args->type == SEARCH_SUB && parent_and) || + (args->type == SEARCH_OR && !parent_and)) { + /* p and (q and ..) == p and q and .. + p or (q or ..) == p or q or .. */ sub = args->value.subargs; for (; sub->next != NULL; sub = sub->next) ; sub->next = args->next;