Mercurial > dovecot > core-2.2
changeset 13106:87430246c3e1
lib-mail: message_search_init() now converts search key to decomposed titlecase.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 26 Jul 2011 13:52:20 +0300 |
parents | e6eac5f1e21b |
children | 254bcfcb64b1 |
files | src/lib-mail/message-search.c src/lib-mail/message-search.h |
diffstat | 2 files changed, 13 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/message-search.c Tue Jul 26 13:38:35 2011 +0300 +++ b/src/lib-mail/message-search.c Tue Jul 26 13:52:20 2011 +0300 @@ -5,6 +5,7 @@ #include "istream.h" #include "str.h" #include "str-find.h" +#include "unichar.h" #include "rfc822-parser.h" #include "message-decoder.h" #include "message-parser.h" @@ -20,7 +21,7 @@ }; struct message_search_context * -message_search_init(const char *key_utf8_dtc, +message_search_init(const char *key_utf8, enum message_search_flags flags) { struct message_search_context *ctx; @@ -28,7 +29,15 @@ ctx = i_new(struct message_search_context, 1); ctx->flags = flags; ctx->decoder = message_decoder_init(MESSAGE_DECODER_FLAG_DTCASE); - ctx->str_find_ctx = str_find_init(default_pool, key_utf8_dtc); + + T_BEGIN { + string_t *dtc = t_str_new(128); + + if (uni_utf8_to_decomposed_titlecase(key_utf8, strlen(key_utf8), + dtc) < 0) + i_panic("message_search_init(): key not utf8"); + ctx->str_find_ctx = str_find_init(default_pool, str_c(dtc)); + } T_END; return ctx; }
--- a/src/lib-mail/message-search.h Tue Jul 26 13:38:35 2011 +0300 +++ b/src/lib-mail/message-search.h Tue Jul 26 13:52:20 2011 +0300 @@ -10,10 +10,9 @@ MESSAGE_SEARCH_FLAG_SKIP_HEADERS = 0x01 }; -/* The key must be given in UTF-8 charset and decomposed titlecase - (CHARSET_FLAG_DECOMP_TITLECASE) */ +/* The key must be given in UTF-8 charset */ struct message_search_context * -message_search_init(const char *key_utf8_dtc, +message_search_init(const char *key_utf8, enum message_search_flags flags); void message_search_deinit(struct message_search_context **ctx);