aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-filter-search.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-filter-search.c')
-rw-r--r--camel/camel-filter-search.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/camel/camel-filter-search.c b/camel/camel-filter-search.c
index 9cbb87cce6..d6d60e2cf3 100644
--- a/camel/camel-filter-search.c
+++ b/camel/camel-filter-search.c
@@ -438,7 +438,18 @@ get_size (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessageS
return r;
}
-gboolean
+
+/**
+ * camel_filter_search_match:
+ * @message:
+ * @info:
+ * @source:
+ * @expression:
+ * @ex:
+ *
+ * Returns one of CAMEL_SEARCH_MATCHED, CAMEL_SEARCH_NOMATCH, or CAMEL_SEARCH_ERROR.
+ **/
+int
camel_filter_search_match (CamelMimeMessage *message, CamelMessageInfo *info,
const char *source, const char *expression, CamelException *ex)
{
@@ -478,9 +489,9 @@ camel_filter_search_match (CamelMimeMessage *message, CamelMessageInfo *info,
}
if (result->type == ESEXP_RES_BOOL)
- retval = result->value.bool;
+ retval = result->value.bool ? CAMEL_SEARCH_MATCHED : CAMEL_SEARCH_NOMATCH;
else
- retval = FALSE;
+ retval = CAMEL_SEARCH_NOMATCH;
e_sexp_result_free (sexp, result);
e_sexp_unref (sexp);
@@ -489,5 +500,5 @@ camel_filter_search_match (CamelMimeMessage *message, CamelMessageInfo *info,
error:
e_sexp_unref (sexp);
- return FALSE;
+ return CAMEL_SEARCH_ERROR;
}