|
|
1.1 ! root 1: /* mkdirs.c ! 2: Create any directories needed for a file name. */ ! 3: ! 4: #include "uucp.h" ! 5: ! 6: #include "uudefs.h" ! 7: #include "sysdep.h" ! 8: #include "system.h" ! 9: ! 10: #include <errno.h> ! 11: ! 12: boolean ! 13: fsysdep_make_dirs (zfile, fpublic) ! 14: const char *zfile; ! 15: boolean fpublic; ! 16: { ! 17: char *zcopy, *z; ! 18: int imode; ! 19: ! 20: zcopy = zbufcpy (zfile); ! 21: ! 22: if (fpublic) ! 23: imode = IPUBLIC_DIRECTORY_MODE; ! 24: else ! 25: imode = IDIRECTORY_MODE; ! 26: ! 27: for (z = zcopy; *z != '\0'; z++) ! 28: { ! 29: if (*z == '/' && z != zcopy) ! 30: { ! 31: *z = '\0'; ! 32: if (! fsysdep_directory (zcopy)) ! 33: { ! 34: if (mkdir (zcopy, imode) != 0) ! 35: { ! 36: ulog (LOG_ERROR, "mkdir (%s): %s", zcopy, ! 37: strerror (errno)); ! 38: ubuffree (zcopy); ! 39: return FALSE; ! 40: } ! 41: } ! 42: *z = '/'; ! 43: } ! 44: } ! 45: ! 46: ubuffree (zcopy); ! 47: ! 48: return TRUE; ! 49: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.