{ NULL, 0 }
};
+char *version=VERSION;
/* mhparse.c */
extern char *tmp; /* directory to place temp files */
if (!(cp = *argp++) || (*cp == '-' && cp[1]))
adios(EX_USAGE, NULL, "missing argument to %s",
argp[-2]);
- file = *cp == '-' ? cp : getcpy(expanddir(cp));
+ file = *cp == '-' ? cp : mh_xstrdup(expanddir(cp));
continue;
case FORMSW:
adios(EX_USAGE, NULL, "missing argument to %s",
argp[-2]);
if (formsw)
- free(formsw);
- formsw = getcpy(etcpath(cp));
+ mh_free0(&formsw);
+ formsw = mh_xstrdup(etcpath(cp));
continue;
case VERBSW:
if (folder)
adios(EX_USAGE, NULL, "only one folder at a time!");
else
- folder = getcpy(expandfol(cp));
+ folder = mh_xstrdup(expandfol(cp));
} else if (mode != SHOW) {
adios(EX_USAGE, NULL, "Either call show as `%s' or give message arguments", invo_name);
} else {
if ((cp = context_find(nmhstorage)) && *cp)
tmp = concat(cp, "/", invo_name, NULL);
else
- tmp = getcpy(toabsdir(invo_name));
+ tmp = mh_xstrdup(toabsdir(invo_name));
if (file && msgs.size)
adios(EX_USAGE, NULL, "cannot specify msg and file at same time!");
** check if message is coming from file
*/
if (file) {
- if (!(cts = (CT *) calloc((size_t) 2, sizeof(*cts))))
- adios(EX_OSERR, NULL, "out of memory");
+ cts = mh_xcalloc(2, sizeof(*cts));
ctp = cts;
if ((ct = parse_mime(file)))
seq_setprev(mp); /* set the Previous-Sequence */
seq_setunseen(mp, 0); /* unset unseen seqs for shown msgs */
- if (!(cts = (CT *) calloc((size_t) (mp->numsel + 1),
- sizeof(*cts))))
- adios(EX_OSERR, NULL, "out of memory");
+ cts = mh_xcalloc(mp->numsel + 1, sizeof(*cts));
ctp = cts;
/*
for (ctp = cts; *ctp; ctp++)
free_content(*ctp);
- free((char *) cts);
- cts = NULL;
+ mh_free0(&cts);
/* If reading from a folder, do some updating */
if (mp) {