LIBETPAN_EXPORT struct mailimap_section * mailimap_section_new_part_mime(struct mailimap_section_part * part) { struct mailimap_section_spec * spec; struct mailimap_section * section; struct mailimap_section_text * text; text = mailimap_section_text_new(MAILIMAP_SECTION_TEXT_MIME, NULL); if (text == NULL) return NULL; spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_PART, NULL, part, text); if (spec == NULL) { mailimap_section_text_free(text); return NULL; } section = mailimap_section_new(spec); if (section == NULL) { /* detach section_part so that it will not be freed */ spec->sec_data.sec_part = NULL; mailimap_section_spec_free(spec); return NULL; } return section; }
static struct mailimap_section * mailimap_section_new_part_msgtext(struct mailimap_section_part * part, struct mailimap_section_msgtext * msgtext) { struct mailimap_section_spec * spec; struct mailimap_section * section; struct mailimap_section_text * text; text = mailimap_section_text_new(MAILIMAP_SECTION_TEXT_SECTION_MSGTEXT, msgtext); if (text == NULL) return NULL; spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_PART, NULL, part, text); if (spec == NULL) { /* detach section_msgtext so that it will not be freed */ text->sec_msgtext = NULL; mailimap_section_text_free(text); return NULL; } section = mailimap_section_new(spec); if (section == NULL) { /* detach section_msgtext so that it will not be freed */ text->sec_msgtext = NULL; mailimap_section_spec_free(spec); return NULL; } return section; }
static struct mailimap_section * mailimap_section_new_msgtext(struct mailimap_section_msgtext * msgtext) { struct mailimap_section_spec * spec; struct mailimap_section * section; spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_MSGTEXT, msgtext, NULL, NULL); if (spec == NULL) return NULL; section = mailimap_section_new(spec); if (section == NULL) { /* detach section_msgtext so that it will not be freed */ spec->sec_data.sec_msgtext = NULL; mailimap_section_spec_free(spec); return NULL; } return section; }
struct mailimap_section * mailimap_section_new_part(struct mailimap_section_part * part) { struct mailimap_section_spec * spec; struct mailimap_section * section; spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_PART, NULL, part, NULL); if (spec == NULL) return NULL; section = mailimap_section_new(spec); if (section == NULL) { /* detach section_part so that it will not be freed */ spec->sec_data.sec_part = NULL; mailimap_section_spec_free(spec); return NULL; } return section; }