Merge branch 'nd/config-blame-sort'
[git] / compat / mkdir.c
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 }