changeset 14822:aa9c7588d30a v8.1.0423

patch 8.1.0423: MS-Windows: using dup-close for flushing a file commit https://github.com/vim/vim/commit/0bd405173234b7d749aac144f60b68fee2135cb3 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Sep 21 14:48:53 2018 +0200 patch 8.1.0423: MS-Windows: using dup-close for flushing a file Problem: MS-Windows: using dup-close for flushing a file. Solution: Use _commit(). (Ken Takata, closes https://github.com/vim/vim/issues/3463)
author Christian Brabandt <cb@256bit.org>
date Fri, 21 Sep 2018 15:00:06 +0200
parents edc3d7023442
children dcdb2b4dbb6b
files src/memfile.c src/os_mac.h src/os_win32.h src/version.c
diffstat 4 files changed, 5 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -539,9 +539,6 @@ mf_sync(memfile_T *mfp, int flags)
 {
     int		status;
     bhdr_T	*hp;
-#if defined(SYNC_DUP_CLOSE)
-    int		fd;
-#endif
     int		got_int_save = got_int;
 
     if (mfp->mf_fd < 0)	    /* there is no file, nothing to do */
@@ -624,13 +621,9 @@ mf_sync(memfile_T *mfp, int flags)
 		status = FAIL;
 	}
 #endif
-#ifdef SYNC_DUP_CLOSE
-	/*
-	 * Win32 is a bit more work: Duplicate the file handle and close it.
-	 * This should flush the file to disk.
-	 */
-	if ((fd = dup(mfp->mf_fd)) >= 0)
-	    close(fd);
+#ifdef WIN32
+	if (_commit(mfp->mf_fd))
+	    status = FAIL;
 #endif
 #ifdef AMIGA
 # if defined(__AROS__) || defined(__amigaos4__)
--- a/src/os_mac.h
+++ b/src/os_mac.h
@@ -101,7 +101,6 @@
 #define HAVE_AVAIL_MEM
 
 #ifndef HAVE_CONFIG_H
-/* #define SYNC_DUP_CLOSE	   sync() a file with dup() and close() */
 # define HAVE_STRING_H
 # define HAVE_STRCSPN
 # define HAVE_MEMSET
--- a/src/os_win32.h
+++ b/src/os_win32.h
@@ -26,7 +26,6 @@
 
 #define BINARY_FILE_IO
 #define USE_EXE_NAME		/* use argv[0] for $VIM */
-#define SYNC_DUP_CLOSE		/* sync() a file with dup() and close() */
 #define USE_TERM_CONSOLE
 #ifndef HAVE_STRING_H
 # define HAVE_STRING_H
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    423,
+/**/
     422,
 /**/
     421,