#define SW (option(OPTMBOXPANE)?SidebarWidth:0)
-BODY *mutt_new_body (void)
-{
- BODY *p = p_new(BODY, 1);
-
- p->disposition = DISPATTACH;
- p->use_disp = 1;
- return (p);
-}
-
-
/* Modified by blong to accept a "suggestion" for file name. If
* that file exists, then construct one with unique name but
* keep any extension. This might fail, I guess.
char tmp[_POSIX_PATH_MAX];
BODY *b;
- PARAMETER *par, **ppar;
+ parameter_t *par, **ppar;
short use_disp;
if (mutt_save_attachment (fp, src, tmp, 0, NULL) == -1)
return -1;
- *tgt = mutt_new_body ();
+ *tgt = body_new();
b = *tgt;
memcpy (b, src, sizeof (BODY));
return 0;
}
-
-static void body_wipe(BODY *b)
-{
- if (b->parameter)
- parameter_list_wipe(&b->parameter);
-
- if (b->unlink && b->filename) {
- unlink (b->filename);
- }
-
- p_delete(&b->filename);
- p_delete(&b->content);
- p_delete(&b->xtype);
- p_delete(&b->subtype);
- p_delete(&b->description);
- p_delete(&b->form_name);
-
- if (b->hdr) {
- /* Don't free twice (b->hdr->content = b->parts) */
- b->hdr->content = NULL;
- header_delete(&b->hdr);
- }
-
- if (b->parts)
- mutt_free_body(&b->parts);
-}
-
-DO_DELETE(BODY, body);
-
-void mutt_free_body(BODY **p)
-{
- while (*p) {
- BODY *b = *p;
- *p = b->next;
-
- body_delete(&b);
- }
-}
-
HEADER *mutt_dup_header (HEADER * h)
{
HEADER *hnew;
return (s);
}
-char *mutt_get_parameter (const char *s, PARAMETER * p)
-{
- while (p) {
- if (!ascii_strcasecmp(s, p->attribute))
- return (p->value);
- p = p->next;
- }
-
- return NULL;
-}
-
-void mutt_set_parameter (const char *attribute, const char *value,
- PARAMETER ** p)
-{
- PARAMETER *q;
-
- if (!value) {
- mutt_delete_parameter (attribute, p);
- return;
- }
-
- for (q = *p; q; q = q->next) {
- if (ascii_strcasecmp (attribute, q->attribute) == 0) {
- m_strreplace(&q->value, value);
- return;
- }
- }
-
- q = parameter_new();
- q->attribute = m_strdup(attribute);
- q->value = m_strdup(value);
- parameter_list_push(p, q);
-}
-
-void mutt_delete_parameter (const char *attribute, PARAMETER ** p)
-{
- while (*p) {
- if (!ascii_strcasecmp(attribute, (*p)->attribute)) {
- PARAMETER *q = parameter_list_pop(p);
- parameter_delete(&q);
- return;
- }
-
- p = &(*p)->next;
- }
-}
-
/* returns 1 if Mutt can't display this type of data, 0 otherwise */
int mutt_needs_mailcap (BODY * m)
{
}
}
-int mutt_cmp_param (const PARAMETER * p1, const PARAMETER * p2)
-{
- while (p1 && p2) {
- if (m_strcmp(p1->attribute, p2->attribute) ||
- m_strcmp(p1->value, p2->value))
- return (0);
-
- p1 = p1->next;
- p2 = p2->next;
- }
- if (p1 || p2)
- return (0);
-
- return (1);
-}
-
int mutt_cmp_body (const BODY * b1, const BODY * b2)
{
if (b1->type != b2->type ||
b1->encoding != b2->encoding ||
m_strcmp(b1->subtype, b2->subtype) ||
m_strcmp(b1->description, b2->description) ||
- !mutt_cmp_param (b1->parameter, b2->parameter) ||
+ !parameter_equal(b1->parameter, b2->parameter) ||
b1->length != b2->length)
return (0);
return (1);