summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2013-11-21 12:34:11 +0100
committerBram Moolenaar <bram@vim.org>2013-11-21 12:34:11 +0100
commit43d987739d4f1fac13654a87b8f78515329c2095 (patch)
tree73d6340bb1c1f3e4c4d4f7bfcb8d03c7c5f3c6af
parent5576f45128d0387ae46be707d61bbf0809280d91 (diff)
downloadvim-43d987739d4f1fac13654a87b8f78515329c2095.tar.gz
updated for version 7.4.096v7.4.096v7-4-096
Problem: Can't change directory to an UNC path. Solution: Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
-rw-r--r--src/os_win32.c15
-rw-r--r--src/version.c2
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,