dlls/kernel32/volume
Stephen Mark Smith
stephenmsmith at blueyonder.co.uk
Tue Jul 20 10:30:18 CDT 2010
On 20/07/10 14:54, Stephen Mark Smith wrote:
> On 20/07/10 14:00, Alexandre Julliard wrote:
>> stephenmsmith at blueyonder.co.uk writes:
>>
>>> diff --git a/dlls/kernel32/volume.c b/dlls/kernel32/volume.c
>>> index 7596864..4908739 100644
>>> --- a/dlls/kernel32/volume.c
>>> +++ b/dlls/kernel32/volume.c
>>> @@ -526,10 +526,17 @@ BOOL WINAPI GetVolumeInformationW( LPCWSTR
>>> root, LPWSTR label, DWORD label_len,
>>> }
>>> else
>>> {
>>> - if (!root[0] || root[1] != ':' || root[lstrlenW(root)-1] !=
>>> '\\' )
>>> + if (!isalphaW(root[0]) || root[1] != ':' ||
>>> root[lstrlenW(root)-1] != '\\')
>>> {
>>> - SetLastError( ERROR_INVALID_NAME );
>>> - return FALSE;
>>> + WCHAR curpath[MAX_PATH],winpath[MAX_PATH];
>>> + GetCurrentDirectoryW(MAX_PATH,curpath);
>>> + GetWindowsDirectoryW(winpath,MAX_PATH);
>>> +
>>> + if(lstrlenW(curpath)> 3&& root[0] == winpath[0])
>>> + {
>>> + SetLastError( ERROR_INVALID_NAME );
>>> + return FALSE;
>>> + }
>> This clearly makes no sense, path syntax doesn't depend on the windows
>> directory.
>>
> I agree it makes no sense however it seems to match windows behavior,
> results from my own vista box:
>
> Current directory is C:\Users\Administrator\Documents\Visual Studio
> 2010\Projects\volumeandfiletests\Debug
> GetVolumeInformation succeds with no trailing backslash for E:
> Current directory is C:\
> GetVolumeInformation succeds with no trailing backslash for C:
> GetVolumeInformation succeds with no trailing backslash for E:
> Current directory is E:\
> GetVolumeInformation succeds with no trailing backslash for E:
> Current directory is E:\data
moved executable off C: to see if it was using executables path not
windows path produces more confusing results:
Current directory is F:\
GetVolumeInformation succeds with no trailing backslash for E:
GetVolumeInformation succeds with no trailing backslash for F:
Current directory is C:\
GetVolumeInformation succeds with no trailing backslash for C:
GetVolumeInformation succeds with no trailing backslash for E:
GetVolumeInformation succeds with no trailing backslash for F:
Current directory is E:\
GetVolumeInformation succeds with no trailing backslash for E:
GetVolumeInformation succeds with no trailing backslash for F:
Current directory is E:\data
GetVolumeInformation succeds with no trailing backslash for F:
Attached simpler patch that does not error when CWD is a root dir passes
one additional test case this does not help bug 20887 and does not match
behavior above. My original patch does not cover second set of results
either.
Help greatly welcomed.
Stephen M Smith
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-GetVolumeInformationW-no-error-on-no-trailing-when-cur.txt
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20100720/ceb3e5c2/attachment.txt>
More information about the wine-devel
mailing list