updated for version 7.2.429
Problem: A file that exists but access is denied may result in a "new file"
message. E.g. when its directory is unreadable.
Solution: Specifically check for ENOENT to decide a file doesn't exist.
(partly by James Vega)
diff --git a/src/fileio.c b/src/fileio.c
index 88188e5..c367969 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -595,7 +595,11 @@
#endif
if (newfile)
{
- if (perm < 0)
+ if (perm < 0
+#ifdef ENOENT
+ && errno == ENOENT
+#endif
+ )
{
/*
* Set the 'new-file' flag, so that when the file has
@@ -664,6 +668,9 @@
# ifdef EFBIG
(errno == EFBIG) ? _("[File too big]") :
# endif
+# ifdef EOVERFLOW
+ (errno == EOVERFLOW) ? _("[File too big]") :
+# endif
_("[Permission Denied]")), 0);
curbuf->b_p_ro = TRUE; /* must use "w!" now */
}