extern int bogus_mp_content; /* flag from InitMultiPart */
/* flags to/from parse_header_attrs */
extern int suppress_extraneous_trailing_semicolon_warning;
-extern int extraneous_trailing_semicolon;
/* mhoutsbr.c */
int output_message (CT, char *);
if (! (cp = *argp++) || (*cp == '-' && cp[1])) {
adios (NULL, "missing argument to %s", argp[-2]);
}
- file = *cp == '-' ? add (cp, NULL) : path (cp, TFILE);
+ file = *cp == '-' ? mh_xstrdup (cp) : path (cp, TFILE);
continue;
case OUTFILESW:
if (! (cp = *argp++) || (*cp == '-' && cp[1])) {
adios (NULL, "missing argument to %s", argp[-2]);
}
- outfile = *cp == '-' ? add (cp, NULL) : path (cp, TFILE);
+ outfile = *cp == '-' ? mh_xstrdup (cp) : path (cp, TFILE);
continue;
case RPROCSW:
if (!(rmmproc = *argp++) || *rmmproc == '-') {
} else {
if (*cp == '/') {
/* Interpret a full path as a filename, not a message. */
- file = add (cp, NULL);
+ file = mh_xstrdup (cp);
} else {
app_msgarg (&msgs, cp);
}
get_temp_dir());
} else {
free (file);
- file = add (cp, NULL);
+ file = mh_xstrdup (cp);
cpydata (STDIN_FILENO, fd, "-", file);
}
fix_boundary(), rewrites to a tmp file. */
char *input_filename = maildir
? concat (maildir, "/", (*ctp)->c_file, NULL)
- : add ((*ctp)->c_file, NULL);
+ : mh_xstrdup ((*ctp)->c_file);
int modify_inplace = 0;
int message_mods = 0;
int status = OK;
adios (NULL, "unable to create temporary file in %s",
get_temp_dir());
}
- outfile = add (tempfile, NULL);
+ outfile = mh_xstrdup (tempfile);
} else {
adios (NULL, "missing both input and output filenames\n");
}
if ((fixed = m_mktemp2 (NULL, invo_name, NULL, &(*ct)->c_fp))) {
if (replace_boundary (*ct, fixed, part_boundary) == OK) {
- char *filename = add ((*ct)->c_file, NULL);
+ char *filename = mh_xstrdup ((*ct)->c_file);
CT fixed_ct;
free_content (*ct);
if ((end = rfind_str (buffer, cp - buffer, "\n"))) {
if (strlen (end) > 3 && *end++ == '\n' &&
*end++ == '-' && *end++ == '-') {
- end_boundary = add (end, NULL);
+ end_boundary = mh_xstrdup (end);
break;
}
}
compnum++;
/* get copies of the buffers */
- np = add (name, NULL);
- vp = add (buf, NULL);
+ np = mh_xstrdup (name);
+ vp = mh_xstrdup (buf);
/* if necessary, get rest of field */
while (state == FLDPLUS) {
HF h;
NEW(h);
- h->name = add (hf->name, NULL);
+ h->name = mh_xstrdup (hf->name);
h->hf_encoding = hf->hf_encoding;
h->next = hf->next;
hf->next = h;
free (encoding);
}
- h->value = add (" 8bit\n", NULL);
+ h->value = mh_xstrdup (" 8bit\n");
/* Don't need to warn for multiple C-T-E header
fields, parse_mime() already does that. But
}
}
if (! found_cte) {
- add_header (ct, add (ENCODING_FIELD, NULL), cte);
+ add_header (ct, mh_xstrdup (ENCODING_FIELD), cte);
}
/* Update c_celine. It's used only by mhlist -debug. */
free (ct->c_celine);
- ct->c_celine = add (cte, NULL);
+ ct->c_celine = mh_xstrdup (cte);
return OK;
}
advise (NULL, "unable to create temporary file in %s",
get_temp_dir());
} else {
- tmp_plain_file = add (tempfile, NULL);
+ tmp_plain_file = mh_xstrdup (tempfile);
if (reformat_part (tp_part, tmp_plain_file,
tp_part->c_ctinfo.ci_type,
tp_part->c_ctinfo.ci_subtype,
NEW0(new_part);
/* Just copy over what is needed for decoding. c_vrsn and
c_celine aren't necessary. */
- new_part->c_file = add (ct->c_file, NULL);
+ new_part->c_file = mh_xstrdup (ct->c_file);
new_part->c_begin = ct->c_begin;
new_part->c_end = ct->c_end;
copy_ctinfo (&new_part->c_ctinfo, &ct->c_ctinfo);
/* c_ctline is used by reformat__part(), so it can preserve
anything after the type/subtype. */
- new_part->c_ctline = add (ct->c_ctline, NULL);
+ new_part->c_ctline = mh_xstrdup (ct->c_ctline);
return new_part;
}
copy_ctinfo (CI dest, CI src) {
PM s_pm, d_pm;
- dest->ci_type = src->ci_type ? add (src->ci_type, NULL) : NULL;
- dest->ci_subtype = src->ci_subtype ? add (src->ci_subtype, NULL) : NULL;
+ dest->ci_type = src->ci_type ? mh_xstrdup (src->ci_type) : NULL;
+ dest->ci_subtype = src->ci_subtype ? mh_xstrdup (src->ci_subtype) : NULL;
for (s_pm = src->ci_first_pm; s_pm; s_pm = s_pm->pm_next) {
d_pm = add_param(&dest->ci_first_pm, &dest->ci_last_pm, s_pm->pm_name,
}
}
- dest->ci_comment = src->ci_comment ? add (src->ci_comment, NULL) : NULL;
- dest->ci_magic = src->ci_magic ? add (src->ci_magic, NULL) : NULL;
+ dest->ci_comment = src->ci_comment ? mh_xstrdup (src->ci_comment) : NULL;
+ dest->ci_magic = src->ci_magic ? mh_xstrdup (src->ci_magic) : NULL;
}
if ((tempfile = m_mktemp2 (NULL, invo_name, NULL, NULL)) == NULL) {
adios (NULL, "unable to create temporary file in %s", get_temp_dir());
}
- tmp_decoded = add (tempfile, NULL);
+ tmp_decoded = mh_xstrdup (tempfile);
/* The following call will load ct->c_cefile.ce_file with the tmp
filename of the decoded content. tmp_decoded will contain the
encoded output, get rid of that. */
c_showproc, c_termproc, c_storeproc, c_storage, c_folder
*/
- ct->c_file = add (first_alt->c_file, NULL);
+ ct->c_file = mh_xstrdup (first_alt->c_file);
ct->c_type = type;
ct->c_subtype = subtype;
/* Load c_first_hf and c_last_hf. */
transfer_noncontent_headers (first_alt, ct);
- add_header (ct, add (TYPE_FIELD, NULL), concat (name, "\n", NULL));
+ add_header (ct, mh_xstrdup (TYPE_FIELD), concat (name, "\n", NULL));
free (name);
/* Load c_partno. */
if (first_alt->c_partno) {
- ct->c_partno = add (first_alt->c_partno, NULL);
+ ct->c_partno = mh_xstrdup (first_alt->c_partno);
free (first_alt->c_partno);
first_alt->c_partno = concat (ct->c_partno, ".1", NULL);
new_part->c_partno = concat (ct->c_partno, ".2", NULL);
} else {
- first_alt->c_partno = add ("1", NULL);
- new_part->c_partno = add ("2", NULL);
+ first_alt->c_partno = mh_xstrdup ("1");
+ new_part->c_partno = mh_xstrdup ("2");
}
if (ctinit) {
- ct->c_ctinfo.ci_type = add (typename, NULL);
- ct->c_ctinfo.ci_subtype = add (subtypename, NULL);
+ ct->c_ctinfo.ci_type = mh_xstrdup (typename);
+ ct->c_ctinfo.ci_subtype = mh_xstrdup (subtypename);
}
add_param(&ct->c_ctinfo.ci_first_pm, &ct->c_ctinfo.ci_last_pm,
free (hf->value);
hf->value = (cp = strchr (ct->c_ctline, ';'))
? concat (type_subtypename, cp, "\n", NULL)
- : add (name_plus_nl, NULL);
+ : mh_xstrdup (name_plus_nl);
}
}
if (! found_content_type) {
- add_header (ct, add (TYPE_FIELD, NULL),
+ add_header (ct, mh_xstrdup (TYPE_FIELD),
(cp = strchr (ct->c_ctline, ';'))
? concat (type_subtypename, cp, "\n", NULL)
- : add (name_plus_nl, NULL));
+ : mh_xstrdup (name_plus_nl));
}
/* Some of these might not be used, but set them anyway. */
ct->c_ctline = ctline;
/* Leave other ctinfo members as they were. */
free (ct->c_ctinfo.ci_type);
- ct->c_ctinfo.ci_type = add (typename, NULL);
+ ct->c_ctinfo.ci_type = mh_xstrdup (typename);
free (ct->c_ctinfo.ci_subtype);
- ct->c_ctinfo.ci_subtype = add (subtypename, NULL);
+ ct->c_ctinfo.ci_subtype = mh_xstrdup (subtypename);
ct->c_type = type;
ct->c_subtype = subtype;
adios (NULL, "unable to create temporary file in %s",
get_temp_dir());
}
- stripped_content_file = add (tempfile, NULL);
+ stripped_content_file = mh_xstrdup (tempfile);
/* Strip each CR before a LF from the content. */
fseeko (*fp, begin, SEEK_SET);
}
}
if (! found_cte) {
- add_header (ct, add (ENCODING_FIELD, NULL), cte);
+ add_header (ct, mh_xstrdup (ENCODING_FIELD), cte);
}
}
}
if (message_mods > 0) {
if ((status = output_message (ct, outfile)) == OK) {
char *infile = input_filename
- ? add (input_filename, NULL)
- : add (ct->c_file ? ct->c_file : "-", NULL);
+ ? mh_xstrdup (input_filename)
+ : mh_xstrdup (ct->c_file ? ct->c_file : "-");
if (remove_file (infile) == OK) {
if (rename (outfile, infile)) {