From dd44887ac69f334ecf07e0a7be97c18e764539e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Fri, 23 Sep 2011 00:00:05 +0200 Subject: [PATCH] Implment p_access and use it in git_fileutils_exists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Carlos Martín Nieto --- src/fileops.c | 2 +- src/posix.h | 1 + src/win32/posix.h | 2 +- src/win32/posix_w32.c | 11 +++++++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/fileops.c b/src/fileops.c index bfd63f584..203cce0a4 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -127,7 +127,7 @@ int git_futils_isfile(const char *path) int git_futils_exists(const char *path) { assert(path); - return access(path, F_OK); + return p_access(path, F_OK); } git_off_t git_futils_filesize(git_file fd) diff --git a/src/posix.h b/src/posix.h index d656e8ec0..497e21fb7 100644 --- a/src/posix.h +++ b/src/posix.h @@ -52,6 +52,7 @@ extern char* p_getenv(const char* name); #define p_chdir(p) chdir(p) #define p_rmdir(p) rmdir(p) #define p_chmod(p,m) chmod(p, m) +#define p_access(p,m) access(p,m) #endif diff --git a/src/win32/posix.h b/src/win32/posix.h index 4c45fd3e4..d82506ab5 100644 --- a/src/win32/posix.h +++ b/src/win32/posix.h @@ -43,6 +43,6 @@ extern int p_stat(const char* path, struct stat* buf); extern int p_chdir(const char* path); extern int p_chmod(const char* path, int mode); extern int p_rmdir(const char* path); - +extern int p_access(const char* path, int mode); #endif diff --git a/src/win32/posix_w32.c b/src/win32/posix_w32.c index 85a04bc0f..228897d80 100644 --- a/src/win32/posix_w32.c +++ b/src/win32/posix_w32.c @@ -401,3 +401,14 @@ int p_setenv(const char* name, const char* value, int overwrite) return (SetEnvironmentVariableA(name, value) == 0 ? GIT_EOSERR : GIT_SUCCESS); } + +int p_access(const char* path, int mode) +{ + wchar_t *buf = conv_utf8_to_utf16(path); + int ret; + + ret = _waccess(buf, mode); + free(buf); + + return ret; +}