Patch to fix bug 34324

Zhenbo Li litimetal at gmail.com
Wed Feb 26 06:48:17 CST 2014


2014-02-25 20:33 GMT+08:00 Bruno Jesus <00cpxxx at gmail.com>:
>
>
>> BTW, in irc channel, Stefand suggested me to avoid SetLastError().
>> If I have to do that, could I change SHELL_DeleteDirectoryW()
>> from BOOL to DWORD?
>
> If BOOL is no longer enough and the function is internal I see no
> problem in changing it, but there are other calls to this function so
> you would have to review and update then accordingly. And yes,
> avoiding the SetLastError is better as Windows may not set it too and
> the application may not be expecting that.

Thank you for your suggest.
I checked wine's code again. As SHELL_DeleteDirectoryW() is a
recursive function, using DWORD instead of BOOL would cause a big change.

So I modified the end of delete_files().

         if (!bPathExists)
-            return ERROR_PATH_NOT_FOUND;
+            return GetLastError() == ERROR_PATH_NOT_FOUND?
+                0x7c:               /* DE_INVALIDFILES , which is a
legacy in Windows*/
+                GetLastError();

In this new patch[1], it would fix *all* todo marks
about return value in test_delete(), too.

I appreciate your feedbacks.
(Thank you very much, Bruno Jesus)

[1]: http://bugs.winehq.org/attachment.cgi?id=47644&action=diff
-- 
Have a nice day!
Zhenbo Li



More information about the wine-devel mailing list