1
0
forked from aniani/vim

patch 7.4.1007

Problem:    When a symbolic link points to a file in the root directory, the
            swapfile is not correct.
Solution:   Do not try getting the full name of a file in the root directory.
            (Milly, closes #501)
This commit is contained in:
Bram Moolenaar
2015-12-31 18:29:46 +01:00
parent 96c664af27
commit e3303cb081
2 changed files with 8 additions and 4 deletions

View File

@@ -2507,8 +2507,10 @@ mch_FullName(fname, buf, len, force)
fname = posix_fname; fname = posix_fname;
#endif #endif
/* expand it if forced or not an absolute path */ /* Expand it if forced or not an absolute path.
if (force || !mch_isFullName(fname)) * Do not do it for "/file", the result is always "/". */
if ((force || !mch_isFullName(fname))
&& ((p = vim_strrchr(fname, '/')) == NULL || p != fname))
{ {
/* /*
* If the file name has a path, change to that directory for a moment, * If the file name has a path, change to that directory for a moment,
@@ -2517,11 +2519,11 @@ mch_FullName(fname, buf, len, force)
*/ */
#ifdef OS2 #ifdef OS2
only_drive = 0; only_drive = 0;
if (((p = vim_strrchr(fname, '/')) != NULL) if (p != NULL
|| ((p = vim_strrchr(fname, '\\')) != NULL) || ((p = vim_strrchr(fname, '\\')) != NULL)
|| (((p = vim_strchr(fname, ':')) != NULL) && ++only_drive)) || (((p = vim_strchr(fname, ':')) != NULL) && ++only_drive))
#else #else
if ((p = vim_strrchr(fname, '/')) != NULL) if (p != NULL)
#endif #endif
{ {
#ifdef HAVE_FCHDIR #ifdef HAVE_FCHDIR

View File

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