static void each_part (MuMsg *msg, MuMsgPart *part, GSList **attlist) { char *att, *cachefile; GError *err; /* exclude things that don't look like proper attachments, * unless they're images */ if (!mu_msg_part_maybe_attachment(part)) return; err = NULL; cachefile = mu_msg_part_save_temp (msg, MU_MSG_OPTION_OVERWRITE, part->index, &err); if (!cachefile) { print_and_clear_g_error (&err); return; } att = g_strdup_printf ( "(:file-name \"%s\" :mime-type \"%s/%s\")", cachefile, part->type, part->subtype); *attlist = g_slist_append (*attlist, att); g_free (cachefile); }
static void each_part (MuMsg *msg, MuMsgPart *part, PartInfo *pinfo) { char *att, *cachefile, *encfile; GError *err; /* exclude things that don't look like proper attachments, * unless they're images */ if (!mu_msg_part_maybe_attachment(part)) return; err = NULL; cachefile = mu_msg_part_save_temp (msg, pinfo->opts|MU_MSG_OPTION_OVERWRITE, part->index, &err); if (!cachefile) { print_and_clear_g_error (&err); return; } encfile = mu_str_escape_c_literal(cachefile, TRUE); g_free (cachefile); att = g_strdup_printf ( "(:file-name %s :mime-type \"%s/%s\")", encfile, part->type, part->subtype); pinfo->attlist = g_slist_append (pinfo->attlist, att); g_free (encfile); }
static void each_part (MuMsg *msg, MuMsgPart *part, gchar **attach) { char *fname, *tmp; if (!mu_msg_part_maybe_attachment (part)) return; fname = mu_msg_part_get_filename (part, FALSE); if (!fname) return; tmp = *attach; *attach = g_strdup_printf ("%s%s'%s'", *attach ? *attach : "", *attach ? ", " : "", fname); g_free (tmp); }
static void each_part (MuMsg *msg, MuMsgPart *part, PartInfo *pinfo) { char *name, *tmpfile; pinfo->bob = json_builder_begin_object(pinfo->bob); name = mu_msg_part_get_filename (part, TRUE); tmpfile = get_temp_file_maybe (msg, part, pinfo->opts); add_int_member (pinfo->bob, "index", part->index); add_string_member (pinfo->bob, "name", name); if (part->type && part->subtype) { char *mime_type = g_strdup_printf ("%s/%s", part->type, part->subtype); add_string_member (pinfo->bob, "mime-type", mime_type); g_free(mime_type); } add_string_member (pinfo->bob, "temp", tmpfile); add_part_type (pinfo->bob, part->part_type); if (mu_msg_part_maybe_attachment (part)) add_bool_member (pinfo->bob, "attachment", TRUE); add_string_member (pinfo->bob, "cid", mu_msg_part_get_content_id(part)); add_int_member (pinfo->bob, "size", part->size); add_part_crypto (pinfo->bob, part, pinfo); g_free (name); g_free (tmpfile); pinfo->bob = json_builder_end_object(pinfo->bob); }