* mu-msg-sexp: get the thread info too

This commit is contained in:
Dirk-Jan C. Binnema
2011-08-20 11:57:13 +03:00
parent 9e776cd7c7
commit 7c4d3c6539

View File

@ -20,6 +20,7 @@
#include "mu-str.h"
#include "mu-msg.h"
#include "mu-msg-iter.h"
#include "mu-msg-part.h"
#include "mu-maildir.h"
@ -90,6 +91,7 @@ get_name_addr_pair (MuMsgContact *c)
static void
add_prefix_maybe (GString *gstr, gboolean *field, const char *prefix)
{
/* if there's nothing in the field yet, add the prefix */
if (!*field)
g_string_append (gstr, prefix);
@ -104,6 +106,8 @@ each_contact (MuMsgContact *c, ContactData *cdata)
ctype = mu_msg_contact_type (c);
/* if the current type is not the previous type, close the
* previous first */
if (cdata->prev_ctype != ctype && cdata->prev_ctype != (unsigned)-1)
g_string_append (cdata->gstr, ")\n");
@ -241,8 +245,22 @@ append_sexp_message_file_attr (GString *gstr, MuMsg *msg)
mu_msg_get_body_html(msg));
}
static void
append_sexp_thread_info (GString *gstr, const MuMsgIterThreadInfo *ti)
{
g_string_append_printf
(gstr, "\t:thread (:path \"%s\" :root %s :first-child %s "
":empty-parent %s :duplicate %s)\n",
ti->threadpath,
ti->prop & MU_MSG_ITER_THREAD_PROP_ROOT ? "t" : "nil",
ti->prop & MU_MSG_ITER_THREAD_PROP_FIRST_CHILD ? "t" : "nil",
ti->prop & MU_MSG_ITER_THREAD_PROP_EMPTY_PARENT ? "t" : "nil",
ti->prop & MU_MSG_ITER_THREAD_PROP_DUP ? "t" : "nil");
}
char*
mu_msg_to_sexp (MuMsg *msg, gboolean dbonly)
mu_msg_to_sexp (MuMsg *msg, const MuMsgIterThreadInfo *ti, gboolean dbonly)
{
GString *gstr;
time_t t;
@ -251,6 +269,10 @@ mu_msg_to_sexp (MuMsg *msg, gboolean dbonly)
g_string_append (gstr, "(\n");
append_sexp_contacts (gstr, msg);
if (ti)
append_sexp_thread_info (gstr, ti);
append_sexp_attr (gstr,
"subject", mu_msg_get_subject (msg));