data += i;
pattern += i;
- match = IMAP_MATCH_NO;
+ if (*data == '\0' && *data_p != data && data[-1] == ctx->sep &&
+ *pattern != '\0') {
+ /* data="/" pattern="/%..." */
+ match = IMAP_MATCH_CHILDREN;
+ } else {
+ match = IMAP_MATCH_NO;
+ }
while (*pattern == '%') {
pattern++;
{ "foo*bar", "foobar/baz", IMAP_MATCH_CHILDREN | IMAP_MATCH_PARENT },
{ "*foo*", "fobo", IMAP_MATCH_CHILDREN },
{ "%/%/%", "foo/", IMAP_MATCH_CHILDREN },
- { "%/%o/%", "foo/", IMAP_MATCH_NO },
+ { "%/%o/%", "foo/", IMAP_MATCH_CHILDREN },
{ "%/%o/%", "foo", IMAP_MATCH_CHILDREN },
{ "inbox", "inbox", IMAP_MATCH_YES },
{ "inbox", "INBOX", IMAP_MATCH_NO }