#include <errno.h>
#include <sys/param.h>
#include <sys/file.h>
+#include <sys/stat.h>
int
makedir(char *dir)
{
char path[PATH_MAX];
- char* folder_perms_ASCII;
+ char *cp;
int had_an_error = 0;
mode_t folder_perms, saved_umask;
- register char* c;
+ char* c;
context_save(); /* save the context file */
fflush(stdout);
- if (!(folder_perms_ASCII = context_find("folder-protect")))
- folder_perms_ASCII = foldprot; /* defaults to "700" */
-
- /*
- ** Because mh-profile.man documents "Folder-Protect:" as an octal
- ** constant, and we don't want to force the user to remember to
- ** include a leading zero, we call atooi(folder_perms_ASCII) here
- ** rather than strtoul(folder_perms_ASCII, NULL, 0). Therefore,
- ** if anyone ever tries to specify a mode in say, hex, they'll
- ** get garbage. (I guess nmh uses its atooi() function rather
- ** than calling strtoul() with a radix of 8 because some ancient
- ** platforms are missing that functionality.
- */
- folder_perms = atooi(folder_perms_ASCII);
+ if (!(cp = context_find("folder-protect")) || !*cp) {
+ cp = foldprot;
+ }
+ folder_perms = strtoul(cp, NULL, 8);
/*
** Folders have definite desired permissions that are set -- we