]> granicus.if.org Git - vim/commitdiff
Fixed: on MS-Windows sometimes files with number 4913 or higher are left
authorBram Moolenaar <Bram@vim.org>
Sun, 8 Aug 2010 16:46:06 +0000 (18:46 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 8 Aug 2010 16:46:06 +0000 (18:46 +0200)
behind.

runtime/doc/todo.txt
src/fileio.c

index 937f5c8267f9f954a46da31a986670abb3a4b0b9..0e4459337f153099fe122d37e4886e70e5125ea0 100644 (file)
@@ -77,9 +77,6 @@ I often see pasted text (from Firefox, to Vim in xterm) appear twice.
 Also, Vim in xterm sometimes loses copy/paste ability (probably after running
 an external command).
 
-Win32: The "4913" file is sometimes not deleted.  Perhaps another program has
-opened it?  Use FILE_FLAG_DELETE_ON_CLOSE? (Craig Barkhouse, 2009 Nov 6)
-
 Jumplist doesn't work properly in Insert mode? (Jean Johner, 2010 Mar 20)
 
 Problem with transparent cmdline.  Also: Terminal title is wrong with
index 2881cbc88bcdd0ebf0e9b23f2befe61ff362f6a6..368fd7adfe906582ba01b2ef9cc611cc918d871b 100644 (file)
@@ -3744,6 +3744,22 @@ buf_write(buf, fname, sfname, start, end, eap, append, forceit,
                     * can't delete an open file. */
                    close(fd);
                    mch_remove(IObuff);
+# ifdef MSWIN
+                   /* MS-Windows may trigger a virus scanner to open the
+                    * file, we can't delete it then.  Keep trying for half a
+                    * second. */
+                   {
+                       int try;
+
+                       for (try = 0; try < 10; ++try)
+                       {
+                           if (mch_lstat((char *)IObuff, &st) < 0)
+                               break;
+                           ui_delay(50L, TRUE);  /* wait 50 msec */
+                           mch_remove(IObuff);
+                       }
+                   }
+# endif
                }
            }
        }