Corinna Vinschen wrote: > I got a report on the Cygwin mailing list that the following message > appears when trying to open /etc/hosts in vim: > > E303: Unable to open swap file for "/etc/hosts", recovery impossible > > What happens is this: > > /etc/hosts is by default a symbolic link which points to the hosts file > in the Windows system directory. The symbolic link is created as a link > to the DOS path, for instance: > > $ ls -l /etc/hosts > lrwxrwxrwx 1 corinna None 37 Oct 13 18:32 /etc/hosts -> > c:\WINDOWS\system32\drivers\etc\hosts > > By stracing vim I found that vim was trying to create a swap file > called "/tmp/c:\WINDOWS\system32\drivers\etc\hosts". > > Cygwin is mostly treated as Unix target in vim, which is basically > correct. However, since Cygwin allows POSIX paths as well as DOS paths, > there are both types of absolute paths. > > Below is a patch which works for me, though I'm not sure if it's > complete enough to catch all cases. There's code for OS2 in os_unix.c > which I reused, plus a new definition in mch_isFullName for the absolute > path on Cygwin. > > I'd be grateful if the below or a more feasible patch which solves the > above problem, could be applied to vim.
I think this fixes only one specific problem. When Vim is compiled for Unix it does not recognize DOS paths. And that matters in many places (e.g., search for CASE_INSENSITIVE_FILENAME and BACKSLASH_IN_FILENAME). Also behavior of a backslash in a file name changes. Making Vim for Unix handle these things will be an awful lot of work... -- Micro$oft: where do you want to go today? Linux: where do you want to go tomorrow? FreeBSD: are you guys coming, or what? /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///