diff options
author | Vicent Martà <tanoku@gmail.com> | 2011-09-25 06:52:01 -0700 |
---|---|---|
committer | Vicent Martà <tanoku@gmail.com> | 2011-09-25 06:52:01 -0700 |
commit | ea4dad8ec4388a155836b6427afd018f8432af9d (patch) | |
tree | 2734fc788fdf3d4728ba611b384e7aad2b4ae7c1 /src | |
parent | 76c15b7191daef64e862d54749bf205a746b18c1 (diff) | |
parent | dd44887ac69f334ecf07e0a7be97c18e764539e8 (diff) | |
download | libgit2-ea4dad8ec4388a155836b6427afd018f8432af9d.tar.gz |
Merge pull request #424 from carlosmn/access-unicode
Implment p_access and use it in git_fileutils_exists
Diffstat (limited to 'src')
-rw-r--r-- | src/fileops.c | 2 | ||||
-rw-r--r-- | src/posix.h | 1 | ||||
-rw-r--r-- | src/win32/posix.h | 2 | ||||
-rw-r--r-- | 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; +} |