diff options
Diffstat (limited to 'maildir/maildirdelfolder.c')
| -rw-r--r-- | maildir/maildirdelfolder.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/maildir/maildirdelfolder.c b/maildir/maildirdelfolder.c new file mode 100644 index 0000000..acfaaae --- /dev/null +++ b/maildir/maildirdelfolder.c @@ -0,0 +1,59 @@ +/* +** Copyright 2000-2003 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include <sys/types.h> +#if HAVE_DIRENT_H +#include <dirent.h> +#define NAMLEN(dirent) strlen((dirent)->d_name) +#else +#define dirent direct +#define NAMLEN(dirent) (dirent)->d_namlen +#if HAVE_SYS_NDIR_H +#include <sys/ndir.h> +#endif +#if HAVE_SYS_DIR_H +#include <sys/dir.h> +#endif +#if HAVE_NDIR_H +#include <ndir.h> +#endif +#endif +#include <sys/types.h> +#include <sys/stat.h> +#include <string.h> +#include <stdlib.h> +#include <time.h> +#if HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <stdio.h> +#include <ctype.h> +#include <errno.h> + +#include "maildirmisc.h" + +int maildir_deletefolder(const char *maildir, const char *folder) +{ +char *s; +int rc; + + if (*folder == '.') + { + errno=EINVAL; + return (-1); + } + + s=malloc(strlen(maildir)+strlen(folder)+3); + if (!s) return (-1); + strcat(strcat(strcpy(s, maildir), "/."), folder); + + rc=maildir_del(s); + free(s); + return (rc); +} |
