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:
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user