0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.4.136

Problem:    MS-Windows: When saving a file with a UNC path the file becomes
            read-only.
Solution:   Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
This commit is contained in:
Bram Moolenaar 2014-01-10 13:05:20 +01:00
parent 438f67a004
commit b1cb35f785
3 changed files with 16 additions and 3 deletions

View File

@ -617,8 +617,22 @@ vim_stat(const char *name, struct stat *stp)
p = buf + strlen(buf);
if (p > buf)
mb_ptr_back(buf, p);
/* Remove trailing '\\' except root path. */
if (p > buf && (*p == '\\' || *p == '/') && p[-1] != ':')
*p = NUL;
if ((buf[0] == '\\' && buf[1] == '\\') || (buf[0] == '/' && buf[1] == '/'))
{
/* UNC root path must be followed by '\\'. */
p = vim_strpbrk(buf + 2, "\\/");
if (p != NULL)
{
p = vim_strpbrk(p + 1, "\\/");
if (p == NULL)
STRCAT(buf, "\\");
}
}
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage
# ifdef __BORLANDC__

View File

@ -2890,9 +2890,6 @@ mch_getperm(char_u *name)
struct stat st;
int n;
if (name[0] == '\\' && name[1] == '\\')
/* UNC path */
return (long)win32_getattrs(name);
n = mch_stat(name, &st);
return n == 0 ? (long)st.st_mode : -1L;
}

View File

@ -738,6 +738,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
136,
/**/
135,
/**/