diff src/lib-storage/index/index-search.c @ 715:3e952f64b2ec HEAD

Non-envelope-cached header searching wasn't working. Also now search works with messages having 8bit headers, assuming them being in same charset as search key.
author Timo Sirainen <tss@iki.fi>
date Sat, 30 Nov 2002 16:36:20 +0200
parents 1e5c655bad25
children dd574ac271c1
line wrap: on
line diff
--- a/src/lib-storage/index/index-search.c	Sat Nov 30 16:02:24 2002 +0200
+++ b/src/lib-storage/index/index-search.c	Sat Nov 30 16:36:20 2002 +0200
@@ -556,13 +556,12 @@
 	if (!have_headers && !have_body && !have_text)
 		return TRUE;
 
-	if (!imap_msgcache_get_rfc822(search_open_cache(ctx), &inbuf,
-				      have_headers ? NULL : &hdr_size, NULL))
-		return FALSE;
-
 	if (have_headers || have_text) {
 		SearchHeaderContext hdr_ctx;
 
+		if (!imap_msgcache_get_data(search_open_cache(ctx), &inbuf))
+			return FALSE;
+
 		memset(&hdr_ctx, 0, sizeof(hdr_ctx));
 		hdr_ctx.index_context = ctx;
 		hdr_ctx.custom_header = TRUE;
@@ -570,6 +569,10 @@
 
 		message_parse_header(NULL, inbuf, &hdr_size,
 				     search_header, &hdr_ctx);
+	} else {
+		if (!imap_msgcache_get_rfc822(search_open_cache(ctx), &inbuf,
+					      &hdr_size, NULL))
+			return FALSE;
 	}
 
 	if (have_text || have_body) {