aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-filter-search.c
diff options
context:
space:
mode:
authorSam Creasey <sammy@oh.verio.com>2001-07-03 10:54:06 +0800
committerSam Creasy <sammy@src.gnome.org>2001-07-03 10:54:06 +0800
commit7cd517dc60d56c2203d82faffaf40dc5cc7aed5a (patch)
treeb44e82ecd9cba6608dfffbe36c9d974858218a05 /camel/camel-filter-search.c
parent29700d38aeb9a90caaed499ac010f7632e9587dc (diff)
downloadgsoc2013-evolution-7cd517dc60d56c2203d82faffaf40dc5cc7aed5a.tar.gz
gsoc2013-evolution-7cd517dc60d56c2203d82faffaf40dc5cc7aed5a.tar.zst
gsoc2013-evolution-7cd517dc60d56c2203d82faffaf40dc5cc7aed5a.zip
Implemented nntp_folder_search_by_expression and nntp_folder_search_free.
2001-07-02 Sam Creasey <sammy@oh.verio.com> * providers/nntp/camel-nntp-folder.c: Implemented nntp_folder_search_by_expression and nntp_folder_search_free. Basic search functionality e.g. unread marking now works for NNTP folders. * camel_filter_search.c (get_size): Added get-size sexp directive to get the size of a message for filters. * providers/nntp/camel-nntp-folder.c (camel_nntp_folder_new): Always check with the NNTP server after summary load -- this function now always expires old summary entries and syncs with the news server. * providers/nntp/camel-nntp-utils.c (camel_nntp_get_headers): Only fetch headers for articles not already logged in the summary file. * providers/nntp/camel-nntp-grouplist.c (camel_nntp_get_grouplist_from_*): change from g_list_append() to g_list_prepend() + g_list_reverse. Traversing 40,000 element linked lists sucks. * providers/nntp/camel-nntp-store.c (camel_nntp_command): Should the NNTP connection die with CAMEL_EXCEPTION_SERVICE_NOT_CONNECTED, make a single retry attempt. Timing out the NNTP link is less painful this way. svn path=/trunk/; revision=10716
Diffstat (limited to 'camel/camel-filter-search.c')
-rw-r--r--camel/camel-filter-search.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/camel/camel-filter-search.c b/camel/camel-filter-search.c
index 5396550d8f..b4651f67fc 100644
--- a/camel/camel-filter-search.c
+++ b/camel/camel-filter-search.c
@@ -73,6 +73,7 @@ static ESExpResult *get_received_date (struct _ESExp *f, int argc, struct _ESExp
static ESExpResult *get_current_date (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessageSearch *fms);
static ESExpResult *get_score (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessageSearch *fms);
static ESExpResult *get_source (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessageSearch *fms);
+static ESExpResult *get_size (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessageSearch *fms);
/* builtin functions */
static struct {
@@ -100,6 +101,7 @@ static struct {
{ "get-current-date", (ESExpFunc *) get_current_date, 0 },
{ "get-score", (ESExpFunc *) get_score, 0 },
{ "get-source", (ESExpFunc *) get_source, 0 },
+ { "get-size", (ESExpFunc *) get_size, 0 },
};
static ESExpResult *
@@ -407,6 +409,18 @@ get_source (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessag
return r;
}
+/* remember, the size comparisons are done at Kbytes */
+static ESExpResult *
+get_size (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessageSearch *fms)
+{
+ ESExpResult *r;
+
+ r = e_sexp_result_new(f, ESEXP_RES_INT);
+ r->value.number = fms->info->size / 1024;
+
+ return r;
+}
+
gboolean
camel_filter_search_match (CamelMimeMessage *message, CamelMessageInfo *info,
const char *source, const char *expression, CamelException *ex)