patch 8.1.0915: fsync() may not work properly on Mac
Problem: fsync() may not work properly on Mac.
Solution: Use fcntl() with F_FULLFSYNC. (suggested by Justin M. Keyes)
diff --git a/src/memfile.c b/src/memfile.c
index f2e774a..1a52734 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -600,7 +600,7 @@
*/
if (STRCMP(p_sws, "fsync") == 0)
{
- if (fsync(mfp->mf_fd))
+ if (vim_fsync(mfp->mf_fd))
status = FAIL;
}
else
@@ -617,7 +617,7 @@
#ifdef VMS
if (STRCMP(p_sws, "fsync") == 0)
{
- if (fsync(mfp->mf_fd))
+ if (vim_fsync(mfp->mf_fd))
status = FAIL;
}
#endif
@@ -627,7 +627,7 @@
#endif
#ifdef AMIGA
# if defined(__AROS__) || defined(__amigaos4__)
- if (fsync(mfp->mf_fd) != 0)
+ if (vim_fsync(mfp->mf_fd) != 0)
status = FAIL;
# else
/*