From: Timo Sirainen Date: Fri, 6 Jun 2008 17:07:45 +0000 (+0300) Subject: sort index: Messages without sort_id weren't sorted correctly on secondary X-Git-Tag: 1.2.alpha1~363^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3e937db1db323cc690bbadb552c17e8492589b8b;p=thirdparty%2Fdovecot%2Fcore.git sort index: Messages without sort_id weren't sorted correctly on secondary sort conditions. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/index-sort-string.c b/src/lib-storage/index/index-sort-string.c index 96c215284e..1d2d424848 100644 --- a/src/lib-storage/index/index-sort-string.c +++ b/src/lib-storage/index/index-sort-string.c @@ -213,10 +213,17 @@ void index_sort_list_add_string(struct mail_search_sort_program *program, static int sort_node_zero_string_cmp(const void *p1, const void *p2) { + struct sort_string_context *ctx = static_zero_cmp_context; const struct mail_sort_node *n1 = p1, *n2 = p2; + int ret; + + ret = strcmp(ctx->sort_strings[n1->seq], ctx->sort_strings[n2->seq]); + if (ret != 0) + return ret; - return strcmp(static_zero_cmp_context->sort_strings[n1->seq], - static_zero_cmp_context->sort_strings[n2->seq]); + return index_sort_node_cmp_type(ctx->program->temp_mail, + ctx->program->sort_program + 1, + n1->seq, n2->seq); } static void index_sort_zeroes(struct sort_string_context *ctx)