}
}
- if (! (cts = (CT *) calloc ((size_t) 2, sizeof *cts))) {
+ if (! (cts = (CT *) mh_xcalloc ((size_t) 2, sizeof *cts))) {
adios (NULL, "out of memory");
}
ctp = cts;
done (1);
seq_setprev (mp); /* set the previous-sequence */
- if (! (cts = (CT *) calloc ((size_t) (mp->numsel + 1), sizeof *cts))) {
+ if (! (cts =
+ (CT *) mh_xcalloc ((size_t) (mp->numsel + 1), sizeof *cts))) {
adios (NULL, "out of memory");
}
ctp = cts;
case BODY:
fputs ("\n", fpout);
/* buf will have a terminating NULL, skip it. */
- fwrite (buf, 1, bufsz-1, fpout);
+ if ((int) fwrite (buf, 1, bufsz-1, fpout) < bufsz-1) {
+ advise (file, "fwrite");
+ }
continue;
case FILEEOF:
case CT_MESSAGE:
if ((*ct)->c_subtype == MESSAGE_EXTERNAL) {
- struct exbody *e;
+ struct exbody *e = (struct exbody *) (*ct)->c_ctparams;
- e = (struct exbody *) (*ct)->c_ctparams;
status = ensure_text_plain (&e->eb_content, *ct, message_mods,
replacetextplain);
}
divide_part (CT ct) {
CT new_part;
- if ((new_part = (CT) calloc (1, sizeof *new_part)) == NULL)
+ if ((new_part = (CT) mh_xcalloc (1, sizeof *new_part)) == NULL)
adios (NULL, "out of memory");
/* Just copy over what is needed for decoding. c_vrsn and
/* Identifies 7bit or 8bit content based on charset. */
static int
charset_encoding (CT ct) {
- int encoding =
- strcasecmp (content_charset (ct), "US-ASCII") ? CE_8BIT : CE_7BIT;
+ char *ct_charset = content_charset (ct);
+ int encoding = strcasecmp (ct_charset, "US-ASCII") ? CE_8BIT : CE_7BIT;
+
+ free (ct_charset);
return encoding;
}
struct multipart *m;
const struct str2init *ctinit;
- if ((ct = (CT) calloc (1, sizeof *ct)) == NULL)
+ if ((ct = (CT) mh_xcalloc (1, sizeof *ct)) == NULL)
adios (NULL, "out of memory");
/* Set up the multipart/alternative part. These fields of *ct were
- initialized to 0 by calloc():
+ initialized to 0 by mh_xcalloc():
c_fp, c_unlink, c_begin, c_end,
c_vrsn, c_ctline, c_celine,
c_id, c_descr, c_dispo, c_partno,
p->mp_next->mp_next = NULL;
p->mp_next->mp_part = first_alt;
- if ((m = (struct multipart *) calloc (1, sizeof (struct multipart))) ==
+ if ((m = (struct multipart *) mh_xcalloc (1, sizeof (struct multipart))) ==
NULL)
adios (NULL, "out of memory");
m->mp_start = concat (boundary, "\n", NULL);
m->mp_stop = concat (boundary, "--\n", NULL);
m->mp_parts = p;
- ct->c_ctparams = (void *) m;
+ ct->c_ctparams = m;
free (boundary);
case CT_MESSAGE:
if (ct->c_subtype == MESSAGE_EXTERNAL) {
- struct exbody *e;
+ struct exbody *e = (struct exbody *) ct->c_ctparams;
- e = (struct exbody *) ct->c_ctparams;
status = decode_text_parts (e->eb_content, encoding, message_mods);
}
break;
}
}
+ free (charset);
+
return status;
}
status = convert_charset (ct, dest_charset, message_mods);
if (status == OK) {
if (verbosw) {
+ char *ct_charset = content_charset (ct);
+
report (NULL, ct->c_partno, ct->c_file,
- "convert %s to %s",
- content_charset(ct), dest_charset);
+ "convert %s to %s", ct_charset, dest_charset);
+ free (ct_charset);
}
} else {
+ char *ct_charset = content_charset (ct);
+
report ("iconv", ct->c_partno, ct->c_file,
- "failed to convert %s to %s",
- content_charset(ct), dest_charset);
+ "failed to convert %s to %s", ct_charset, dest_charset);
+ free (ct_charset);
}
}
break;
case CT_MESSAGE:
if (ct->c_subtype == MESSAGE_EXTERNAL) {
- struct exbody *e;
+ struct exbody *e = (struct exbody *) ct->c_ctparams;
- e = (struct exbody *) ct->c_ctparams;
status =
convert_charsets (e->eb_content, dest_charset, message_mods);
}