X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0c9b09a8a9fca687adf2859976fba7df439ab000..c576ad2674c37a1c63f004c71049998f38854c64:/sbr/m_maildir.c diff --git a/sbr/m_maildir.c b/sbr/m_maildir.c index c574c161..daf84a73 100644 --- a/sbr/m_maildir.c +++ b/sbr/m_maildir.c @@ -1,6 +1,4 @@ - -/* - * m_maildir.c -- get the path for the mail directory +/* m_maildir.c -- get the path for the mail directory * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -9,13 +7,12 @@ #include #include +#include "m_maildir.h" #define CWD "./" -#define NCWD (sizeof(CWD) - 1) #define DOT "." #define DOTDOT ".." #define PWD "../" -#define NPWD (sizeof(PWD) - 1) static char mailfold[BUFSIZ]; @@ -25,6 +22,7 @@ static char mailfold[BUFSIZ]; static char *exmaildir (char *); +/* Returns static char[], never NULL. */ char * m_maildir (char *folder) { @@ -39,6 +37,7 @@ m_maildir (char *folder) } +/* Return value must be free(3)'d. */ char * m_mailpath (char *folder) { @@ -46,10 +45,10 @@ m_mailpath (char *folder) char maildir[BUFSIZ]; if (*folder != '/' - && !HasPrefix(folder, CWD) + && !has_prefix(folder, CWD) && strcmp (folder, DOT) && strcmp (folder, DOTDOT) - && !HasPrefix(folder, PWD)) { + && !has_prefix(folder, PWD)) { strncpy (maildir, mailfold, sizeof(maildir)); /* preserve... */ cp = getcpy (m_maildir (folder)); strncpy (mailfold, maildir, sizeof(mailfold)); @@ -61,6 +60,7 @@ m_mailpath (char *folder) } +/* Returns static char[], never NULL. */ static char * exmaildir (char *folder) { @@ -71,10 +71,10 @@ exmaildir (char *folder) folder = getfolder(1); if (!(*folder != '/' - && !HasPrefix(folder, CWD) + && !has_prefix(folder, CWD) && strcmp (folder, DOT) && strcmp (folder, DOTDOT) - && !HasPrefix(folder, PWD))) { + && !has_prefix(folder, PWD))) { strncpy (mailfold, folder, sizeof(mailfold)); return mailfold; } @@ -85,9 +85,11 @@ exmaildir (char *folder) snprintf(cp, sizeof mailfold, "%s/", mypath); cp += strlen (cp); } - cp = copy (pp, cp); + cp = stpcpy(cp, pp); } else { - cp = copy (path ("./", TFOLDER), cp); + char *p = path("./", TFOLDER); + cp = stpcpy(cp, p); + free(p); } if (cp[-1] != '/') *cp++ = '/';