PWB1/sys/source/s2/mkdir.c
/*
* mkdir -- make directories
*/
main(argc, argv)
char **argv;
{
static char dname[128], pname[128];
static nerror;
register char *p1, *p2, *p3;
while (--argc > 0) {
argv++;
p1 = argv[0];
p2 = dname;
p3 = pname;
while (*p2++ = *p3++ = *p1++);
p2[-1] = '/';
*p2++ = '.';
*p2 = '\0';
while (p3>pname && *--p3!='/');
if (p3 > pname)
*p3 = '\0';
else if (*p3 == '/')
p3[1] = '\0';
else {
*p3++ = '.';
*p3++ = '\0';
}
if (access(pname, 02)) {
perror("mkdir");
nerror++;
continue;
}
if (mknod(argv[0], 0140755, 0) < 0) {
perror("mkdir");
nerror++;
continue;
}
chown(argv[0], ((getgid()&0377)<<8) + (getuid()&0377));
link(argv[0], dname);
*p2++ = '.';
*p2 = '\0';
link(pname, dname);
}
return(nerror);
}