enum fts_backend_flags {
/* Backend supports indexing binary MIME parts */
- FTS_BACKEND_FLAG_BINARY_MIME_PARTS = 0x01
+ FTS_BACKEND_FLAG_BINARY_MIME_PARTS = 0x01,
+ /* Send built text to backend as decomposed titlecase rather than
+ preserving original case */
+ FTS_BACKEND_FLAG_BUILD_DTCASE = 0x02
};
struct fts_backend {
int fts_build_mail(struct fts_storage_build_context *ctx, struct mail *mail)
{
- enum message_decoder_flags decoder_flags = MESSAGE_DECODER_FLAG_DTCASE;
+ enum message_decoder_flags decoder_flags = 0;
struct istream *input;
struct message_parser_ctx *parser;
struct message_decoder_context *decoder;
MESSAGE_HEADER_PARSER_FLAG_CLEAN_ONELINE,
0);
-
+ if (ctx->dtcase)
+ decoder_flags |= MESSAGE_DECODER_FLAG_DTCASE;
if (ctx->binary_mime_parts)
decoder_flags |= MESSAGE_DECODER_FLAG_RETURN_BINARY;
decoder = message_decoder_init(decoder_flags);
(*build_ctx_r)->box = box;
(*build_ctx_r)->v = *v;
+ (*build_ctx_r)->dtcase =
+ (backend->flags & FTS_BACKEND_FLAG_BUILD_DTCASE) != 0;
(*build_ctx_r)->binary_mime_parts =
(backend->flags & FTS_BACKEND_FLAG_BINARY_MIME_PARTS) != 0;
return 1;