3 * makedir.c -- make a directory
9 * Modified to try recursive create.
14 #include <sys/param.h>
27 context_save(); /* save the context file */
30 if (getuid () == geteuid ()) {
31 c = strncpy(path, dir, sizeof(path));
33 while ((c = strchr((c + 1), '/')) != NULL) {
35 if (access(path, X_OK)) {
37 advise (dir, "unable to create directory");
40 if (mkdir(path, 0775)) {
41 advise (dir, "unable to create directory");
48 if (mkdir (dir, 0755) == -1) {
49 advise (dir, "unable to create directory");
53 switch (pid = vfork()) {
55 advise ("fork", "unable to");
62 execl ("/bin/mkdir", "mkdir", dir, NULL);
63 execl ("/usr/bin/mkdir", "mkdir", dir, NULL);
64 fprintf (stderr, "unable to exec ");
69 if (pidXwait(pid, "mkdir"))
75 if (!(cp = context_find ("folder-protect")))
77 chmod (dir, atooi (cp));