> -----Original Message-----
> From: vim_dev@googlegroups.com [mailto:vim_...@googlegroups.com] On
> Behalf Of Arve Knudsen
> Sent: Wednesday, October 21, 2009 9:21 AM
> To: vim_dev
> Subject: Re: Vim creates files named "4913", why?
> 
> 
> On 21 Okt, 17:13, James Vega <james...@jamessan.com> wrote:
> > On Wed, Oct 21, 2009 at 10:52 AM, Arve Knudsen
> <arve.knud...@gmail.com> wrote:
> >
> > > On 21 Okt, 13:58, James Vega <james...@jamessan.com> wrote:
> > >> On Wed, Oct 21, 2009 at 02:33:46AM -0700, Arve Knudsen wrote:
> > >> > I have a very annoying problem with the x64 build of Vim 7.2 on
> > >> > Windows 7, for some reason it creates files named "4913" during
> > >> > editing. Is this a bug, or maybe triggered by a problem with my
> > >> > system?
> >
> > >> As a quick Google would tell you, Vim creates this file in an
> attempt to
> > >> verify it can create a file in the directory in which you see the
> file
> > >> and set the uid/gid.  It's just a temporary file used during the
> process
> > >> of creating a backup file.
> >
> > > I did Google it, and found that it could be a problem on network-
> > > filesystems? The problem is that it *isn't* temporary, it persists.
> >
> > Here's the code:
> >
> > 3486                 for (i = 4913; ; i += 123)
> > 3487                 {
> > 3488                     sprintf((char *)gettail(IObuff), "%d", i);
> > 3489                     if (mch_lstat((char *)IObuff, &st) < 0)
> > 3490                         break;
> > 3491                 }
> > 3492                 fd = mch_open((char *)IObuff,
> > 3493
> > O_CREAT|O_WRONLY|O_EXCL|O_NOFOLLOW, perm);
> > 3494                 if (fd < 0)     /* can't write in directory */
> > 3495                     backup_copy = TRUE;
> > 3496                 else
> > 3497                 {
> > 3498 # ifdef UNIX
> > 3499 #  ifdef HAVE_FCHOWN
> > 3500                     ignored = fchown(fd, st_old.st_uid,
> st_old.st_gid);
> > 3501 #  endif
> > 3502                     if (mch_stat((char *)IObuff, &st) < 0
> > 3503                             || st.st_uid != st_old.st_uid
> > 3504                             || st.st_gid != st_old.st_gid
> > 3505                             || (long)st.st_mode != perm)
> > 3506                         backup_copy = TRUE;
> > 3507 # endif
> > 3508                     /* Close the file before removing it, on MS-
> Windows we
> > 3509                      * can't delete an open file. */
> > 3510                     close(fd);
> > 3511                     mch_remove(IObuff);
> > 3512                 }
> >
> > If mch_open (line 3492) returns a file descriptor, then we get into
> > the following else which always calls mch_remove on the file (line
> > 3511).  So, Vim is removing the file but your filesystem isn't
> > properly handling that.
> 
> Thanks for the explanation. It's just plain old NTFS, so I guess
> there's something wrong in my system.
> 
> Arve

Arve:
To confirm, are you seeing this on a local filesystem (you say "plain old 
NTFS"), or is there a remote filesystem involved?  Do you only see this with 
the 64-bit build of Vim, or 32-bit as well?  Can you provide the simplest 
possible .vimrc and steps to repro the problem?  I'm interested in 
investigating this.  We can take this to private e-mail if that would be 
better, to not flood the mailing list.

Craig


--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui