static gchar* get_refs_str (GMimeMessage *msg) { const gchar *str; const GMimeReferences *cur; GMimeReferences *mime_refs; gchar *rv; str = g_mime_object_get_header (GMIME_OBJECT(msg), "References"); if (!str) return NULL; mime_refs = g_mime_references_decode (str); for (rv = NULL, cur = mime_refs; cur; cur = g_mime_references_get_next(cur)) { const char* msgid; msgid = g_mime_references_get_message_id (cur); rv = g_strdup_printf ("%s%s%s", rv ? rv : "", rv ? "," : "", msgid); } g_mime_references_free (mime_refs); return rv; }
static JSON_Value *references_to_json(GMimeReferences *references) { if (!references) return NULL; const char *msgid; const GMimeReferences *cur; JSON_Value *references_value = json_value_init_array(); JSON_Array *references_array = json_value_get_array(references_value); for (cur = references; cur; cur = g_mime_references_get_next(cur)) { msgid = g_mime_references_get_message_id (cur); json_array_append_string(references_array, msgid); } return references_value; }