changeset 18626:fddd3dbdf987

fts: Fixed crash when not using lib-fts
author Timo Sirainen <tss@iki.fi>
date Sun, 10 May 2015 12:05:06 +0300
parents 05ee9da60255
children 69630e6048fd
files src/plugins/fts/fts-build-mail.c
diffstat 1 files changed, 20 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/fts/fts-build-mail.c	Sun May 10 11:20:37 2015 +0300
+++ b/src/plugins/fts/fts-build-mail.c	Sun May 10 12:05:06 2015 +0300
@@ -133,6 +133,23 @@
 	return FALSE;
 }
 
+static void
+fts_build_tokenized_hdr_update_lang(struct fts_mail_build_context *ctx,
+				    const struct message_header_line *hdr)
+{
+	/* Headers that don't contain any human language will only be
+	   translated to lowercase - no stemming or other filtering. There's
+	   unfortunately no pefect way of detecting which headers contain
+	   human languages, so we have a list of some hardcoded header names
+	   and we'll also assume that if there's any 8bit content it's a human
+	   language. */
+	if (header_has_language(hdr->name) ||
+	    data_has_8bit(hdr->full_value, hdr->full_value_len))
+		ctx->cur_user_lang = NULL;
+	else
+		ctx->cur_user_lang = fts_user_get_data_lang(ctx->update_ctx->backend->ns->user);
+}
+
 static void fts_build_mail_header(struct fts_mail_build_context *ctx,
 				  const struct message_block *block)
 {
@@ -151,17 +168,9 @@
 	key.part = block->part;
 	key.hdr_name = hdr->name;
 
-	/* Headers that don't contain any human language will only be
-	   translated to lowercase - no stemming or other filtering. There's
-	   unfortunately no pefect way of detecting which headers contain
-	   human languages, so we have a list of some hardcoded header names
-	   and we'll also assume that if there's any 8bit content it's a human
-	   language. */
-	if (header_has_language(key.hdr_name) ||
-	    data_has_8bit(hdr->full_value, hdr->full_value_len))
-		ctx->cur_user_lang = NULL;
-	else
-		ctx->cur_user_lang = fts_user_get_data_lang(ctx->update_ctx->backend->ns->user);
+	if ((ctx->update_ctx->backend->flags &
+	     FTS_BACKEND_FLAG_TOKENIZED_INPUT) != 0)
+		fts_build_tokenized_hdr_update_lang(ctx, hdr);
 
 	if (!fts_backend_update_set_build_key(ctx->update_ctx, &key))
 		return;