diff options
author | Bram Moolenaar <bram@vim.org> | 2013-11-21 12:34:11 +0100 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2013-11-21 12:34:11 +0100 |
commit | 43d987739d4f1fac13654a87b8f78515329c2095 (patch) | |
tree | 73d6340bb1c1f3e4c4d4f7bfcb8d03c7c5f3c6af | |
parent | 5576f45128d0387ae46be707d61bbf0809280d91 (diff) | |
download | vim-43d987739d4f1fac13654a87b8f78515329c2095.tar.gz |
Problem: Can't change directory to an UNC path.
Solution: Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
-rw-r--r-- | src/os_win32.c | 15 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/os_win32.c b/src/os_win32.c index cd29b873..413dbfa0 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -2841,18 +2841,20 @@ mch_dirname( } /* - * get file permissions for `name' - * -1 : error - * else mode_t + * Get file permissions for "name". + * Return mode_t or -1 for error. */ long mch_getperm(char_u *name) { struct stat st; - int n; + int n; + if (name[0] == '\\' && name[1] == '\\') + /* UNC path */ + return (long)win32_getattrs(name); n = mch_stat(name, &st); - return n == 0 ? (int)st.st_mode : -1; + return n == 0 ? (long)st.st_mode : -1L; } @@ -3094,8 +3096,7 @@ win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info) * -1 : error * else FILE_ATTRIBUTE_* defined in winnt.h */ - static - int + static int win32_getattrs(char_u *name) { int attr; diff --git a/src/version.c b/src/version.c index f4a60690..89e6e113 100644 --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 96, +/**/ 95, /**/ 94, |