summaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2007-10-03 12:31:33 +0000
committerBram Moolenaar <Bram@vim.org>2007-10-03 12:31:33 +0000
commit9b9422097cd9f4dda8525b3d37a0be8e67d6bcb9 (patch)
tree9233d42b52f9bbef7025421f183f265346ba8178 /src/buffer.c
parentf22129b5c5c3a14a5120adb007aa78434fcaa0a6 (diff)
downloadvim-git-9b9422097cd9f4dda8525b3d37a0be8e67d6bcb9.tar.gz
updated for version 7.1-135v7.1.135
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 9f4c3deb4..5aa69c588 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4175,29 +4175,35 @@ fix_fname(fname)
* mess up the full path name, even though it starts with a '/'.
* Also expand when there is ".." in the file name, try to remove it,
* because "c:/src/../README" is equal to "c:/README".
+ * Similarly "c:/src//file" is equal to "c:/src/file".
* For MS-Windows also expand names like "longna~1" to "longname".
*/
#ifdef UNIX
return FullName_save(fname, TRUE);
#else
- if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL
-#if defined(MSWIN) || defined(DJGPP)
+ if (!vim_isAbsName(fname)
+ || strstr((char *)fname, "..") != NULL
+ || strstr((char *)fname, "//") != NULL
+# ifdef BACKSLASH_IN_FILENAME
+ || strstr((char *)fname, "\\\\") != NULL
+# endif
+# if defined(MSWIN) || defined(DJGPP)
|| vim_strchr(fname, '~') != NULL
-#endif
+# endif
)
return FullName_save(fname, FALSE);
fname = vim_strsave(fname);
-#ifdef USE_FNAME_CASE
-# ifdef USE_LONG_FNAME
+# ifdef USE_FNAME_CASE
+# ifdef USE_LONG_FNAME
if (USE_LONG_FNAME)
-# endif
+# endif
{
if (fname != NULL)
fname_case(fname, 0); /* set correct case for file name */
}
-#endif
+# endif
return fname;
#endif