diff src/lib-storage/mail-search.h @ 1069:8024a2cdc406 HEAD

Several search fixes, mostly related to matching multiple conditions.
author Timo Sirainen <tss@iki.fi>
date Sat, 01 Feb 2003 13:24:17 +0200
parents 8028c4dcf38f
children 8920600a8cfc
line wrap: on
line diff
--- a/src/lib-storage/mail-search.h	Sat Feb 01 12:29:17 2003 +0200
+++ b/src/lib-storage/mail-search.h	Sat Feb 01 13:24:17 2003 +0200
@@ -61,9 +61,15 @@
 	const char *hdr_field_name; /* for SEARCH_HEADER */
 	unsigned int not:1;
 
-	int result;
+	int result; /* -1 = unknown, 0 = unmatched, 1 = matched */
 };
 
+#define ARG_SET_RESULT(arg, res) \
+	STMT_START { \
+		(arg)->result = !(arg)->not ? (res) : \
+			(res) == -1 ? -1 : !(res); \
+	} STMT_END
+
 typedef void (*mail_search_foreach_callback_t)(struct mail_search_arg *arg,
 					       void *context);
 
@@ -71,7 +77,7 @@
 void mail_search_args_reset(struct mail_search_arg *args);
 
 /* goes through arguments in list that don't have a result yet.
-   Returns 1 = search matched, -1 = search unmatched, 0 = don't know yet */
+   Returns 1 = search matched, 0 = search unmatched, -1 = don't know yet */
 int mail_search_args_foreach(struct mail_search_arg *args,
 			     mail_search_foreach_callback_t callback,
 			     void *context);