*/
#include <h/mh.h>
+#include <h/utils.h>
#define RMF_SWITCHES \
X("interactive", 0, INTRSW) \
interactive = defolder;
if (strchr (folder, '/') && (*folder != '/') && (*folder != '.')) {
- for (cp = copy (folder, newfolder); cp > newfolder && *cp != '/'; cp--)
+ for (cp = stpcpy(newfolder, folder); cp > newfolder && *cp != '/'; cp--)
continue;
if (cp > newfolder)
*cp = '\0';
if (interactive) {
cp = concat ("Remove folder \"", folder, "\"? ", NULL);
- if (!getanswer (cp))
+ if (!read_yes_or_no_if_tty (cp))
done (0);
free (cp);
}
static int
rmf (char *folder)
{
- int i, j, others;
- register char *maildir;
+ int i, others;
+ char *maildir;
char cur[BUFSIZ];
- register struct dirent *dp;
- register DIR *dd;
+ struct dirent *dp;
+ DIR *dd;
switch (i = chdir (maildir = m_maildir (folder))) {
case OK:
if (access (".", W_OK) != NOTOK && access ("..", W_OK) != NOTOK)
- break; /* fall otherwise */
+ break;
+ /* FALLTHRU */
case NOTOK:
snprintf (cur, sizeof(cur), "atr-%s-%s",
* Run the external delete hook program.
*/
- (void)ext_hook("del-hook", maildir, (char *)0);
+ (void)ext_hook("del-hook", maildir, NULL);
- j = strlen(BACKUP_PREFIX);
while ((dp = readdir (dd))) {
switch (dp->d_name[0]) {
case '.':
if (strcmp (dp->d_name, ".") == 0
|| strcmp (dp->d_name, "..") == 0)
- continue; /* else fall */
+ continue;
+ /* FALLTHRU */
case ',':
break;
if (m_atoi (dp->d_name))
break;
if (strcmp (dp->d_name, LINK) == 0
- || strncmp (dp->d_name, BACKUP_PREFIX, j) == 0)
+ || has_prefix(dp->d_name, BACKUP_PREFIX))
break;
admonish (NULL, "file \"%s/%s\" not deleted",
static void
rma (char *folder)
{
- register int alen, j, plen;
- register char *cp;
- register struct node *np, *pp;
+ int alen, j, plen;
+ char *cp;
+ struct node *np, *pp;
- alen = strlen ("atr-");
+ alen = LEN("atr-");
plen = strlen (cp = m_mailpath (folder)) + 1;
/*