Mercurial > dovecot > core-2.2
changeset 12886:1ff458ba2e4b
lib-storage: Request sort program's all fields, not just the first one.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 04 Apr 2011 16:08:50 +0300 |
parents | 2c04c3dcd544 |
children | 352999078d83 |
files | src/lib-storage/index/index-search.c |
diffstat | 1 files changed, 28 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-search.c Mon Apr 04 16:02:05 2011 +0300 +++ b/src/lib-storage/index/index-search.c Mon Apr 04 16:08:50 2011 +0300 @@ -1048,32 +1048,35 @@ *headers_ctx_r = NULL; t_array_init(&headers, 8); - header = NULL; - switch (sort_program[0] & MAIL_SORT_MASK) { - case MAIL_SORT_ARRIVAL: - *wanted_fields_r |= MAIL_FETCH_RECEIVED_DATE; - break; - case MAIL_SORT_CC: - header = "Cc"; - break; - case MAIL_SORT_DATE: - *wanted_fields_r |= MAIL_FETCH_DATE; - break; - case MAIL_SORT_FROM: - header = "From"; - break; - case MAIL_SORT_SIZE: - *wanted_fields_r |= MAIL_FETCH_VIRTUAL_SIZE; - break; - case MAIL_SORT_SUBJECT: - header = "Subject"; - break; - case MAIL_SORT_TO: - header = "To"; - break; + for (i = 0; sort_program[i] != MAIL_SORT_END; i++) { + header = NULL; + + switch (sort_program[i] & MAIL_SORT_MASK) { + case MAIL_SORT_ARRIVAL: + *wanted_fields_r |= MAIL_FETCH_RECEIVED_DATE; + break; + case MAIL_SORT_CC: + header = "Cc"; + break; + case MAIL_SORT_DATE: + *wanted_fields_r |= MAIL_FETCH_DATE; + break; + case MAIL_SORT_FROM: + header = "From"; + break; + case MAIL_SORT_SIZE: + *wanted_fields_r |= MAIL_FETCH_VIRTUAL_SIZE; + break; + case MAIL_SORT_SUBJECT: + header = "Subject"; + break; + case MAIL_SORT_TO: + header = "To"; + break; + } + if (header != NULL) + array_append(&headers, &header, 1); } - if (header != NULL) - array_append(&headers, &header, 1); if (wanted_headers != NULL) { for (i = 0; wanted_headers->name[i] != NULL; i++)