Merge branch 'js/compat-mkdir'
Some mkdir(2) implementations do not want to see trailing slash in its parameter. * js/compat-mkdir: compat: some mkdir() do not like a slash at the endmaint
commit
a795b324b7
|
@ -0,0 +1,24 @@
|
||||||
|
#include "../git-compat-util.h"
|
||||||
|
#undef mkdir
|
||||||
|
|
||||||
|
/* for platforms that can't deal with a trailing '/' */
|
||||||
|
int compat_mkdir_wo_trailing_slash(const char *dir, mode_t mode)
|
||||||
|
{
|
||||||
|
int retval;
|
||||||
|
char *tmp_dir = NULL;
|
||||||
|
size_t len = strlen(dir);
|
||||||
|
|
||||||
|
if (len && dir[len-1] == '/') {
|
||||||
|
if ((tmp_dir = strdup(dir)) == NULL)
|
||||||
|
return -1;
|
||||||
|
tmp_dir[len-1] = '\0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
tmp_dir = (char *)dir;
|
||||||
|
|
||||||
|
retval = mkdir(tmp_dir, mode);
|
||||||
|
if (tmp_dir != dir)
|
||||||
|
free(tmp_dir);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
|
@ -162,6 +162,11 @@
|
||||||
#define probe_utf8_pathname_composition(a,b)
|
#define probe_utf8_pathname_composition(a,b)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef MKDIR_WO_TRAILING_SLASH
|
||||||
|
#define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))
|
||||||
|
extern int compat_mkdir_wo_trailing_slash(const char*, mode_t);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef NO_LIBGEN_H
|
#ifndef NO_LIBGEN_H
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue