updated for version 7.3.872
Problem: On some systems case of file names is always ignored, on others
never.
Solution: Add the 'fileignorecase' option to control this at runtime.
Implies 'wildignorecase'.
diff --git a/src/fileio.c b/src/fileio.c
index b5a49b8..6e89b88 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -6485,9 +6485,7 @@
#ifdef HAVE_ACL
vim_acl_T acl; /* ACL from original file */
#endif
-#if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
int use_tmp_file = FALSE;
-#endif
/*
* When the names are identical, there is nothing to do. When they refer
@@ -6496,11 +6494,9 @@
*/
if (fnamecmp(from, to) == 0)
{
-#ifdef CASE_INSENSITIVE_FILENAME
- if (STRCMP(gettail(from), gettail(to)) != 0)
+ if (p_fic && STRCMP(gettail(from), gettail(to)) != 0)
use_tmp_file = TRUE;
else
-#endif
return 0;
}
@@ -6539,7 +6535,6 @@
}
#endif
-#if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
if (use_tmp_file)
{
char tempname[MAXPATHL + 1];
@@ -6572,7 +6567,6 @@
}
return -1;
}
-#endif
/*
* Delete the "to" file, this is required on some systems to make the
@@ -10007,11 +10001,7 @@
int match = FALSE;
#endif
-#ifdef CASE_INSENSITIVE_FILENAME
- regmatch.rm_ic = TRUE; /* Always ignore case */
-#else
- regmatch.rm_ic = FALSE; /* Don't ever ignore case */
-#endif
+ regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */
#ifdef FEAT_OSFILETYPE
if (*pattern == '<')
{