compat / mkdir.con commit read_info_alternates: handle paths larger than PATH_MAX (5015f01)
   1#include "../git-compat-util.h"
   2#undef mkdir
   3
   4/* for platforms that can't deal with a trailing '/' */
   5int 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}