And comment a few functions as never returning NULL along the way.
* 3) Next, check in nmh Mail directory.
* 4) Next, check in nmh `etc' directory.
*
+ * Does not return NULL.
*/
char *
*/
if (!space && !metachar) {
- argvarray[0] = getcpy(r1bindex(command, '/'));
+ argvarray[0] = mh_xstrdup(r1bindex(command, '/'));
argvarray[1] = NULL;
*file = mh_xstrdup(command);
if (argp)
#include "m_maildir.h"
#include "makedir.h"
#include <pwd.h> /* structure for getpwuid() results */
+#include "h/utils.h"
void
context_read (void)
return;
}
- ctxpath = getcpy (m_maildir (cp));
+ ctxpath = mh_xstrdup(m_maildir(cp));
if ((ib = lkfopendata (ctxpath, "r", &failed_to_lock))) {
readconfig(NULL, ib, cp, 1);
#include <h/mh.h>
+/* Does not return NULL. */
char *
getfolder(int wantcurrent)
{
#include "h/done.h"
+/* Does not return NULL. */
char *
m_draft (char *folder, char *msg, int use, int *isdf)
{
&& strcmp (folder, DOTDOT)
&& !has_prefix(folder, PWD)) {
strncpy (maildir, mailfold, sizeof(maildir)); /* preserve... */
- cp = getcpy (m_maildir (folder));
+ cp = mh_xstrdup(m_maildir(folder));
strncpy (mailfold, maildir, sizeof(mailfold));
} else {
cp = path (folder, TFOLDER);
#include <h/mh.h>
+/* Does not return NULL. */
char *
r1bindex(char *str, int chr)
{
if (msgs.size != 0)
adios(NULL, "can only have message numbers or -draft.");
- draft = getcpy(m_draft(folder, NULL, 1, &isdf));
+ draft = mh_xstrdup(m_draft(folder, NULL, 1, &isdf));
make_comp(&comp);
} else {
adios (NULL, "no other folder");
}
- for (cp = getcpy (getfolder (1)); *ap; ap++)
+ for (cp = mh_xstrdup(getfolder(1)); *ap; ap++)
cp = add (*ap, add (" ", cp));
free (dp);
context_replace (stack, cp); /* update folder stack */
context_replace (stack,
(cp = context_find (stack))
? concat (getfolder (1), " ", cp, NULL)
- : getcpy (getfolder (1)));
+ : mh_xstrdup(getfolder(1)));
}
}
case FILTSW:
if (!(cp = *argp++) || *cp == '-')
adios (NULL, "missing argument to %s", argp[-2]);
- filter = getcpy (etcpath (cp));
+ filter = mh_xstrdup(etcpath(cp));
mime = 0;
continue;
case FORMSW:
continue;
case FRMTSW:
- filter = getcpy (etcpath (mhlforward));
+ filter = mh_xstrdup(etcpath(mhlforward));
continue;
case NFRMTSW:
filter = NULL;
case AUDSW:
if (!(cp = *argp++) || *cp == '-')
adios (NULL, "missing argument to %s", argp[-2]);
- audfile = getcpy (m_maildir (cp));
+ audfile = mh_xstrdup(m_maildir(cp));
continue;
case NAUDSW:
audfile = NULL;
fclose (in);
}
- ctxpath = getcpy (m_maildir (context = "context"));
+ ctxpath = mh_xstrdup(m_maildir(context = "context"));
/* Initialize current folder to default */
context_replace (pfolder, defaultfolder);
/* Check for private cache location */
if (!(cache_private = context_find (nmhprivcache)))
cache_private = ".cache";
- cache_private = getcpy (m_maildir (cache_private));
+ cache_private = mh_xstrdup(m_maildir(cache_private));
if (!context_find ("path"))
free (path ("./", TFOLDER));
/* Check for private cache location */
if (!(cache_private = context_find (nmhprivcache)))
cache_private = ".cache";
- cache_private = getcpy (m_maildir (cache_private));
+ cache_private = mh_xstrdup(m_maildir(cache_private));
if (!context_find ("path"))
free (path ("./", TFOLDER));
if (!(cp = *argp++) || *cp == '-')
adios (NULL, "missing argument to %s", argp[-2]);
free(formsw);
- formsw = getcpy (etcpath (cp));
+ formsw = mh_xstrdup(etcpath(cp));
continue;
/*
/* Check for private cache location */
if (!(cache_private = context_find (nmhprivcache)))
cache_private = ".cache";
- cache_private = getcpy (m_maildir (cache_private));
+ cache_private = mh_xstrdup(m_maildir(cache_private));
/*
* Cache the current directory before we do any chdirs()'s.
if (!(cp = *argp++) || *cp == '-')
adios (NULL, "missing argument to %s", argp[-2]);
free(formsw);
- formsw = getcpy (etcpath (cp));
+ formsw = mh_xstrdup(etcpath(cp));
continue;
case HEADSW:
/* Check for private cache location */
if (!(cache_private = context_find (nmhprivcache)))
cache_private = ".cache";
- cache_private = getcpy (m_maildir (cache_private));
+ cache_private = mh_xstrdup(m_maildir(cache_private));
if (!context_find ("path"))
free (path ("./", TFOLDER));
* for showing headers of MIME messages.
*/
if (!formsw)
- formsw = getcpy (etcpath ("mhl.headers"));
+ formsw = mh_xstrdup(etcpath("mhl.headers"));
/*
* Compile the content marker and header format lines
/* Check for private cache location */
if (!(cache_private = context_find (nmhprivcache)))
cache_private = ".cache";
- cache_private = getcpy (m_maildir (cache_private));
+ cache_private = mh_xstrdup(m_maildir(cache_private));
/*
* Cache the current directory before we do any chdirs()'s.
if (filep > NFOLDERS)
adios (NULL, "only %d files allowed!", NFOLDERS);
isdf = 0;
- files[filep++] = getcpy (m_draft (NULL, NULL, 1, &isdf));
+ files[filep++] = mh_xstrdup(m_draft(NULL, NULL, 1, &isdf));
continue;
case FILESW:
if (filep > NFOLDERS)
case FILTSW:
if (!(cp = *argp++) || *cp == '-')
adios (NULL, "missing argument to %s", argp[-2]);
- filter = getcpy (etcpath (cp));
+ filter = mh_xstrdup(etcpath(cp));
mime = 0;
continue;
case FORMSW:
continue;
case FRMTSW:
- filter = getcpy (etcpath (mhlreply));
+ filter = mh_xstrdup(etcpath(mhlreply));
mime = 0;
continue;
case NFRMTSW:
vec = argsplit(postproc, &program, &vecp);
vec[vecp++] = "-library";
- vec[vecp++] = getcpy (m_maildir (""));
+ vec[vecp++] = mh_xstrdup(m_maildir(""));
if ((cp = context_find ("fileproc"))) {
vec[vecp++] = "-fileproc";
if (dfolder == NULL) {
if (msgp == 0) {
- msgs[msgp++] = getcpy (m_draft (NULL, NULL, 1, &isdf));
+ msgs[msgp++] = mh_xstrdup(m_draft(NULL, NULL, 1, &isdf));
if (stat (msgs[0], &st) == NOTOK)
adios (msgs[0], "unable to stat draft file");
cp = concat ("Use \"", msgs[0], "\"? ", NULL);
}
} else {
for (msgnum = 0; msgnum < msgp; msgnum++)
- msgs[msgnum] = getcpy (m_maildir (msgs[msgnum]));
+ msgs[msgnum] = mh_xstrdup(m_maildir(msgs[msgnum]));
}
} else {
if (!context_find ("path"))
app_msgarg(&vec, --cp);
if (!(cp = *argp++) || *cp == '-')
adios (NULL, "missing argument to %s", argp[-2]);
- app_msgarg(&vec, getcpy (etcpath(cp)));
+ app_msgarg(&vec, mh_xstrdup(etcpath(cp)));
continue;
case PROGSW:
if (msgs.size)
adios (NULL, "only one file at a time!");
if (draftsw)
- app_msgarg(&vec, getcpy (m_draft (folder, NULL, 1, &isdf)));
+ app_msgarg(&vec, mh_xstrdup(m_draft(folder, NULL, 1, &isdf)));
else
app_msgarg(&vec, file);
headersw = 0;
}
if ((drft == NULL && (drft = getenv ("mhdraft")) == NULL) || *drft == 0)
- drft = getcpy (m_draft (dfolder, dmsg, 1, &isdf));
+ drft = mh_xstrdup(m_draft(dfolder, dmsg, 1, &isdf));
msgnam = (cp = getenv ("mhaltmsg")) && *cp ? mh_xstrdup(cp) : NULL;
vec = argsplit(postproc, &program, &vecp);
vec[vecp++] = "-library";
- vec[vecp++] = getcpy (m_maildir (""));
+ vec[vecp++] = mh_xstrdup(m_maildir(""));
if ((cp = context_find ("fileproc"))) {
vec[vecp++] = "-fileproc";
vec[vecp++] = invo_name;
vec[vecp++] = "-whom";
vec[vecp++] = "-library";
- vec[vecp++] = getcpy (m_maildir (""));
+ vec[vecp++] = mh_xstrdup(m_maildir(""));
if ((cp = context_find ("credentials"))) {
/* post doesn't read context so need to pass credentials. */
}
if (msg == NULL) {
- cp = getcpy (m_draft (dfolder, dmsg, 1, &isdf));
+ cp = mh_xstrdup(m_draft(dfolder, dmsg, 1, &isdf));
msg = vec[vecp++] = cp;
}