16-Bit, vfat, short names
Reinhard Karcher
rkarcher at frey.de
Sat Dec 30 02:36:06 CST 2006
There is a problem with NtQueryDirectoryFile on vfat filesystems.
For a directory not in 8.3 format a winelike shortname (xxxx~yyy) is generated,
but that short name is looked for in the vfat-directory, where only a
windowslike shortname (xxxxxx~y) exists and the directory is not found.
The attached patch fixes that problem for me.
Reinhard Karcher
--- wine-0.9.28/dlls/ntdll/directory.c 2006-12-09 20:05:24.000000000 +0100
+++ wine-0.9.28n/dlls/ntdll/directory.c 2006-12-29 16:11:01.000000000 +0100
@@ -1513,13 +1513,13 @@
if ((cwd = open(".", O_RDONLY)) != -1 && fchdir( fd ) != -1)
{
- if (mask && !mempbrkW( mask->Buffer, wszWildcards, mask->Length / sizeof(WCHAR) ) &&
- read_directory_stat( fd, io, buffer, length, single_entry, mask, restart_scan ) != -1)
- goto done;
#ifdef VFAT_IOCTL_READDIR_BOTH
if ((read_directory_vfat( fd, io, buffer, length, single_entry, mask, restart_scan )) != -1)
goto done;
#endif
+ if (mask && !mempbrkW( mask->Buffer, wszWildcards, mask->Length / sizeof(WCHAR) ) &&
+ read_directory_stat( fd, io, buffer, length, single_entry, mask, restart_scan ) != -1)
+ goto done;
#ifdef USE_GETDENTS
if ((read_directory_getdents( fd, io, buffer, length, single_entry, mask, restart_scan )) != -1)
goto done;
More information about the wine-patches
mailing list