From bfe74d1d114a1e7657bb53394223935a3e91a170 Mon Sep 17 00:00:00 2001 From: djcb Date: Sun, 16 Jun 2013 23:02:19 +0300 Subject: [PATCH] * mu: add the backend for freq information for contacts --- lib/mu-contacts.c | 2 +- lib/mu-contacts.h | 8 +++++--- mu/mu-cmd-cfind.c | 2 +- mu/mu-cmd-server.c | 11 +++++++---- mu/tests/test-mu-contacts.c | 5 +++-- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/lib/mu-contacts.c b/lib/mu-contacts.c index a03908af..4d7d5fd4 100644 --- a/lib/mu-contacts.c +++ b/lib/mu-contacts.c @@ -338,7 +338,7 @@ each_contact (const char *group, ContactInfo *ci, EachContactData *ecdata) } ecdata->_func (ci->_email, ci->_name, ci->_personal, - ci->_tstamp, ecdata->_user_data); + ci->_tstamp, ci->_freq, ecdata->_user_data); ++ecdata->_num; } diff --git a/lib/mu-contacts.h b/lib/mu-contacts.h index bc69e72a..ba282afb 100644 --- a/lib/mu-contacts.h +++ b/lib/mu-contacts.h @@ -97,13 +97,15 @@ size_t mu_contacts_count (MuContacts *self); /** * call called for mu_contacts_foreach; returns the e-mail address, - * name (which may be NULL) , whether the message is 'personal', and - * the timestamp for the address + * name (which may be NULL) , whether the message is 'personal', the + * timestamp for the address (when it was last seen), and the + * frequency (in how many message did this contact participate) * */ typedef void (*MuContactsForeachFunc) (const char *email, const char *name, gboolean personal, - time_t tstamp, gpointer user_data); + time_t tstamp, unsigned freq, + gpointer user_data); /** * call a function for either each contact, or each contact satisfying diff --git a/mu/mu-cmd-cfind.c b/mu/mu-cmd-cfind.c index 1ce3815b..86fe8702 100644 --- a/mu/mu-cmd-cfind.c +++ b/mu/mu-cmd-cfind.c @@ -294,7 +294,7 @@ typedef struct _ECData ECData; static void each_contact (const char *email, const char *name, gboolean personal, - time_t tstamp, ECData *ecdata) + time_t tstamp, unsigned freq, ECData *ecdata) { if (ecdata->personal && !personal) return; diff --git a/mu/mu-cmd-server.c b/mu/mu-cmd-server.c index 7356747f..286ae3b2 100644 --- a/mu/mu-cmd-server.c +++ b/mu/mu-cmd-server.c @@ -547,7 +547,7 @@ typedef struct _SexpData SexpData; static void each_contact_sexp (const char *email, const char *name, gboolean personal, - time_t tstamp, SexpData *sdata) + time_t tstamp, unsigned freq, SexpData *sdata) { char *escmail; @@ -569,11 +569,14 @@ each_contact_sexp (const char *email, const char *name, gboolean personal, if (name) { char *escname; escname = mu_str_escape_c_literal (name, TRUE); - g_string_append_printf (sdata->gstr, "(:name %s :mail %s)\n", - escname, escmail); + g_string_append_printf (sdata->gstr, + "(:name %s :mail %s :tstamp %u :freq %u)\n", + escname, escmail, (unsigned)tstamp, freq); g_free (escname); } else - g_string_append_printf (sdata->gstr, "(:mail %s)\n", escmail); + g_string_append_printf (sdata->gstr, + "(:mail %s :tstamp %u :freq %u)\n", + escmail, (unsigned)tstamp, freq); g_free (escmail); } diff --git a/mu/tests/test-mu-contacts.c b/mu/tests/test-mu-contacts.c index 4e1c6826..5fbec2d9 100644 --- a/mu/tests/test-mu-contacts.c +++ b/mu/tests/test-mu-contacts.c @@ -65,7 +65,8 @@ struct _Contact { typedef struct _Contact Contact; static Contact* -contact_new (const char *email, const char *name, gboolean personal, size_t tstamp) +contact_new (const char *email, const char *name, + gboolean personal, size_t tstamp) { Contact *contact; @@ -92,7 +93,7 @@ contact_destroy (Contact *contact) static void each_contact (const char *email, const char *name, gboolean personal, - time_t tstamp, GSList **lst) + time_t tstamp, unsigned freq, GSList **lst) { Contact *contact;