diff options
author | Lennart Poettering <lennart@poettering.net> | 2003-09-04 19:18:40 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2003-09-04 19:18:40 +0000 |
commit | 9c4d6b4246e913d003afcf8d82bbeb3053796d8d (patch) | |
tree | bac058267d2ce2d19a28d8db17f8060854490f3a | |
parent | eacba0d9e002a7eeb410b0113a1359325f84e5f4 (diff) |
real fix for mkdir_p
git-svn-id: file:///home/lennart/svn/public/syrep/trunk@28 07ea20a6-d2c5-0310-9e02-9ef735347d72
-rw-r--r-- | src/util.c | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -561,14 +561,17 @@ int mkdir_p(const char *path, mode_t m) { quit = 1; } - *e = 0; - if (mkdir(tmp, m) < 0) { - if (errno != EEXIST) { - fprintf(stderr, "XX mkdir(\"%s\"): %s\n", tmp, strerror(errno)); - return -1; + if (e != b) { + *e = 0; + + if (mkdir(tmp, m) < 0) { + if (errno != EEXIST) { + fprintf(stderr, "mkdir(\"%s\"): %s\n", tmp, strerror(errno)); + return -1; + } } + *e = '/'; } - *e = '/'; b = e+1; } |