Joachim Schmitz | 0539ecf | 2012-08-24 12:31:03 +0200 | [diff] [blame] | 1 | #include "../git-compat-util.h" |
| 2 | #undef mkdir |
| 3 | |
| 4 | /* for platforms that can't deal with a trailing '/' */ |
| 5 | int compat_mkdir_wo_trailing_slash(const char *dir, mode_t mode) |
| 6 | { |
| 7 | int retval; |
| 8 | char *tmp_dir = NULL; |
| 9 | size_t len = strlen(dir); |
| 10 | |
| 11 | if (len && dir[len-1] == '/') { |
| 12 | if ((tmp_dir = strdup(dir)) == NULL) |
| 13 | return -1; |
| 14 | tmp_dir[len-1] = '\0'; |
| 15 | } |
| 16 | else |
| 17 | tmp_dir = (char *)dir; |
| 18 | |
| 19 | retval = mkdir(tmp_dir, mode); |
| 20 | if (tmp_dir != dir) |
| 21 | free(tmp_dir); |
| 22 | |
| 23 | return retval; |
| 24 | } |